diff --git a/tools/Android.bp b/tools/Android.bp index 3ce76f61e5..9cc65e0f03 100644 --- a/tools/Android.bp +++ b/tools/Android.bp @@ -79,6 +79,8 @@ python_test_host { ], data: [ "testdata/test-jarjar-excludes.txt", + // txt with Test classes to test they aren't included when added to jarjar excludes + "testdata/test-jarjar-excludes-testclass.txt", // two unsupportedappusage lists with different classes to test using multiple lists "testdata/test-unsupportedappusage.txt", "testdata/test-other-unsupportedappusage.txt", diff --git a/tools/gen_jarjar_test.py b/tools/gen_jarjar_test.py index f5bf49942b..12038e978b 100644 --- a/tools/gen_jarjar_test.py +++ b/tools/gen_jarjar_test.py @@ -84,6 +84,31 @@ class TestGenJarjar(unittest.TestCase): 'rule test.utils.TestUtilClass$TestInnerClassTest jarjar.prefix.@0\n', 'rule test.utils.TestUtilClass$TestInnerClassTest$* jarjar.prefix.@0\n'], lines) + def test_gen_rules_repeated_testclass_excluded(self): + args = gen_jarjar.parse_arguments([ + "jarjar-rules-generator-testjavalib.jar", + "--prefix", "jarjar.prefix", + "--output", "test-output-rules.txt", + "--apistubs", "framework-connectivity.stubs.module_lib.jar", + "--unsupportedapi", ":testdata/test-unsupportedappusage.txt", + "--excludes", "testdata/test-jarjar-excludes-testclass.txt", + ]) + gen_jarjar.make_jarjar_rules(args) + + with open(args.output) as out: + lines = out.readlines() + + self.maxDiff = None + self.assertListEqual([ + 'rule android.net.IpSecTransform jarjar.prefix.@0\n', + 'rule test.unsupportedappusage.OtherUnsupportedUsageClass jarjar.prefix.@0\n', + 'rule test.unsupportedappusage.OtherUnsupportedUsageClassTest jarjar.prefix.@0\n', + 'rule test.unsupportedappusage.OtherUnsupportedUsageClassTest$* jarjar.prefix.@0\n', + 'rule test.utils.TestUtilClass jarjar.prefix.@0\n', + 'rule test.utils.TestUtilClass$TestInnerClass jarjar.prefix.@0\n', + 'rule test.utils.TestUtilClass$TestInnerClassTest jarjar.prefix.@0\n', + 'rule test.utils.TestUtilClass$TestInnerClassTest$* jarjar.prefix.@0\n'], lines) + if __name__ == '__main__': # Need verbosity=2 for the test results parser to find results diff --git a/tools/testdata/test-jarjar-excludes-testclass.txt b/tools/testdata/test-jarjar-excludes-testclass.txt new file mode 100644 index 0000000000..f7cc2cb267 --- /dev/null +++ b/tools/testdata/test-jarjar-excludes-testclass.txt @@ -0,0 +1,7 @@ +# Test file for excluded classes +test\.jarj.rexcluded\.JarjarExcludedCla.s +test\.jarjarexcluded\.JarjarExcludedClass\$TestInnerCl.ss + +# Exclude actual test files +test\.utils\.TestUtilClassTest +android\.net\.IpSecTransformTest \ No newline at end of file