Extract primary apk from apk set zip
Extract and install the primary apk normally, and then unzip the rest of them as a post install command. Bug: 204136549 Test: app_set_test.go Change-Id: I17437ff27f49df6bc91bdbbea6173b46c7d3ec4e
This commit is contained in:
@@ -17,19 +17,20 @@ package java
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"android/soong/android"
|
||||
)
|
||||
|
||||
func TestAndroidAppSet(t *testing.T) {
|
||||
ctx, _ := testJava(t, `
|
||||
result := PrepareForTestWithJavaDefaultModules.RunTestWithBp(t, `
|
||||
android_app_set {
|
||||
name: "foo",
|
||||
set: "prebuilts/apks/app.apks",
|
||||
prerelease: true,
|
||||
}`)
|
||||
module := ctx.ModuleForTests("foo", "android_common")
|
||||
module := result.ModuleForTests("foo", "android_common")
|
||||
const packedSplitApks = "foo.zip"
|
||||
params := module.Output(packedSplitApks)
|
||||
if params.Rule == nil {
|
||||
@@ -41,9 +42,22 @@ func TestAndroidAppSet(t *testing.T) {
|
||||
if s := params.Args["partition"]; s != "system" {
|
||||
t.Errorf("wrong partition value: '%s', expected 'system'", s)
|
||||
}
|
||||
mkEntries := android.AndroidMkEntriesForTest(t, ctx, module.Module())[0]
|
||||
|
||||
android.AssertPathRelativeToTopEquals(t, "incorrect output path",
|
||||
"out/soong/.intermediates/foo/android_common/foo.apk", params.Output)
|
||||
|
||||
android.AssertPathsRelativeToTopEquals(t, "incorrect implicit output paths",
|
||||
[]string{
|
||||
"out/soong/.intermediates/foo/android_common/foo.zip",
|
||||
"out/soong/.intermediates/foo/android_common/apkcerts.txt",
|
||||
},
|
||||
params.ImplicitOutputs.Paths())
|
||||
|
||||
mkEntries := android.AndroidMkEntriesForTest(t, result.TestContext, module.Module())[0]
|
||||
actualInstallFile := mkEntries.EntryMap["LOCAL_APK_SET_INSTALL_FILE"]
|
||||
expectedInstallFile := []string{"foo.apk"}
|
||||
expectedInstallFile := []string{
|
||||
strings.Replace(params.ImplicitOutputs[0].String(), android.OutSoongDir, result.Config.SoongOutDir(), 1),
|
||||
}
|
||||
if !reflect.DeepEqual(actualInstallFile, expectedInstallFile) {
|
||||
t.Errorf("Unexpected LOCAL_APK_SET_INSTALL_FILE value: '%s', expected: '%s',",
|
||||
actualInstallFile, expectedInstallFile)
|
||||
|
Reference in New Issue
Block a user