def __get_files_in_report(self): run_filter = RunFilter() run_filter.names = ['db_cleanup_test'] run_filter.exactMatch = True codechecker.check_and_store(self.codechecker_cfg, 'db_cleanup_test', self.test_dir) runs = self._cc_client.getRunData(run_filter, None, 0, None) run_id = runs[0].runId reports \ = self._cc_client.getRunResults([run_id], 10, 0, [], None, None, False) details = self._cc_client.getReportDetails(reports[0].reportId) files = set() files.update(map(lambda bp: bp.fileId, details.pathEvents)) files.update(map(lambda bp: bp.fileId, details.executionPath)) file_ids = set() for file_id in files: file_data = self._cc_client.getSourceFileData(file_id, False, None) if file_data.fileId is not None: file_ids.add(file_data.fileId) return file_ids
def __get_runs(self, run_name_filter=None): """ Helper function to get all run names which belong to this test""" run_filter = RunFilter() if run_name_filter is not None: run_filter.names = [run_name_filter] runs = self._cc_client.getRunData(run_filter) return [run for run in runs if run.name in self._run_names]
def __get_run_results(self, run_name): """ Returns list of reports for the given run name. """ run_filter = RunFilter() run_filter.names = [run_name] run_filter.exactMatch = True runs = self._cc_client.getRunData(run_filter) run_id = runs[0].runId return self._cc_client.getRunResults([run_id], None, 0, [], None, None)
def tearDown(self): """ Remove the run which was stored by this test case. """ run_filter = RunFilter(names=[self._run_name], exactMatch=True) runs = self._report.getRunData(run_filter, None, 0, None) run_id = runs[0].runId # Remove the run. self._report.removeRun(run_id, None)
def __check_serverity_of_reports(self): """ This will check whether reports in the database has the same severity levels as in the severity map config file. """ run_filter = RunFilter() run_filter.names = ['db_cleanup_test'] run_filter.exactMatch = True runs = self._cc_client.getRunData(run_filter, None, 0, None) run_id = runs[0].runId reports \ = self._cc_client.getRunResults([run_id], 10, 0, [], None, None, False) with open(self.workspace_severity_cfg, 'r') as severity_cgf_file: severity_map = json.load(severity_cgf_file) for report in reports: severity_id = severity_map.get(report.checkerId, 'UNSPECIFIED') self.assertEqual(Severity._VALUES_TO_NAMES[report.severity], severity_id)
def test_remove_run_results(self): """ Test for removing run results and run. """ # Run the anaysis again with different setup. test_project_path = self._testproject_data['project_path'] ret = project.clean(test_project_path) if ret: sys.exit(ret) codechecker.check(self._codechecker_cfg, 'remove_run_results', test_project_path) run_filter = RunFilter(names=['remove_run_results'], exactMatch=True) runs = self._cc_client.getRunData(run_filter) self.assertEqual(len(runs), 1) run_id = runs[0].runId orig_results_count = \ self._cc_client.getRunResultCount([run_id], None, None) self.assertNotEqual(orig_results_count, 0) checker_filter = ReportFilter(checkerName=["core.CallAndMessage"]) res_count = self._cc_client.getRunResultCount([run_id], checker_filter, None) self.assertNotEqual(res_count, 0) self._cc_client.removeRunReports([run_id], checker_filter, None) res_count = self._cc_client.getRunResultCount([run_id], checker_filter, None) self.assertEqual(res_count, 0) # Remove the run. self._cc_client.removeRun(run_id) # Check that we removed all results from the run. res = self._cc_client.getRunResultCount([run_id], None, None) self.assertEqual(res, 0)