diff options
author | 2020-07-01 14:31:13 +0100 | |
---|---|---|
committer | 2020-08-05 09:59:30 +0100 | |
commit | 249386ad698ac0d6eb91ffd036f826725916e2a8 (patch) | |
tree | d82ace4c61f40f85cbad663e652f253e95b1d129 /apex/apex_test.go | |
parent | 9b7b8f169a069bd9011fb7a88174044d6c845760 (diff) |
Add structured representation for colon-separated jar lists.
With the addition of apexes and /system_ext some of the bootclasspath
and system server jars have moved from /system to the new locations.
This has been implemented by using lists of colon-separated strings
called "apex-jar pairs" (although "apex" was misleading as it could
refer to "platform" or "system_ext", not necessarily a real apex).
Using the colon-separated string representation is inconvenient, as it
requires splitting and reassembling the list components many times,
which harms performance and makes error handling difficult. Therefore
this patch refactors the colon-separated lists into a struct that
hides the implementation details.
Test: lunch aosp_cf_x86_phone-userdebug && m
Change-Id: Id248ce639a267076294f4d4d73971da2f2f77208
Diffstat (limited to 'apex/apex_test.go')
-rw-r--r-- | apex/apex_test.go | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/apex/apex_test.go b/apex/apex_test.go index bfd7dfe6a..ddb47fce6 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -5595,13 +5595,15 @@ func TestUpdatable_should_set_min_sdk_version(t *testing.T) { } func TestNoUpdatableJarsInBootImage(t *testing.T) { - var err string var transform func(*dexpreopt.GlobalConfig) + config := android.TestArchConfig(buildDir, nil, "", nil) + ctx := android.PathContextForTesting(config) + t.Run("updatable jar from ART apex in the ART boot image => ok", func(t *testing.T) { transform = func(config *dexpreopt.GlobalConfig) { - config.ArtApexJars = []string{"com.android.art.something:some-art-lib"} + config.ArtApexJars = android.CreateConfiguredJarList(ctx, []string{"com.android.art.something:some-art-lib"}) } testNoUpdatableJarsInBootImage(t, "", transform) }) @@ -5609,7 +5611,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) { t.Run("updatable jar from ART apex in the framework boot image => error", func(t *testing.T) { err = "module 'some-art-lib' from updatable apex 'com.android.art.something' is not allowed in the framework boot image" transform = func(config *dexpreopt.GlobalConfig) { - config.BootJars = []string{"com.android.art.something:some-art-lib"} + config.BootJars = android.CreateConfiguredJarList(ctx, []string{"com.android.art.something:some-art-lib"}) } testNoUpdatableJarsInBootImage(t, err, transform) }) @@ -5617,7 +5619,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) { t.Run("updatable jar from some other apex in the ART boot image => error", func(t *testing.T) { err = "module 'some-updatable-apex-lib' from updatable apex 'some-updatable-apex' is not allowed in the ART boot image" transform = func(config *dexpreopt.GlobalConfig) { - config.ArtApexJars = []string{"some-updatable-apex:some-updatable-apex-lib"} + config.ArtApexJars = android.CreateConfiguredJarList(ctx, []string{"some-updatable-apex:some-updatable-apex-lib"}) } testNoUpdatableJarsInBootImage(t, err, transform) }) @@ -5625,7 +5627,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) { t.Run("non-updatable jar from some other apex in the ART boot image => error", func(t *testing.T) { err = "module 'some-non-updatable-apex-lib' is not allowed in the ART boot image" transform = func(config *dexpreopt.GlobalConfig) { - config.ArtApexJars = []string{"some-non-updatable-apex:some-non-updatable-apex-lib"} + config.ArtApexJars = android.CreateConfiguredJarList(ctx, []string{"some-non-updatable-apex:some-non-updatable-apex-lib"}) } testNoUpdatableJarsInBootImage(t, err, transform) }) @@ -5633,14 +5635,14 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) { t.Run("updatable jar from some other apex in the framework boot image => error", func(t *testing.T) { err = "module 'some-updatable-apex-lib' from updatable apex 'some-updatable-apex' is not allowed in the framework boot image" transform = func(config *dexpreopt.GlobalConfig) { - config.BootJars = []string{"some-updatable-apex:some-updatable-apex-lib"} + config.BootJars = android.CreateConfiguredJarList(ctx, []string{"some-updatable-apex:some-updatable-apex-lib"}) } testNoUpdatableJarsInBootImage(t, err, transform) }) t.Run("non-updatable jar from some other apex in the framework boot image => ok", func(t *testing.T) { transform = func(config *dexpreopt.GlobalConfig) { - config.BootJars = []string{"some-non-updatable-apex:some-non-updatable-apex-lib"} + config.BootJars = android.CreateConfiguredJarList(ctx, []string{"some-non-updatable-apex:some-non-updatable-apex-lib"}) } testNoUpdatableJarsInBootImage(t, "", transform) }) @@ -5648,7 +5650,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) { t.Run("nonexistent jar in the ART boot image => error", func(t *testing.T) { err = "failed to find a dex jar path for module 'nonexistent'" transform = func(config *dexpreopt.GlobalConfig) { - config.ArtApexJars = []string{"platform:nonexistent"} + config.ArtApexJars = android.CreateConfiguredJarList(ctx, []string{"platform:nonexistent"}) } testNoUpdatableJarsInBootImage(t, err, transform) }) @@ -5656,7 +5658,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) { t.Run("nonexistent jar in the framework boot image => error", func(t *testing.T) { err = "failed to find a dex jar path for module 'nonexistent'" transform = func(config *dexpreopt.GlobalConfig) { - config.BootJars = []string{"platform:nonexistent"} + config.BootJars = android.CreateConfiguredJarList(ctx, []string{"platform:nonexistent"}) } testNoUpdatableJarsInBootImage(t, err, transform) }) @@ -5664,14 +5666,14 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) { t.Run("platform jar in the ART boot image => error", func(t *testing.T) { err = "module 'some-platform-lib' is not allowed in the ART boot image" transform = func(config *dexpreopt.GlobalConfig) { - config.ArtApexJars = []string{"platform:some-platform-lib"} + config.ArtApexJars = android.CreateConfiguredJarList(ctx, []string{"platform:some-platform-lib"}) } testNoUpdatableJarsInBootImage(t, err, transform) }) t.Run("platform jar in the framework boot image => ok", func(t *testing.T) { transform = func(config *dexpreopt.GlobalConfig) { - config.BootJars = []string{"platform:some-platform-lib"} + config.BootJars = android.CreateConfiguredJarList(ctx, []string{"platform:some-platform-lib"}) } testNoUpdatableJarsInBootImage(t, "", transform) }) |