Use libabigail to track NDK ABIs.
The local diffing behavior is currently flagged off so we can land this in stages. Test: pytest cc Test: treehugger Test: development/tools/update_ndk_abi.sh Test: m ndk Bug: http://b/156513478 Change-Id: Iccb314411bc74ea3ddfea8b85b0539709295f65a
This commit is contained in:
@@ -33,8 +33,10 @@ class GeneratorTest(unittest.TestCase):
|
||||
# OmitVersionTest, PrivateVersionTest, and SymbolPresenceTest.
|
||||
src_file = io.StringIO()
|
||||
version_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file, version_file, Arch('arm'),
|
||||
9, False, False)
|
||||
symbol_list_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file,
|
||||
version_file, symbol_list_file,
|
||||
Arch('arm'), 9, False, False)
|
||||
|
||||
version = symbolfile.Version('VERSION_PRIVATE', None, [], [
|
||||
symbolfile.Symbol('foo', []),
|
||||
@@ -62,8 +64,10 @@ class GeneratorTest(unittest.TestCase):
|
||||
# SymbolPresenceTest.
|
||||
src_file = io.StringIO()
|
||||
version_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file, version_file, Arch('arm'),
|
||||
9, False, False)
|
||||
symbol_list_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file,
|
||||
version_file, symbol_list_file,
|
||||
Arch('arm'), 9, False, False)
|
||||
|
||||
version = symbolfile.Version('VERSION_1', None, [], [
|
||||
symbolfile.Symbol('foo', [Tag('x86')]),
|
||||
@@ -96,8 +100,10 @@ class GeneratorTest(unittest.TestCase):
|
||||
def test_write(self) -> None:
|
||||
src_file = io.StringIO()
|
||||
version_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file, version_file, Arch('arm'),
|
||||
9, False, False)
|
||||
symbol_list_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file,
|
||||
version_file, symbol_list_file,
|
||||
Arch('arm'), 9, False, False)
|
||||
|
||||
versions = [
|
||||
symbolfile.Version('VERSION_1', None, [], [
|
||||
@@ -141,6 +147,17 @@ class GeneratorTest(unittest.TestCase):
|
||||
""")
|
||||
self.assertEqual(expected_version, version_file.getvalue())
|
||||
|
||||
expected_allowlist = textwrap.dedent("""\
|
||||
[abi_symbol_list]
|
||||
foo
|
||||
bar
|
||||
woodly
|
||||
doodly
|
||||
baz
|
||||
qux
|
||||
""")
|
||||
self.assertEqual(expected_allowlist, symbol_list_file.getvalue())
|
||||
|
||||
|
||||
class IntegrationTest(unittest.TestCase):
|
||||
def test_integration(self) -> None:
|
||||
@@ -186,8 +203,10 @@ class IntegrationTest(unittest.TestCase):
|
||||
|
||||
src_file = io.StringIO()
|
||||
version_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file, version_file, Arch('arm'),
|
||||
9, False, False)
|
||||
symbol_list_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file,
|
||||
version_file, symbol_list_file,
|
||||
Arch('arm'), 9, False, False)
|
||||
generator.write(versions)
|
||||
|
||||
expected_src = textwrap.dedent("""\
|
||||
@@ -215,6 +234,16 @@ class IntegrationTest(unittest.TestCase):
|
||||
""")
|
||||
self.assertEqual(expected_version, version_file.getvalue())
|
||||
|
||||
expected_allowlist = textwrap.dedent("""\
|
||||
[abi_symbol_list]
|
||||
foo
|
||||
baz
|
||||
qux
|
||||
wibble
|
||||
wobble
|
||||
""")
|
||||
self.assertEqual(expected_allowlist, symbol_list_file.getvalue())
|
||||
|
||||
def test_integration_future_api(self) -> None:
|
||||
api_map = {
|
||||
'O': 9000,
|
||||
@@ -238,8 +267,10 @@ class IntegrationTest(unittest.TestCase):
|
||||
|
||||
src_file = io.StringIO()
|
||||
version_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file, version_file, Arch('arm'),
|
||||
9001, False, False)
|
||||
symbol_list_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file,
|
||||
version_file, symbol_list_file,
|
||||
Arch('arm'), 9001, False, False)
|
||||
generator.write(versions)
|
||||
|
||||
expected_src = textwrap.dedent("""\
|
||||
@@ -257,6 +288,13 @@ class IntegrationTest(unittest.TestCase):
|
||||
""")
|
||||
self.assertEqual(expected_version, version_file.getvalue())
|
||||
|
||||
expected_allowlist = textwrap.dedent("""\
|
||||
[abi_symbol_list]
|
||||
foo
|
||||
bar
|
||||
""")
|
||||
self.assertEqual(expected_allowlist, symbol_list_file.getvalue())
|
||||
|
||||
def test_multiple_definition(self) -> None:
|
||||
input_file = io.StringIO(textwrap.dedent("""\
|
||||
VERSION_1 {
|
||||
@@ -336,8 +374,10 @@ class IntegrationTest(unittest.TestCase):
|
||||
|
||||
src_file = io.StringIO()
|
||||
version_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file, version_file, Arch('arm'),
|
||||
9, False, True)
|
||||
symbol_list_file = io.StringIO()
|
||||
generator = ndkstubgen.Generator(src_file,
|
||||
version_file, symbol_list_file,
|
||||
Arch('arm'), 9, False, True)
|
||||
generator.write(versions)
|
||||
|
||||
expected_src = textwrap.dedent("""\
|
||||
|
Reference in New Issue
Block a user