Loading scripts/Android.bp +5 −89 Original line number Diff line number Diff line package { default_applicable_licenses: ["Android-Apache-2.0"], default_visibility: ["//build/soong:__subpackages__"], } python_binary_host { Loading @@ -8,14 +9,6 @@ python_binary_host { srcs: [ "check_boot_jars/check_boot_jars.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, } python_binary_host { Loading @@ -24,14 +17,6 @@ python_binary_host { srcs: [ "manifest_fixer.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -45,11 +30,8 @@ python_test_host { "manifest_fixer.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, embedded_launcher: true, }, }, libs: [ Loading @@ -67,12 +49,14 @@ python_library_host { ], version: { py2: { // TODO(b/203436762) Remove when system/apex/apexer/apexer.py is converted enabled: true, }, py3: { enabled: false, enabled: true, }, }, visibility: ["//system/apex/apexer:__pkg__"], } python_binary_host { Loading @@ -81,14 +65,6 @@ python_binary_host { srcs: [ "manifest_check.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -101,14 +77,6 @@ python_test_host { "manifest_check_test.py", "manifest_check.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -123,14 +91,6 @@ python_binary_host { srcs: [ "jsonmodify.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, } python_binary_host { Loading @@ -139,14 +99,6 @@ python_binary_host { srcs: [ "test_config_fixer.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -159,14 +111,6 @@ python_test_host { "test_config_fixer_test.py", "test_config_fixer.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -179,14 +123,6 @@ python_binary_host { srcs: [ "construct_context.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -199,14 +135,6 @@ python_test_host { "construct_context_test.py", "construct_context.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading Loading @@ -253,11 +181,7 @@ python_binary_host { "conv_linker_config.py", ], version: { py2: { enabled: false, }, py3: { enabled: true, embedded_launcher: true, }, }, Loading @@ -272,12 +196,4 @@ python_binary_host { srcs: [ "get_clang_version.py", ], version: { py2: { enabled: false, }, py3: { enabled: true, }, }, } scripts/manifest.py +1 −1 Original line number Diff line number Diff line Loading @@ -123,4 +123,4 @@ def get_indent(element, default_level): def write_xml(f, doc): f.write('<?xml version="1.0" encoding="utf-8"?>\n') for node in doc.childNodes: f.write(node.toxml(encoding='utf-8') + '\n') f.write(node.toxml() + '\n') scripts/manifest_check.py +2 −2 Original line number Diff line number Diff line Loading @@ -335,7 +335,7 @@ def main(): if is_apk: aapt = args.aapt if args.aapt is not None else 'aapt' manifest = subprocess.check_output( [aapt, 'dump', 'badging', args.input]) [aapt, 'dump', 'badging', args.input]).decode('utf-8') else: manifest = minidom.parse(args.input) Loading Loading @@ -381,7 +381,7 @@ def main(): if is_apk: raise RuntimeError('cannot save APK manifest as XML') with open(args.output, 'wb') as f: with open(args.output, 'w') as f: write_xml(f, manifest) # pylint: disable=broad-except Loading scripts/manifest_fixer.py +1 −1 Original line number Diff line number Diff line Loading @@ -352,7 +352,7 @@ def main(): if args.extract_native_libs is not None: add_extract_native_libs(doc, args.extract_native_libs) with open(args.output, 'wb') as f: with open(args.output, 'w') as f: write_xml(f, doc) # pylint: disable=broad-except Loading scripts/manifest_fixer_test.py +65 −44 Original line number Diff line number Diff line Loading @@ -16,16 +16,16 @@ # """Unit tests for manifest_fixer.py.""" import StringIO import io import sys import unittest from xml.dom import minidom import xml.etree.ElementTree as ET import manifest_fixer sys.dont_write_bytecode = True class CompareVersionGtTest(unittest.TestCase): """Unit tests for compare_version_gt function.""" Loading Loading @@ -59,7 +59,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): doc = minidom.parseString(input_manifest) manifest_fixer.raise_min_sdk_version(doc, min_sdk_version, target_sdk_version, library) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -80,13 +80,16 @@ class RaiseMinSdkVersionTest(unittest.TestCase): attrs += ' ' + extra return ' <uses-sdk%s/>\n' % (attrs) def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def test_no_uses_sdk(self): """Tests inserting a uses-sdk element into a manifest.""" manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28') output = self.raise_min_sdk_version_test(manifest_input, '28', '28', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_min(self): """Tests inserting a minSdkVersion attribute into a uses-sdk element.""" Loading @@ -95,7 +98,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28', extra='extra="foo"') output = self.raise_min_sdk_version_test(manifest_input, '28', '28', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_raise_min(self): """Tests inserting a minSdkVersion attribute into a uses-sdk element.""" Loading @@ -103,7 +106,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28') output = self.raise_min_sdk_version_test(manifest_input, '28', '28', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_raise(self): """Tests raising a minSdkVersion attribute.""" Loading @@ -111,7 +114,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28') output = self.raise_min_sdk_version_test(manifest_input, '28', '28', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_raise_min(self): """Tests a minSdkVersion that doesn't need raising.""" Loading @@ -119,7 +122,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='28') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') output = self.raise_min_sdk_version_test(manifest_input, '27', '27', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_raise_codename(self): """Tests raising a minSdkVersion attribute to a codename.""" Loading @@ -127,7 +130,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='28') expected = self.manifest_tmpl % self.uses_sdk(min='P', target='P') output = self.raise_min_sdk_version_test(manifest_input, 'P', 'P', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_raise_codename(self): """Tests a minSdkVersion codename that doesn't need raising.""" Loading @@ -135,7 +138,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='P') expected = self.manifest_tmpl % self.uses_sdk(min='P', target='28') output = self.raise_min_sdk_version_test(manifest_input, '28', '28', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_target(self): """Tests an existing targetSdkVersion is preserved.""" Loading @@ -143,7 +146,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='26', target='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_target(self): """Tests inserting targetSdkVersion when minSdkVersion exists.""" Loading @@ -151,7 +154,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='29') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_target_no_min(self): """"Tests inserting targetSdkVersion when minSdkVersion exists.""" Loading @@ -159,7 +162,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(target='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_target_no_min(self): """Tests inserting targetSdkVersion when minSdkVersion does not exist.""" Loading @@ -167,7 +170,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.uses_sdk(min='28', target='29') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_library_no_target(self): """Tests inserting targetSdkVersion when minSdkVersion exists.""" Loading @@ -175,7 +178,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='16') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', True) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_library_target_no_min(self): """Tests inserting targetSdkVersion when minSdkVersion exists.""" Loading @@ -183,7 +186,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(target='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', True) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_library_no_target_no_min(self): """Tests inserting targetSdkVersion when minSdkVersion does not exist.""" Loading @@ -191,7 +194,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.uses_sdk(min='28', target='16') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', True) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_extra(self): """Tests that extra attributes and elements are maintained.""" Loading @@ -204,12 +207,12 @@ class RaiseMinSdkVersionTest(unittest.TestCase): # pylint: disable=line-too-long expected = self.manifest_tmpl % ( ' <!-- comment -->\n' ' <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="29" extra="foo"/>\n' ' <uses-sdk android:minSdkVersion="28" extra="foo" android:targetSdkVersion="29"/>\n' ' <application/>\n') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_indent(self): """Tests that an inserted element copies the existing indentation.""" Loading @@ -223,17 +226,20 @@ class RaiseMinSdkVersionTest(unittest.TestCase): output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) class AddLoggingParentTest(unittest.TestCase): """Unit tests for add_logging_parent function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def add_logging_parent_test(self, input_manifest, logging_parent=None): doc = minidom.parseString(input_manifest) if logging_parent: manifest_fixer.add_logging_parent(doc, logging_parent) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -257,23 +263,26 @@ class AddLoggingParentTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.uses_logging_parent() output = self.add_logging_parent_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_logging_parent(self): """Tests manifest_fixer with no logging_parent.""" manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.uses_logging_parent('FOO') output = self.add_logging_parent_test(manifest_input, 'FOO') self.assertEqual(output, expected) self.assert_xml_equal(output, expected) class AddUsesLibrariesTest(unittest.TestCase): """Unit tests for add_uses_libraries function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def run_test(self, input_manifest, new_uses_libraries): doc = minidom.parseString(input_manifest) manifest_fixer.add_uses_libraries(doc, new_uses_libraries, True) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading Loading @@ -301,7 +310,7 @@ class AddUsesLibrariesTest(unittest.TestCase): ('bar', 'false')]) expected = manifest_input output = self.run_test(manifest_input, []) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_not_overwrite(self): """new_uses_libraries must not overwrite existing tags.""" Loading @@ -310,7 +319,7 @@ class AddUsesLibrariesTest(unittest.TestCase): ('bar', 'false')]) expected = manifest_input output = self.run_test(manifest_input, ['foo', 'bar']) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_add(self): """New names are added with 'required:true'.""" Loading @@ -323,7 +332,7 @@ class AddUsesLibrariesTest(unittest.TestCase): ('baz', 'true'), ('qux', 'true')]) output = self.run_test(manifest_input, ['bar', 'baz', 'qux']) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_application(self): """When there is no <application> tag, the tag is added.""" Loading @@ -336,7 +345,7 @@ class AddUsesLibrariesTest(unittest.TestCase): ('foo', 'true'), ('bar', 'true')]) output = self.run_test(manifest_input, ['foo', 'bar']) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_empty_application(self): """Even when here is an empty <application/> tag, the libs are added.""" Loading @@ -350,16 +359,19 @@ class AddUsesLibrariesTest(unittest.TestCase): ('foo', 'true'), ('bar', 'true')]) output = self.run_test(manifest_input, ['foo', 'bar']) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) class AddUsesNonSdkApiTest(unittest.TestCase): """Unit tests for add_uses_libraries function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def run_test(self, input_manifest): doc = minidom.parseString(input_manifest) manifest_fixer.add_uses_non_sdk_api(doc) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -377,23 +389,26 @@ class AddUsesNonSdkApiTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_non_sdk_api(False) expected = self.manifest_tmpl % self.uses_non_sdk_api(True) output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_already_set(self): """new_uses_libraries must not overwrite existing tags.""" manifest_input = self.manifest_tmpl % self.uses_non_sdk_api(True) expected = manifest_input output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) class UseEmbeddedDexTest(unittest.TestCase): """Unit tests for add_use_embedded_dex function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def run_test(self, input_manifest): doc = minidom.parseString(input_manifest) manifest_fixer.add_use_embedded_dex(doc) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -410,13 +425,13 @@ class UseEmbeddedDexTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.use_embedded_dex('true') output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_manifest_with_use_embedded_dex(self): manifest_input = self.manifest_tmpl % self.use_embedded_dex('true') expected = manifest_input output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_manifest_with_not_use_embedded_dex(self): manifest_input = self.manifest_tmpl % self.use_embedded_dex('false') Loading @@ -426,10 +441,13 @@ class UseEmbeddedDexTest(unittest.TestCase): class AddExtractNativeLibsTest(unittest.TestCase): """Unit tests for add_extract_native_libs function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def run_test(self, input_manifest, value): doc = minidom.parseString(input_manifest) manifest_fixer.add_extract_native_libs(doc, value) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -446,19 +464,19 @@ class AddExtractNativeLibsTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.extract_native_libs('true') output = self.run_test(manifest_input, True) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_set_false(self): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.extract_native_libs('false') output = self.run_test(manifest_input, False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_match(self): manifest_input = self.manifest_tmpl % self.extract_native_libs('true') expected = manifest_input output = self.run_test(manifest_input, True) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_conflict(self): manifest_input = self.manifest_tmpl % self.extract_native_libs('true') Loading @@ -468,10 +486,13 @@ class AddExtractNativeLibsTest(unittest.TestCase): class AddNoCodeApplicationTest(unittest.TestCase): """Unit tests for set_has_code_to_false function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def run_test(self, input_manifest): doc = minidom.parseString(input_manifest) manifest_fixer.set_has_code_to_false(doc) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -485,26 +506,26 @@ class AddNoCodeApplicationTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % ' <application android:hasCode="false"/>\n' output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_has_application_no_has_code(self): manifest_input = self.manifest_tmpl % ' <application/>\n' expected = self.manifest_tmpl % ' <application android:hasCode="false"/>\n' output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_has_application_has_code_false(self): """ Do nothing if there's already an application elemeent. """ manifest_input = self.manifest_tmpl % ' <application android:hasCode="false"/>\n' output = self.run_test(manifest_input) self.assertEqual(output, manifest_input) self.assert_xml_equal(output, manifest_input) def test_has_application_has_code_true(self): """ Do nothing if there's already an application elemeent even if its hasCode attribute is true. """ manifest_input = self.manifest_tmpl % ' <application android:hasCode="true"/>\n' output = self.run_test(manifest_input) self.assertEqual(output, manifest_input) self.assert_xml_equal(output, manifest_input) if __name__ == '__main__': Loading Loading
scripts/Android.bp +5 −89 Original line number Diff line number Diff line package { default_applicable_licenses: ["Android-Apache-2.0"], default_visibility: ["//build/soong:__subpackages__"], } python_binary_host { Loading @@ -8,14 +9,6 @@ python_binary_host { srcs: [ "check_boot_jars/check_boot_jars.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, } python_binary_host { Loading @@ -24,14 +17,6 @@ python_binary_host { srcs: [ "manifest_fixer.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -45,11 +30,8 @@ python_test_host { "manifest_fixer.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, embedded_launcher: true, }, }, libs: [ Loading @@ -67,12 +49,14 @@ python_library_host { ], version: { py2: { // TODO(b/203436762) Remove when system/apex/apexer/apexer.py is converted enabled: true, }, py3: { enabled: false, enabled: true, }, }, visibility: ["//system/apex/apexer:__pkg__"], } python_binary_host { Loading @@ -81,14 +65,6 @@ python_binary_host { srcs: [ "manifest_check.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -101,14 +77,6 @@ python_test_host { "manifest_check_test.py", "manifest_check.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -123,14 +91,6 @@ python_binary_host { srcs: [ "jsonmodify.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, } python_binary_host { Loading @@ -139,14 +99,6 @@ python_binary_host { srcs: [ "test_config_fixer.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -159,14 +111,6 @@ python_test_host { "test_config_fixer_test.py", "test_config_fixer.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -179,14 +123,6 @@ python_binary_host { srcs: [ "construct_context.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading @@ -199,14 +135,6 @@ python_test_host { "construct_context_test.py", "construct_context.py", ], version: { py2: { enabled: true, }, py3: { enabled: false, }, }, libs: [ "manifest_utils", ], Loading Loading @@ -253,11 +181,7 @@ python_binary_host { "conv_linker_config.py", ], version: { py2: { enabled: false, }, py3: { enabled: true, embedded_launcher: true, }, }, Loading @@ -272,12 +196,4 @@ python_binary_host { srcs: [ "get_clang_version.py", ], version: { py2: { enabled: false, }, py3: { enabled: true, }, }, }
scripts/manifest.py +1 −1 Original line number Diff line number Diff line Loading @@ -123,4 +123,4 @@ def get_indent(element, default_level): def write_xml(f, doc): f.write('<?xml version="1.0" encoding="utf-8"?>\n') for node in doc.childNodes: f.write(node.toxml(encoding='utf-8') + '\n') f.write(node.toxml() + '\n')
scripts/manifest_check.py +2 −2 Original line number Diff line number Diff line Loading @@ -335,7 +335,7 @@ def main(): if is_apk: aapt = args.aapt if args.aapt is not None else 'aapt' manifest = subprocess.check_output( [aapt, 'dump', 'badging', args.input]) [aapt, 'dump', 'badging', args.input]).decode('utf-8') else: manifest = minidom.parse(args.input) Loading Loading @@ -381,7 +381,7 @@ def main(): if is_apk: raise RuntimeError('cannot save APK manifest as XML') with open(args.output, 'wb') as f: with open(args.output, 'w') as f: write_xml(f, manifest) # pylint: disable=broad-except Loading
scripts/manifest_fixer.py +1 −1 Original line number Diff line number Diff line Loading @@ -352,7 +352,7 @@ def main(): if args.extract_native_libs is not None: add_extract_native_libs(doc, args.extract_native_libs) with open(args.output, 'wb') as f: with open(args.output, 'w') as f: write_xml(f, doc) # pylint: disable=broad-except Loading
scripts/manifest_fixer_test.py +65 −44 Original line number Diff line number Diff line Loading @@ -16,16 +16,16 @@ # """Unit tests for manifest_fixer.py.""" import StringIO import io import sys import unittest from xml.dom import minidom import xml.etree.ElementTree as ET import manifest_fixer sys.dont_write_bytecode = True class CompareVersionGtTest(unittest.TestCase): """Unit tests for compare_version_gt function.""" Loading Loading @@ -59,7 +59,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): doc = minidom.parseString(input_manifest) manifest_fixer.raise_min_sdk_version(doc, min_sdk_version, target_sdk_version, library) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -80,13 +80,16 @@ class RaiseMinSdkVersionTest(unittest.TestCase): attrs += ' ' + extra return ' <uses-sdk%s/>\n' % (attrs) def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def test_no_uses_sdk(self): """Tests inserting a uses-sdk element into a manifest.""" manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28') output = self.raise_min_sdk_version_test(manifest_input, '28', '28', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_min(self): """Tests inserting a minSdkVersion attribute into a uses-sdk element.""" Loading @@ -95,7 +98,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28', extra='extra="foo"') output = self.raise_min_sdk_version_test(manifest_input, '28', '28', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_raise_min(self): """Tests inserting a minSdkVersion attribute into a uses-sdk element.""" Loading @@ -103,7 +106,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28') output = self.raise_min_sdk_version_test(manifest_input, '28', '28', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_raise(self): """Tests raising a minSdkVersion attribute.""" Loading @@ -111,7 +114,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='28') output = self.raise_min_sdk_version_test(manifest_input, '28', '28', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_raise_min(self): """Tests a minSdkVersion that doesn't need raising.""" Loading @@ -119,7 +122,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='28') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') output = self.raise_min_sdk_version_test(manifest_input, '27', '27', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_raise_codename(self): """Tests raising a minSdkVersion attribute to a codename.""" Loading @@ -127,7 +130,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='28') expected = self.manifest_tmpl % self.uses_sdk(min='P', target='P') output = self.raise_min_sdk_version_test(manifest_input, 'P', 'P', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_raise_codename(self): """Tests a minSdkVersion codename that doesn't need raising.""" Loading @@ -135,7 +138,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='P') expected = self.manifest_tmpl % self.uses_sdk(min='P', target='28') output = self.raise_min_sdk_version_test(manifest_input, '28', '28', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_target(self): """Tests an existing targetSdkVersion is preserved.""" Loading @@ -143,7 +146,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='26', target='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_target(self): """Tests inserting targetSdkVersion when minSdkVersion exists.""" Loading @@ -151,7 +154,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='29') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_target_no_min(self): """"Tests inserting targetSdkVersion when minSdkVersion exists.""" Loading @@ -159,7 +162,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(target='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_target_no_min(self): """Tests inserting targetSdkVersion when minSdkVersion does not exist.""" Loading @@ -167,7 +170,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.uses_sdk(min='28', target='29') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_library_no_target(self): """Tests inserting targetSdkVersion when minSdkVersion exists.""" Loading @@ -175,7 +178,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(min='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='16') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', True) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_library_target_no_min(self): """Tests inserting targetSdkVersion when minSdkVersion exists.""" Loading @@ -183,7 +186,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_sdk(target='27') expected = self.manifest_tmpl % self.uses_sdk(min='28', target='27') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', True) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_library_no_target_no_min(self): """Tests inserting targetSdkVersion when minSdkVersion does not exist.""" Loading @@ -191,7 +194,7 @@ class RaiseMinSdkVersionTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.uses_sdk(min='28', target='16') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', True) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_extra(self): """Tests that extra attributes and elements are maintained.""" Loading @@ -204,12 +207,12 @@ class RaiseMinSdkVersionTest(unittest.TestCase): # pylint: disable=line-too-long expected = self.manifest_tmpl % ( ' <!-- comment -->\n' ' <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="29" extra="foo"/>\n' ' <uses-sdk android:minSdkVersion="28" extra="foo" android:targetSdkVersion="29"/>\n' ' <application/>\n') output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_indent(self): """Tests that an inserted element copies the existing indentation.""" Loading @@ -223,17 +226,20 @@ class RaiseMinSdkVersionTest(unittest.TestCase): output = self.raise_min_sdk_version_test(manifest_input, '28', '29', False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) class AddLoggingParentTest(unittest.TestCase): """Unit tests for add_logging_parent function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def add_logging_parent_test(self, input_manifest, logging_parent=None): doc = minidom.parseString(input_manifest) if logging_parent: manifest_fixer.add_logging_parent(doc, logging_parent) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -257,23 +263,26 @@ class AddLoggingParentTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.uses_logging_parent() output = self.add_logging_parent_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_logging_parent(self): """Tests manifest_fixer with no logging_parent.""" manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.uses_logging_parent('FOO') output = self.add_logging_parent_test(manifest_input, 'FOO') self.assertEqual(output, expected) self.assert_xml_equal(output, expected) class AddUsesLibrariesTest(unittest.TestCase): """Unit tests for add_uses_libraries function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def run_test(self, input_manifest, new_uses_libraries): doc = minidom.parseString(input_manifest) manifest_fixer.add_uses_libraries(doc, new_uses_libraries, True) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading Loading @@ -301,7 +310,7 @@ class AddUsesLibrariesTest(unittest.TestCase): ('bar', 'false')]) expected = manifest_input output = self.run_test(manifest_input, []) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_not_overwrite(self): """new_uses_libraries must not overwrite existing tags.""" Loading @@ -310,7 +319,7 @@ class AddUsesLibrariesTest(unittest.TestCase): ('bar', 'false')]) expected = manifest_input output = self.run_test(manifest_input, ['foo', 'bar']) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_add(self): """New names are added with 'required:true'.""" Loading @@ -323,7 +332,7 @@ class AddUsesLibrariesTest(unittest.TestCase): ('baz', 'true'), ('qux', 'true')]) output = self.run_test(manifest_input, ['bar', 'baz', 'qux']) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_no_application(self): """When there is no <application> tag, the tag is added.""" Loading @@ -336,7 +345,7 @@ class AddUsesLibrariesTest(unittest.TestCase): ('foo', 'true'), ('bar', 'true')]) output = self.run_test(manifest_input, ['foo', 'bar']) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_empty_application(self): """Even when here is an empty <application/> tag, the libs are added.""" Loading @@ -350,16 +359,19 @@ class AddUsesLibrariesTest(unittest.TestCase): ('foo', 'true'), ('bar', 'true')]) output = self.run_test(manifest_input, ['foo', 'bar']) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) class AddUsesNonSdkApiTest(unittest.TestCase): """Unit tests for add_uses_libraries function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def run_test(self, input_manifest): doc = minidom.parseString(input_manifest) manifest_fixer.add_uses_non_sdk_api(doc) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -377,23 +389,26 @@ class AddUsesNonSdkApiTest(unittest.TestCase): manifest_input = self.manifest_tmpl % self.uses_non_sdk_api(False) expected = self.manifest_tmpl % self.uses_non_sdk_api(True) output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_already_set(self): """new_uses_libraries must not overwrite existing tags.""" manifest_input = self.manifest_tmpl % self.uses_non_sdk_api(True) expected = manifest_input output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) class UseEmbeddedDexTest(unittest.TestCase): """Unit tests for add_use_embedded_dex function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def run_test(self, input_manifest): doc = minidom.parseString(input_manifest) manifest_fixer.add_use_embedded_dex(doc) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -410,13 +425,13 @@ class UseEmbeddedDexTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.use_embedded_dex('true') output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_manifest_with_use_embedded_dex(self): manifest_input = self.manifest_tmpl % self.use_embedded_dex('true') expected = manifest_input output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_manifest_with_not_use_embedded_dex(self): manifest_input = self.manifest_tmpl % self.use_embedded_dex('false') Loading @@ -426,10 +441,13 @@ class UseEmbeddedDexTest(unittest.TestCase): class AddExtractNativeLibsTest(unittest.TestCase): """Unit tests for add_extract_native_libs function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def run_test(self, input_manifest, value): doc = minidom.parseString(input_manifest) manifest_fixer.add_extract_native_libs(doc, value) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -446,19 +464,19 @@ class AddExtractNativeLibsTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.extract_native_libs('true') output = self.run_test(manifest_input, True) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_set_false(self): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % self.extract_native_libs('false') output = self.run_test(manifest_input, False) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_match(self): manifest_input = self.manifest_tmpl % self.extract_native_libs('true') expected = manifest_input output = self.run_test(manifest_input, True) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_conflict(self): manifest_input = self.manifest_tmpl % self.extract_native_libs('true') Loading @@ -468,10 +486,13 @@ class AddExtractNativeLibsTest(unittest.TestCase): class AddNoCodeApplicationTest(unittest.TestCase): """Unit tests for set_has_code_to_false function.""" def assert_xml_equal(self, output, expected): self.assertEqual(ET.canonicalize(output), ET.canonicalize(expected)) def run_test(self, input_manifest): doc = minidom.parseString(input_manifest) manifest_fixer.set_has_code_to_false(doc) output = StringIO.StringIO() output = io.StringIO() manifest_fixer.write_xml(output, doc) return output.getvalue() Loading @@ -485,26 +506,26 @@ class AddNoCodeApplicationTest(unittest.TestCase): manifest_input = self.manifest_tmpl % '' expected = self.manifest_tmpl % ' <application android:hasCode="false"/>\n' output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_has_application_no_has_code(self): manifest_input = self.manifest_tmpl % ' <application/>\n' expected = self.manifest_tmpl % ' <application android:hasCode="false"/>\n' output = self.run_test(manifest_input) self.assertEqual(output, expected) self.assert_xml_equal(output, expected) def test_has_application_has_code_false(self): """ Do nothing if there's already an application elemeent. """ manifest_input = self.manifest_tmpl % ' <application android:hasCode="false"/>\n' output = self.run_test(manifest_input) self.assertEqual(output, manifest_input) self.assert_xml_equal(output, manifest_input) def test_has_application_has_code_true(self): """ Do nothing if there's already an application elemeent even if its hasCode attribute is true. """ manifest_input = self.manifest_tmpl % ' <application android:hasCode="true"/>\n' output = self.run_test(manifest_input) self.assertEqual(output, manifest_input) self.assert_xml_equal(output, manifest_input) if __name__ == '__main__': Loading