Don't panic if no certificates found
Getting the first certificate will panic if there are no certificates, which can happen when AllowMissingDependencies is set and the certificate property is a module reference to a missing module. Only get the first certificate if the list is not nil. Bug: 228379411 Test: TestAppMissingCertificateAllowMissingDependencies Change-Id: I046d75dbbd4f21f4a2b6851f558e430e9879fcff
This commit is contained in:
@@ -2948,3 +2948,24 @@ func TestTargetSdkVersionManifestFixer(t *testing.T) {
|
||||
android.AssertStringDoesContain(t, testCase.name, manifestFixerArgs, "--targetSdkVersion "+testCase.targetSdkVersionExpected)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAppMissingCertificateAllowMissingDependencies(t *testing.T) {
|
||||
result := android.GroupFixturePreparers(
|
||||
PrepareForTestWithJavaDefaultModules,
|
||||
android.PrepareForTestWithAllowMissingDependencies,
|
||||
android.PrepareForTestWithAndroidMk,
|
||||
).RunTestWithBp(t, `
|
||||
android_app {
|
||||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
certificate: ":missing_certificate",
|
||||
sdk_version: "current",
|
||||
}`)
|
||||
|
||||
foo := result.ModuleForTests("foo", "android_common")
|
||||
fooApk := foo.Output("foo.apk")
|
||||
if fooApk.Rule != android.ErrorRule {
|
||||
t.Fatalf("expected ErrorRule for foo.apk, got %s", fooApk.Rule.String())
|
||||
}
|
||||
android.AssertStringDoesContain(t, "expected error rule message", fooApk.Args["error"], "missing dependencies: missing_certificate\n")
|
||||
}
|
||||
|
Reference in New Issue
Block a user