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)
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)
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)
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)
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)
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))
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)
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))
def _get_java_files(self): return sorted(get_java_files(self.suite_dir))
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