Prevent sdk variants from install
Platform variants should be available even when unbundled_build so that unbundled build of com.android.virt apex can correctly have microdroid image with system variants. Bug: 268582372 Test: m (soong test) Test: banchan com.android.virt aosp_arm64 UNBUNDLED_BUILD_SDKS_FROM_SOURCE=true m apps_only dist (microdroid should have the same contents) Change-Id: I682e4f1f477f3024f7719dfaa67006ef335e0640
This commit is contained in:
@@ -101,3 +101,95 @@ func TestSdkMutator(t *testing.T) {
|
||||
assertDep(t, libsdkNDK, libcxxNDK)
|
||||
assertDep(t, libsdkPlatform, libcxxPlatform)
|
||||
}
|
||||
|
||||
func TestMakeModuleNameForSdkVariant(t *testing.T) {
|
||||
bp := `
|
||||
cc_library {
|
||||
name: "libfoo",
|
||||
srcs: ["main_test.cpp"],
|
||||
sdk_version: "current",
|
||||
stl: "none",
|
||||
}
|
||||
`
|
||||
platformVariant := "android_arm64_armv8-a_shared"
|
||||
sdkVariant := "android_arm64_armv8-a_sdk_shared"
|
||||
testCases := []struct {
|
||||
name string
|
||||
unbundledApps []string
|
||||
variant string
|
||||
skipInstall bool // soong skips install
|
||||
hideFromMake bool // no make entry
|
||||
makeUninstallable bool // make skips install
|
||||
makeModuleName string
|
||||
}{
|
||||
{
|
||||
name: "platform variant in normal builds",
|
||||
unbundledApps: nil,
|
||||
variant: platformVariant,
|
||||
// installable in soong
|
||||
skipInstall: false,
|
||||
// visiable in Make as "libfoo"
|
||||
hideFromMake: false,
|
||||
makeModuleName: "libfoo",
|
||||
// installable in Make
|
||||
makeUninstallable: false,
|
||||
},
|
||||
{
|
||||
name: "sdk variant in normal builds",
|
||||
unbundledApps: nil,
|
||||
variant: sdkVariant,
|
||||
// soong doesn't install
|
||||
skipInstall: true,
|
||||
// visible in Make as "libfoo.sdk"
|
||||
hideFromMake: false,
|
||||
makeModuleName: "libfoo.sdk",
|
||||
// but not installed
|
||||
makeUninstallable: true,
|
||||
},
|
||||
{
|
||||
name: "platform variant in unbunded builds",
|
||||
unbundledApps: []string{"bar"},
|
||||
variant: platformVariant,
|
||||
// installable in soong
|
||||
skipInstall: false,
|
||||
// hidden from make
|
||||
hideFromMake: true,
|
||||
},
|
||||
{
|
||||
name: "sdk variant in unbunded builds",
|
||||
unbundledApps: []string{"bar"},
|
||||
variant: sdkVariant,
|
||||
// soong doesn't install
|
||||
skipInstall: true,
|
||||
// visible in Make as "libfoo"
|
||||
hideFromMake: false,
|
||||
makeModuleName: "libfoo",
|
||||
// but not installed
|
||||
makeUninstallable: true,
|
||||
},
|
||||
}
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
fixture := android.GroupFixturePreparers(prepareForCcTest,
|
||||
android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
|
||||
variables.Unbundled_build_apps = tc.unbundledApps
|
||||
}),
|
||||
)
|
||||
ctx := fixture.RunTestWithBp(t, bp).TestContext
|
||||
module := ctx.ModuleForTests("libfoo", tc.variant).Module().(*Module)
|
||||
android.AssertBoolEquals(t, "IsSkipInstall", tc.skipInstall, module.IsSkipInstall())
|
||||
android.AssertBoolEquals(t, "HideFromMake", tc.hideFromMake, module.HiddenFromMake())
|
||||
if !tc.hideFromMake {
|
||||
entries := android.AndroidMkEntriesForTest(t, ctx, module)[0]
|
||||
android.AssertStringEquals(t, "LOCAL_MODULE",
|
||||
tc.makeModuleName, entries.EntryMap["LOCAL_MODULE"][0])
|
||||
actualUninstallable := false
|
||||
if actual, ok := entries.EntryMap["LOCAL_UNINSTALLABLE_MODULE"]; ok {
|
||||
actualUninstallable = "true" == actual[0]
|
||||
}
|
||||
android.AssertBoolEquals(t, "LOCAL_UNINSTALLABLE_MODULE",
|
||||
tc.makeUninstallable, actualUninstallable)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user