From 4c2f78bff4d11f0a7e86ac04f7013512e7620854 Mon Sep 17 00:00:00 2001 From: Paul Duffin Date: Wed, 16 Jun 2021 02:04:13 +0100 Subject: [PATCH] Make CheckHiddenAPIRuleInputs more reusable Adds a message parameter and allows leading spaces in the expected file string to allow them to be nicely indented. Bug: 177892522 Test: m nothing Merged-In: I33df26610738c48879fa0b8250dc377dd04bb07d Change-Id: I33df26610738c48879fa0b8250dc377dd04bb07d (cherry picked from commit 51d7da2c4e62eccc5f0fe11cfa8cdf1cf67aa7c7) --- apex/apex_test.go | 32 ++++++++++++++--------------- java/platform_bootclasspath_test.go | 11 +++++----- java/testing.go | 17 +++++++++++---- 3 files changed, 34 insertions(+), 26 deletions(-) diff --git a/apex/apex_test.go b/apex/apex_test.go index 11fed3626..ecc585ee4 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -4420,7 +4420,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { t.Helper() platformBootclasspath := ctx.ModuleForTests("platform-bootclasspath", "android_common") indexRule := platformBootclasspath.Rule("monolithic_hidden_API_index") - java.CheckHiddenAPIRuleInputs(t, expectedInputs, indexRule) + java.CheckHiddenAPIRuleInputs(t, "index", expectedInputs, indexRule) } fragment := java.ApexVariantReference{ @@ -4471,9 +4471,9 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { // Verify the correct module jars contribute to the hiddenapi index file. checkHiddenAPIIndexInputs(t, ctx, ` -.intermediates/libbar.stubs/android_common/combined/libbar.stubs.jar -.intermediates/libfoo/android_common_myapex/combined/libfoo.jar -`) + out/soong/.intermediates/libbar.stubs/android_common/combined/libbar.stubs.jar + out/soong/.intermediates/libfoo/android_common_myapex/combined/libfoo.jar + `) }) t.Run("apex_set only", func(t *testing.T) { @@ -4512,9 +4512,9 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { // Verify the correct module jars contribute to the hiddenapi index file. checkHiddenAPIIndexInputs(t, ctx, ` -.intermediates/libbar.stubs/android_common/combined/libbar.stubs.jar -.intermediates/libfoo/android_common_myapex/combined/libfoo.jar -`) + out/soong/.intermediates/libbar.stubs/android_common/combined/libbar.stubs.jar + out/soong/.intermediates/libfoo/android_common_myapex/combined/libfoo.jar + `) }) t.Run("prebuilt with source library preferred", func(t *testing.T) { @@ -4633,9 +4633,9 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { // Verify the correct module jars contribute to the hiddenapi index file. checkHiddenAPIIndexInputs(t, ctx, ` -.intermediates/prebuilt_libbar.stubs/android_common/combined/libbar.stubs.jar -.intermediates/prebuilt_libfoo/android_common_myapex/combined/libfoo.jar -`) + out/soong/.intermediates/prebuilt_libbar.stubs/android_common/combined/libbar.stubs.jar + out/soong/.intermediates/prebuilt_libfoo/android_common_myapex/combined/libfoo.jar + `) }) t.Run("prebuilt with source apex preferred", func(t *testing.T) { @@ -4707,9 +4707,9 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { // Verify the correct module jars contribute to the hiddenapi index file. checkHiddenAPIIndexInputs(t, ctx, ` -.intermediates/libbar/android_common_myapex/javac/libbar.jar -.intermediates/libfoo/android_common_apex10000/javac/libfoo.jar -`) + out/soong/.intermediates/libbar/android_common_myapex/javac/libbar.jar + out/soong/.intermediates/libfoo/android_common_apex10000/javac/libfoo.jar + `) }) t.Run("prebuilt preferred with source apex disabled", func(t *testing.T) { @@ -4783,9 +4783,9 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) { // Verify the correct module jars contribute to the hiddenapi index file. checkHiddenAPIIndexInputs(t, ctx, ` -.intermediates/prebuilt_libbar.stubs/android_common/combined/libbar.stubs.jar -.intermediates/prebuilt_libfoo/android_common_myapex/combined/libfoo.jar -`) + out/soong/.intermediates/prebuilt_libbar.stubs/android_common/combined/libbar.stubs.jar + out/soong/.intermediates/prebuilt_libfoo/android_common_myapex/combined/libfoo.jar + `) }) } diff --git a/java/platform_bootclasspath_test.go b/java/platform_bootclasspath_test.go index 0318a07d4..87a641118 100644 --- a/java/platform_bootclasspath_test.go +++ b/java/platform_bootclasspath_test.go @@ -319,10 +319,9 @@ func TestPlatformBootclasspath_HiddenAPIMonolithicFiles(t *testing.T) { // creates the index.csv file. platformBootclasspath := result.ModuleForTests("myplatform-bootclasspath", "android_common") indexRule := platformBootclasspath.Rule("monolithic_hidden_API_index") - CheckHiddenAPIRuleInputs(t, ` -.intermediates/bar/android_common/javac/bar.jar -.intermediates/foo-hiddenapi-annotations/android_common/javac/foo-hiddenapi-annotations.jar -.intermediates/foo/android_common/javac/foo.jar -`, - indexRule) + CheckHiddenAPIRuleInputs(t, "index", ` + out/soong/.intermediates/bar/android_common/javac/bar.jar + out/soong/.intermediates/foo-hiddenapi-annotations/android_common/javac/foo-hiddenapi-annotations.jar + out/soong/.intermediates/foo/android_common/javac/foo.jar + `, indexRule) } diff --git a/java/testing.go b/java/testing.go index 1fef337cc..7b452f762 100644 --- a/java/testing.go +++ b/java/testing.go @@ -17,6 +17,7 @@ package java import ( "fmt" "reflect" + "regexp" "sort" "strings" "testing" @@ -393,12 +394,20 @@ func CheckPlatformBootclasspathFragments(t *testing.T, result *android.TestResul android.AssertDeepEquals(t, fmt.Sprintf("%s fragments", "platform-bootclasspath"), expected, pairs) } -func CheckHiddenAPIRuleInputs(t *testing.T, expected string, hiddenAPIRule android.TestingBuildParams) { +func CheckHiddenAPIRuleInputs(t *testing.T, message string, expected string, hiddenAPIRule android.TestingBuildParams) { t.Helper() - actual := strings.TrimSpace(strings.Join(android.NormalizePathsForTesting(hiddenAPIRule.Implicits), "\n")) - expected = strings.TrimSpace(expected) + inputs := android.Paths{} + if hiddenAPIRule.Input != nil { + inputs = append(inputs, hiddenAPIRule.Input) + } + inputs = append(inputs, hiddenAPIRule.Inputs...) + inputs = append(inputs, hiddenAPIRule.Implicits...) + inputs = android.SortedUniquePaths(inputs) + actual := strings.TrimSpace(strings.Join(inputs.RelativeToTop().Strings(), "\n")) + re := regexp.MustCompile(`\n\s+`) + expected = strings.TrimSpace(re.ReplaceAllString(expected, "\n")) if actual != expected { - t.Errorf("Expected hiddenapi rule inputs:\n%s\nactual inputs:\n%s", expected, actual) + t.Errorf("Expected hiddenapi rule inputs - %s:\n%s\nactual inputs:\n%s", message, expected, actual) } }