Merge "Fix handling of "android.test.mock" in class loader context." am: 17da06cfd9 am: 94b74f9559 am: deea2844fd

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1467832

Change-Id: Ic7dc1a9bfc02a7407957b3b62beff7f196092d46
This commit is contained in:
Ulyana Trafimovich
2020-10-29 11:45:27 +00:00
committed by Automerger Merge Worker
2 changed files with 8 additions and 3 deletions

View File

@@ -312,8 +312,7 @@ func genClassLoaderContext(ctx android.PathContext, global *GlobalConfig, module
} }
// Conditional class loader context for API version < 30. // Conditional class loader context for API version < 30.
const testBase = "android.test.base" if !classLoaderContexts.addLibs(ctx, 30, module, OptionalCompatUsesLibs30...) {
if !classLoaderContexts.addLibs(ctx, 30, module, testBase) {
return nil return nil
} }
@@ -343,6 +342,9 @@ func fixConditionalClassLoaderContext(clcMap classLoaderContextMap) {
for i, lib := range clc.Names { for i, lib := range clc.Names {
if android.InList(lib, usesLibs) { if android.InList(lib, usesLibs) {
// skip compatibility libraries that are already included in unconditional context // skip compatibility libraries that are already included in unconditional context
} else if lib == AndroidTestMock && !android.InList("android.test.runner", usesLibs) {
// android.test.mock is only needed as a compatibility library (in conditional class
// loader context) if android.test.runner is used, otherwise skip it
} else { } else {
clcMap[sdkVer].addLib(lib, clc.Host[i], clc.Target[i]) clcMap[sdkVer].addLib(lib, clc.Host[i], clc.Target[i])
} }

View File

@@ -2838,6 +2838,7 @@ func TestUsesLibraries(t *testing.T) {
} }
// Test conditional context for target SDK version 30. // Test conditional context for target SDK version 30.
// "android.test.mock" is absent because "android.test.runner" is not used.
if w := `--target-classpath-for-sdk 30` + if w := `--target-classpath-for-sdk 30` +
` /system/framework/android.test.base.jar `; !strings.Contains(cmd, w) { ` /system/framework/android.test.base.jar `; !strings.Contains(cmd, w) {
t.Errorf("wanted %q in %q", w, cmd) t.Errorf("wanted %q in %q", w, cmd)
@@ -2852,8 +2853,10 @@ func TestUsesLibraries(t *testing.T) {
} }
// Test conditional context for target SDK version 30. // Test conditional context for target SDK version 30.
// "android.test.mock" is present because "android.test.runner" is used.
if w := `--target-classpath-for-sdk 30` + if w := `--target-classpath-for-sdk 30` +
` /system/framework/android.test.base.jar `; !strings.Contains(cmd, w) { ` /system/framework/android.test.base.jar` +
`:/system/framework/android.test.mock.jar `; !strings.Contains(cmd, w) {
t.Errorf("wanted %q in %q", w, cmd) t.Errorf("wanted %q in %q", w, cmd)
} }
} }