示例#1
0
    def test_nimrod(self):
        nimrod = Nimrod(self.java, self.maven)
        results = nimrod.run(calculator_project_dir(),
                             calculator_mutants_dir(),
                             'br.ufal.ic.easy.operations.Sum',
                             randoop_params=['--time-limit=1'],
                             evosuite_params=['-Dsearch_budget=1'])

        self.assertEqual(True, results['AOI_1'].maybe_equivalent)
        self.assertEqual(False, results['AOI_1'].not_equivalent)
        self.assertTrue(len(results['AOI_1'].coverage.call_points) > 0)
        self.assertTrue(len(results['AOI_1'].coverage.test_cases) > 0)
        self.assertTrue(results['AOI_1'].coverage.executions > 0)

        self.assertEqual(False, results['AOR_1'].maybe_equivalent)
        self.assertEqual(True, results['AOR_1'].not_equivalent)
        self.assertTrue(len(results['AOR_1'].coverage.call_points) > 0)
        self.assertTrue(len(results['AOR_1'].coverage.test_cases) > 0)
        self.assertTrue(results['AOR_1'].coverage.executions > 0)

        self.assertEqual(False, results['AOR_2'].maybe_equivalent)
        self.assertEqual(True, results['AOR_2'].not_equivalent)
        self.assertTrue(len(results['AOR_2'].coverage.call_points) > 0)
        self.assertTrue(len(results['AOR_2'].coverage.test_cases) > 0)
        self.assertTrue(results['AOR_2'].coverage.executions > 0)

        shutil.rmtree(os.path.join(calculator_project_dir(), 'nimrod_output'))
示例#2
0
    def test_nimrod_with_output_dir(self):
        nimrod = Nimrod(self.java, self.maven)
        output_dir = os.path.join(calculator_project_dir(), 'nimrod_output_2')

        results = nimrod.run(calculator_project_dir(),
                             calculator_mutants_dir(),
                             'br.ufal.ic.easy.operations.Sum',
                             randoop_params=['--time-limit=1'],
                             evosuite_params=['-Dsearch_budget=1'],
                             output_dir=output_dir)

        shutil.rmtree(output_dir)
        self.assertEqual(3, len(results))
示例#3
0
    def setUpClass(cls):
        cls.java_home = get_config()['java_home']
        cls.maven_home = get_config()['maven_home']

        cls.java = Java(cls.java_home)
        cls.maven = Maven(cls.java, cls.maven_home)

        cls.maven.compile(calculator_project_dir(), 10)

        cls.classpath = os.path.join(calculator_target_dir(), 'classes')
        cls.tests_src = os.path.join(calculator_project_dir(), 'randoop')
        cls.sut_class = 'br.ufal.ic.easy.operations.Sum'

        (cls.suite_name, cls.suite_dir, cls.suite_classes_dir,
         cls.suite_classes) = cls.generate_suite(cls.java, cls.tests_src,
                                                 cls.sut_class)
示例#4
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)
示例#5
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)
示例#6
0
    def setUp(self):
        self.java_home = get_config()['java_home']
        self.maven_home = get_config()['maven_home']

        self.java = Java(self.java_home)
        self.maven = Maven(self.java, self.maven_home)

        self.maven.compile(calculator_project_dir(), 10)
示例#7
0
    def test_compile_in_maven_project_dir(self):
        project_dir = os.path.join(calculator_project_dir(), '..', 'example')

        calculator_clean_project()

        maven = Maven(java=self.java, maven_home=self.maven_home)
        maven.compile(project_dir, timeout=10)

        self.assertTrue(os.path.exists(os.path.join(project_dir, 'target')))

        calculator_clean_project()
    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)
示例#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 tearDownClass(cls):
     shutil.rmtree(os.path.join(calculator_project_dir(), 'randoop'))
     calculator_clean_project()
    def setUp(self):
        self.java = Java(get_config()['java_home'])

        self.tests_src = os.path.join(calculator_project_dir(), 'test_tool')
        self.suite_tool = ToolSuiteGenerator(self.java, '', self.tests_src, '')