Separate apex extraction from the ApexSet
This follows the same pattern as is used by the prebuilt_apex in order to make files encapsulated with a prebuilt .apex file available for use by the rest of the build. It separates the extraction of the appropriate apex from the zip supplied to apex_set into a separate module type whose output is used by the apex_set and will (in a follow up change) be used by the deapexer module too. Bug: 181267622 Test: m droid Change-Id: Icd13ce1f21845494e875d3e092abd4a9d2efca57
This commit is contained in:
@@ -6368,8 +6368,7 @@ func TestAppSetBundle(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestAppSetBundlePrebuilt(t *testing.T) {
|
||||
ctx := testApex(t, "", android.FixtureModifyMockFS(func(fs android.MockFS) {
|
||||
bp := `
|
||||
bp := `
|
||||
apex_set {
|
||||
name: "myapex",
|
||||
filename: "foo_v2.apex",
|
||||
@@ -6377,24 +6376,23 @@ func TestAppSetBundlePrebuilt(t *testing.T) {
|
||||
none: { set: "myapex.apks", },
|
||||
hwaddress: { set: "myapex.hwasan.apks", },
|
||||
},
|
||||
}`
|
||||
fs["Android.bp"] = []byte(bp)
|
||||
}),
|
||||
prepareForTestWithSantitizeHwaddress,
|
||||
)
|
||||
}
|
||||
`
|
||||
ctx := testApex(t, bp, prepareForTestWithSantitizeHwaddress)
|
||||
|
||||
m := ctx.ModuleForTests("myapex", "android_common")
|
||||
extractedApex := m.Output("out/soong/.intermediates/myapex/android_common/foo_v2.apex")
|
||||
// Check that the extractor produces the correct output file from the correct input file.
|
||||
extractorOutput := "out/soong/.intermediates/myapex.apex.extractor/android_common/extracted/myapex.hwasan.apks"
|
||||
|
||||
actual := extractedApex.Inputs
|
||||
if len(actual) != 1 {
|
||||
t.Errorf("expected a single input")
|
||||
}
|
||||
m := ctx.ModuleForTests("myapex.apex.extractor", "android_common")
|
||||
extractedApex := m.Output(extractorOutput)
|
||||
|
||||
expected := "myapex.hwasan.apks"
|
||||
if actual[0].String() != expected {
|
||||
t.Errorf("expected %s, got %s", expected, actual[0].String())
|
||||
}
|
||||
android.AssertArrayString(t, "extractor input", []string{"myapex.hwasan.apks"}, extractedApex.Inputs.Strings())
|
||||
|
||||
// Ditto for the apex.
|
||||
m = ctx.ModuleForTests("myapex", "android_common")
|
||||
copiedApex := m.Output("out/soong/.intermediates/myapex/android_common/foo_v2.apex")
|
||||
|
||||
android.AssertStringEquals(t, "myapex input", extractorOutput, copiedApex.Input.String())
|
||||
}
|
||||
|
||||
func testNoUpdatableJarsInBootImage(t *testing.T, errmsg string, transformDexpreoptConfig func(*dexpreopt.GlobalConfig)) {
|
||||
@@ -7030,10 +7028,10 @@ func TestApexSet(t *testing.T) {
|
||||
}),
|
||||
)
|
||||
|
||||
m := ctx.ModuleForTests("myapex", "android_common")
|
||||
m := ctx.ModuleForTests("myapex.apex.extractor", "android_common")
|
||||
|
||||
// Check extract_apks tool parameters.
|
||||
extractedApex := m.Output("out/soong/.intermediates/myapex/android_common/foo_v2.apex")
|
||||
extractedApex := m.Output("extracted/myapex.apks")
|
||||
actual := extractedApex.Args["abis"]
|
||||
expected := "ARMEABI_V7A,ARM64_V8A"
|
||||
if actual != expected {
|
||||
@@ -7045,6 +7043,7 @@ func TestApexSet(t *testing.T) {
|
||||
t.Errorf("Unexpected abis parameter - expected %q vs actual %q", expected, actual)
|
||||
}
|
||||
|
||||
m = ctx.ModuleForTests("myapex", "android_common")
|
||||
a := m.Module().(*ApexSet)
|
||||
expectedOverrides := []string{"foo"}
|
||||
actualOverrides := android.AndroidMkEntriesForTest(t, ctx, a)[0].EntryMap["LOCAL_OVERRIDES_MODULES"]
|
||||
|
Reference in New Issue
Block a user