def test_omit_symbol(self):
        # Thorough testing of the cases involved here is handled by
        # SymbolPresenceTest.
        src_file = cStringIO.StringIO()
        version_file = cStringIO.StringIO()
        generator = gsl.Generator(src_file, version_file, 'arm', 9, False)

        version = gsl.Version('VERSION_1', None, [], [
            gsl.Symbol('foo', ['x86']),
        ])
        generator.write_version(version)
        self.assertEqual('', src_file.getvalue())
        self.assertEqual('', version_file.getvalue())

        version = gsl.Version('VERSION_1', None, [], [
            gsl.Symbol('foo', ['introduced=14']),
        ])
        generator.write_version(version)
        self.assertEqual('', src_file.getvalue())
        self.assertEqual('', version_file.getvalue())

        version = gsl.Version('VERSION_1', None, [], [
            gsl.Symbol('foo', ['vndk']),
        ])
        generator.write_version(version)
        self.assertEqual('', src_file.getvalue())
        self.assertEqual('', version_file.getvalue())
Exemplo n.º 2
0
    def test_omit_symbol(self):
        src_file = cStringIO.StringIO()
        version_file = cStringIO.StringIO()
        generator = gsl.Generator(src_file, version_file, 'arm', 9, False)

        version = gsl.Version('VERSION_1', None, [], [
            gsl.Symbol('foo', ['x86']),
        ])
        generator.write_version(version)
        self.assertEqual('', src_file.getvalue())
        self.assertEqual('', version_file.getvalue())

        version = gsl.Version('VERSION_1', None, [], [
            gsl.Symbol('foo', ['introduced=14']),
        ])
        generator.write_version(version)
        self.assertEqual('', src_file.getvalue())
        self.assertEqual('', version_file.getvalue())

        version = gsl.Version('VERSION_1', None, [], [
            gsl.Symbol('foo', ['vndk']),
        ])
        generator.write_version(version)
        self.assertEqual('', src_file.getvalue())
        self.assertEqual('', version_file.getvalue())
    def test_parse(self):
        input_file = cStringIO.StringIO(
            textwrap.dedent("""\
            VERSION_1 {
                local:
                    hidden1;
                global:
                    foo;
                    bar; # baz
            };

            VERSION_2 { # wasd
                # Implicit global scope.
                    woodly;
                    doodly; # asdf
                local:
                    qwerty;
            } VERSION_1;
        """))
        parser = gsl.SymbolFileParser(input_file, {})
        versions = parser.parse()

        expected = [
            gsl.Version('VERSION_1', None, [], [
                gsl.Symbol('foo', []),
                gsl.Symbol('bar', ['baz']),
            ]),
            gsl.Version('VERSION_2', 'VERSION_1', ['wasd'], [
                gsl.Symbol('woodly', []),
                gsl.Symbol('doodly', ['asdf']),
            ]),
        ]

        self.assertEqual(expected, versions)
Exemplo n.º 4
0
    def test_omit_version(self):
        # Thorough testing of the cases involved here is handled by
        # OmitVersionTest, PrivateVersionTest, and SymbolPresenceTest.
        src_file = io.StringIO()
        version_file = io.StringIO()
        generator = gsl.Generator(src_file, version_file, 'arm', 9, False,
                                  False)

        version = gsl.Version('VERSION_PRIVATE', None, [], [
            gsl.Symbol('foo', []),
        ])
        generator.write_version(version)
        self.assertEqual('', src_file.getvalue())
        self.assertEqual('', version_file.getvalue())

        version = gsl.Version('VERSION', None, ['x86'], [
            gsl.Symbol('foo', []),
        ])
        generator.write_version(version)
        self.assertEqual('', src_file.getvalue())
        self.assertEqual('', version_file.getvalue())

        version = gsl.Version('VERSION', None, ['introduced=14'], [
            gsl.Symbol('foo', []),
        ])
        generator.write_version(version)
        self.assertEqual('', src_file.getvalue())
        self.assertEqual('', version_file.getvalue())
Exemplo n.º 5
0
    def test_omit_arch(self):
        self.assertFalse(
            gsl.should_omit_version(gsl.Version('foo', None, [], []), 'arm', 9,
                                    False))
        self.assertFalse(
            gsl.should_omit_version(gsl.Version('foo', None, ['arm'], []),
                                    'arm', 9, False))

        self.assertTrue(
            gsl.should_omit_version(gsl.Version('foo', None, ['x86'], []),
                                    'arm', 9, False))
