Merge "Access output files thru providers in Soong tests." into main am: fed2be9f98
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3233572 Change-Id: If5bbef16025bfe3d95615398ac4afa97604daf29 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -1038,8 +1038,8 @@ func (m TestingModule) VariablesForTestsRelativeToTop() map[string]string {
|
||||
// Exits the test immediately if there is an error and
|
||||
// otherwise returns the result of calling Paths.RelativeToTop
|
||||
// on the returned Paths.
|
||||
func (m TestingModule) OutputFiles(t *testing.T, tag string) Paths {
|
||||
outputFiles := m.Module().base().outputFiles
|
||||
func (m TestingModule) OutputFiles(ctx *TestContext, t *testing.T, tag string) Paths {
|
||||
outputFiles := OtherModuleProviderOrDefault(ctx.OtherModuleProviderAdaptor(), m.Module(), OutputFilesProvider)
|
||||
if tag == "" && outputFiles.DefaultOutputFiles != nil {
|
||||
return outputFiles.DefaultOutputFiles.RelativeToTop()
|
||||
} else if taggedOutputFiles, hasTag := outputFiles.TaggedOutputFiles[tag]; hasTag {
|
||||
|
@@ -302,7 +302,7 @@ func TestDataLibs(t *testing.T) {
|
||||
ctx := testCcWithConfig(t, config)
|
||||
testingModule := ctx.ModuleForTests("main_test", "android_arm_armv7-a-neon")
|
||||
testBinary := testingModule.Module().(*Module).linker.(*testBinary)
|
||||
outputFiles := testingModule.OutputFiles(t, "")
|
||||
outputFiles := testingModule.OutputFiles(ctx, t, "")
|
||||
if len(outputFiles) != 1 {
|
||||
t.Errorf("expected exactly one output file. output files: [%s]", outputFiles)
|
||||
return
|
||||
@@ -355,7 +355,7 @@ func TestDataLibsRelativeInstallPath(t *testing.T) {
|
||||
testingModule := ctx.ModuleForTests("main_test", "android_arm_armv7-a-neon")
|
||||
module := testingModule.Module()
|
||||
testBinary := module.(*Module).linker.(*testBinary)
|
||||
outputFiles := testingModule.OutputFiles(t, "")
|
||||
outputFiles := testingModule.OutputFiles(ctx, t, "")
|
||||
if len(outputFiles) != 1 {
|
||||
t.Fatalf("expected exactly one output file. output files: [%s]", outputFiles)
|
||||
}
|
||||
@@ -1404,7 +1404,7 @@ func TestDataLibsPrebuiltSharedTestLibrary(t *testing.T) {
|
||||
testingModule := ctx.ModuleForTests("main_test", "android_arm_armv7-a-neon")
|
||||
module := testingModule.Module()
|
||||
testBinary := module.(*Module).linker.(*testBinary)
|
||||
outputFiles := testingModule.OutputFiles(t, "")
|
||||
outputFiles := testingModule.OutputFiles(ctx, t, "")
|
||||
if len(outputFiles) != 1 {
|
||||
t.Errorf("expected exactly one output file. output files: [%s]", outputFiles)
|
||||
}
|
||||
@@ -3111,7 +3111,7 @@ func TestStrippedAllOutputFile(t *testing.T) {
|
||||
config := TestConfig(t.TempDir(), android.Android, nil, bp, nil)
|
||||
ctx := testCcWithConfig(t, config)
|
||||
testingModule := ctx.ModuleForTests("test_lib", "android_arm_armv7-a-neon_shared")
|
||||
outputFile := testingModule.OutputFiles(t, "stripped_all")
|
||||
outputFile := testingModule.OutputFiles(ctx, t, "stripped_all")
|
||||
if !strings.HasSuffix(outputFile.Strings()[0], "/stripped_all/test_lib.so") {
|
||||
t.Errorf("Unexpected output file: %s", outputFile.Strings()[0])
|
||||
return
|
||||
|
@@ -236,7 +236,7 @@ func TestMultilibGenruleOut(t *testing.T) {
|
||||
}
|
||||
`
|
||||
result := PrepareForIntegrationTestWithCc.RunTestWithBp(t, bp)
|
||||
gen_32bit := result.ModuleForTests("gen", "android_arm_armv7-a-neon").OutputFiles(t, "")
|
||||
gen_32bit := result.ModuleForTests("gen", "android_arm_armv7-a-neon").OutputFiles(result.TestContext, t, "")
|
||||
android.AssertPathsEndWith(t,
|
||||
"genrule_out",
|
||||
[]string{
|
||||
@@ -245,7 +245,7 @@ func TestMultilibGenruleOut(t *testing.T) {
|
||||
gen_32bit,
|
||||
)
|
||||
|
||||
gen_64bit := result.ModuleForTests("gen", "android_arm64_armv8-a").OutputFiles(t, "")
|
||||
gen_64bit := result.ModuleForTests("gen", "android_arm64_armv8-a").OutputFiles(result.TestContext, t, "")
|
||||
android.AssertPathsEndWith(t,
|
||||
"genrule_out",
|
||||
[]string{
|
||||
|
@@ -794,47 +794,47 @@ func TestUbsan(t *testing.T) {
|
||||
|
||||
android.AssertStringListContains(t, "missing libclang_rt.ubsan_minimal in bin_with_ubsan static libs",
|
||||
strings.Split(binWithUbsan.Rule("ld").Args["libFlags"], " "),
|
||||
minimalRuntime.OutputFiles(t, "")[0].String())
|
||||
minimalRuntime.OutputFiles(result.TestContext, t, "")[0].String())
|
||||
|
||||
android.AssertStringListContains(t, "missing libclang_rt.ubsan_minimal in bin_depends_ubsan_static static libs",
|
||||
strings.Split(binDependsUbsan.Rule("ld").Args["libFlags"], " "),
|
||||
minimalRuntime.OutputFiles(t, "")[0].String())
|
||||
minimalRuntime.OutputFiles(result.TestContext, t, "")[0].String())
|
||||
|
||||
android.AssertStringListContains(t, "missing libclang_rt.ubsan_minimal in libsharedubsan static libs",
|
||||
strings.Split(libSharedUbsan.Rule("ld").Args["libFlags"], " "),
|
||||
minimalRuntime.OutputFiles(t, "")[0].String())
|
||||
minimalRuntime.OutputFiles(result.TestContext, t, "")[0].String())
|
||||
|
||||
android.AssertStringListDoesNotContain(t, "unexpected libclang_rt.ubsan_minimal in bin_depends_ubsan_shared static libs",
|
||||
strings.Split(binDependsUbsanShared.Rule("ld").Args["libFlags"], " "),
|
||||
minimalRuntime.OutputFiles(t, "")[0].String())
|
||||
minimalRuntime.OutputFiles(result.TestContext, t, "")[0].String())
|
||||
|
||||
android.AssertStringListDoesNotContain(t, "unexpected libclang_rt.ubsan_minimal in bin_no_ubsan static libs",
|
||||
strings.Split(binNoUbsan.Rule("ld").Args["libFlags"], " "),
|
||||
minimalRuntime.OutputFiles(t, "")[0].String())
|
||||
minimalRuntime.OutputFiles(result.TestContext, t, "")[0].String())
|
||||
|
||||
android.AssertStringListContains(t, "missing -Wl,--exclude-libs for minimal runtime in bin_with_ubsan",
|
||||
strings.Split(binWithUbsan.Rule("ld").Args["ldFlags"], " "),
|
||||
"-Wl,--exclude-libs="+minimalRuntime.OutputFiles(t, "")[0].Base())
|
||||
"-Wl,--exclude-libs="+minimalRuntime.OutputFiles(result.TestContext, t, "")[0].Base())
|
||||
|
||||
android.AssertStringListContains(t, "missing -Wl,--exclude-libs for minimal runtime in bin_depends_ubsan_static static libs",
|
||||
strings.Split(binDependsUbsan.Rule("ld").Args["ldFlags"], " "),
|
||||
"-Wl,--exclude-libs="+minimalRuntime.OutputFiles(t, "")[0].Base())
|
||||
"-Wl,--exclude-libs="+minimalRuntime.OutputFiles(result.TestContext, t, "")[0].Base())
|
||||
|
||||
android.AssertStringListContains(t, "missing -Wl,--exclude-libs for minimal runtime in libsharedubsan static libs",
|
||||
strings.Split(libSharedUbsan.Rule("ld").Args["ldFlags"], " "),
|
||||
"-Wl,--exclude-libs="+minimalRuntime.OutputFiles(t, "")[0].Base())
|
||||
"-Wl,--exclude-libs="+minimalRuntime.OutputFiles(result.TestContext, t, "")[0].Base())
|
||||
|
||||
android.AssertStringListDoesNotContain(t, "unexpected -Wl,--exclude-libs for minimal runtime in bin_depends_ubsan_shared static libs",
|
||||
strings.Split(binDependsUbsanShared.Rule("ld").Args["ldFlags"], " "),
|
||||
"-Wl,--exclude-libs="+minimalRuntime.OutputFiles(t, "")[0].Base())
|
||||
"-Wl,--exclude-libs="+minimalRuntime.OutputFiles(result.TestContext, t, "")[0].Base())
|
||||
|
||||
android.AssertStringListDoesNotContain(t, "unexpected -Wl,--exclude-libs for minimal runtime in bin_no_ubsan static libs",
|
||||
strings.Split(binNoUbsan.Rule("ld").Args["ldFlags"], " "),
|
||||
"-Wl,--exclude-libs="+minimalRuntime.OutputFiles(t, "")[0].Base())
|
||||
"-Wl,--exclude-libs="+minimalRuntime.OutputFiles(result.TestContext, t, "")[0].Base())
|
||||
|
||||
android.AssertStringListContains(t, "missing libclang_rt.ubsan_standalone.static in static_bin_with_ubsan_dep static libs",
|
||||
strings.Split(staticBin.Rule("ld").Args["libFlags"], " "),
|
||||
standaloneRuntime.OutputFiles(t, "")[0].String())
|
||||
standaloneRuntime.OutputFiles(result.TestContext, t, "")[0].String())
|
||||
|
||||
}
|
||||
|
||||
|
@@ -713,7 +713,7 @@ func CreateTestContext(config android.Config) *android.TestContext {
|
||||
func checkSnapshotIncludeExclude(t *testing.T, ctx *android.TestContext, singleton android.TestingSingleton, moduleName, snapshotFilename, subDir, variant string, include bool, fake bool) {
|
||||
t.Helper()
|
||||
mod := ctx.ModuleForTests(moduleName, variant)
|
||||
outputFiles := mod.OutputFiles(t, "")
|
||||
outputFiles := mod.OutputFiles(ctx, t, "")
|
||||
if len(outputFiles) != 1 {
|
||||
t.Errorf("%q must have single output\n", moduleName)
|
||||
return
|
||||
|
@@ -159,9 +159,9 @@ func TestAndroidLibraryOutputFilesRel(t *testing.T) {
|
||||
bar := result.ModuleForTests("bar", "android_common")
|
||||
baz := result.ModuleForTests("baz", "android_common")
|
||||
|
||||
fooOutputPaths := foo.OutputFiles(t, "")
|
||||
barOutputPaths := bar.OutputFiles(t, "")
|
||||
bazOutputPaths := baz.OutputFiles(t, "")
|
||||
fooOutputPaths := foo.OutputFiles(result.TestContext, t, "")
|
||||
barOutputPaths := bar.OutputFiles(result.TestContext, t, "")
|
||||
bazOutputPaths := baz.OutputFiles(result.TestContext, t, "")
|
||||
|
||||
android.AssertPathsRelativeToTopEquals(t, "foo output path",
|
||||
[]string{"out/soong/.intermediates/foo/android_common/withres/foo.jar"}, fooOutputPaths)
|
||||
|
@@ -119,7 +119,7 @@ func TestAppSplits(t *testing.T) {
|
||||
foo.Output(expectedOutput)
|
||||
}
|
||||
|
||||
outputFiles := foo.OutputFiles(t, "")
|
||||
outputFiles := foo.OutputFiles(ctx, t, "")
|
||||
android.AssertPathsRelativeToTopEquals(t, `OutputFiles("")`, expectedOutputs, outputFiles)
|
||||
}
|
||||
|
||||
|
@@ -69,7 +69,7 @@ func TestDroiddoc(t *testing.T) {
|
||||
"bar-doc/a.java": nil,
|
||||
"bar-doc/b.java": nil,
|
||||
})
|
||||
barStubsOutputs := ctx.ModuleForTests("bar-stubs", "android_common").OutputFiles(t, "")
|
||||
barStubsOutputs := ctx.ModuleForTests("bar-stubs", "android_common").OutputFiles(ctx, t, "")
|
||||
if len(barStubsOutputs) != 1 {
|
||||
t.Errorf("Expected one output from \"bar-stubs\" got %s", barStubsOutputs)
|
||||
}
|
||||
|
@@ -2919,9 +2919,9 @@ func TestJavaLibraryOutputFilesRel(t *testing.T) {
|
||||
bar := result.ModuleForTests("bar", "android_common")
|
||||
baz := result.ModuleForTests("baz", "android_common")
|
||||
|
||||
fooOutputPaths := foo.OutputFiles(t, "")
|
||||
barOutputPaths := bar.OutputFiles(t, "")
|
||||
bazOutputPaths := baz.OutputFiles(t, "")
|
||||
fooOutputPaths := foo.OutputFiles(result.TestContext, t, "")
|
||||
barOutputPaths := bar.OutputFiles(result.TestContext, t, "")
|
||||
bazOutputPaths := baz.OutputFiles(result.TestContext, t, "")
|
||||
|
||||
android.AssertPathsRelativeToTopEquals(t, "foo output path",
|
||||
[]string{"out/soong/.intermediates/foo/android_common/javac/foo.jar"}, fooOutputPaths)
|
||||
|
@@ -108,7 +108,7 @@ func TestDataLibs(t *testing.T) {
|
||||
|
||||
testingModule := ctx.ModuleForTests("main_test", "android_arm64_armv8-a")
|
||||
testBinary := testingModule.Module().(*Module).compiler.(*testDecorator)
|
||||
outputFiles := testingModule.OutputFiles(t, "")
|
||||
outputFiles := testingModule.OutputFiles(ctx, t, "")
|
||||
if len(outputFiles) != 1 {
|
||||
t.Fatalf("expected exactly one output file. output files: [%s]", outputFiles)
|
||||
}
|
||||
@@ -168,7 +168,7 @@ func TestDataLibsRelativeInstallPath(t *testing.T) {
|
||||
testingModule := ctx.ModuleForTests("main_test", "android_arm64_armv8-a")
|
||||
module := testingModule.Module()
|
||||
testBinary := module.(*Module).compiler.(*testDecorator)
|
||||
outputFiles := testingModule.OutputFiles(t, "")
|
||||
outputFiles := testingModule.OutputFiles(ctx, t, "")
|
||||
if len(outputFiles) != 1 {
|
||||
t.Fatalf("expected exactly one output file. output files: [%s]", outputFiles)
|
||||
}
|
||||
|
Reference in New Issue
Block a user