diff options
| author | 2024-08-20 02:45:22 +0000 | |
|---|---|---|
| committer | 2024-08-20 02:45:22 +0000 | |
| commit | d4daa43150e749a0d0f07eada221b51caa4e8feb (patch) | |
| tree | 34c1174c6f86935159dbd2832c039c9f658b5f7f /apex/apex_test.go | |
| parent | 2d2df8cbfde692972cf8ddca6895fc254307b397 (diff) | |
| parent | 9a419e28f523d8daadda15841089b22f31166a44 (diff) | |
Merge "apex: apex_available with prefix" into main
Diffstat (limited to 'apex/apex_test.go')
| -rw-r--r-- | apex/apex_test.go | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/apex/apex_test.go b/apex/apex_test.go index c37c7d0c7..6b9944d76 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -6722,6 +6722,99 @@ func TestApexAvailable_CreatedForApex(t *testing.T) { } } +func TestApexAvailable_PrefixMatch(t *testing.T) { + + for _, tc := range []struct { + name string + apexAvailable string + expectedError string + }{ + { + name: "prefix matches correctly", + apexAvailable: "com.foo.*", + }, + { + name: "prefix doesn't match", + apexAvailable: "com.bar.*", + expectedError: `Consider .* "com.foo\.\*"`, + }, + { + name: "short prefix", + apexAvailable: "com.*", + expectedError: "requires two or more components", + }, + { + name: "wildcard not in the end", + apexAvailable: "com.*.foo", + expectedError: "should end with .*", + }, + { + name: "wildcard in the middle", + apexAvailable: "com.foo*.*", + expectedError: "not allowed in the middle", + }, + { + name: "hint with prefix pattern", + apexAvailable: "//apex_available:platform", + expectedError: "Consider adding \"com.foo.bar\" or \"com.foo.*\"", + }, + } { + t.Run(tc.name, func(t *testing.T) { + errorHandler := android.FixtureExpectsNoErrors + if tc.expectedError != "" { + errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern(tc.expectedError) + } + context := android.GroupFixturePreparers( + prepareForApexTest, + android.FixtureMergeMockFs(android.MockFS{ + "system/sepolicy/apex/com.foo.bar-file_contexts": nil, + }), + ).ExtendWithErrorHandler(errorHandler) + + context.RunTestWithBp(t, ` + apex { + name: "com.foo.bar", + key: "myapex.key", + native_shared_libs: ["libfoo"], + updatable: false, + } + + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } + + cc_library { + name: "libfoo", + stl: "none", + system_shared_libs: [], + apex_available: ["`+tc.apexAvailable+`"], + }`) + }) + } + testApexError(t, `Consider adding "com.foo" to`, ` + apex { + name: "com.foo", // too short for a partner apex + key: "myapex.key", + native_shared_libs: ["libfoo"], + updatable: false, + } + + apex_key { + name: "myapex.key", + public_key: "testkey.avbpubkey", + private_key: "testkey.pem", + } + + cc_library { + name: "libfoo", + stl: "none", + system_shared_libs: [], + } + `) +} + func TestOverrideApex(t *testing.T) { ctx := testApex(t, ` apex { |