示例#1
0
    def exec_javac_dir(self, directory, cwd, env, timeout, skip_exists, *args):
        java_files = get_java_files(directory)

        if skip_exists:
            java_files = self.get_not_compiled_files(java_files, *args)

        self.exec_java_all(java_files, cwd, env, timeout, *args)
示例#2
0
    def test_generate_with_impact_analysis(self):
        tests_src = os.path.join(calculator_project_dir(), 'randoop')
        classes_dir = os.path.join(calculator_target_dir(), 'classes')

        randoop = Randoop(java=self.java,
                          classpath=classes_dir,
                          tests_src=tests_src,
                          sut_class='br.ufal.ic.easy.operations.Sum',
                          sut_classes=['br.ufal.ic.easy.operations.Sum'])
        randoop.parameters = [
            '--time-limit=1', '--testclass=br.ufal.ic.easy.operations.Sum'
        ]

        safira = Safira(self.java, classes_dir, calculator_src_aor_1())

        (suite_name, suite_dir, suite_classes_dir,
         suite_classes) = randoop.generate_with_impact_analysis(safira)

        self.assertTrue(suite_name.startswith('randoop'))
        self.assertTrue(os.path.exists(suite_dir))

        self.assertTrue(len(get_java_files(suite_dir)) > 1)
        self.assertTrue(len(get_class_files(suite_classes_dir)) > 1)
        self.assertEquals(2, len(suite_classes))

        shutil.rmtree(tests_src)
示例#3
0
    def test_generate_differential(self):

        tests_src = os.path.join(calculator_project_dir(), 'evosuite')

        evosuite = Evosuite(java=self.java,
                            classpath=os.path.join(calculator_target_dir(),
                                                   'classes'),
                            tests_src=tests_src,
                            sut_class='br.ufal.ic.easy.operations.Sum',
                            params=['-Dsearch_budget=1'])

        mutants = MuJava(java=self.java,
                         mutants_dir=calculator_mutants_dir()).read_log()

        (suite_name, suite_dir, suite_classes_dir,
         suite_classes) = evosuite.generate_differential(mutants[1].dir)

        self.assertTrue(suite_name.startswith('evosuite'))
        self.assertTrue(os.path.exists(suite_dir))

        self.assertTrue(len(get_java_files(suite_dir)) > 1)
        self.assertTrue(len(get_class_files(suite_classes_dir)) > 1)
        self.assertEquals(1, len(suite_classes))

        shutil.rmtree(tests_src)
示例#4
0
 def compile_all(self, classpath, directory):
     if os.path.exists(directory):
         java_files = get_java_files(directory)
         for java_file in java_files:
             class_file = os.path.join(directory,
                                       java_file.replace('.java', '.class'))
             if not os.path.exists(class_file):
                 self.exec_javac(java_file, directory, None, None,
                                 '-classpath', classpath)
示例#5
0
文件: evosuite.py 项目: vtlscin/SMAT
    def _get_java_files(self):
        ordered_files = []

        for file in sorted(get_java_files(self.suite_dir)):
            if '_scaffolding' in file:
                ordered_files.insert(0, file)
            else:
                ordered_files.append(file)

        return ordered_files
    def test_get_java_files(self):
        classes = get_java_files(
            os.path.join(calculator_project_dir(), 'src', 'main', 'java'))

        self.assertEqual(6, len(classes))
        self.assertTrue('br/ufal/ic/easy/Calculator.java' in classes)
        self.assertTrue('br/ufal/ic/easy/operations/Sum.java' in classes)
        self.assertTrue('br/ufal/ic/easy/operations/Div.java' in classes)
        self.assertTrue('br/ufal/ic/easy/operations/Operation.java' in classes)
        self.assertTrue('br/ufal/ic/easy/operations/Sub.java' in classes)
        self.assertTrue('br/ufal/ic/easy/operations/Mul.java' in classes)
示例#7
0
 def compile_all(self, classpath, directory):
     if os.path.exists(directory):
         java_files = get_java_files(directory)
         for java_file in java_files:
             class_file = os.path.join(directory,
                                       java_file.replace('.java', '.class'))
             if not os.path.exists(class_file):
                 try:
                     self.exec_javac(directory + '/' + java_file, directory,
                                     None, None, '-classpath', classpath)
                 except Exception:
                     print("COMPILATION ERROR {0}".format(class_file))
示例#8
0
    def test_compile_all(self):
        java = Java(self.java_home)
        src_dir = calculator_src_dir()

        self._clean_class_files(src_dir)

        java.compile_all(src_dir, src_dir)

        class_files = 0

        for java_file in get_java_files(src_dir):
            class_file = os.path.join(src_dir,
                                      java_file.replace('.java', '.class'))
            if os.path.exists(class_file):
                class_files += 1

        self.assertEqual(6, class_files)

        self._clean_class_files(src_dir)
示例#9
0
    def test_generate(self):

        tests_src = os.path.join(calculator_project_dir(), 'randoop')

        randoop = Randoop(java=self.java,
                          classpath=os.path.join(calculator_target_dir(),
                                                 'classes'),
                          tests_src=tests_src,
                          sut_class='br.ufal.ic.easy.operations.Sum')
        randoop.parameters = ['--time-limit=1']

        (suite_name, suite_dir, suite_classes_dir,
         suite_classes) = randoop.generate()

        self.assertTrue(suite_name.startswith('randoop'))
        self.assertTrue(os.path.exists(suite_dir))

        self.assertTrue(len(get_java_files(suite_dir)) > 1)
        self.assertTrue(len(get_class_files(suite_classes_dir)) > 1)
        self.assertEquals(1, len(suite_classes))
示例#10
0
 def _get_java_files(self):
     return sorted(get_java_files(self.suite_dir))
示例#11
0
 def _get_test_files(self, dir):
     tests = set()
     for java_file in get_java_files(dir):
         tests.add(java_file[java_file.rindex('/') +
                             1:java_file.index('.java')])
     return tests