Exemplo n.º 6
0
    def test_omit_vndk(self):
        self.assertTrue(
            gsl.should_omit_version(gsl.Version('foo', None, ['vndk'], []),
                                    'arm', 9, False))

        self.assertFalse(
            gsl.should_omit_version(gsl.Version('foo', None, [], []), 'arm', 9,
                                    True))
        self.assertFalse(
            gsl.should_omit_version(gsl.Version('foo', None, ['vndk'], []),
                                    'arm', 9, True))
Exemplo n.º 7
0
    def test_omit_api(self):
        self.assertFalse(
            gsl.should_omit_version(gsl.Version('foo', None, [], []), 'arm', 9,
                                    False))
        self.assertFalse(
            gsl.should_omit_version(
                gsl.Version('foo', None, ['introduced=9'], []), 'arm', 9,
                False))

        self.assertTrue(
            gsl.should_omit_version(
                gsl.Version('foo', None, ['introduced=14'], []), 'arm', 9,
                False))
Exemplo n.º 8
0
    def test_omit_private(self):
        self.assertFalse(
            gsl.should_omit_version(gsl.Version('foo', None, [], []), 'arm', 9,
                                    False))

        self.assertTrue(
            gsl.should_omit_version(gsl.Version('foo_PRIVATE', None, [], []),
                                    'arm', 9, False))
        self.assertTrue(
            gsl.should_omit_version(gsl.Version('foo_PLATFORM', None, [], []),
                                    'arm', 9, False))

        self.assertTrue(
            gsl.should_omit_version(
                gsl.Version('foo', None, ['platform-only'], []), 'arm', 9,
                False))
Exemplo n.º 9
0
    def test_write(self):
        src_file = io.StringIO()
        version_file = io.StringIO()
        generator = gsl.Generator(src_file, version_file, 'arm', 9, False,
                                  False)

        versions = [
            gsl.Version('VERSION_1', None, [], [
                gsl.Symbol('foo', []),
                gsl.Symbol('bar', ['var']),
                gsl.Symbol('woodly', ['weak']),
                gsl.Symbol('doodly', ['weak', 'var']),
            ]),
            gsl.Version('VERSION_2', 'VERSION_1', [], [
                gsl.Symbol('baz', []),
            ]),
            gsl.Version('VERSION_3', 'VERSION_1', [], [
                gsl.Symbol('qux', ['versioned=14']),
            ]),
        ]

        generator.write(versions)
        expected_src = textwrap.dedent("""\
            void foo() {}
            int bar = 0;
            __attribute__((weak)) void woodly() {}
            __attribute__((weak)) int doodly = 0;
            void baz() {}
            void qux() {}
        """)
        self.assertEqual(expected_src, src_file.getvalue())

        expected_version = textwrap.dedent("""\
            VERSION_1 {
                global:
                    foo;
                    bar;
                    woodly;
                    doodly;
            };
            VERSION_2 {
                global:
                    baz;
            } VERSION_1;
        """)
        self.assertEqual(expected_version, version_file.getvalue())
    def test_write(self):
        src_file = cStringIO.StringIO()
        version_file = cStringIO.StringIO()
        generator = gsl.Generator(src_file, version_file, 'arm', 9)

        versions = [
            gsl.Version('VERSION_1', None, [], [
                gsl.Symbol('foo', []),
                gsl.Symbol('bar', ['var']),
            ]),
            gsl.Version('VERSION_2', 'VERSION_1', [], [
                gsl.Symbol('baz', []),
            ]),
            gsl.Version('VERSION_3', 'VERSION_1', [], [
                gsl.Symbol('qux', ['versioned=14']),
            ]),
        ]

        generator.write(versions)
        expected_src = textwrap.dedent("""\
            void foo() {}
            int bar = 0;
            void baz() {}
            void qux() {}
        """)
        self.assertEqual(expected_src, src_file.getvalue())

        expected_version = textwrap.dedent("""\
            VERSION_1 {
                global:
                    foo;
                    bar;
            };
            VERSION_2 {
                global:
                    baz;
            } VERSION_1;
        """)
        self.assertEqual(expected_version, version_file.getvalue())