Add data_libs
property to cc_test rules
This allows dependencies on link:shared variant of library modules, and adds the shared libraries adjacent to the test binary Test: Manually verified on bionic-unit-tests target Change-Id: I5d406bf9428664c5ac3d3c5915507b750375debb
This commit is contained in:
@@ -526,6 +526,56 @@ func TestVndkUsingCoreVariant(t *testing.T) {
|
||||
checkVndkLibrariesOutput(t, ctx, "vndkcorevariant.libraries.txt", []string{"libc++.so", "libvndk2.so", "libvndk_sp.so"})
|
||||
}
|
||||
|
||||
func TestDataLibs(t *testing.T) {
|
||||
bp := `
|
||||
cc_test_library {
|
||||
name: "test_lib",
|
||||
srcs: ["test_lib.cpp"],
|
||||
gtest: false,
|
||||
}
|
||||
|
||||
cc_test {
|
||||
name: "main_test",
|
||||
data_libs: ["test_lib"],
|
||||
gtest: false,
|
||||
}
|
||||
`
|
||||
|
||||
config := TestConfig(buildDir, android.Android, nil, bp, nil)
|
||||
config.TestProductVariables.DeviceVndkVersion = StringPtr("current")
|
||||
config.TestProductVariables.Platform_vndk_version = StringPtr("VER")
|
||||
config.TestProductVariables.VndkUseCoreVariant = BoolPtr(true)
|
||||
|
||||
ctx := testCcWithConfig(t, config)
|
||||
module := ctx.ModuleForTests("main_test", "android_arm_armv7-a-neon").Module()
|
||||
testBinary := module.(*Module).linker.(*testBinary)
|
||||
outputFiles, err := module.(android.OutputFileProducer).OutputFiles("")
|
||||
if err != nil {
|
||||
t.Errorf("Expected cc_test to produce output files, error: %s", err)
|
||||
return
|
||||
}
|
||||
if len(outputFiles) != 1 {
|
||||
t.Errorf("expected exactly one output file. output files: [%s]", outputFiles)
|
||||
return
|
||||
}
|
||||
if len(testBinary.dataPaths()) != 1 {
|
||||
t.Errorf("expected exactly one test data file. test data files: [%s]", testBinary.dataPaths())
|
||||
return
|
||||
}
|
||||
|
||||
outputPath := outputFiles[0].String()
|
||||
testBinaryPath := testBinary.dataPaths()[0].String()
|
||||
|
||||
if !strings.HasSuffix(outputPath, "/main_test") {
|
||||
t.Errorf("expected test output file to be 'main_test', but was '%s'", outputPath)
|
||||
return
|
||||
}
|
||||
if !strings.HasSuffix(testBinaryPath, "/test_lib.so") {
|
||||
t.Errorf("expected test data file to be 'test_lib.so', but was '%s'", testBinaryPath)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func TestVndkWhenVndkVersionIsNotSet(t *testing.T) {
|
||||
ctx := testCcNoVndk(t, `
|
||||
cc_library {
|
||||
|
Reference in New Issue
Block a user