Add test for missing certificate with AllowMissingDependencies
Add a test that verifies that that missing certificate path inserted
when AllowMissingDependencies is set uses a well formed extension
that won't trip up sign_target_files_apks.
Fixes: 259861670
Test: TestCertificates
Change-Id: I00656809698aed5f9d3aaadaecda9848d2882223
diff --git a/java/app_test.go b/java/app_test.go
index e216c63..bc971e3 100644
--- a/java/app_test.go
+++ b/java/app_test.go
@@ -1490,6 +1490,7 @@
testCases := []struct {
name string
bp string
+ allowMissingDependencies bool
certificateOverride string
expectedCertSigningFlags string
expectedCertificate string
@@ -1505,7 +1506,7 @@
`,
certificateOverride: "",
expectedCertSigningFlags: "",
- expectedCertificate: "build/make/target/product/security/testkey.x509.pem build/make/target/product/security/testkey.pk8",
+ expectedCertificate: "build/make/target/product/security/testkey",
},
{
name: "module certificate property",
@@ -1524,7 +1525,7 @@
`,
certificateOverride: "",
expectedCertSigningFlags: "",
- expectedCertificate: "cert/new_cert.x509.pem cert/new_cert.pk8",
+ expectedCertificate: "cert/new_cert",
},
{
name: "path certificate property",
@@ -1538,7 +1539,7 @@
`,
certificateOverride: "",
expectedCertSigningFlags: "",
- expectedCertificate: "build/make/target/product/security/expiredkey.x509.pem build/make/target/product/security/expiredkey.pk8",
+ expectedCertificate: "build/make/target/product/security/expiredkey",
},
{
name: "certificate overrides",
@@ -1557,7 +1558,7 @@
`,
certificateOverride: "foo:new_certificate",
expectedCertSigningFlags: "",
- expectedCertificate: "cert/new_cert.x509.pem cert/new_cert.pk8",
+ expectedCertificate: "cert/new_cert",
},
{
name: "certificate signing flags",
@@ -1578,7 +1579,7 @@
`,
certificateOverride: "",
expectedCertSigningFlags: "--lineage lineage.bin --rotation-min-sdk-version 32",
- expectedCertificate: "cert/new_cert.x509.pem cert/new_cert.pk8",
+ expectedCertificate: "cert/new_cert",
},
{
name: "cert signing flags from filegroup",
@@ -1604,7 +1605,20 @@
`,
certificateOverride: "",
expectedCertSigningFlags: "--lineage lineage.bin --rotation-min-sdk-version 32",
- expectedCertificate: "cert/new_cert.x509.pem cert/new_cert.pk8",
+ expectedCertificate: "cert/new_cert",
+ },
+ {
+ name: "missing with AllowMissingDependencies",
+ bp: `
+ android_app {
+ name: "foo",
+ srcs: ["a.java"],
+ certificate: ":new_certificate",
+ sdk_version: "current",
+ }
+ `,
+ expectedCertificate: "out/soong/.intermediates/foo/android_common/missing",
+ allowMissingDependencies: true,
},
}
@@ -1616,17 +1630,32 @@
if test.certificateOverride != "" {
variables.CertificateOverrides = []string{test.certificateOverride}
}
+ if test.allowMissingDependencies {
+ variables.Allow_missing_dependencies = proptools.BoolPtr(true)
+ }
+ }),
+ android.FixtureModifyContext(func(ctx *android.TestContext) {
+ ctx.SetAllowMissingDependencies(test.allowMissingDependencies)
}),
).RunTestWithBp(t, test.bp)
foo := result.ModuleForTests("foo", "android_common")
- signapk := foo.Output("foo.apk")
- signCertificateFlags := signapk.Args["certificates"]
- android.AssertStringEquals(t, "certificates flags", test.expectedCertificate, signCertificateFlags)
+ certificate := foo.Module().(*AndroidApp).certificate
+ android.AssertPathRelativeToTopEquals(t, "certificates key", test.expectedCertificate+".pk8", certificate.Key)
+ // The sign_target_files_apks and check_target_files_signatures
+ // tools require that certificates have a .x509.pem extension.
+ android.AssertPathRelativeToTopEquals(t, "certificates pem", test.expectedCertificate+".x509.pem", certificate.Pem)
- certSigningFlags := signapk.Args["flags"]
- android.AssertStringEquals(t, "cert signing flags", test.expectedCertSigningFlags, certSigningFlags)
+ signapk := foo.Output("foo.apk")
+ if signapk.Rule != android.ErrorRule {
+ signCertificateFlags := signapk.Args["certificates"]
+ expectedFlags := certificate.Pem.String() + " " + certificate.Key.String()
+ android.AssertStringEquals(t, "certificates flags", expectedFlags, signCertificateFlags)
+
+ certSigningFlags := signapk.Args["flags"]
+ android.AssertStringEquals(t, "cert signing flags", test.expectedCertSigningFlags, certSigningFlags)
+ }
})
}
}