Exemplo n.º 1
0
    def test_no_equivalent_inline_asm_single_file(self):
        source_scanner = SourceScanner()

        report = Report('/root')
        source_scanner.initialize_report(report)
        io_object = io.StringIO('__asm__("mov r0, r1"')
        source_scanner.scan_file_object('test.c', io_object, report)
        source_scanner.finalize_report(report)
        self.assertEqual(len(report.issues), 2)
Exemplo n.º 2
0
    def test_no_equivalent_intrinsic_function_inline(self):
        source_scanner = SourceScanner()

        report = Report('/root')
        source_scanner.initialize_report(report)
        io_object = io.StringIO(
            'void func() {\n#if defined(__otherarch__)\n_otherarch_intrinsic_xyz(123));\n#elif defined(__aarch64__)\nfoo\n#endif\n}'
        )
        source_scanner.scan_file_object('test.c', io_object, report)
        source_scanner.finalize_report(report)
        self.assertEqual(len(report.issues), 1)
Exemplo n.º 3
0
    def test_equivalent_inline_asm_function_outline(self):
        source_scanner = SourceScanner()

        report = Report('/root')
        source_scanner.initialize_report(report)
        io_object = io.StringIO(
            '#if defined(__otherarch__)\nvoid func() {\n__asm__("mov r0, r1");\n}\n#elif defined(__aarch64__)\nvoid func() {\n__asm__("mov r0, r1");\n}\n#endif'
        )
        source_scanner.scan_file_object('test.c', io_object, report)
        source_scanner.finalize_report(report)
        self.assertEqual(len(report.issues), 0)
Exemplo n.º 4
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)
Exemplo n.º 5
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)