Generate fake versions of modules excluded in directed vendor snapshot.
When using the directed vendor snapshot, the build fails because soong fails to find some variants of the modules that have been excluded from VENDOR_SNAPSHOT_MODULES, even though those modules are not going to be used by the build. The solution implemented here is to generate fake versions of those modules (empty files) and include them in the generated Android.bp, so that soong finds the modules, even though trying to use them would fail. Bug: 171821997 Bug: 179275601 Test: source build/envsetup.sh Test: m -j nothing Change-Id: Ibd3e963ab3e5504c0ac817f7cabbd241bf47a5cb
This commit is contained in:
committed by
Jose "Pepe" Galmes
parent
23c38fa9a7
commit
0a942a0368
@@ -266,7 +266,7 @@ func checkVndkModule(t *testing.T, ctx *android.TestContext, name, subDir string
|
||||
}
|
||||
}
|
||||
|
||||
func checkSnapshotIncludeExclude(t *testing.T, ctx *android.TestContext, singleton android.TestingSingleton, moduleName, snapshotFilename, subDir, variant string, include bool) {
|
||||
func checkSnapshotIncludeExclude(t *testing.T, ctx *android.TestContext, singleton android.TestingSingleton, moduleName, snapshotFilename, subDir, variant string, include bool, fake bool) {
|
||||
t.Helper()
|
||||
mod, ok := ctx.ModuleForTests(moduleName, variant).Module().(android.OutputFileProducer)
|
||||
if !ok {
|
||||
@@ -282,8 +282,14 @@ func checkSnapshotIncludeExclude(t *testing.T, ctx *android.TestContext, singlet
|
||||
|
||||
if include {
|
||||
out := singleton.Output(snapshotPath)
|
||||
if out.Input.String() != outputFiles[0].String() {
|
||||
t.Errorf("The input of snapshot %q must be %q, but %q", moduleName, out.Input.String(), outputFiles[0])
|
||||
if fake {
|
||||
if out.Rule == nil {
|
||||
t.Errorf("Missing rule for module %q output file %q", moduleName, outputFiles[0])
|
||||
}
|
||||
} else {
|
||||
if out.Input.String() != outputFiles[0].String() {
|
||||
t.Errorf("The input of snapshot %q must be %q, but %q", moduleName, out.Input.String(), outputFiles[0])
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out := singleton.MaybeOutput(snapshotPath)
|
||||
@@ -294,11 +300,15 @@ func checkSnapshotIncludeExclude(t *testing.T, ctx *android.TestContext, singlet
|
||||
}
|
||||
|
||||
func checkSnapshot(t *testing.T, ctx *android.TestContext, singleton android.TestingSingleton, moduleName, snapshotFilename, subDir, variant string) {
|
||||
checkSnapshotIncludeExclude(t, ctx, singleton, moduleName, snapshotFilename, subDir, variant, true)
|
||||
checkSnapshotIncludeExclude(t, ctx, singleton, moduleName, snapshotFilename, subDir, variant, true, false)
|
||||
}
|
||||
|
||||
func checkSnapshotExclude(t *testing.T, ctx *android.TestContext, singleton android.TestingSingleton, moduleName, snapshotFilename, subDir, variant string) {
|
||||
checkSnapshotIncludeExclude(t, ctx, singleton, moduleName, snapshotFilename, subDir, variant, false)
|
||||
checkSnapshotIncludeExclude(t, ctx, singleton, moduleName, snapshotFilename, subDir, variant, false, false)
|
||||
}
|
||||
|
||||
func checkSnapshotRule(t *testing.T, ctx *android.TestContext, singleton android.TestingSingleton, moduleName, snapshotFilename, subDir, variant string) {
|
||||
checkSnapshotIncludeExclude(t, ctx, singleton, moduleName, snapshotFilename, subDir, variant, true, true)
|
||||
}
|
||||
|
||||
func checkWriteFileOutput(t *testing.T, params android.TestingBuildParams, expected []string) {
|
||||
|
Reference in New Issue
Block a user