def test_no_equivalent_intrinsic_file(self): source_scanner = SourceScanner() port_filter = PortFilter() report = Report('/root') port_filter.initialize_report(report) source_scanner.initialize_report(report) io_object = io.StringIO('_otherarch_intrinsic_xyz(123)') report.add_source_file('otherarch.c') source_scanner.scan_file_object('otherarch.c', io_object, report) io_object = io.StringIO('foo') report.add_source_file('aarch64.c') source_scanner.scan_file_object('aarch64.c', io_object, report) source_scanner.finalize_report(report) port_filter.finalize_report(report) self.assertEqual(len(report.issues), 1)
def test_equivalent_inline_asm_file(self): source_scanner = SourceScanner() port_filter = PortFilter() report = Report('/root') port_filter.initialize_report(report) source_scanner.initialize_report(report) io_object = io.StringIO('__asm__("mov r0, r1")') report.add_source_file('otherarch.c') source_scanner.scan_file_object('otherarch.c', io_object, report) io_object = io.StringIO('__asm__("mov r0, r1")') report.add_source_file('aarch64.c') source_scanner.scan_file_object('aarch64.c', io_object, report) source_scanner.finalize_report(report) port_filter.finalize_report(report) self.assertEqual(len(report.issues), 0) found_ported_remark = False for remark in report.remarks: if isinstance(remark, PortedInlineAsmRemark): found_ported_remark = True break self.assertTrue(found_ported_remark)
def test_finalize(self): report = Report('/root') port_filter = PortFilter() port_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test.c', 123)) report.add_source_file('test-otherarch.c') report.add_issue(InlineAsmIssue('test-otherarch.c', 123)) report.add_source_file('test-aarch64.c') report.add_issue(InlineAsmIssue('test-aarch64.c', 123)) port_filter.finalize_report(report) self.assertEqual(len(report.issues), 1)
def test_finalize(self): report = Report('/root') issue_type_config = IssueTypeConfig(None) issue_type_filter = IssueTypeFilter(issue_type_config) issue_type_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test.c', 123)) issue_type_filter.finalize_report(report) self.assertEqual(len(report.issues), 1) report = Report('/root') issue_type_config = IssueTypeConfig('-InlineAsm') issue_type_filter = IssueTypeFilter(issue_type_config) issue_type_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test.c', 123)) issue_type_filter.finalize_report(report) self.assertEqual(len(report.issues), 0) report = Report('/root') issue_type_config = IssueTypeConfig('InlineAsm') issue_type_filter = IssueTypeFilter(issue_type_config) issue_type_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test.c', 123)) issue_type_filter.finalize_report(report) self.assertEqual(len(report.issues), 1) report = Report('/root') issue_type_config = IssueTypeConfig('PreprocessorError') issue_type_filter = IssueTypeFilter(issue_type_config) issue_type_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test.c', 123)) issue_type_filter.finalize_report(report) self.assertEqual(len(report.issues), 0)
def test_finalize(self): report = Report('/root') issue_type_filter = IssueTypeFilter('') issue_type_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test.c', 123)) issue_type_filter.finalize_report(report) self.assertEqual(len(report.issues), 1) report = Report('/root') issue_type_filter = IssueTypeFilter('-InlineAsm') issue_type_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test.c', 123)) issue_type_filter.finalize_report(report) self.assertEqual(len(report.issues), 0) report = Report('/root') issue_type_filter = IssueTypeFilter('InlineAsm') issue_type_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test.c', 123)) issue_type_filter.finalize_report(report) self.assertEqual(len(report.issues), 1)
def test_finalize(self): report = Report('/root', target_os='linux') target_os_filter = TargetOsFilter() target_os_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(ConfigGuessIssue('test.c')) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test-aarch64.c', 123)) target_os_filter.finalize_report(report) self.assertEqual(len(report.issues), 2) report = Report('/root', target_os='windows') target_os_filter = TargetOsFilter() target_os_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(ConfigGuessIssue('test.c')) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test-aarch64.c', 123)) target_os_filter.finalize_report(report) self.assertEqual(len(report.issues), 1) report = Report('/root', target_os='all') target_os_filter = TargetOsFilter() target_os_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(ConfigGuessIssue('test.c')) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test-aarch64.c', 123)) target_os_filter.finalize_report(report) self.assertEqual(len(report.issues), 2) report = Report('/root', target_os='linux') target_os_filter = TargetOsFilter() target_os_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(OldCrtIssue('test.c', 123, 'libcmt.lib')) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test-aarch64.c', 123)) target_os_filter.finalize_report(report) self.assertEqual(len(report.issues), 1) report = Report('/root', target_os='windows') target_os_filter = TargetOsFilter() target_os_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(OldCrtIssue('test.c', 123, 'libcmt.lib')) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test-aarch64.c', 123)) target_os_filter.finalize_report(report) self.assertEqual(len(report.issues), 2) report = Report('/root', target_os='all') target_os_filter = TargetOsFilter() target_os_filter.initialize_report(report) report.add_source_file('test.c') report.add_issue(OldCrtIssue('test.c', 123, 'libcmt.lib')) report.add_source_file('test.c') report.add_issue(InlineAsmIssue('test-aarch64.c', 123)) target_os_filter.finalize_report(report) self.assertEqual(len(report.issues), 2)