From 9918e1afd7ee027dde86c43ca4e14f4399dc758a Mon Sep 17 00:00:00 2001 From: Jiyong Park Date: Tue, 17 Mar 2020 19:16:40 +0900 Subject: track static deps when gatherint notices for apex This change fixes a bug that license info for statically linked libraries are absent in the merged notice for APEX. The problem was that we were iterating over the apexFiles list that represents actual files (not Soong modules) that are included in the APEX. The problem is now fixed by iterarting the all the modules that directly or indirectly contribute to the APEX using walkPayloadDeps() function. Bug: 149455933 Test: m Change-Id: I38655da62b590b669ab4649815b61a5a8e314154 --- apex/apex_test.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'apex/apex_test.go') diff --git a/apex/apex_test.go b/apex/apex_test.go index babc27b43..5468c77bf 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -168,6 +168,7 @@ func testApexContext(t *testing.T, bp string, handlers ...testCustomizer) (*andr "vendor/foo/devkeys/testkey.pem": nil, "NOTICE": nil, "custom_notice": nil, + "custom_notice_for_static_lib": nil, "testkey2.avbpubkey": nil, "testkey2.pem": nil, "myapex-arm64.apex": nil, @@ -372,6 +373,20 @@ func TestBasicApex(t *testing.T) { system_shared_libs: [], stl: "none", notice: "custom_notice", + static_libs: ["libstatic"], + // TODO: remove //apex_available:platform + apex_available: [ + "//apex_available:platform", + "myapex", + ], + } + + cc_library_static { + name: "libstatic", + srcs: ["mylib.cpp"], + system_shared_libs: [], + stl: "none", + notice: "custom_notice_for_static_lib", // TODO: remove //apex_available:platform apex_available: [ "//apex_available:platform", @@ -470,11 +485,12 @@ func TestBasicApex(t *testing.T) { mergeNoticesRule := ctx.ModuleForTests("myapex", "android_common_myapex_image").Rule("mergeNoticesRule") noticeInputs := mergeNoticesRule.Inputs.Strings() - if len(noticeInputs) != 2 { - t.Errorf("number of input notice files: expected = 2, actual = %q", len(noticeInputs)) + if len(noticeInputs) != 3 { + t.Errorf("number of input notice files: expected = 3, actual = %q", len(noticeInputs)) } ensureListContains(t, noticeInputs, "NOTICE") ensureListContains(t, noticeInputs, "custom_notice") + ensureListContains(t, noticeInputs, "custom_notice_for_static_lib") depsInfo := strings.Split(ctx.ModuleForTests("myapex", "android_common_myapex_image").Output("myapex-deps-info.txt").Args["content"], "\\n") ensureListContains(t, depsInfo, "myjar <- myapex") -- cgit v1.2.3-59-g8ed1b