diff options
| author | 2022-04-01 17:26:29 +0000 | |
|---|---|---|
| committer | 2022-04-01 17:26:29 +0000 | |
| commit | 67c0b63929304a4188b9c040d216bceac6881243 (patch) | |
| tree | c5cd0383da4bfcae2d95b20bdcb19a28d30688cb /java/app_test.go | |
| parent | c64d309ce2a07a52b82d21ce6c020b9f266669bb (diff) | |
| parent | 6c698e406dad7ca9d62208fbdea2ad222e263432 (diff) | |
Revert "Build notice files from license metadata." am: 77807b3c27 am: 72f9cdb599 am: 6c698e406d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2052565
Change-Id: I7e4f410833a4b8349e476d6fca4b2161c8f254f6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'java/app_test.go')
| -rw-r--r-- | java/app_test.go | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/java/app_test.go b/java/app_test.go index 48eeedeca..73cf09227 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -27,6 +27,7 @@ import ( "android/soong/android" "android/soong/cc" "android/soong/dexpreopt" + "android/soong/genrule" ) // testApp runs tests using the prepareForJavaTest @@ -2782,6 +2783,116 @@ func TestCodelessApp(t *testing.T) { } } +func TestEmbedNotice(t *testing.T) { + result := android.GroupFixturePreparers( + PrepareForTestWithJavaDefaultModules, + cc.PrepareForTestWithCcDefaultModules, + genrule.PrepareForTestWithGenRuleBuildComponents, + android.MockFS{ + "APP_NOTICE": nil, + "GENRULE_NOTICE": nil, + "LIB_NOTICE": nil, + "TOOL_NOTICE": nil, + }.AddToFixture(), + ).RunTestWithBp(t, ` + android_app { + name: "foo", + srcs: ["a.java"], + static_libs: ["javalib"], + jni_libs: ["libjni"], + notice: "APP_NOTICE", + embed_notices: true, + sdk_version: "current", + } + + // No embed_notice flag + android_app { + name: "bar", + srcs: ["a.java"], + jni_libs: ["libjni"], + notice: "APP_NOTICE", + sdk_version: "current", + } + + // No NOTICE files + android_app { + name: "baz", + srcs: ["a.java"], + embed_notices: true, + sdk_version: "current", + } + + cc_library { + name: "libjni", + system_shared_libs: [], + stl: "none", + notice: "LIB_NOTICE", + sdk_version: "current", + } + + java_library { + name: "javalib", + srcs: [ + ":gen", + ], + sdk_version: "current", + } + + genrule { + name: "gen", + tools: ["gentool"], + out: ["gen.java"], + notice: "GENRULE_NOTICE", + } + + java_binary_host { + name: "gentool", + srcs: ["b.java"], + notice: "TOOL_NOTICE", + } + `) + + // foo has NOTICE files to process, and embed_notices is true. + foo := result.ModuleForTests("foo", "android_common") + // verify merge notices rule. + mergeNotices := foo.Rule("mergeNoticesRule") + noticeInputs := mergeNotices.Inputs.Strings() + // TOOL_NOTICE should be excluded as it's a host module. + if len(mergeNotices.Inputs) != 3 { + t.Errorf("number of input notice files: expected = 3, actual = %q", noticeInputs) + } + if !inList("APP_NOTICE", noticeInputs) { + t.Errorf("APP_NOTICE is missing from notice files, %q", noticeInputs) + } + if !inList("LIB_NOTICE", noticeInputs) { + t.Errorf("LIB_NOTICE is missing from notice files, %q", noticeInputs) + } + if !inList("GENRULE_NOTICE", noticeInputs) { + t.Errorf("GENRULE_NOTICE is missing from notice files, %q", noticeInputs) + } + // aapt2 flags should include -A <NOTICE dir> so that its contents are put in the APK's /assets. + res := foo.Output("package-res.apk") + aapt2Flags := res.Args["flags"] + e := "-A out/soong/.intermediates/foo/android_common/NOTICE" + android.AssertStringDoesContain(t, "expected.apkPath", aapt2Flags, e) + + // bar has NOTICE files to process, but embed_notices is not set. + bar := result.ModuleForTests("bar", "android_common") + res = bar.Output("package-res.apk") + aapt2Flags = res.Args["flags"] + e = "-A out/soong/.intermediates/bar/android_common/NOTICE" + android.AssertStringDoesNotContain(t, "bar shouldn't have the asset dir flag for NOTICE", aapt2Flags, e) + + // baz's embed_notice is true, but it doesn't have any NOTICE files. + baz := result.ModuleForTests("baz", "android_common") + res = baz.Output("package-res.apk") + aapt2Flags = res.Args["flags"] + e = "-A out/soong/.intermediates/baz/android_common/NOTICE" + if strings.Contains(aapt2Flags, e) { + t.Errorf("baz shouldn't have the asset dir flag for NOTICE: %q", e) + } +} + func TestUncompressDex(t *testing.T) { testCases := []struct { name string |