Convert TestUsesLibraries to test fixtures

This test relies on files provided by javaMockFS() so has been
converted to test fixtures to allow it to remove that dependency which
will allow javaMockFS() to be removed.

Bug: 182638834
Test: m nothing
Change-Id: I77b0205c91ff94b1c3c9ca00d4711451e3671571
This commit is contained in:
Paul Duffin
2021-03-12 23:04:46 +00:00
parent 645610e791
commit d234b418a5

View File

@@ -2360,15 +2360,14 @@ func TestUsesLibraries(t *testing.T) {
} }
` `
config := testAppConfig(nil, bp, nil) result := javaFixtureFactory.Extend(
config.TestProductVariables.MissingUsesLibraries = []string{"baz"} android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
variables.MissingUsesLibraries = []string{"baz"}
}),
).RunTestWithBp(t, bp)
ctx := testContext(config) app := result.ModuleForTests("app", "android_common")
prebuilt := result.ModuleForTests("prebuilt", "android_common")
run(t, ctx, config)
app := ctx.ModuleForTests("app", "android_common")
prebuilt := ctx.ModuleForTests("prebuilt", "android_common")
// Test that implicit dependencies on java_sdk_library instances are passed to the manifest. // Test that implicit dependencies on java_sdk_library instances are passed to the manifest.
// This should not include explicit `uses_libs`/`optional_uses_libs` entries. // This should not include explicit `uses_libs`/`optional_uses_libs` entries.
@@ -2380,10 +2379,7 @@ func TestUsesLibraries(t *testing.T) {
`--uses-library com.non.sdk.lib ` + // TODO(b/132357300): "com.non.sdk.lib" should not be passed to manifest_fixer `--uses-library com.non.sdk.lib ` + // TODO(b/132357300): "com.non.sdk.lib" should not be passed to manifest_fixer
`--uses-library bar ` + // TODO(b/132357300): "bar" should not be passed to manifest_fixer `--uses-library bar ` + // TODO(b/132357300): "bar" should not be passed to manifest_fixer
`--uses-library runtime-library` `--uses-library runtime-library`
if actualManifestFixerArgs != expectManifestFixerArgs { android.AssertStringEquals(t, "manifest_fixer args", expectManifestFixerArgs, actualManifestFixerArgs)
t.Errorf("unexpected manifest_fixer args:\n\texpect: %q\n\tactual: %q",
expectManifestFixerArgs, actualManifestFixerArgs)
}
// Test that all libraries are verified (library order matters). // Test that all libraries are verified (library order matters).
verifyCmd := app.Rule("verify_uses_libraries").RuleParams.Command verifyCmd := app.Rule("verify_uses_libraries").RuleParams.Command
@@ -2394,9 +2390,7 @@ func TestUsesLibraries(t *testing.T) {
`--uses-library runtime-library ` + `--uses-library runtime-library ` +
`--optional-uses-library bar ` + `--optional-uses-library bar ` +
`--optional-uses-library baz ` `--optional-uses-library baz `
if !strings.Contains(verifyCmd, verifyArgs) { android.AssertStringDoesContain(t, "verify cmd args", verifyCmd, verifyArgs)
t.Errorf("wanted %q in %q", verifyArgs, verifyCmd)
}
// Test that all libraries are verified for an APK (library order matters). // Test that all libraries are verified for an APK (library order matters).
verifyApkCmd := prebuilt.Rule("verify_uses_libraries").RuleParams.Command verifyApkCmd := prebuilt.Rule("verify_uses_libraries").RuleParams.Command
@@ -2405,9 +2399,7 @@ func TestUsesLibraries(t *testing.T) {
`--uses-library android.test.runner ` + `--uses-library android.test.runner ` +
`--optional-uses-library bar ` + `--optional-uses-library bar ` +
`--optional-uses-library baz ` `--optional-uses-library baz `
if !strings.Contains(verifyApkCmd, verifyApkArgs) { android.AssertStringDoesContain(t, "verify apk cmd args", verifyApkCmd, verifyApkArgs)
t.Errorf("wanted %q in %q", verifyApkArgs, verifyApkCmd)
}
// Test that all present libraries are preopted, including implicit SDK dependencies, possibly stubs // Test that all present libraries are preopted, including implicit SDK dependencies, possibly stubs
cmd := app.Rule("dexpreopt").RuleParams.Command cmd := app.Rule("dexpreopt").RuleParams.Command
@@ -2418,46 +2410,39 @@ func TestUsesLibraries(t *testing.T) {
`PCL[/system/framework/non-sdk-lib.jar]#` + `PCL[/system/framework/non-sdk-lib.jar]#` +
`PCL[/system/framework/bar.jar]#` + `PCL[/system/framework/bar.jar]#` +
`PCL[/system/framework/runtime-library.jar]` `PCL[/system/framework/runtime-library.jar]`
if !strings.Contains(cmd, w) { android.AssertStringDoesContain(t, "dexpreopt app cmd args", cmd, w)
t.Errorf("wanted %q in %q", w, cmd)
}
// Test conditional context for target SDK version 28. // Test conditional context for target SDK version 28.
if w := `--target-context-for-sdk 28` + android.AssertStringDoesContain(t, "dexpreopt app cmd 28", cmd,
` PCL[/system/framework/org.apache.http.legacy.jar] `; !strings.Contains(cmd, w) { `--target-context-for-sdk 28`+
t.Errorf("wanted %q in %q", w, cmd) ` PCL[/system/framework/org.apache.http.legacy.jar] `)
}
// Test conditional context for target SDK version 29. // Test conditional context for target SDK version 29.
if w := `--target-context-for-sdk 29` + android.AssertStringDoesContain(t, "dexpreopt app cmd 29", cmd,
`--target-context-for-sdk 29`+
` PCL[/system/framework/android.hidl.manager-V1.0-java.jar]`+ ` PCL[/system/framework/android.hidl.manager-V1.0-java.jar]`+
`#PCL[/system/framework/android.hidl.base-V1.0-java.jar] `; !strings.Contains(cmd, w) { `#PCL[/system/framework/android.hidl.base-V1.0-java.jar] `)
t.Errorf("wanted %q in %q", w, cmd)
}
// 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. // "android.test.mock" is absent because "android.test.runner" is not used.
if w := `--target-context-for-sdk 30` + android.AssertStringDoesContain(t, "dexpreopt app cmd 30", cmd,
` PCL[/system/framework/android.test.base.jar] `; !strings.Contains(cmd, w) { `--target-context-for-sdk 30`+
t.Errorf("wanted %q in %q", w, cmd) ` PCL[/system/framework/android.test.base.jar] `)
}
cmd = prebuilt.Rule("dexpreopt").RuleParams.Command cmd = prebuilt.Rule("dexpreopt").RuleParams.Command
if w := `--target-context-for-sdk any` + android.AssertStringDoesContain(t, "dexpreopt prebuilt cmd", cmd,
`--target-context-for-sdk any`+
` PCL[/system/framework/foo.jar]`+ ` PCL[/system/framework/foo.jar]`+
`#PCL[/system/framework/non-sdk-lib.jar]`+ `#PCL[/system/framework/non-sdk-lib.jar]`+
`#PCL[/system/framework/android.test.runner.jar]`+ `#PCL[/system/framework/android.test.runner.jar]`+
`#PCL[/system/framework/bar.jar] `; !strings.Contains(cmd, w) { `#PCL[/system/framework/bar.jar] `)
t.Errorf("wanted %q in %q", w, cmd)
}
// 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. // "android.test.mock" is present because "android.test.runner" is used.
if w := `--target-context-for-sdk 30` + android.AssertStringDoesContain(t, "dexpreopt prebuilt cmd 30", cmd,
`--target-context-for-sdk 30`+
` PCL[/system/framework/android.test.base.jar]`+ ` PCL[/system/framework/android.test.base.jar]`+
`#PCL[/system/framework/android.test.mock.jar] `; !strings.Contains(cmd, w) { `#PCL[/system/framework/android.test.mock.jar] `)
t.Errorf("wanted %q in %q", w, cmd)
}
} }
func TestCodelessApp(t *testing.T) { func TestCodelessApp(t *testing.T) {