libclang_rt_prebuilt_library_shared mixed builds
Also fix nil deref in setting $LOCAL_SOONG_UNSTRIPPED_BINARY Bug: 201802518 Test: request_type_test.go Test: prebuilt_test.go:TestPrebuiltLibrarySharedWithBazel Test: mixed_{libc,droid}.sh Change-Id: I22afb56c4b42d3412c2b2e1f079f1bcf8f3129a7
This commit is contained in:
parent
2c32bbfd73
commit
c3b97c3568
@@ -19,7 +19,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"android/soong/android"
|
||||
|
||||
"android/soong/bazel/cquery"
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
@@ -378,3 +378,74 @@ func TestPrebuiltLibrarySanitized(t *testing.T) {
|
||||
static2 = ctx.ModuleForTests("libtest_static", "android_arm64_armv8-a_static_hwasan").Module().(*Module)
|
||||
assertString(t, static2.OutputFile().Path().Base(), "libf.hwasan.a")
|
||||
}
|
||||
|
||||
func TestPrebuiltLibrarySharedWithBazelWithoutToc(t *testing.T) {
|
||||
const bp = `
|
||||
cc_prebuilt_library_shared {
|
||||
name: "foo",
|
||||
srcs: ["foo.so"],
|
||||
bazel_module: { label: "//foo/bar:bar" },
|
||||
}`
|
||||
outBaseDir := "outputbase"
|
||||
config := TestConfig(t.TempDir(), android.Android, nil, bp, nil)
|
||||
config.BazelContext = android.MockBazelContext{
|
||||
OutputBaseDir: outBaseDir,
|
||||
LabelToCcInfo: map[string]cquery.CcInfo{
|
||||
"//foo/bar:bar": cquery.CcInfo{
|
||||
CcSharedLibraryFiles: []string{"foo.so"},
|
||||
},
|
||||
},
|
||||
}
|
||||
ctx := testCcWithConfig(t, config)
|
||||
sharedFoo := ctx.ModuleForTests("foo", "android_arm_armv7-a-neon_shared").Module()
|
||||
pathPrefix := outBaseDir + "/execroot/__main__/"
|
||||
|
||||
info := ctx.ModuleProvider(sharedFoo, SharedLibraryInfoProvider).(SharedLibraryInfo)
|
||||
android.AssertPathRelativeToTopEquals(t, "prebuilt shared library",
|
||||
pathPrefix+"foo.so", info.SharedLibrary)
|
||||
android.AssertPathRelativeToTopEquals(t, "prebuilt's 'nullary' ToC",
|
||||
pathPrefix+"foo.so", info.TableOfContents.Path())
|
||||
|
||||
outputFiles, err := sharedFoo.(android.OutputFileProducer).OutputFiles("")
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error getting cc_object outputfiles %s", err)
|
||||
}
|
||||
expectedOutputFiles := []string{pathPrefix + "foo.so"}
|
||||
android.AssertDeepEquals(t, "output files", expectedOutputFiles, outputFiles.Strings())
|
||||
}
|
||||
|
||||
func TestPrebuiltLibrarySharedWithBazelWithToc(t *testing.T) {
|
||||
const bp = `
|
||||
cc_prebuilt_library_shared {
|
||||
name: "foo",
|
||||
srcs: ["foo.so"],
|
||||
bazel_module: { label: "//foo/bar:bar" },
|
||||
}`
|
||||
outBaseDir := "outputbase"
|
||||
config := TestConfig(t.TempDir(), android.Android, nil, bp, nil)
|
||||
config.BazelContext = android.MockBazelContext{
|
||||
OutputBaseDir: outBaseDir,
|
||||
LabelToCcInfo: map[string]cquery.CcInfo{
|
||||
"//foo/bar:bar": cquery.CcInfo{
|
||||
CcSharedLibraryFiles: []string{"foo.so"},
|
||||
TocFile: "toc",
|
||||
},
|
||||
},
|
||||
}
|
||||
ctx := testCcWithConfig(t, config)
|
||||
sharedFoo := ctx.ModuleForTests("foo", "android_arm_armv7-a-neon_shared").Module()
|
||||
pathPrefix := outBaseDir + "/execroot/__main__/"
|
||||
|
||||
info := ctx.ModuleProvider(sharedFoo, SharedLibraryInfoProvider).(SharedLibraryInfo)
|
||||
android.AssertPathRelativeToTopEquals(t, "prebuilt shared library's ToC",
|
||||
pathPrefix+"toc", info.TableOfContents.Path())
|
||||
android.AssertPathRelativeToTopEquals(t, "prebuilt shared library",
|
||||
pathPrefix+"foo.so", info.SharedLibrary)
|
||||
|
||||
outputFiles, err := sharedFoo.(android.OutputFileProducer).OutputFiles("")
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error getting cc_object outputfiles %s", err)
|
||||
}
|
||||
expectedOutputFiles := []string{pathPrefix + "foo.so"}
|
||||
android.AssertDeepEquals(t, "output files", expectedOutputFiles, outputFiles.Strings())
|
||||
}
|
||||
|
Reference in New Issue
Block a user