Example #1
0
    def run(self, params=None, timeout=TIMEOUT):
        classpath = generate_classpath([
            SAFIRA
        ])
        params = ["--intraclass"]
        start = time.time()
        try:
            output = self.java.exec_java(
                None, self.java.get_env(), timeout,
                '-classpath', classpath,
                'saferefactor.safira.SafiraStart',
                *tuple(params if params else []),
                self.classes_dir, self.mutant_dir
            )

            methods, constructors, all_methods_by_class = self._extract_results(output.decode('unicode_escape'))

            return ImpactAnalysisResult(
                methods,
                constructors,
                all_methods_by_class,
                time.time() - start
            )
        except subprocess.TimeoutExpired as e:
            elapsed_time = time.time() - start
            print("# ERROR: [SAFIRA] execution timed out: {0} seconds".format(
                elapsed_time), file=sys.stderr)
            raise e
Example #2
0
    def exec(self, suite_dir, suite_classes_dir, sut_class, test_class,
             timeout=TIMEOUT):
        classpath = generate_classpath([
            JMOCKIT, JUNIT, HAMCREST, EVOSUITE_RUNTIME,
            suite_classes_dir,
            self.classpath
        ])

        return self._exec(suite_dir, sut_class, test_class, classpath, '.',
                          timeout)
Example #3
0
    def createJacocoExec(self, projectJar, suite_class, test_class):
        classpath = generate_classpath([
            JUNIT, HAMCREST, JACOCOAGENT,
            suite_class, projectJar
        ])
        params = (
            '-classpath', classpath,
            'org.junit.runner.JUnitCore', test_class
        )

        return self.execJava(*params)
Example #4
0
    def _exec_tool(self):
        params = [
            '-classpath',
            generate_classpath([self.classpath, MOD_RANDOOP]),
            'randoop.main.Main', 'gentests', '--randomseed=10',
            '--time-limit=300', '--junit-output-dir=' + self.suite_dir
        ]

        params += self.parameters

        return self._exec(*tuple(params))
Example #5
0
    def _exec_tool(self):
        params = [
            '-classpath',
            generate_classpath([self.classpath, RANDOOP]), 'randoop.main.Main',
            'gentests', '--randomseed=' + str(random.randint(0, 9999)),
            '--testclass=' + self.sut_class,
            '--junit-output-dir=' + self.suite_dir
        ]

        params += self.parameters

        return self._exec(*tuple(params))
    def _compile(self):
        self.suite_classes_dir = os.path.join(self.suite_dir, 'classes')
        self._create_dirs(self.suite_classes_dir)

        classpath = generate_classpath([
            self.classpath, self.suite_dir, JUNIT, HAMCREST,
            self.suite_classes_dir
        ] + self._extra_classpath())
        params = '-classpath', classpath, '-d', self.suite_classes_dir

        self.java.exec_java_all(
            [os.path.join(self.suite_dir, f) for f in self._get_java_files()],
            self._get_suite_dir(), self.java.get_env(),
            COMPILE_TIMEOUT * len(self._get_java_files()), *params)
Example #7
0
    def _compile(self):
        self.suite_classes_dir = os.path.join(self.suite_dir, 'classes')
        self._create_dirs(self.suite_classes_dir)

        classpath = generate_classpath([
            self.classpath, self.suite_dir, JUNIT, HAMCREST,
            self.suite_classes_dir
        ] + self._extra_classpath())

        for java_file in self._get_java_files():
            java_file = os.path.join(self.suite_dir, java_file)
            try:
                self.java.exec_javac(java_file, self._get_suite_dir(),
                                     self.java.get_env(), COMPILE_TIMEOUT,
                                     '-classpath', classpath, '-d',
                                     self.suite_classes_dir)
            except subprocess.CalledProcessError as e:
                print('[ERROR] Compiling {0} tests: {1}'.format(
                    self._get_tool_name(), e.output.decode('unicode_escape')),
                      file=sys.stderr)
Example #8
0
 def test_generate_classpath_with_invalid_paths(self):
     path = generate_classpath(['a', None, 'b', '', 'c'])
     path_split = path.split(os.pathsep)
     self.assertEqual('a', path_split[0])
     self.assertEqual('b', path_split[1])
     self.assertEqual('c', path_split[2])