From 35f79c37aad8f5336da085a9a9c0f98b70892203 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 27 Jan 2022 15:18:52 -0800 Subject: [PATCH 1/5] Run gofmt on compliance Test: builds Change-Id: I404b138faac0db9a92201be6163b19d9e6bff810 --- tools/compliance/cmd/bom_test.go | 138 +++++++------- tools/compliance/cmd/checkshare.go | 5 +- tools/compliance/cmd/dumpgraph.go | 2 +- tools/compliance/cmd/dumpresolutions.go | 2 +- tools/compliance/cmd/dumpresolutions_test.go | 32 ++-- tools/compliance/cmd/listshare.go | 2 +- tools/compliance/cmd/shippedlibs.go | 8 +- tools/compliance/cmd/shippedlibs_test.go | 150 +++++++-------- tools/compliance/condition.go | 18 +- tools/compliance/conditionset_test.go | 180 +++++++++--------- tools/compliance/graph.go | 6 +- tools/compliance/policy/policy.go | 39 ++-- .../policy/shareprivacyconflicts_test.go | 2 +- tools/compliance/policy/shipped_test.go | 32 ++-- tools/compliance/policy/walk.go | 2 +- tools/compliance/readgraph.go | 2 +- tools/compliance/resolution.go | 2 +- tools/compliance/resolutionset.go | 2 - tools/compliance/test_util.go | 61 +++--- 19 files changed, 339 insertions(+), 346 deletions(-) diff --git a/tools/compliance/cmd/bom_test.go b/tools/compliance/cmd/bom_test.go index b0d61e1bf9..9c126710ac 100644 --- a/tools/compliance/cmd/bom_test.go +++ b/tools/compliance/cmd/bom_test.go @@ -31,9 +31,9 @@ func Test(t *testing.T) { expectedOut []string }{ { - condition: "firstparty", - name: "apex", - roots: []string{"highest.apex.meta_lic"}, + condition: "firstparty", + name: "apex", + roots: []string{"highest.apex.meta_lic"}, stripPrefix: "out/target/product/fictional", expectedOut: []string{ "/system/apex/highest.apex", @@ -44,9 +44,9 @@ func Test(t *testing.T) { }, }, { - condition: "firstparty", - name: "container", - roots: []string{"container.zip.meta_lic"}, + condition: "firstparty", + name: "container", + roots: []string{"container.zip.meta_lic"}, stripPrefix: "out/target/product/fictional/data/", expectedOut: []string{ "container.zip", @@ -57,23 +57,23 @@ func Test(t *testing.T) { }, }, { - condition: "firstparty", - name: "application", - roots: []string{"application.meta_lic"}, + condition: "firstparty", + name: "application", + roots: []string{"application.meta_lic"}, stripPrefix: "out/target/product/fictional/bin/", expectedOut: []string{"application"}, }, { - condition: "firstparty", - name: "binary", - roots: []string{"bin/bin1.meta_lic"}, + condition: "firstparty", + name: "binary", + roots: []string{"bin/bin1.meta_lic"}, stripPrefix: "out/target/product/fictional/system/", expectedOut: []string{"bin/bin1"}, }, { - condition: "firstparty", - name: "library", - roots: []string{"lib/libd.so.meta_lic"}, + condition: "firstparty", + name: "library", + roots: []string{"lib/libd.so.meta_lic"}, stripPrefix: "out/target/product/fictional/system/", expectedOut: []string{"lib/libd.so"}, }, @@ -102,27 +102,27 @@ func Test(t *testing.T) { }, }, { - condition: "notice", - name: "application", - roots: []string{"application.meta_lic"}, + condition: "notice", + name: "application", + roots: []string{"application.meta_lic"}, expectedOut: []string{"out/target/product/fictional/bin/application"}, }, { - condition: "notice", - name: "binary", - roots: []string{"bin/bin1.meta_lic"}, + condition: "notice", + name: "binary", + roots: []string{"bin/bin1.meta_lic"}, expectedOut: []string{"out/target/product/fictional/system/bin/bin1"}, }, { - condition: "notice", - name: "library", - roots: []string{"lib/libd.so.meta_lic"}, + condition: "notice", + name: "library", + roots: []string{"lib/libd.so.meta_lic"}, expectedOut: []string{"out/target/product/fictional/system/lib/libd.so"}, }, { - condition: "reciprocal", - name: "apex", - roots: []string{"highest.apex.meta_lic"}, + condition: "reciprocal", + name: "apex", + roots: []string{"highest.apex.meta_lic"}, stripPrefix: "out/target/product/fictional/system/apex/", expectedOut: []string{ "highest.apex", @@ -133,9 +133,9 @@ func Test(t *testing.T) { }, }, { - condition: "reciprocal", - name: "container", - roots: []string{"container.zip.meta_lic"}, + condition: "reciprocal", + name: "container", + roots: []string{"container.zip.meta_lic"}, stripPrefix: "out/target/product/fictional/data/", expectedOut: []string{ "container.zip", @@ -146,30 +146,30 @@ func Test(t *testing.T) { }, }, { - condition: "reciprocal", - name: "application", - roots: []string{"application.meta_lic"}, + condition: "reciprocal", + name: "application", + roots: []string{"application.meta_lic"}, stripPrefix: "out/target/product/fictional/bin/", expectedOut: []string{"application"}, }, { - condition: "reciprocal", - name: "binary", - roots: []string{"bin/bin1.meta_lic"}, + condition: "reciprocal", + name: "binary", + roots: []string{"bin/bin1.meta_lic"}, stripPrefix: "out/target/product/fictional/system/", expectedOut: []string{"bin/bin1"}, }, { - condition: "reciprocal", - name: "library", - roots: []string{"lib/libd.so.meta_lic"}, + condition: "reciprocal", + name: "library", + roots: []string{"lib/libd.so.meta_lic"}, stripPrefix: "out/target/product/fictional/system/", expectedOut: []string{"lib/libd.so"}, }, { - condition: "restricted", - name: "apex", - roots: []string{"highest.apex.meta_lic"}, + condition: "restricted", + name: "apex", + roots: []string{"highest.apex.meta_lic"}, stripPrefix: "out/target/product/fictional/system/apex/", expectedOut: []string{ "highest.apex", @@ -180,9 +180,9 @@ func Test(t *testing.T) { }, }, { - condition: "restricted", - name: "container", - roots: []string{"container.zip.meta_lic"}, + condition: "restricted", + name: "container", + roots: []string{"container.zip.meta_lic"}, stripPrefix: "out/target/product/fictional/data/", expectedOut: []string{ "container.zip", @@ -193,30 +193,30 @@ func Test(t *testing.T) { }, }, { - condition: "restricted", - name: "application", - roots: []string{"application.meta_lic"}, + condition: "restricted", + name: "application", + roots: []string{"application.meta_lic"}, stripPrefix: "out/target/product/fictional/bin/", expectedOut: []string{"application"}, }, { - condition: "restricted", - name: "binary", - roots: []string{"bin/bin1.meta_lic"}, + condition: "restricted", + name: "binary", + roots: []string{"bin/bin1.meta_lic"}, stripPrefix: "out/target/product/fictional/system/", expectedOut: []string{"bin/bin1"}, }, { - condition: "restricted", - name: "library", - roots: []string{"lib/libd.so.meta_lic"}, + condition: "restricted", + name: "library", + roots: []string{"lib/libd.so.meta_lic"}, stripPrefix: "out/target/product/fictional/system/", expectedOut: []string{"lib/libd.so"}, }, { - condition: "proprietary", - name: "apex", - roots: []string{"highest.apex.meta_lic"}, + condition: "proprietary", + name: "apex", + roots: []string{"highest.apex.meta_lic"}, stripPrefix: "out/target/product/fictional/system/apex/", expectedOut: []string{ "highest.apex", @@ -227,9 +227,9 @@ func Test(t *testing.T) { }, }, { - condition: "proprietary", - name: "container", - roots: []string{"container.zip.meta_lic"}, + condition: "proprietary", + name: "container", + roots: []string{"container.zip.meta_lic"}, stripPrefix: "out/target/product/fictional/data/", expectedOut: []string{ "container.zip", @@ -240,23 +240,23 @@ func Test(t *testing.T) { }, }, { - condition: "proprietary", - name: "application", - roots: []string{"application.meta_lic"}, + condition: "proprietary", + name: "application", + roots: []string{"application.meta_lic"}, stripPrefix: "out/target/product/fictional/bin/", expectedOut: []string{"application"}, }, { - condition: "proprietary", - name: "binary", - roots: []string{"bin/bin1.meta_lic"}, + condition: "proprietary", + name: "binary", + roots: []string{"bin/bin1.meta_lic"}, stripPrefix: "out/target/product/fictional/system/", expectedOut: []string{"bin/bin1"}, }, { - condition: "proprietary", - name: "library", - roots: []string{"lib/libd.so.meta_lic"}, + condition: "proprietary", + name: "library", + roots: []string{"lib/libd.so.meta_lic"}, stripPrefix: "out/target/product/fictional/system/", expectedOut: []string{"lib/libd.so"}, }, diff --git a/tools/compliance/cmd/checkshare.go b/tools/compliance/cmd/checkshare.go index 5114a28d6b..e2735c3ba8 100644 --- a/tools/compliance/cmd/checkshare.go +++ b/tools/compliance/cmd/checkshare.go @@ -46,12 +46,11 @@ outputs "FAIL" to stdout and exits with status 1. } var ( - failConflicts = fmt.Errorf("conflicts") + failConflicts = fmt.Errorf("conflicts") failNoneRequested = fmt.Errorf("\nNo metadata files requested") - failNoLicenses = fmt.Errorf("No licenses") + failNoLicenses = fmt.Errorf("No licenses") ) - // byError orders conflicts by error string type byError []compliance.SourceSharePrivacyConflict diff --git a/tools/compliance/cmd/dumpgraph.go b/tools/compliance/cmd/dumpgraph.go index 1ee63b238c..76fdff3f0c 100644 --- a/tools/compliance/cmd/dumpgraph.go +++ b/tools/compliance/cmd/dumpgraph.go @@ -31,7 +31,7 @@ var ( stripPrefix = flag.String("strip_prefix", "", "Prefix to remove from paths. i.e. path to root") failNoneRequested = fmt.Errorf("\nNo license metadata files requested") - failNoLicenses = fmt.Errorf("No licenses found") + failNoLicenses = fmt.Errorf("No licenses found") ) type context struct { diff --git a/tools/compliance/cmd/dumpresolutions.go b/tools/compliance/cmd/dumpresolutions.go index 318cd918e6..fc8c47c534 100644 --- a/tools/compliance/cmd/dumpresolutions.go +++ b/tools/compliance/cmd/dumpresolutions.go @@ -32,7 +32,7 @@ var ( stripPrefix = flag.String("strip_prefix", "", "Prefix to remove from paths. i.e. path to root") failNoneRequested = fmt.Errorf("\nNo license metadata files requested") - failNoLicenses = fmt.Errorf("No licenses found") + failNoLicenses = fmt.Errorf("No licenses found") ) type context struct { diff --git a/tools/compliance/cmd/dumpresolutions_test.go b/tools/compliance/cmd/dumpresolutions_test.go index d9046717b2..a3a298e988 100644 --- a/tools/compliance/cmd/dumpresolutions_test.go +++ b/tools/compliance/cmd/dumpresolutions_test.go @@ -97,7 +97,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_share", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: compliance.ImpliesShared.AsList(), + conditions: compliance.ImpliesShared.AsList(), stripPrefix: "testdata/firstparty/", }, expectedOut: []string{}, @@ -107,7 +107,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_private", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: compliance.ImpliesPrivate.AsList(), + conditions: compliance.ImpliesPrivate.AsList(), stripPrefix: "testdata/firstparty/", }, expectedOut: []string{}, @@ -117,7 +117,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_share_private", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: append(compliance.ImpliesPrivate.AsList(),compliance.ImpliesShared.AsList()...), + conditions: append(compliance.ImpliesPrivate.AsList(), compliance.ImpliesShared.AsList()...), stripPrefix: "testdata/firstparty/", }, expectedOut: []string{}, @@ -255,7 +255,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_share", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: compliance.ImpliesShared.AsList(), + conditions: compliance.ImpliesShared.AsList(), stripPrefix: "testdata/notice/", }, expectedOut: []string{}, @@ -265,7 +265,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_private", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: compliance.ImpliesPrivate.AsList(), + conditions: compliance.ImpliesPrivate.AsList(), stripPrefix: "testdata/notice/", }, expectedOut: []string{}, @@ -275,7 +275,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_share_private", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: append(compliance.ImpliesShared.AsList(),compliance.ImpliesPrivate.AsList()...), + conditions: append(compliance.ImpliesShared.AsList(), compliance.ImpliesPrivate.AsList()...), stripPrefix: "testdata/notice/", }, expectedOut: []string{}, @@ -408,7 +408,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_share", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: compliance.ImpliesShared.AsList(), + conditions: compliance.ImpliesShared.AsList(), stripPrefix: "testdata/reciprocal/", }, expectedOut: []string{ @@ -424,7 +424,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_private", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: compliance.ImpliesPrivate.AsList(), + conditions: compliance.ImpliesPrivate.AsList(), stripPrefix: "testdata/reciprocal/", }, expectedOut: []string{}, @@ -434,7 +434,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_share_private", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: append(compliance.ImpliesShared.AsList(),compliance.ImpliesPrivate.AsList()...), + conditions: append(compliance.ImpliesShared.AsList(), compliance.ImpliesPrivate.AsList()...), stripPrefix: "testdata/reciprocal/", }, expectedOut: []string{ @@ -573,7 +573,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_share", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: compliance.ImpliesShared.AsList(), + conditions: compliance.ImpliesShared.AsList(), stripPrefix: "testdata/restricted/", }, expectedOut: []string{ @@ -597,7 +597,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_private", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: compliance.ImpliesPrivate.AsList(), + conditions: compliance.ImpliesPrivate.AsList(), stripPrefix: "testdata/restricted/", }, expectedOut: []string{}, @@ -607,7 +607,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_share_private", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: append(compliance.ImpliesShared.AsList(),compliance.ImpliesPrivate.AsList()...), + conditions: append(compliance.ImpliesShared.AsList(), compliance.ImpliesPrivate.AsList()...), stripPrefix: "testdata/restricted/", }, expectedOut: []string{ @@ -754,7 +754,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_share", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: compliance.ImpliesShared.AsList(), + conditions: compliance.ImpliesShared.AsList(), stripPrefix: "testdata/proprietary/", }, expectedOut: []string{ @@ -771,7 +771,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_private", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: compliance.ImpliesPrivate.AsList(), + conditions: compliance.ImpliesPrivate.AsList(), stripPrefix: "testdata/proprietary/", }, expectedOut: []string{ @@ -789,7 +789,7 @@ func Test_plaintext(t *testing.T) { name: "apex_trimmed_share_private", roots: []string{"highest.apex.meta_lic"}, ctx: context{ - conditions: append(compliance.ImpliesShared.AsList(),compliance.ImpliesPrivate.AsList()...), + conditions: append(compliance.ImpliesShared.AsList(), compliance.ImpliesPrivate.AsList()...), stripPrefix: "testdata/proprietary/", }, expectedOut: []string{ @@ -930,7 +930,7 @@ type targetMatcher struct { } // newTestCondition constructs a test license condition in the license graph. -func newTestCondition(lg *compliance.LicenseGraph, conditionName... string) compliance.LicenseConditionSet { +func newTestCondition(lg *compliance.LicenseGraph, conditionName ...string) compliance.LicenseConditionSet { cs := compliance.NewLicenseConditionSet() for _, name := range conditionName { cs = cs.Plus(compliance.RecognizedConditionNames[name]) diff --git a/tools/compliance/cmd/listshare.go b/tools/compliance/cmd/listshare.go index 5c58dc4052..ae9382ef6d 100644 --- a/tools/compliance/cmd/listshare.go +++ b/tools/compliance/cmd/listshare.go @@ -41,7 +41,7 @@ restricted (e.g. GPL) or reciprocal (e.g. MPL). var ( failNoneRequested = fmt.Errorf("\nNo license metadata files requested") - failNoLicenses = fmt.Errorf("No licenses found") + failNoLicenses = fmt.Errorf("No licenses found") ) func main() { diff --git a/tools/compliance/cmd/shippedlibs.go b/tools/compliance/cmd/shippedlibs.go index f25d7295b1..290ced65c2 100644 --- a/tools/compliance/cmd/shippedlibs.go +++ b/tools/compliance/cmd/shippedlibs.go @@ -26,16 +26,16 @@ import ( ) var ( - outputFile = flag.String("o", "-", "Where to write the library list. (default stdout)") + outputFile = flag.String("o", "-", "Where to write the library list. (default stdout)") failNoneRequested = fmt.Errorf("\nNo license metadata files requested") failNoLicenses = fmt.Errorf("No licenses found") ) type context struct { - stdout io.Writer - stderr io.Writer - rootFS fs.FS + stdout io.Writer + stderr io.Writer + rootFS fs.FS } func init() { diff --git a/tools/compliance/cmd/shippedlibs_test.go b/tools/compliance/cmd/shippedlibs_test.go index 69ec8176f2..4b2e4ee18f 100644 --- a/tools/compliance/cmd/shippedlibs_test.go +++ b/tools/compliance/cmd/shippedlibs_test.go @@ -30,153 +30,153 @@ func Test(t *testing.T) { expectedOut []string }{ { - condition: "firstparty", - name: "apex", - roots: []string{"highest.apex.meta_lic"}, + condition: "firstparty", + name: "apex", + roots: []string{"highest.apex.meta_lic"}, expectedOut: []string{"Android"}, }, { - condition: "firstparty", - name: "container", - roots: []string{"container.zip.meta_lic"}, + condition: "firstparty", + name: "container", + roots: []string{"container.zip.meta_lic"}, expectedOut: []string{"Android"}, }, { - condition: "firstparty", - name: "application", - roots: []string{"application.meta_lic"}, + condition: "firstparty", + name: "application", + roots: []string{"application.meta_lic"}, expectedOut: []string{"Android"}, }, { - condition: "firstparty", - name: "binary", - roots: []string{"bin/bin1.meta_lic"}, + condition: "firstparty", + name: "binary", + roots: []string{"bin/bin1.meta_lic"}, expectedOut: []string{"Android"}, }, { - condition: "firstparty", - name: "library", - roots: []string{"lib/libd.so.meta_lic"}, + condition: "firstparty", + name: "library", + roots: []string{"lib/libd.so.meta_lic"}, expectedOut: []string{"Android"}, }, { - condition: "notice", - name: "apex", - roots: []string{"highest.apex.meta_lic"}, + condition: "notice", + name: "apex", + roots: []string{"highest.apex.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "notice", - name: "container", - roots: []string{"container.zip.meta_lic"}, + condition: "notice", + name: "container", + roots: []string{"container.zip.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "notice", - name: "application", - roots: []string{"application.meta_lic"}, + condition: "notice", + name: "application", + roots: []string{"application.meta_lic"}, expectedOut: []string{"Android", "Device"}, }, { - condition: "notice", - name: "binary", - roots: []string{"bin/bin1.meta_lic"}, + condition: "notice", + name: "binary", + roots: []string{"bin/bin1.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "notice", - name: "library", - roots: []string{"lib/libd.so.meta_lic"}, + condition: "notice", + name: "library", + roots: []string{"lib/libd.so.meta_lic"}, expectedOut: []string{"External"}, }, { - condition: "reciprocal", - name: "apex", - roots: []string{"highest.apex.meta_lic"}, + condition: "reciprocal", + name: "apex", + roots: []string{"highest.apex.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "reciprocal", - name: "container", - roots: []string{"container.zip.meta_lic"}, + condition: "reciprocal", + name: "container", + roots: []string{"container.zip.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "reciprocal", - name: "application", - roots: []string{"application.meta_lic"}, + condition: "reciprocal", + name: "application", + roots: []string{"application.meta_lic"}, expectedOut: []string{"Android", "Device"}, }, { - condition: "reciprocal", - name: "binary", - roots: []string{"bin/bin1.meta_lic"}, + condition: "reciprocal", + name: "binary", + roots: []string{"bin/bin1.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "reciprocal", - name: "library", - roots: []string{"lib/libd.so.meta_lic"}, + condition: "reciprocal", + name: "library", + roots: []string{"lib/libd.so.meta_lic"}, expectedOut: []string{"External"}, }, { - condition: "restricted", - name: "apex", - roots: []string{"highest.apex.meta_lic"}, + condition: "restricted", + name: "apex", + roots: []string{"highest.apex.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "restricted", - name: "container", - roots: []string{"container.zip.meta_lic"}, + condition: "restricted", + name: "container", + roots: []string{"container.zip.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "restricted", - name: "application", - roots: []string{"application.meta_lic"}, + condition: "restricted", + name: "application", + roots: []string{"application.meta_lic"}, expectedOut: []string{"Android", "Device"}, }, { - condition: "restricted", - name: "binary", - roots: []string{"bin/bin1.meta_lic"}, + condition: "restricted", + name: "binary", + roots: []string{"bin/bin1.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "restricted", - name: "library", - roots: []string{"lib/libd.so.meta_lic"}, + condition: "restricted", + name: "library", + roots: []string{"lib/libd.so.meta_lic"}, expectedOut: []string{"External"}, }, { - condition: "proprietary", - name: "apex", - roots: []string{"highest.apex.meta_lic"}, + condition: "proprietary", + name: "apex", + roots: []string{"highest.apex.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "proprietary", - name: "container", - roots: []string{"container.zip.meta_lic"}, + condition: "proprietary", + name: "container", + roots: []string{"container.zip.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "proprietary", - name: "application", - roots: []string{"application.meta_lic"}, + condition: "proprietary", + name: "application", + roots: []string{"application.meta_lic"}, expectedOut: []string{"Android", "Device"}, }, { - condition: "proprietary", - name: "binary", - roots: []string{"bin/bin1.meta_lic"}, + condition: "proprietary", + name: "binary", + roots: []string{"bin/bin1.meta_lic"}, expectedOut: []string{"Android", "Device", "External"}, }, { - condition: "proprietary", - name: "library", - roots: []string{"lib/libd.so.meta_lic"}, + condition: "proprietary", + name: "library", + roots: []string{"lib/libd.so.meta_lic"}, expectedOut: []string{"External"}, }, } diff --git a/tools/compliance/condition.go b/tools/compliance/condition.go index 26b91cab2e..cfe6f8247e 100644 --- a/tools/compliance/condition.go +++ b/tools/compliance/condition.go @@ -61,16 +61,16 @@ const ( var ( // RecognizedConditionNames maps condition strings to LicenseCondition. RecognizedConditionNames = map[string]LicenseCondition{ - "unencumbered": UnencumberedCondition, - "permissive": PermissiveCondition, - "notice": NoticeCondition, - "reciprocal": ReciprocalCondition, - "restricted": RestrictedCondition, + "unencumbered": UnencumberedCondition, + "permissive": PermissiveCondition, + "notice": NoticeCondition, + "reciprocal": ReciprocalCondition, + "restricted": RestrictedCondition, "restricted_with_classpath_exception": RestrictedClasspathExceptionCondition, - "restricted_allows_dynamic_linking": WeaklyRestrictedCondition, - "proprietary": ProprietaryCondition, - "by_exception_only": ByExceptionOnlyCondition, - "not_allowed": NotAllowedCondition, + "restricted_allows_dynamic_linking": WeaklyRestrictedCondition, + "proprietary": ProprietaryCondition, + "by_exception_only": ByExceptionOnlyCondition, + "not_allowed": NotAllowedCondition, } ) diff --git a/tools/compliance/conditionset_test.go b/tools/compliance/conditionset_test.go index c7306e7c14..1d80676354 100644 --- a/tools/compliance/conditionset_test.go +++ b/tools/compliance/conditionset_test.go @@ -33,82 +33,82 @@ func TestConditionSet(t *testing.T) { conditions: []string{}, plus: &[]string{}, matchingAny: map[string][]string{ - "notice": []string{}, - "restricted": []string{}, + "notice": []string{}, + "restricted": []string{}, "restricted|reciprocal": []string{}, }, - expected: []string{}, + expected: []string{}, }, { name: "emptyminusnothing", conditions: []string{}, minus: &[]string{}, matchingAny: map[string][]string{ - "notice": []string{}, - "restricted": []string{}, + "notice": []string{}, + "restricted": []string{}, "restricted|reciprocal": []string{}, }, - expected: []string{}, + expected: []string{}, }, { name: "emptyminusnotice", conditions: []string{}, minus: &[]string{"notice"}, matchingAny: map[string][]string{ - "notice": []string{}, - "restricted": []string{}, + "notice": []string{}, + "restricted": []string{}, "restricted|reciprocal": []string{}, }, - expected: []string{}, + expected: []string{}, }, { - name: "noticeonly", + name: "noticeonly", conditions: []string{"notice"}, matchingAny: map[string][]string{ - "notice": []string{"notice"}, - "notice|proprietary": []string{"notice"}, - "restricted": []string{}, + "notice": []string{"notice"}, + "notice|proprietary": []string{"notice"}, + "restricted": []string{}, }, expected: []string{"notice"}, }, { - name: "allnoticeonly", + name: "allnoticeonly", conditions: []string{"notice"}, - plus: &[]string{"notice"}, + plus: &[]string{"notice"}, matchingAny: map[string][]string{ - "notice": []string{"notice"}, - "notice|proprietary": []string{"notice"}, - "restricted": []string{}, + "notice": []string{"notice"}, + "notice|proprietary": []string{"notice"}, + "restricted": []string{}, }, expected: []string{"notice"}, }, { - name: "emptyplusnotice", + name: "emptyplusnotice", conditions: []string{}, - plus: &[]string{"notice"}, + plus: &[]string{"notice"}, matchingAny: map[string][]string{ - "notice": []string{"notice"}, - "notice|proprietary": []string{"notice"}, - "restricted": []string{}, + "notice": []string{"notice"}, + "notice|proprietary": []string{"notice"}, + "restricted": []string{}, }, expected: []string{"notice"}, }, { - name: "everything", + name: "everything", conditions: []string{"unencumbered", "permissive", "notice", "reciprocal", "restricted", "proprietary"}, - plus: &[]string{"restricted_with_classpath_exception", "restricted_allows_dynamic_linking", "by_exception_only", "not_allowed"}, + plus: &[]string{"restricted_with_classpath_exception", "restricted_allows_dynamic_linking", "by_exception_only", "not_allowed"}, matchingAny: map[string][]string{ - "unencumbered": []string{"unencumbered"}, - "permissive": []string{"permissive"}, - "notice": []string{"notice"}, - "reciprocal": []string{"reciprocal"}, - "restricted": []string{"restricted"}, - "restricted_with_classpath_exception": []string{"restricted_with_classpath_exception"}, - "restricted_allows_dynamic_linking": []string{"restricted_allows_dynamic_linking"}, - "proprietary": []string{"proprietary"}, - "by_exception_only": []string{"by_exception_only"}, - "not_allowed": []string{"not_allowed"}, - "notice|proprietary": []string{"notice", "proprietary"}, + "unencumbered": []string{"unencumbered"}, + "permissive": []string{"permissive"}, + "notice": []string{"notice"}, + "reciprocal": []string{"reciprocal"}, + "restricted": []string{"restricted"}, + "restricted_with_classpath_exception": []string{"restricted_with_classpath_exception"}, + "restricted_allows_dynamic_linking": []string{"restricted_allows_dynamic_linking"}, + "proprietary": []string{"proprietary"}, + "by_exception_only": []string{"by_exception_only"}, + "not_allowed": []string{"not_allowed"}, + "notice|proprietary": []string{"notice", "proprietary"}, }, expected: []string{ "unencumbered", @@ -137,13 +137,13 @@ func TestConditionSet(t *testing.T) { "by_exception_only", "not_allowed", }, - plus: &[]string{}, + plus: &[]string{}, minus: &[]string{}, matchingAny: map[string][]string{ "unencumbered|permissive|notice": []string{"unencumbered", "permissive", "notice"}, - "restricted|reciprocal": []string{"reciprocal", "restricted"}, - "proprietary|by_exception_only": []string{"proprietary", "by_exception_only"}, - "not_allowed": []string{"not_allowed"}, + "restricted|reciprocal": []string{"reciprocal", "restricted"}, + "proprietary|by_exception_only": []string{"proprietary", "by_exception_only"}, + "not_allowed": []string{"not_allowed"}, }, expected: []string{ "unencumbered", @@ -159,21 +159,21 @@ func TestConditionSet(t *testing.T) { }, }, { - name: "allbutone", + name: "allbutone", conditions: []string{"unencumbered", "permissive", "notice", "reciprocal", "restricted", "proprietary"}, - plus: &[]string{"restricted_allows_dynamic_linking", "by_exception_only", "not_allowed"}, + plus: &[]string{"restricted_allows_dynamic_linking", "by_exception_only", "not_allowed"}, matchingAny: map[string][]string{ - "unencumbered": []string{"unencumbered"}, - "permissive": []string{"permissive"}, - "notice": []string{"notice"}, - "reciprocal": []string{"reciprocal"}, - "restricted": []string{"restricted"}, - "restricted_with_classpath_exception": []string{}, - "restricted_allows_dynamic_linking": []string{"restricted_allows_dynamic_linking"}, - "proprietary": []string{"proprietary"}, - "by_exception_only": []string{"by_exception_only"}, - "not_allowed": []string{"not_allowed"}, - "notice|proprietary": []string{"notice", "proprietary"}, + "unencumbered": []string{"unencumbered"}, + "permissive": []string{"permissive"}, + "notice": []string{"notice"}, + "reciprocal": []string{"reciprocal"}, + "restricted": []string{"restricted"}, + "restricted_with_classpath_exception": []string{}, + "restricted_allows_dynamic_linking": []string{"restricted_allows_dynamic_linking"}, + "proprietary": []string{"proprietary"}, + "by_exception_only": []string{"by_exception_only"}, + "not_allowed": []string{"not_allowed"}, + "notice|proprietary": []string{"notice", "proprietary"}, }, expected: []string{ "unencumbered", @@ -203,17 +203,17 @@ func TestConditionSet(t *testing.T) { }, minus: &[]string{"restricted_allows_dynamic_linking"}, matchingAny: map[string][]string{ - "unencumbered": []string{"unencumbered"}, - "permissive": []string{"permissive"}, - "notice": []string{"notice"}, - "reciprocal": []string{"reciprocal"}, - "restricted": []string{"restricted"}, - "restricted_with_classpath_exception": []string{"restricted_with_classpath_exception"}, - "restricted_allows_dynamic_linking": []string{}, - "proprietary": []string{"proprietary"}, - "by_exception_only": []string{"by_exception_only"}, - "not_allowed": []string{"not_allowed"}, - "restricted|proprietary": []string{"restricted", "proprietary"}, + "unencumbered": []string{"unencumbered"}, + "permissive": []string{"permissive"}, + "notice": []string{"notice"}, + "reciprocal": []string{"reciprocal"}, + "restricted": []string{"restricted"}, + "restricted_with_classpath_exception": []string{"restricted_with_classpath_exception"}, + "restricted_allows_dynamic_linking": []string{}, + "proprietary": []string{"proprietary"}, + "by_exception_only": []string{"by_exception_only"}, + "not_allowed": []string{"not_allowed"}, + "restricted|proprietary": []string{"restricted", "proprietary"}, }, expected: []string{ "unencumbered", @@ -254,35 +254,35 @@ func TestConditionSet(t *testing.T) { "not_allowed", }, matchingAny: map[string][]string{ - "unencumbered": []string{}, - "permissive": []string{}, - "notice": []string{}, - "reciprocal": []string{}, - "restricted": []string{}, - "restricted_with_classpath_exception": []string{}, - "restricted_allows_dynamic_linking": []string{}, - "proprietary": []string{}, - "by_exception_only": []string{}, - "not_allowed": []string{}, - "restricted|proprietary": []string{}, + "unencumbered": []string{}, + "permissive": []string{}, + "notice": []string{}, + "reciprocal": []string{}, + "restricted": []string{}, + "restricted_with_classpath_exception": []string{}, + "restricted_allows_dynamic_linking": []string{}, + "proprietary": []string{}, + "by_exception_only": []string{}, + "not_allowed": []string{}, + "restricted|proprietary": []string{}, }, expected: []string{}, }, { - name: "restrictedplus", + name: "restrictedplus", conditions: []string{"restricted", "restricted_with_classpath_exception", "restricted_allows_dynamic_linking"}, - plus: &[]string{"permissive", "notice", "restricted", "proprietary"}, + plus: &[]string{"permissive", "notice", "restricted", "proprietary"}, matchingAny: map[string][]string{ - "unencumbered": []string{}, - "permissive": []string{"permissive"}, - "notice": []string{"notice"}, - "restricted": []string{"restricted"}, - "restricted_with_classpath_exception": []string{"restricted_with_classpath_exception"}, - "restricted_allows_dynamic_linking": []string{"restricted_allows_dynamic_linking"}, - "proprietary": []string{"proprietary"}, - "restricted|proprietary": []string{"restricted", "proprietary"}, - "by_exception_only": []string{}, - "proprietary|by_exception_only": []string{"proprietary"}, + "unencumbered": []string{}, + "permissive": []string{"permissive"}, + "notice": []string{"notice"}, + "restricted": []string{"restricted"}, + "restricted_with_classpath_exception": []string{"restricted_with_classpath_exception"}, + "restricted_allows_dynamic_linking": []string{"restricted_allows_dynamic_linking"}, + "proprietary": []string{"proprietary"}, + "restricted|proprietary": []string{"restricted", "proprietary"}, + "by_exception_only": []string{}, + "proprietary|by_exception_only": []string{"proprietary"}, }, expected: []string{"permissive", "notice", "restricted", "restricted_with_classpath_exception", "restricted_allows_dynamic_linking", "proprietary"}, }, @@ -629,7 +629,7 @@ func TestConditionSet(t *testing.T) { if checkExpected(cs, t) { checkMatching(cs, t) } - if checkExpectedSet(cs, t){ + if checkExpectedSet(cs, t) { checkMatchingSet(cs, t) } }) @@ -639,7 +639,7 @@ func TestConditionSet(t *testing.T) { if checkExpected(cs, t) { checkMatching(cs, t) } - if checkExpectedSet(cs, t){ + if checkExpectedSet(cs, t) { checkMatchingSet(cs, t) } }) @@ -649,7 +649,7 @@ func TestConditionSet(t *testing.T) { if checkExpected(cs, t) { checkMatching(cs, t) } - if checkExpectedSet(cs, t){ + if checkExpectedSet(cs, t) { checkMatchingSet(cs, t) } }) diff --git a/tools/compliance/graph.go b/tools/compliance/graph.go index efcc6e4f7d..e73ab462e7 100644 --- a/tools/compliance/graph.go +++ b/tools/compliance/graph.go @@ -148,7 +148,7 @@ func (e *TargetEdge) String() string { type TargetEdgeList []*TargetEdge // Len returns the count of the elmements in the list. -func (l TargetEdgeList) Len() int { return len(l) } +func (l TargetEdgeList) Len() int { return len(l) } // Swap rearranges 2 elements so that each occupies the other's former position. func (l TargetEdgeList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } @@ -171,7 +171,7 @@ func (l TargetEdgeList) Less(i, j int) bool { // edge with a context `ctx` defined by whatever process is creating the path. type TargetEdgePathSegment struct { edge *TargetEdge - ctx interface{} + ctx interface{} } // Target identifies the target that depends on the dependency. @@ -495,7 +495,7 @@ func (ts *TargetNodeSet) String() string { type TargetNodeList []*TargetNode // Len returns the count of elements in the list. -func (l TargetNodeList) Len() int { return len(l) } +func (l TargetNodeList) Len() int { return len(l) } // Swap rearranges 2 elements so that each occupies the other's former position. func (l TargetNodeList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } diff --git a/tools/compliance/policy/policy.go b/tools/compliance/policy/policy.go index 4261ed011a..442025ea63 100644 --- a/tools/compliance/policy/policy.go +++ b/tools/compliance/policy/policy.go @@ -33,21 +33,21 @@ var ( // proprietary or confidential pathnames to whether to strip the prefix // from the path when used as the library name for notices. SafePathPrefixes = map[string]bool{ - "external/": true, - "art/": false, - "build/": false, - "cts/": false, - "dalvik/": false, - "developers/": false, + "external/": true, + "art/": false, + "build/": false, + "cts/": false, + "dalvik/": false, + "developers/": false, "development/": false, - "frameworks/": false, - "packages/": true, - "prebuilts/": false, - "sdk/": false, - "system/": false, - "test/": false, - "toolchain/": false, - "tools/": false, + "frameworks/": false, + "packages/": true, + "prebuilts/": false, + "sdk/": false, + "system/": false, + "test/": false, + "toolchain/": false, + "tools/": false, } // SafePrebuiltPrefixes maps the regular expression to match a prebuilt @@ -62,8 +62,8 @@ var ( // ImpliesNotice lists the condition names implying a notice or attribution policy. ImpliesNotice = LicenseConditionSet(UnencumberedCondition | PermissiveCondition | NoticeCondition | ReciprocalCondition | - RestrictedCondition | RestrictedClasspathExceptionCondition | WeaklyRestrictedCondition | - ProprietaryCondition | ByExceptionOnlyCondition) + RestrictedCondition | RestrictedClasspathExceptionCondition | WeaklyRestrictedCondition | + ProprietaryCondition | ByExceptionOnlyCondition) // ImpliesReciprocal lists the condition names implying a local source-sharing policy. ImpliesReciprocal = LicenseConditionSet(ReciprocalCondition) @@ -143,7 +143,6 @@ func LicenseConditionSetFromNames(tn *TargetNode, names ...string) LicenseCondit return cs } - // Resolution happens in three phases: // // 1. A bottom-up traversal propagates (restricted) license conditions up to @@ -182,7 +181,6 @@ func LicenseConditionSetFromNames(tn *TargetNode, names ...string) LicenseCondit // Not all restricted licenses are create equal. Some have special rules or // exceptions. e.g. LGPL or "with classpath excption". - // depConditionsPropagatingToTarget returns the conditions which propagate up an // edge from dependency to target. // @@ -204,7 +202,7 @@ func depConditionsPropagatingToTarget(lg *LicenseGraph, e *TargetEdge, depCondit } result |= depConditions & LicenseConditionSet(RestrictedCondition) - if 0 != (depConditions & LicenseConditionSet(RestrictedClasspathExceptionCondition)) && !edgeNodesAreIndependentModules(e) { + if 0 != (depConditions&LicenseConditionSet(RestrictedClasspathExceptionCondition)) && !edgeNodesAreIndependentModules(e) { result |= LicenseConditionSet(RestrictedClasspathExceptionCondition) } return result @@ -264,13 +262,12 @@ func conditionsAttachingAcrossEdge(lg *LicenseGraph, e *TargetEdge, universe Lic } result &= LicenseConditionSet(RestrictedCondition | RestrictedClasspathExceptionCondition) - if 0 != (result & LicenseConditionSet(RestrictedClasspathExceptionCondition)) && edgeNodesAreIndependentModules(e) { + if 0 != (result&LicenseConditionSet(RestrictedClasspathExceptionCondition)) && edgeNodesAreIndependentModules(e) { result &= LicenseConditionSet(RestrictedCondition) } return result } - // edgeIsDynamicLink returns true for edges representing shared libraries // linked dynamically at runtime. func edgeIsDynamicLink(e *TargetEdge) bool { diff --git a/tools/compliance/policy/shareprivacyconflicts_test.go b/tools/compliance/policy/shareprivacyconflicts_test.go index ad3f3f45ce..2d2a1d0258 100644 --- a/tools/compliance/policy/shareprivacyconflicts_test.go +++ b/tools/compliance/policy/shareprivacyconflicts_test.go @@ -24,7 +24,7 @@ import ( type byConflict []SourceSharePrivacyConflict // Len returns the count of elements in the slice. -func (l byConflict) Len() int { return len(l) } +func (l byConflict) Len() int { return len(l) } // Swap rearranged 2 elements so that each occupies the other's former // position. diff --git a/tools/compliance/policy/shipped_test.go b/tools/compliance/policy/shipped_test.go index 718e56fe82..25f6af0ca3 100644 --- a/tools/compliance/policy/shipped_test.go +++ b/tools/compliance/policy/shipped_test.go @@ -29,30 +29,30 @@ func TestShippedNodes(t *testing.T) { expectedNodes []string }{ { - name: "singleton", - roots: []string{"apacheLib.meta_lic"}, - edges: []annotated{}, + name: "singleton", + roots: []string{"apacheLib.meta_lic"}, + edges: []annotated{}, expectedNodes: []string{"apacheLib.meta_lic"}, }, { - name: "simplebinary", - roots: []string{"apacheBin.meta_lic"}, + name: "simplebinary", + roots: []string{"apacheBin.meta_lic"}, edges: []annotated{ {"apacheBin.meta_lic", "apacheLib.meta_lic", []string{"static"}}, }, expectedNodes: []string{"apacheBin.meta_lic", "apacheLib.meta_lic"}, }, { - name: "simpledynamic", - roots: []string{"apacheBin.meta_lic"}, + name: "simpledynamic", + roots: []string{"apacheBin.meta_lic"}, edges: []annotated{ {"apacheBin.meta_lic", "lgplLib.meta_lic", []string{"dynamic"}}, }, expectedNodes: []string{"apacheBin.meta_lic"}, }, { - name: "container", - roots: []string{"apacheContainer.meta_lic"}, + name: "container", + roots: []string{"apacheContainer.meta_lic"}, edges: []annotated{ {"apacheContainer.meta_lic", "apacheLib.meta_lic", []string{"static"}}, {"apacheContainer.meta_lic", "gplLib.meta_lic", []string{"static"}}, @@ -64,8 +64,8 @@ func TestShippedNodes(t *testing.T) { }, }, { - name: "binary", - roots: []string{"apacheBin.meta_lic"}, + name: "binary", + roots: []string{"apacheBin.meta_lic"}, edges: []annotated{ {"apacheBin.meta_lic", "apacheLib.meta_lic", []string{"static"}}, {"apacheBin.meta_lic", "gplLib.meta_lic", []string{"static"}}, @@ -77,8 +77,8 @@ func TestShippedNodes(t *testing.T) { }, }, { - name: "binarydynamic", - roots: []string{"apacheBin.meta_lic"}, + name: "binarydynamic", + roots: []string{"apacheBin.meta_lic"}, edges: []annotated{ {"apacheBin.meta_lic", "apacheLib.meta_lic", []string{"static"}}, {"apacheBin.meta_lic", "gplLib.meta_lic", []string{"dynamic"}}, @@ -89,8 +89,8 @@ func TestShippedNodes(t *testing.T) { }, }, { - name: "containerdeep", - roots: []string{"apacheContainer.meta_lic"}, + name: "containerdeep", + roots: []string{"apacheContainer.meta_lic"}, edges: []annotated{ {"apacheContainer.meta_lic", "apacheBin.meta_lic", []string{"static"}}, {"apacheBin.meta_lic", "apacheLib.meta_lic", []string{"static"}}, @@ -127,7 +127,7 @@ func TestShippedNodes(t *testing.T) { t.Logf("sorted nodes: [%s]", strings.Join(actualNodes, ", ")) t.Logf("expected nodes: [%s]", strings.Join(expectedNodes, ", ")) - if len(expectedNodes) != len(actualNodes) { + if len(expectedNodes) != len(actualNodes) { t.Errorf("unexpected number of shipped nodes: %d nodes, want %d nodes", len(actualNodes), len(expectedNodes)) return diff --git a/tools/compliance/policy/walk.go b/tools/compliance/policy/walk.go index 3e730889ed..f4d7bbaf3a 100644 --- a/tools/compliance/policy/walk.go +++ b/tools/compliance/policy/walk.go @@ -83,7 +83,7 @@ func WalkTopDown(ctx EdgeContextProvider, lg *LicenseGraph, visit VisitNode) { // specific set of conditions. type resolutionKey struct { target *TargetNode - cs LicenseConditionSet + cs LicenseConditionSet } // WalkResolutionsForCondition performs a top-down walk of the LicenseGraph diff --git a/tools/compliance/readgraph.go b/tools/compliance/readgraph.go index c809a96dd9..6f91e1c34b 100644 --- a/tools/compliance/readgraph.go +++ b/tools/compliance/readgraph.go @@ -185,7 +185,7 @@ type targetNode struct { // addDependencies converts the proto AnnotatedDependencies into `edges` func addDependencies(lg *LicenseGraph, tn *TargetNode) error { - tn.edges = make(TargetEdgeList, 0,len(tn.proto.Deps)) + tn.edges = make(TargetEdgeList, 0, len(tn.proto.Deps)) for _, ad := range tn.proto.Deps { dependency := ad.GetFile() if len(dependency) == 0 { diff --git a/tools/compliance/resolution.go b/tools/compliance/resolution.go index 6f15ca350e..acc61e2ebf 100644 --- a/tools/compliance/resolution.go +++ b/tools/compliance/resolution.go @@ -66,7 +66,7 @@ func (r Resolution) asString() string { type ResolutionList []Resolution // Len returns the count of elements in the list. -func (l ResolutionList) Len() int { return len(l) } +func (l ResolutionList) Len() int { return len(l) } // Swap rearranges 2 elements so that each occupies the other's former position. func (l ResolutionList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } diff --git a/tools/compliance/resolutionset.go b/tools/compliance/resolutionset.go index 893ef26971..ef898834a0 100644 --- a/tools/compliance/resolutionset.go +++ b/tools/compliance/resolutionset.go @@ -65,7 +65,6 @@ func (rs ResolutionSet) AttachesTo() TargetNodeList { return result } - // AttachesToTarget returns true if the set contains conditions that // are `attachedTo`. func (rs ResolutionSet) AttachesToTarget(target *TargetNode) bool { @@ -73,7 +72,6 @@ func (rs ResolutionSet) AttachesToTarget(target *TargetNode) bool { return isPresent } - // Resolutions returns the list of resolutions that `attachedTo` // target must resolve. Returns empty list if no conditions apply. func (rs ResolutionSet) Resolutions(attachesTo *TargetNode) ResolutionList { diff --git a/tools/compliance/test_util.go b/tools/compliance/test_util.go index 8f4088ab7f..26d7461b8b 100644 --- a/tools/compliance/test_util.go +++ b/tools/compliance/test_util.go @@ -33,56 +33,56 @@ license_conditions: "notice" // GPL starts a test metadata file for GPL 2.0 licensing. GPL = `` + -`package_name: "Free Software" + `package_name: "Free Software" license_kinds: "SPDX-license-identifier-GPL-2.0" license_conditions: "restricted" ` // Classpath starts a test metadata file for GPL 2.0 with classpath exception licensing. Classpath = `` + -`package_name: "Free Software" + `package_name: "Free Software" license_kinds: "SPDX-license-identifier-GPL-2.0-with-classpath-exception" license_conditions: "restricted" ` // DependentModule starts a test metadata file for a module in the same package as `Classpath`. DependentModule = `` + -`package_name: "Free Software" + `package_name: "Free Software" license_kinds: "SPDX-license-identifier-MIT" license_conditions: "notice" ` // LGPL starts a test metadata file for a module with LGPL 2.0 licensing. LGPL = `` + -`package_name: "Free Library" + `package_name: "Free Library" license_kinds: "SPDX-license-identifier-LGPL-2.0" license_conditions: "restricted" ` // MPL starts a test metadata file for a module with MPL 2.0 reciprical licensing. MPL = `` + -`package_name: "Reciprocal" + `package_name: "Reciprocal" license_kinds: "SPDX-license-identifier-MPL-2.0" license_conditions: "reciprocal" ` // MIT starts a test metadata file for a module with generic notice (MIT) licensing. MIT = `` + -`package_name: "Android" + `package_name: "Android" license_kinds: "SPDX-license-identifier-MIT" license_conditions: "notice" ` // Proprietary starts a test metadata file for a module with proprietary licensing. Proprietary = `` + -`package_name: "Android" + `package_name: "Android" license_kinds: "legacy_proprietary" license_conditions: "proprietary" ` // ByException starts a test metadata file for a module with by_exception_only licensing. ByException = `` + -`package_name: "Special" + `package_name: "Special" license_kinds: "legacy_by_exception_only" license_conditions: "by_exception_only" ` @@ -91,22 +91,22 @@ license_conditions: "by_exception_only" var ( // meta maps test file names to metadata file content without dependencies. meta = map[string]string{ - "apacheBin.meta_lic": AOSP, - "apacheLib.meta_lic": AOSP, - "apacheContainer.meta_lic": AOSP + "is_container: true\n", - "dependentModule.meta_lic": DependentModule, + "apacheBin.meta_lic": AOSP, + "apacheLib.meta_lic": AOSP, + "apacheContainer.meta_lic": AOSP + "is_container: true\n", + "dependentModule.meta_lic": DependentModule, "gplWithClasspathException.meta_lic": Classpath, - "gplBin.meta_lic": GPL, - "gplLib.meta_lic": GPL, - "gplContainer.meta_lic": GPL + "is_container: true\n", - "lgplBin.meta_lic": LGPL, - "lgplLib.meta_lic": LGPL, - "mitBin.meta_lic": MIT, - "mitLib.meta_lic": MIT, - "mplBin.meta_lic": MPL, - "mplLib.meta_lic": MPL, - "proprietary.meta_lic": Proprietary, - "by_exception.meta_lic": ByException, + "gplBin.meta_lic": GPL, + "gplLib.meta_lic": GPL, + "gplContainer.meta_lic": GPL + "is_container: true\n", + "lgplBin.meta_lic": LGPL, + "lgplLib.meta_lic": LGPL, + "mitBin.meta_lic": MIT, + "mitLib.meta_lic": MIT, + "mplBin.meta_lic": MPL, + "mplLib.meta_lic": MPL, + "proprietary.meta_lic": Proprietary, + "by_exception.meta_lic": ByException, } ) @@ -204,7 +204,7 @@ func (e edge) String() string { type byEdge []edge // Len returns the count of elements in the slice. -func (l byEdge) Len() int { return len(l) } +func (l byEdge) Len() int { return len(l) } // Swap rearranges 2 elements of the slice so that each occupies the other's // former position. @@ -219,7 +219,6 @@ func (l byEdge) Less(i, j int) bool { return l[i].target < l[j].target } - // annotated describes annotated test data edges to define test graphs. type annotated struct { target, dep string @@ -240,7 +239,7 @@ func (e annotated) IsEqualTo(other annotated) bool { if e.dep != other.dep { return false } - if len(e.annotations) != len(other.annotations) { + if len(e.annotations) != len(other.annotations) { return false } a1 := append([]string{}, e.annotations...) @@ -401,7 +400,7 @@ func (l actionList) String() string { } // Len returns the count of elements in the slice. -func (l actionList) Len() int { return len(l) } +func (l actionList) Len() int { return len(l) } // Swap rearranges 2 elements of the slice so that each occupies the other's // former position. @@ -467,10 +466,10 @@ func toConflictList(lg *LicenseGraph, data []confl) []SourceSharePrivacyConflict oprivacy := fields[0] cprivacy := fields[1] result = append(result, SourceSharePrivacyConflict{ - newTestNode(lg, c.sourceNode), - newTestCondition(lg, oshare, cshare), - newTestCondition(lg, oprivacy, cprivacy), - }) + newTestNode(lg, c.sourceNode), + newTestCondition(lg, oshare, cshare), + newTestCondition(lg, oprivacy, cprivacy), + }) } return result } From 179ec3e55e1f61603f773483503131c4b10d0ad2 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 27 Jan 2022 15:47:09 -0800 Subject: [PATCH 2/5] Fix errors caught by go vet in compliance package `go test` implicitly runs `go vet` and fails the tests if vet errors are found. Fix all the issues found by vet. Test: go test build/make/tools/compliance/... Change-Id: If0684cf124ece4931af440008cd44a61c22de475 --- tools/compliance/cmd/bom.go | 6 +++--- tools/compliance/cmd/bom_test.go | 2 +- tools/compliance/cmd/dumpgraph_test.go | 2 +- tools/compliance/cmd/dumpresolutions_test.go | 2 +- tools/compliance/cmd/htmlnotice.go | 10 +++++----- tools/compliance/cmd/htmlnotice_test.go | 2 +- tools/compliance/cmd/shippedlibs.go | 6 +++--- tools/compliance/cmd/shippedlibs_test.go | 2 +- tools/compliance/cmd/textnotice.go | 6 +++--- tools/compliance/cmd/textnotice_test.go | 2 +- tools/compliance/conditionset_test.go | 6 +++--- tools/compliance/policy/policy_test.go | 2 +- tools/compliance/policy/resolve_test.go | 4 ++-- tools/compliance/policy/resolvenotices_test.go | 2 +- tools/compliance/policy/resolveprivacy_test.go | 2 +- tools/compliance/policy/resolveshare_test.go | 2 +- tools/compliance/policy/shareprivacyconflicts_test.go | 2 +- tools/compliance/policy/shipped_test.go | 2 +- tools/compliance/policy/walk_test.go | 4 ++-- tools/compliance/readgraph_test.go | 4 ++-- 20 files changed, 35 insertions(+), 35 deletions(-) diff --git a/tools/compliance/cmd/bom.go b/tools/compliance/cmd/bom.go index f6cb72c2d1..ec0160318f 100644 --- a/tools/compliance/cmd/bom.go +++ b/tools/compliance/cmd/bom.go @@ -69,12 +69,12 @@ func main() { } else { dir, err := filepath.Abs(filepath.Dir(*outputFile)) if err != nil { - fmt.Fprintf(os.Stderr, "cannot determine path to %q: %w\n", *outputFile, err) + fmt.Fprintf(os.Stderr, "cannot determine path to %q: %s\n", *outputFile, err) os.Exit(1) } fi, err := os.Stat(dir) if err != nil { - fmt.Fprintf(os.Stderr, "cannot read directory %q of %q: %w\n", dir, *outputFile, err) + fmt.Fprintf(os.Stderr, "cannot read directory %q of %q: %s\n", dir, *outputFile, err) os.Exit(1) } if !fi.IsDir() { @@ -102,7 +102,7 @@ func main() { if *outputFile != "-" { err := os.WriteFile(*outputFile, ofile.(*bytes.Buffer).Bytes(), 0666) if err != nil { - fmt.Fprintf(os.Stderr, "could not write output to %q: %w\n", *outputFile, err) + fmt.Fprintf(os.Stderr, "could not write output to %q: %s\n", *outputFile, err) os.Exit(1) } } diff --git a/tools/compliance/cmd/bom_test.go b/tools/compliance/cmd/bom_test.go index 9c126710ac..fc61bbf0db 100644 --- a/tools/compliance/cmd/bom_test.go +++ b/tools/compliance/cmd/bom_test.go @@ -275,7 +275,7 @@ func Test(t *testing.T) { err := billOfMaterials(&ctx, rootFiles...) if err != nil { - t.Fatalf("bom: error = %w, stderr = %v", err, stderr) + t.Fatalf("bom: error = %v, stderr = %v", err, stderr) return } if stderr.Len() > 0 { diff --git a/tools/compliance/cmd/dumpgraph_test.go b/tools/compliance/cmd/dumpgraph_test.go index 305502239c..6555aab3b6 100644 --- a/tools/compliance/cmd/dumpgraph_test.go +++ b/tools/compliance/cmd/dumpgraph_test.go @@ -1217,7 +1217,7 @@ func Test_graphviz(t *testing.T) { outList := strings.Split(stdout.String(), "\n") outLine := 0 if outList[outLine] != "strict digraph {" { - t.Errorf("dumpgraph: got 1st line %v, want strict digraph {") + t.Errorf("dumpgraph: got 1st line %v, want strict digraph {", outList[outLine]) } outLine++ if strings.HasPrefix(strings.TrimLeft(outList[outLine], " \t"), "rankdir") { diff --git a/tools/compliance/cmd/dumpresolutions_test.go b/tools/compliance/cmd/dumpresolutions_test.go index a3a298e988..1abfac7da4 100644 --- a/tools/compliance/cmd/dumpresolutions_test.go +++ b/tools/compliance/cmd/dumpresolutions_test.go @@ -3305,7 +3305,7 @@ func Test_graphviz(t *testing.T) { outList := strings.Split(stdout.String(), "\n") outLine := 0 if outList[outLine] != "strict digraph {" { - t.Errorf("dumpresolutions: got 1st line %v, want strict digraph {") + t.Errorf("dumpresolutions: got 1st line %v, want strict digraph {", outList[outLine]) } outLine++ if strings.HasPrefix(strings.TrimLeft(outList[outLine], " \t"), "rankdir") { diff --git a/tools/compliance/cmd/htmlnotice.go b/tools/compliance/cmd/htmlnotice.go index cff1ff84eb..3456a49026 100644 --- a/tools/compliance/cmd/htmlnotice.go +++ b/tools/compliance/cmd/htmlnotice.go @@ -74,12 +74,12 @@ func main() { } else { dir, err := filepath.Abs(filepath.Dir(*outputFile)) if err != nil { - fmt.Fprintf(os.Stderr, "cannot determine path to %q: %w\n", *outputFile, err) + fmt.Fprintf(os.Stderr, "cannot determine path to %q: %s\n", *outputFile, err) os.Exit(1) } fi, err := os.Stat(dir) if err != nil { - fmt.Fprintf(os.Stderr, "cannot read directory %q of %q: %w\n", dir, *outputFile, err) + fmt.Fprintf(os.Stderr, "cannot read directory %q of %q: %s\n", dir, *outputFile, err) os.Exit(1) } if !fi.IsDir() { @@ -107,7 +107,7 @@ func main() { if *outputFile != "-" { err := os.WriteFile(*outputFile, ofile.(*bytes.Buffer).Bytes(), 0666) if err != nil { - fmt.Fprintf(os.Stderr, "could not write output to %q: %w\n", *outputFile, err) + fmt.Fprintf(os.Stderr, "could not write output to %q: %s\n", *outputFile, err) os.Exit(1) } } @@ -139,13 +139,13 @@ func htmlNotice(ctx *context, files ...string) error { } fmt.Fprintln(ctx.stdout, "") - fmt.Fprintln(ctx.stdout, "\n") + fmt.Fprintln(ctx.stdout, "") fmt.Fprintln(ctx.stdout, "\n") + fmt.Fprintln(ctx.stdout, "") if 0 < len(ctx.title) { fmt.Fprintf(ctx.stdout, "%s\n", html.EscapeString(ctx.title)) } diff --git a/tools/compliance/cmd/htmlnotice_test.go b/tools/compliance/cmd/htmlnotice_test.go index 8d3ea02703..35a25bf4b3 100644 --- a/tools/compliance/cmd/htmlnotice_test.go +++ b/tools/compliance/cmd/htmlnotice_test.go @@ -560,7 +560,7 @@ func Test(t *testing.T) { err := htmlNotice(&ctx, rootFiles...) if err != nil { - t.Fatalf("htmlnotice: error = %w, stderr = %v", err, stderr) + t.Fatalf("htmlnotice: error = %v, stderr = %v", err, stderr) return } if stderr.Len() > 0 { diff --git a/tools/compliance/cmd/shippedlibs.go b/tools/compliance/cmd/shippedlibs.go index 290ced65c2..ee74cad0dc 100644 --- a/tools/compliance/cmd/shippedlibs.go +++ b/tools/compliance/cmd/shippedlibs.go @@ -66,12 +66,12 @@ func main() { } else { dir, err := filepath.Abs(filepath.Dir(*outputFile)) if err != nil { - fmt.Fprintf(os.Stderr, "cannot determine path to %q: %w\n", *outputFile, err) + fmt.Fprintf(os.Stderr, "cannot determine path to %q: %s\n", *outputFile, err) os.Exit(1) } fi, err := os.Stat(dir) if err != nil { - fmt.Fprintf(os.Stderr, "cannot read directory %q of %q: %w\n", dir, *outputFile, err) + fmt.Fprintf(os.Stderr, "cannot read directory %q of %q: %s\n", dir, *outputFile, err) os.Exit(1) } if !fi.IsDir() { @@ -99,7 +99,7 @@ func main() { if *outputFile != "-" { err := os.WriteFile(*outputFile, ofile.(*bytes.Buffer).Bytes(), 0666) if err != nil { - fmt.Fprintf(os.Stderr, "could not write output to %q: %w\n", *outputFile, err) + fmt.Fprintf(os.Stderr, "could not write output to %q: %s\n", *outputFile, err) os.Exit(1) } } diff --git a/tools/compliance/cmd/shippedlibs_test.go b/tools/compliance/cmd/shippedlibs_test.go index 4b2e4ee18f..dbf32745c0 100644 --- a/tools/compliance/cmd/shippedlibs_test.go +++ b/tools/compliance/cmd/shippedlibs_test.go @@ -194,7 +194,7 @@ func Test(t *testing.T) { err := shippedLibs(&ctx, rootFiles...) if err != nil { - t.Fatalf("shippedLibs: error = %w, stderr = %v", err, stderr) + t.Fatalf("shippedLibs: error = %v, stderr = %v", err, stderr) return } if stderr.Len() > 0 { diff --git a/tools/compliance/cmd/textnotice.go b/tools/compliance/cmd/textnotice.go index 91c57b03e9..658d6098bf 100644 --- a/tools/compliance/cmd/textnotice.go +++ b/tools/compliance/cmd/textnotice.go @@ -69,12 +69,12 @@ func main() { } else { dir, err := filepath.Abs(filepath.Dir(*outputFile)) if err != nil { - fmt.Fprintf(os.Stderr, "cannot determine path to %q: %w\n", *outputFile, err) + fmt.Fprintf(os.Stderr, "cannot determine path to %q: %s\n", *outputFile, err) os.Exit(1) } fi, err := os.Stat(dir) if err != nil { - fmt.Fprintf(os.Stderr, "cannot read directory %q of %q: %w\n", dir, *outputFile, err) + fmt.Fprintf(os.Stderr, "cannot read directory %q of %q: %s\n", dir, *outputFile, err) os.Exit(1) } if !fi.IsDir() { @@ -102,7 +102,7 @@ func main() { if *outputFile != "-" { err := os.WriteFile(*outputFile, ofile.(*bytes.Buffer).Bytes(), 0666) if err != nil { - fmt.Fprintf(os.Stderr, "could not write output to %q: %w\n", *outputFile, err) + fmt.Fprintf(os.Stderr, "could not write output to %q: %s\n", *outputFile, err) os.Exit(1) } } diff --git a/tools/compliance/cmd/textnotice_test.go b/tools/compliance/cmd/textnotice_test.go index 156fb90486..8b6a4b5570 100644 --- a/tools/compliance/cmd/textnotice_test.go +++ b/tools/compliance/cmd/textnotice_test.go @@ -474,7 +474,7 @@ func Test(t *testing.T) { err := textNotice(&ctx, rootFiles...) if err != nil { - t.Fatalf("textnotice: error = %w, stderr = %v", err, stderr) + t.Fatalf("textnotice: error = %v, stderr = %v", err, stderr) return } if stderr.Len() > 0 { diff --git a/tools/compliance/conditionset_test.go b/tools/compliance/conditionset_test.go index 1d80676354..c91912f19f 100644 --- a/tools/compliance/conditionset_test.go +++ b/tools/compliance/conditionset_test.go @@ -363,7 +363,7 @@ func TestConditionSet(t *testing.T) { } actualConditions := actual.AsList() if len(actualConditions) != len(expectedConditions) { - t.Errorf("len(MatchingAny(%d).AsList()): got %d, want %d", + t.Errorf("len(MatchingAny(%s).AsList()): got %d, want %d", data, len(actualNames), len(expectedNames)) } else { for i := 0; i < len(actualNames); i++ { @@ -452,7 +452,7 @@ func TestConditionSet(t *testing.T) { for i := 0; i < len(actualConditions); i++ { if actualConditions[i] != expectedConditions[i] { t.Errorf("actual.AsList()[%d]: got %s, want %s", - i, actualConditions[i], expectedConditions[i]) + i, actualConditions[i].Name(), expectedConditions[i].Name()) break } } @@ -552,7 +552,7 @@ func TestConditionSet(t *testing.T) { for i := 0; i < len(actualConditions); i++ { if actualConditions[i] != expectedConditions[i] { t.Errorf("actual.AsList()[%d}: got %s, want %s", - i, actualConditions[i], expectedConditions[i]) + i, actualConditions[i].Name(), expectedConditions[i].Name()) break } } diff --git a/tools/compliance/policy/policy_test.go b/tools/compliance/policy/policy_test.go index 09e831cc23..32dd5fd52d 100644 --- a/tools/compliance/policy/policy_test.go +++ b/tools/compliance/policy/policy_test.go @@ -226,7 +226,7 @@ func TestPolicy_edgeConditions(t *testing.T) { fs[tt.edge.dep] = []byte(meta[tt.edge.dep]) lg, err := ReadLicenseGraph(&fs, stderr, []string{tt.edge.target}) if err != nil { - t.Errorf("unexpected error reading graph: %w", err) + t.Errorf("unexpected error reading graph: %s", err) return } edge := lg.Edges()[0] diff --git a/tools/compliance/policy/resolve_test.go b/tools/compliance/policy/resolve_test.go index 09dd7dd3c8..f98e4cc23a 100644 --- a/tools/compliance/policy/resolve_test.go +++ b/tools/compliance/policy/resolve_test.go @@ -332,7 +332,7 @@ func TestResolveBottomUpConditions(t *testing.T) { stderr := &bytes.Buffer{} lg, err := toGraph(stderr, tt.roots, tt.edges) if err != nil { - t.Errorf("unexpected test data error: got %w, want no error", err) + t.Errorf("unexpected test data error: got %s, want no error", err) return } @@ -643,7 +643,7 @@ func TestResolveTopDownConditions(t *testing.T) { stderr := &bytes.Buffer{} lg, err := toGraph(stderr, tt.roots, tt.edges) if err != nil { - t.Errorf("unexpected test data error: got %w, want no error", err) + t.Errorf("unexpected test data error: got %s, want no error", err) return } diff --git a/tools/compliance/policy/resolvenotices_test.go b/tools/compliance/policy/resolvenotices_test.go index 275c0a5fe2..cd9dd71bdc 100644 --- a/tools/compliance/policy/resolvenotices_test.go +++ b/tools/compliance/policy/resolvenotices_test.go @@ -457,7 +457,7 @@ func TestResolveNotices(t *testing.T) { stderr := &bytes.Buffer{} lg, err := toGraph(stderr, tt.roots, tt.edges) if err != nil { - t.Errorf("unexpected test data error: got %w, want no error", err) + t.Errorf("unexpected test data error: got %s, want no error", err) return } expectedRs := toResolutionSet(lg, tt.expectedResolutions) diff --git a/tools/compliance/policy/resolveprivacy_test.go b/tools/compliance/policy/resolveprivacy_test.go index 2072d22d58..e8c953a8fe 100644 --- a/tools/compliance/policy/resolveprivacy_test.go +++ b/tools/compliance/policy/resolveprivacy_test.go @@ -76,7 +76,7 @@ func TestResolveSourcePrivacy(t *testing.T) { stderr := &bytes.Buffer{} lg, err := toGraph(stderr, tt.roots, tt.edges) if err != nil { - t.Errorf("unexpected test data error: got %w, want no error", err) + t.Errorf("unexpected test data error: got %s, want no error", err) return } expectedRs := toResolutionSet(lg, tt.expectedResolutions) diff --git a/tools/compliance/policy/resolveshare_test.go b/tools/compliance/policy/resolveshare_test.go index f73888de43..c451b86040 100644 --- a/tools/compliance/policy/resolveshare_test.go +++ b/tools/compliance/policy/resolveshare_test.go @@ -286,7 +286,7 @@ func TestResolveSourceSharing(t *testing.T) { stderr := &bytes.Buffer{} lg, err := toGraph(stderr, tt.roots, tt.edges) if err != nil { - t.Errorf("unexpected test data error: got %w, want no error", err) + t.Errorf("unexpected test data error: got %s, want no error", err) return } expectedRs := toResolutionSet(lg, tt.expectedResolutions) diff --git a/tools/compliance/policy/shareprivacyconflicts_test.go b/tools/compliance/policy/shareprivacyconflicts_test.go index 2d2a1d0258..069daa2d6c 100644 --- a/tools/compliance/policy/shareprivacyconflicts_test.go +++ b/tools/compliance/policy/shareprivacyconflicts_test.go @@ -99,7 +99,7 @@ func TestConflictingSharedPrivateSource(t *testing.T) { stderr := &bytes.Buffer{} lg, err := toGraph(stderr, tt.roots, tt.edges) if err != nil { - t.Errorf("unexpected test data error: got %w, want no error", err) + t.Errorf("unexpected test data error: got %s, want no error", err) return } expectedConflicts := toConflictList(lg, tt.expectedConflicts) diff --git a/tools/compliance/policy/shipped_test.go b/tools/compliance/policy/shipped_test.go index 25f6af0ca3..3ae9b4687e 100644 --- a/tools/compliance/policy/shipped_test.go +++ b/tools/compliance/policy/shipped_test.go @@ -108,7 +108,7 @@ func TestShippedNodes(t *testing.T) { stderr := &bytes.Buffer{} lg, err := toGraph(stderr, tt.roots, tt.edges) if err != nil { - t.Errorf("unexpected test data error: got %w, want no error", err) + t.Errorf("unexpected test data error: got %s, want no error", err) return } t.Logf("graph:") diff --git a/tools/compliance/policy/walk_test.go b/tools/compliance/policy/walk_test.go index a2ec6e7a84..92867f9535 100644 --- a/tools/compliance/policy/walk_test.go +++ b/tools/compliance/policy/walk_test.go @@ -620,7 +620,7 @@ func TestWalkResolutionsForCondition(t *testing.T) { stderr := &bytes.Buffer{} lg, err := toGraph(stderr, tt.roots, tt.edges) if err != nil { - t.Errorf("unexpected test data error: got %w, want no error", err) + t.Errorf("unexpected test data error: got %s, want no error", err) return } expectedRs := toResolutionSet(lg, tt.expectedResolutions) @@ -1228,7 +1228,7 @@ func TestWalkActionsForCondition(t *testing.T) { stderr := &bytes.Buffer{} lg, err := toGraph(stderr, tt.roots, tt.edges) if err != nil { - t.Errorf("unexpected test data error: got %w, want no error", err) + t.Errorf("unexpected test data error: got %s, want no error", err) return } expectedAs := toActionSet(lg, tt.expectedActions) diff --git a/tools/compliance/readgraph_test.go b/tools/compliance/readgraph_test.go index 6ff7a6c4f8..db52fb193b 100644 --- a/tools/compliance/readgraph_test.go +++ b/tools/compliance/readgraph_test.go @@ -88,9 +88,9 @@ func TestReadLicenseGraph(t *testing.T) { lg, err := ReadLicenseGraph(tt.fs, stderr, tt.roots) if err != nil { if len(tt.expectedError) == 0 { - t.Errorf("unexpected error: got %w, want no error", err) + t.Errorf("unexpected error: got %s, want no error", err) } else if !strings.Contains(err.Error(), tt.expectedError) { - t.Errorf("unexpected error: got %w, want %q", err, tt.expectedError) + t.Errorf("unexpected error: got %s, want %q", err, tt.expectedError) } return } From 2c51bd1d49eba3f94f401614bf05e9858e118cdf Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 27 Jan 2022 15:17:37 -0800 Subject: [PATCH 3/5] Move policy subdirectory into package directory Go's tooling expects that all files in the same package are in the same directory. Move the policy/*.go files to policy_*.go. Test: go test ./... Change-Id: I7e81936ddd20a5ffb4770ae23bdb6e411d6924cc --- tools/compliance/Android.bp | 32 +++++++++---------- .../{policy/policy.go => policy_policy.go} | 0 .../policy_test.go => policy_policy_test.go} | 0 .../{policy/resolve.go => policy_resolve.go} | 0 ...resolve_test.go => policy_resolve_test.go} | 0 ...lvenotices.go => policy_resolvenotices.go} | 0 ..._test.go => policy_resolvenotices_test.go} | 0 ...lveprivacy.go => policy_resolveprivacy.go} | 0 ..._test.go => policy_resolveprivacy_test.go} | 0 ...resolveshare.go => policy_resolveshare.go} | 0 ...re_test.go => policy_resolveshare_test.go} | 0 ...cts.go => policy_shareprivacyconflicts.go} | 0 ...o => policy_shareprivacyconflicts_test.go} | 0 .../{policy/shipped.go => policy_shipped.go} | 0 ...shipped_test.go => policy_shipped_test.go} | 0 .../{policy/walk.go => policy_walk.go} | 0 .../walk_test.go => policy_walk_test.go} | 0 17 files changed, 16 insertions(+), 16 deletions(-) rename tools/compliance/{policy/policy.go => policy_policy.go} (100%) rename tools/compliance/{policy/policy_test.go => policy_policy_test.go} (100%) rename tools/compliance/{policy/resolve.go => policy_resolve.go} (100%) rename tools/compliance/{policy/resolve_test.go => policy_resolve_test.go} (100%) rename tools/compliance/{policy/resolvenotices.go => policy_resolvenotices.go} (100%) rename tools/compliance/{policy/resolvenotices_test.go => policy_resolvenotices_test.go} (100%) rename tools/compliance/{policy/resolveprivacy.go => policy_resolveprivacy.go} (100%) rename tools/compliance/{policy/resolveprivacy_test.go => policy_resolveprivacy_test.go} (100%) rename tools/compliance/{policy/resolveshare.go => policy_resolveshare.go} (100%) rename tools/compliance/{policy/resolveshare_test.go => policy_resolveshare_test.go} (100%) rename tools/compliance/{policy/shareprivacyconflicts.go => policy_shareprivacyconflicts.go} (100%) rename tools/compliance/{policy/shareprivacyconflicts_test.go => policy_shareprivacyconflicts_test.go} (100%) rename tools/compliance/{policy/shipped.go => policy_shipped.go} (100%) rename tools/compliance/{policy/shipped_test.go => policy_shipped_test.go} (100%) rename tools/compliance/{policy/walk.go => policy_walk.go} (100%) rename tools/compliance/{policy/walk_test.go => policy_walk_test.go} (100%) diff --git a/tools/compliance/Android.bp b/tools/compliance/Android.bp index 8bae3173ad..7d0fb90640 100644 --- a/tools/compliance/Android.bp +++ b/tools/compliance/Android.bp @@ -81,14 +81,14 @@ bootstrap_go_package { "doc.go", "graph.go", "noticeindex.go", - "policy/policy.go", - "policy/resolve.go", - "policy/resolvenotices.go", - "policy/resolveshare.go", - "policy/resolveprivacy.go", - "policy/shareprivacyconflicts.go", - "policy/shipped.go", - "policy/walk.go", + "policy_policy.go", + "policy_resolve.go", + "policy_resolvenotices.go", + "policy_resolveshare.go", + "policy_resolveprivacy.go", + "policy_shareprivacyconflicts.go", + "policy_shipped.go", + "policy_walk.go", "readgraph.go", "resolution.go", "resolutionset.go", @@ -97,14 +97,14 @@ bootstrap_go_package { "condition_test.go", "conditionset_test.go", "readgraph_test.go", - "policy/policy_test.go", - "policy/resolve_test.go", - "policy/resolvenotices_test.go", - "policy/resolveshare_test.go", - "policy/resolveprivacy_test.go", - "policy/shareprivacyconflicts_test.go", - "policy/shipped_test.go", - "policy/walk_test.go", + "policy_policy_test.go", + "policy_resolve_test.go", + "policy_resolvenotices_test.go", + "policy_resolveshare_test.go", + "policy_resolveprivacy_test.go", + "policy_shareprivacyconflicts_test.go", + "policy_shipped_test.go", + "policy_walk_test.go", "resolutionset_test.go", "test_util.go", ], diff --git a/tools/compliance/policy/policy.go b/tools/compliance/policy_policy.go similarity index 100% rename from tools/compliance/policy/policy.go rename to tools/compliance/policy_policy.go diff --git a/tools/compliance/policy/policy_test.go b/tools/compliance/policy_policy_test.go similarity index 100% rename from tools/compliance/policy/policy_test.go rename to tools/compliance/policy_policy_test.go diff --git a/tools/compliance/policy/resolve.go b/tools/compliance/policy_resolve.go similarity index 100% rename from tools/compliance/policy/resolve.go rename to tools/compliance/policy_resolve.go diff --git a/tools/compliance/policy/resolve_test.go b/tools/compliance/policy_resolve_test.go similarity index 100% rename from tools/compliance/policy/resolve_test.go rename to tools/compliance/policy_resolve_test.go diff --git a/tools/compliance/policy/resolvenotices.go b/tools/compliance/policy_resolvenotices.go similarity index 100% rename from tools/compliance/policy/resolvenotices.go rename to tools/compliance/policy_resolvenotices.go diff --git a/tools/compliance/policy/resolvenotices_test.go b/tools/compliance/policy_resolvenotices_test.go similarity index 100% rename from tools/compliance/policy/resolvenotices_test.go rename to tools/compliance/policy_resolvenotices_test.go diff --git a/tools/compliance/policy/resolveprivacy.go b/tools/compliance/policy_resolveprivacy.go similarity index 100% rename from tools/compliance/policy/resolveprivacy.go rename to tools/compliance/policy_resolveprivacy.go diff --git a/tools/compliance/policy/resolveprivacy_test.go b/tools/compliance/policy_resolveprivacy_test.go similarity index 100% rename from tools/compliance/policy/resolveprivacy_test.go rename to tools/compliance/policy_resolveprivacy_test.go diff --git a/tools/compliance/policy/resolveshare.go b/tools/compliance/policy_resolveshare.go similarity index 100% rename from tools/compliance/policy/resolveshare.go rename to tools/compliance/policy_resolveshare.go diff --git a/tools/compliance/policy/resolveshare_test.go b/tools/compliance/policy_resolveshare_test.go similarity index 100% rename from tools/compliance/policy/resolveshare_test.go rename to tools/compliance/policy_resolveshare_test.go diff --git a/tools/compliance/policy/shareprivacyconflicts.go b/tools/compliance/policy_shareprivacyconflicts.go similarity index 100% rename from tools/compliance/policy/shareprivacyconflicts.go rename to tools/compliance/policy_shareprivacyconflicts.go diff --git a/tools/compliance/policy/shareprivacyconflicts_test.go b/tools/compliance/policy_shareprivacyconflicts_test.go similarity index 100% rename from tools/compliance/policy/shareprivacyconflicts_test.go rename to tools/compliance/policy_shareprivacyconflicts_test.go diff --git a/tools/compliance/policy/shipped.go b/tools/compliance/policy_shipped.go similarity index 100% rename from tools/compliance/policy/shipped.go rename to tools/compliance/policy_shipped.go diff --git a/tools/compliance/policy/shipped_test.go b/tools/compliance/policy_shipped_test.go similarity index 100% rename from tools/compliance/policy/shipped_test.go rename to tools/compliance/policy_shipped_test.go diff --git a/tools/compliance/policy/walk.go b/tools/compliance/policy_walk.go similarity index 100% rename from tools/compliance/policy/walk.go rename to tools/compliance/policy_walk.go diff --git a/tools/compliance/policy/walk_test.go b/tools/compliance/policy_walk_test.go similarity index 100% rename from tools/compliance/policy/walk_test.go rename to tools/compliance/policy_walk_test.go From 38a6193180717326ec7359c9dec9b003962cef09 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 27 Jan 2022 15:26:49 -0800 Subject: [PATCH 4/5] Give compliance a pkgPath Change the pkgPath of compliance to android/soong/tools/compliance to distinguish it from the standard library. Also add a go.mod file so that the Go tools can find the package. Test: go test ./... Change-Id: I061be2b91378db6508e9c88be2548648af8be4e7 --- tools/compliance/Android.bp | 2 +- tools/compliance/cmd/bom.go | 3 ++- tools/compliance/cmd/checkshare.go | 3 ++- tools/compliance/cmd/dumpgraph.go | 3 ++- tools/compliance/cmd/dumpresolutions.go | 3 ++- tools/compliance/cmd/dumpresolutions_test.go | 3 ++- tools/compliance/cmd/htmlnotice.go | 3 ++- tools/compliance/cmd/listshare.go | 3 ++- tools/compliance/cmd/shippedlibs.go | 3 ++- tools/compliance/cmd/textnotice.go | 3 ++- tools/compliance/go.mod | 18 ++++++++++++++++++ 11 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 tools/compliance/go.mod diff --git a/tools/compliance/Android.bp b/tools/compliance/Android.bp index 7d0fb90640..17ce9d9579 100644 --- a/tools/compliance/Android.bp +++ b/tools/compliance/Android.bp @@ -113,5 +113,5 @@ bootstrap_go_package { "golang-protobuf-encoding-prototext", "license_metadata_proto", ], - pkgPath: "compliance", + pkgPath: "android/soong/tools/compliance", } diff --git a/tools/compliance/cmd/bom.go b/tools/compliance/cmd/bom.go index ec0160318f..aaec786da4 100644 --- a/tools/compliance/cmd/bom.go +++ b/tools/compliance/cmd/bom.go @@ -16,7 +16,6 @@ package main import ( "bytes" - "compliance" "flag" "fmt" "io" @@ -24,6 +23,8 @@ import ( "os" "path/filepath" "strings" + + "android/soong/tools/compliance" ) var ( diff --git a/tools/compliance/cmd/checkshare.go b/tools/compliance/cmd/checkshare.go index e2735c3ba8..752d14b884 100644 --- a/tools/compliance/cmd/checkshare.go +++ b/tools/compliance/cmd/checkshare.go @@ -15,13 +15,14 @@ package main import ( - "compliance" "flag" "fmt" "io" "os" "path/filepath" "sort" + + "android/soong/tools/compliance" ) func init() { diff --git a/tools/compliance/cmd/dumpgraph.go b/tools/compliance/cmd/dumpgraph.go index 76fdff3f0c..02ab0258b6 100644 --- a/tools/compliance/cmd/dumpgraph.go +++ b/tools/compliance/cmd/dumpgraph.go @@ -15,7 +15,6 @@ package main import ( - "compliance" "flag" "fmt" "io" @@ -23,6 +22,8 @@ import ( "path/filepath" "sort" "strings" + + "android/soong/tools/compliance" ) var ( diff --git a/tools/compliance/cmd/dumpresolutions.go b/tools/compliance/cmd/dumpresolutions.go index fc8c47c534..463dfadb65 100644 --- a/tools/compliance/cmd/dumpresolutions.go +++ b/tools/compliance/cmd/dumpresolutions.go @@ -15,7 +15,6 @@ package main import ( - "compliance" "flag" "fmt" "io" @@ -23,6 +22,8 @@ import ( "path/filepath" "sort" "strings" + + "android/soong/tools/compliance" ) var ( diff --git a/tools/compliance/cmd/dumpresolutions_test.go b/tools/compliance/cmd/dumpresolutions_test.go index 1abfac7da4..50a631997e 100644 --- a/tools/compliance/cmd/dumpresolutions_test.go +++ b/tools/compliance/cmd/dumpresolutions_test.go @@ -16,10 +16,11 @@ package main import ( "bytes" - "compliance" "fmt" "strings" "testing" + + "android/soong/tools/compliance" ) func Test_plaintext(t *testing.T) { diff --git a/tools/compliance/cmd/htmlnotice.go b/tools/compliance/cmd/htmlnotice.go index 3456a49026..2f59ee0ef3 100644 --- a/tools/compliance/cmd/htmlnotice.go +++ b/tools/compliance/cmd/htmlnotice.go @@ -16,7 +16,6 @@ package main import ( "bytes" - "compliance" "flag" "fmt" "html" @@ -25,6 +24,8 @@ import ( "os" "path/filepath" "strings" + + "android/soong/tools/compliance" ) var ( diff --git a/tools/compliance/cmd/listshare.go b/tools/compliance/cmd/listshare.go index ae9382ef6d..030caa7fd0 100644 --- a/tools/compliance/cmd/listshare.go +++ b/tools/compliance/cmd/listshare.go @@ -15,7 +15,6 @@ package main import ( - "compliance" "flag" "fmt" "io" @@ -23,6 +22,8 @@ import ( "path/filepath" "sort" "strings" + + "android/soong/tools/compliance" ) func init() { diff --git a/tools/compliance/cmd/shippedlibs.go b/tools/compliance/cmd/shippedlibs.go index ee74cad0dc..fddc4896ed 100644 --- a/tools/compliance/cmd/shippedlibs.go +++ b/tools/compliance/cmd/shippedlibs.go @@ -16,13 +16,14 @@ package main import ( "bytes" - "compliance" "flag" "fmt" "io" "io/fs" "os" "path/filepath" + + "android/soong/tools/compliance" ) var ( diff --git a/tools/compliance/cmd/textnotice.go b/tools/compliance/cmd/textnotice.go index 658d6098bf..b89aff1189 100644 --- a/tools/compliance/cmd/textnotice.go +++ b/tools/compliance/cmd/textnotice.go @@ -16,7 +16,6 @@ package main import ( "bytes" - "compliance" "flag" "fmt" "io" @@ -24,6 +23,8 @@ import ( "os" "path/filepath" "strings" + + "android/soong/tools/compliance" ) var ( diff --git a/tools/compliance/go.mod b/tools/compliance/go.mod new file mode 100644 index 0000000000..61e21583aa --- /dev/null +++ b/tools/compliance/go.mod @@ -0,0 +1,18 @@ +module android/soong/tools/compliance + +require google.golang.org/protobuf v0.0.0 + +replace google.golang.org/protobuf v0.0.0 => ../../../../external/golang-protobuf + +require android/soong v0.0.0 + +replace android/soong v0.0.0 => ../../../soong +// Indirect deps from golang-protobuf +exclude github.com/golang/protobuf v1.5.0 + +replace github.com/google/go-cmp v0.5.5 => ../../../../external/go-cmp + +// Indirect dep from go-cmp +exclude golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 + +go 1.18 From d0f05c9eda9c3f6e806e576705c75f4688eb8d93 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 27 Jan 2022 15:40:29 -0800 Subject: [PATCH 5/5] Move compliance commands into subdirectories Move each compliance command into its own directory to avoid Go tooling considering all the files to be a single package and complaining about conflicting global names. Test: go test ./... Change-Id: I3db6310e7368bcc7fe6a3704b40a84078ed44209 --- tools/compliance/Android.bp | 32 +++++++++---------- tools/compliance/cmd/{ => bom}/bom.go | 0 tools/compliance/cmd/{ => bom}/bom_test.go | 11 +++++++ .../cmd/{ => checkshare}/checkshare.go | 0 .../cmd/{ => checkshare}/checkshare_test.go | 11 +++++++ .../cmd/{ => dumpgraph}/dumpgraph.go | 0 .../cmd/{ => dumpgraph}/dumpgraph_test.go | 11 +++++++ .../{ => dumpresolutions}/dumpresolutions.go | 0 .../dumpresolutions_test.go | 11 +++++++ .../cmd/{ => htmlnotice}/htmlnotice.go | 0 .../cmd/{ => htmlnotice}/htmlnotice_test.go | 10 ++++++ .../cmd/{ => listshare}/listshare.go | 0 .../cmd/{ => listshare}/listshare_test.go | 12 +++++++ .../cmd/{ => shippedlibs}/shippedlibs.go | 0 .../cmd/{ => shippedlibs}/shippedlibs_test.go | 11 +++++++ .../cmd/{ => textnotice}/textnotice.go | 0 .../cmd/{ => textnotice}/textnotice_test.go | 10 ++++++ 17 files changed, 103 insertions(+), 16 deletions(-) rename tools/compliance/cmd/{ => bom}/bom.go (100%) rename tools/compliance/cmd/{ => bom}/bom_test.go (96%) rename tools/compliance/cmd/{ => checkshare}/checkshare.go (100%) rename tools/compliance/cmd/{ => checkshare}/checkshare_test.go (96%) rename tools/compliance/cmd/{ => dumpgraph}/dumpgraph.go (100%) rename tools/compliance/cmd/{ => dumpgraph}/dumpgraph_test.go (99%) rename tools/compliance/cmd/{ => dumpresolutions}/dumpresolutions.go (100%) rename tools/compliance/cmd/{ => dumpresolutions}/dumpresolutions_test.go (99%) rename tools/compliance/cmd/{ => htmlnotice}/htmlnotice.go (100%) rename tools/compliance/cmd/{ => htmlnotice}/htmlnotice_test.go (98%) rename tools/compliance/cmd/{ => listshare}/listshare.go (100%) rename tools/compliance/cmd/{ => listshare}/listshare_test.go (97%) rename tools/compliance/cmd/{ => shippedlibs}/shippedlibs.go (100%) rename tools/compliance/cmd/{ => shippedlibs}/shippedlibs_test.go (95%) rename tools/compliance/cmd/{ => textnotice}/textnotice.go (100%) rename tools/compliance/cmd/{ => textnotice}/textnotice_test.go (98%) diff --git a/tools/compliance/Android.bp b/tools/compliance/Android.bp index 17ce9d9579..7037670b93 100644 --- a/tools/compliance/Android.bp +++ b/tools/compliance/Android.bp @@ -19,58 +19,58 @@ package { blueprint_go_binary { name: "bom", - srcs: ["cmd/bom.go"], + srcs: ["cmd/bom/bom.go"], deps: ["compliance-module"], - testSrcs: ["cmd/bom_test.go"], + testSrcs: ["cmd/bom/bom_test.go"], } blueprint_go_binary { name: "checkshare", - srcs: ["cmd/checkshare.go"], + srcs: ["cmd/checkshare/checkshare.go"], deps: ["compliance-module"], - testSrcs: ["cmd/checkshare_test.go"], + testSrcs: ["cmd/checkshare/checkshare_test.go"], } blueprint_go_binary { name: "listshare", - srcs: ["cmd/listshare.go"], + srcs: ["cmd/listshare/listshare.go"], deps: ["compliance-module"], - testSrcs: ["cmd/listshare_test.go"], + testSrcs: ["cmd/listshare/listshare_test.go"], } blueprint_go_binary { name: "dumpgraph", - srcs: ["cmd/dumpgraph.go"], + srcs: ["cmd/dumpgraph/dumpgraph.go"], deps: ["compliance-module"], - testSrcs: ["cmd/dumpgraph_test.go"], + testSrcs: ["cmd/dumpgraph/dumpgraph_test.go"], } blueprint_go_binary { name: "dumpresolutions", - srcs: ["cmd/dumpresolutions.go"], + srcs: ["cmd/dumpresolutions/dumpresolutions.go"], deps: ["compliance-module"], - testSrcs: ["cmd/dumpresolutions_test.go"], + testSrcs: ["cmd/dumpresolutions/dumpresolutions_test.go"], } blueprint_go_binary { name: "htmlnotice", - srcs: ["cmd/htmlnotice.go"], + srcs: ["cmd/htmlnotice/htmlnotice.go"], deps: ["compliance-module"], - testSrcs: ["cmd/htmlnotice_test.go"], + testSrcs: ["cmd/htmlnotice/htmlnotice_test.go"], } blueprint_go_binary { name: "shippedlibs", - srcs: ["cmd/shippedlibs.go"], + srcs: ["cmd/shippedlibs/shippedlibs.go"], deps: ["compliance-module"], - testSrcs: ["cmd/shippedlibs_test.go"], + testSrcs: ["cmd/shippedlibs/shippedlibs_test.go"], } blueprint_go_binary { name: "textnotice", - srcs: ["cmd/textnotice.go"], + srcs: ["cmd/textnotice/textnotice.go"], deps: ["compliance-module"], - testSrcs: ["cmd/textnotice_test.go"], + testSrcs: ["cmd/textnotice/textnotice_test.go"], } bootstrap_go_package { diff --git a/tools/compliance/cmd/bom.go b/tools/compliance/cmd/bom/bom.go similarity index 100% rename from tools/compliance/cmd/bom.go rename to tools/compliance/cmd/bom/bom.go diff --git a/tools/compliance/cmd/bom_test.go b/tools/compliance/cmd/bom/bom_test.go similarity index 96% rename from tools/compliance/cmd/bom_test.go rename to tools/compliance/cmd/bom/bom_test.go index fc61bbf0db..163ac2aaec 100644 --- a/tools/compliance/cmd/bom_test.go +++ b/tools/compliance/cmd/bom/bom_test.go @@ -17,11 +17,22 @@ package main import ( "bufio" "bytes" + "fmt" "os" "strings" "testing" ) +func TestMain(m *testing.M) { + // Change into the parent directory before running the tests + // so they can find the testdata directory. + if err := os.Chdir(".."); err != nil { + fmt.Printf("failed to change to testdata directory: %s\n", err) + os.Exit(1) + } + os.Exit(m.Run()) +} + func Test(t *testing.T) { tests := []struct { condition string diff --git a/tools/compliance/cmd/checkshare.go b/tools/compliance/cmd/checkshare/checkshare.go similarity index 100% rename from tools/compliance/cmd/checkshare.go rename to tools/compliance/cmd/checkshare/checkshare.go diff --git a/tools/compliance/cmd/checkshare_test.go b/tools/compliance/cmd/checkshare/checkshare_test.go similarity index 96% rename from tools/compliance/cmd/checkshare_test.go rename to tools/compliance/cmd/checkshare/checkshare_test.go index 5036aa5f15..4589595ca8 100644 --- a/tools/compliance/cmd/checkshare_test.go +++ b/tools/compliance/cmd/checkshare/checkshare_test.go @@ -17,10 +17,21 @@ package main import ( "bytes" "fmt" + "os" "strings" "testing" ) +func TestMain(m *testing.M) { + // Change into the parent directory before running the tests + // so they can find the testdata directory. + if err := os.Chdir(".."); err != nil { + fmt.Printf("failed to change to testdata directory: %s\n", err) + os.Exit(1) + } + os.Exit(m.Run()) +} + type outcome struct { target string privacyCondition string diff --git a/tools/compliance/cmd/dumpgraph.go b/tools/compliance/cmd/dumpgraph/dumpgraph.go similarity index 100% rename from tools/compliance/cmd/dumpgraph.go rename to tools/compliance/cmd/dumpgraph/dumpgraph.go diff --git a/tools/compliance/cmd/dumpgraph_test.go b/tools/compliance/cmd/dumpgraph/dumpgraph_test.go similarity index 99% rename from tools/compliance/cmd/dumpgraph_test.go rename to tools/compliance/cmd/dumpgraph/dumpgraph_test.go index 6555aab3b6..516c1db04f 100644 --- a/tools/compliance/cmd/dumpgraph_test.go +++ b/tools/compliance/cmd/dumpgraph/dumpgraph_test.go @@ -17,10 +17,21 @@ package main import ( "bytes" "fmt" + "os" "strings" "testing" ) +func TestMain(m *testing.M) { + // Change into the parent directory before running the tests + // so they can find the testdata directory. + if err := os.Chdir(".."); err != nil { + fmt.Printf("failed to change to testdata directory: %s\n", err) + os.Exit(1) + } + os.Exit(m.Run()) +} + func Test_plaintext(t *testing.T) { tests := []struct { condition string diff --git a/tools/compliance/cmd/dumpresolutions.go b/tools/compliance/cmd/dumpresolutions/dumpresolutions.go similarity index 100% rename from tools/compliance/cmd/dumpresolutions.go rename to tools/compliance/cmd/dumpresolutions/dumpresolutions.go diff --git a/tools/compliance/cmd/dumpresolutions_test.go b/tools/compliance/cmd/dumpresolutions/dumpresolutions_test.go similarity index 99% rename from tools/compliance/cmd/dumpresolutions_test.go rename to tools/compliance/cmd/dumpresolutions/dumpresolutions_test.go index 50a631997e..b698bf20a8 100644 --- a/tools/compliance/cmd/dumpresolutions_test.go +++ b/tools/compliance/cmd/dumpresolutions/dumpresolutions_test.go @@ -17,12 +17,23 @@ package main import ( "bytes" "fmt" + "os" "strings" "testing" "android/soong/tools/compliance" ) +func TestMain(m *testing.M) { + // Change into the parent directory before running the tests + // so they can find the testdata directory. + if err := os.Chdir(".."); err != nil { + fmt.Printf("failed to change to testdata directory: %s\n", err) + os.Exit(1) + } + os.Exit(m.Run()) +} + func Test_plaintext(t *testing.T) { tests := []struct { condition string diff --git a/tools/compliance/cmd/htmlnotice.go b/tools/compliance/cmd/htmlnotice/htmlnotice.go similarity index 100% rename from tools/compliance/cmd/htmlnotice.go rename to tools/compliance/cmd/htmlnotice/htmlnotice.go diff --git a/tools/compliance/cmd/htmlnotice_test.go b/tools/compliance/cmd/htmlnotice/htmlnotice_test.go similarity index 98% rename from tools/compliance/cmd/htmlnotice_test.go rename to tools/compliance/cmd/htmlnotice/htmlnotice_test.go index 35a25bf4b3..fc935c10da 100644 --- a/tools/compliance/cmd/htmlnotice_test.go +++ b/tools/compliance/cmd/htmlnotice/htmlnotice_test.go @@ -39,6 +39,16 @@ var ( libReference = regexp.MustCompile(`^\s*
  • (.*)\s*$`) ) +func TestMain(m *testing.M) { + // Change into the parent directory before running the tests + // so they can find the testdata directory. + if err := os.Chdir(".."); err != nil { + fmt.Printf("failed to change to testdata directory: %s\n", err) + os.Exit(1) + } + os.Exit(m.Run()) +} + func Test(t *testing.T) { tests := []struct { condition string diff --git a/tools/compliance/cmd/listshare.go b/tools/compliance/cmd/listshare/listshare.go similarity index 100% rename from tools/compliance/cmd/listshare.go rename to tools/compliance/cmd/listshare/listshare.go diff --git a/tools/compliance/cmd/listshare_test.go b/tools/compliance/cmd/listshare/listshare_test.go similarity index 97% rename from tools/compliance/cmd/listshare_test.go rename to tools/compliance/cmd/listshare/listshare_test.go index 71a0be6506..91e9a43784 100644 --- a/tools/compliance/cmd/listshare_test.go +++ b/tools/compliance/cmd/listshare/listshare_test.go @@ -16,10 +16,22 @@ package main import ( "bytes" + "fmt" + "os" "strings" "testing" ) +func TestMain(m *testing.M) { + // Change into the parent directory before running the tests + // so they can find the testdata directory. + if err := os.Chdir(".."); err != nil { + fmt.Printf("failed to change to testdata directory: %s\n", err) + os.Exit(1) + } + os.Exit(m.Run()) +} + func Test(t *testing.T) { type projectShare struct { project string diff --git a/tools/compliance/cmd/shippedlibs.go b/tools/compliance/cmd/shippedlibs/shippedlibs.go similarity index 100% rename from tools/compliance/cmd/shippedlibs.go rename to tools/compliance/cmd/shippedlibs/shippedlibs.go diff --git a/tools/compliance/cmd/shippedlibs_test.go b/tools/compliance/cmd/shippedlibs/shippedlibs_test.go similarity index 95% rename from tools/compliance/cmd/shippedlibs_test.go rename to tools/compliance/cmd/shippedlibs/shippedlibs_test.go index dbf32745c0..b6aad6dd9f 100644 --- a/tools/compliance/cmd/shippedlibs_test.go +++ b/tools/compliance/cmd/shippedlibs/shippedlibs_test.go @@ -17,11 +17,22 @@ package main import ( "bufio" "bytes" + "fmt" "os" "strings" "testing" ) +func TestMain(m *testing.M) { + // Change into the parent directory before running the tests + // so they can find the testdata directory. + if err := os.Chdir(".."); err != nil { + fmt.Printf("failed to change to testdata directory: %s\n", err) + os.Exit(1) + } + os.Exit(m.Run()) +} + func Test(t *testing.T) { tests := []struct { condition string diff --git a/tools/compliance/cmd/textnotice.go b/tools/compliance/cmd/textnotice/textnotice.go similarity index 100% rename from tools/compliance/cmd/textnotice.go rename to tools/compliance/cmd/textnotice/textnotice.go diff --git a/tools/compliance/cmd/textnotice_test.go b/tools/compliance/cmd/textnotice/textnotice_test.go similarity index 98% rename from tools/compliance/cmd/textnotice_test.go rename to tools/compliance/cmd/textnotice/textnotice_test.go index 8b6a4b5570..7993532667 100644 --- a/tools/compliance/cmd/textnotice_test.go +++ b/tools/compliance/cmd/textnotice/textnotice_test.go @@ -28,6 +28,16 @@ var ( horizontalRule = regexp.MustCompile("^===[=]*===$") ) +func TestMain(m *testing.M) { + // Change into the parent directory before running the tests + // so they can find the testdata directory. + if err := os.Chdir(".."); err != nil { + fmt.Printf("failed to change to testdata directory: %s\n", err) + os.Exit(1) + } + os.Exit(m.Run()) +} + func Test(t *testing.T) { tests := []struct { condition string