diff options
author | 2020-05-14 14:15:24 -0700 | |
---|---|---|
committer | 2020-05-15 11:02:01 -0700 | |
commit | fa00c061873cc89d036d43103956a85cc4b1548c (patch) | |
tree | bcfc394560e738ed5b172ee73410284acd40f44d /apex/apex_test.go | |
parent | a3e88856583c549c59e503e811fc11dea941a55d (diff) |
Add apex_set module.
apex_set takes an .apks file that contains a set of prebuilt apexes with
different configurations. It uses extract_apks to select and install the
best matching one for the current target.
Bug: 153456259
Test: apex_test.go
Test: com.android.media.apks
Change-Id: I1da8bbcf1611b7c580a0cb225856cbd7029cc0a7
Diffstat (limited to 'apex/apex_test.go')
-rw-r--r-- | apex/apex_test.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/apex/apex_test.go b/apex/apex_test.go index 021c3e22a..5461debf4 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -175,6 +175,7 @@ func testApexContext(t *testing.T, bp string, handlers ...testCustomizer) (*andr "testkey2.pem": nil, "myapex-arm64.apex": nil, "myapex-arm.apex": nil, + "myapex.apks": nil, "frameworks/base/api/current.txt": nil, "framework/aidl/a.aidl": nil, "build/make/core/proguard.flags": nil, @@ -218,6 +219,7 @@ func testApexContext(t *testing.T, bp string, handlers ...testCustomizer) (*andr ctx.RegisterModuleType("apex_defaults", defaultsFactory) ctx.RegisterModuleType("prebuilt_apex", PrebuiltFactory) ctx.RegisterModuleType("override_apex", overrideApexFactory) + ctx.RegisterModuleType("apex_set", apexSetFactory) ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators) ctx.PostDepsMutators(android.RegisterOverridePostDepsMutators) @@ -4789,6 +4791,48 @@ func TestTestFor(t *testing.T) { ensureNotContains(t, ldFlags, "mylib/android_arm64_armv8-a_shared_1/mylib.so") } +// TODO(jungjw): Move this to proptools +func intPtr(i int) *int { + return &i +} + +func TestApexSet(t *testing.T) { + ctx, config := testApex(t, ` + apex_set { + name: "myapex", + set: "myapex.apks", + filename: "foo_v2.apex", + overrides: ["foo"], + } + `, func(fs map[string][]byte, config android.Config) { + config.TestProductVariables.Platform_sdk_version = intPtr(30) + config.TestProductVariables.DeviceArch = proptools.StringPtr("arm") + config.TestProductVariables.DeviceSecondaryArch = proptools.StringPtr("arm64") + }) + + m := ctx.ModuleForTests("myapex", "android_common") + + // Check extract_apks tool parameters. + extractedApex := m.Output(buildDir + "/.intermediates/myapex/android_common/foo_v2.apex") + actual := extractedApex.Args["abis"] + expected := "ARMEABI_V7A,ARM64_V8A" + if actual != expected { + t.Errorf("Unexpected abis parameter - expected %q vs actual %q", expected, actual) + } + actual = extractedApex.Args["sdk-version"] + expected = "30" + if actual != expected { + t.Errorf("Unexpected abis parameter - expected %q vs actual %q", expected, actual) + } + + a := m.Module().(*ApexSet) + expectedOverrides := []string{"foo"} + actualOverrides := android.AndroidMkEntriesForTest(t, config, "", a)[0].EntryMap["LOCAL_OVERRIDES_MODULES"] + if !reflect.DeepEqual(actualOverrides, expectedOverrides) { + t.Errorf("Incorrect LOCAL_OVERRIDES_MODULES - expected %q vs actual %q", expectedOverrides, actualOverrides) + } +} + func TestMain(m *testing.M) { run := func() int { setUp() |