Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
 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)