Add bpf_test.go to build and fix tests

bpf_test.go was not listed in testSrcs, which meant it was not run
during the build, but ran and failed with go test android/soong/...

Don't redeclare the cc module types and mutators, use exported
functions from cc/testing.go instead, which contain a new
dependency needed by cc modules.

This reapplies I4542640e8ff08e71565ed50617dbe67d86b29b69 after
fixes for mac tests.

Test: m
Test: go test android/soong/...
Change-Id: I3dc3fdedbd7063df4a2e0cadf2a4e0711b1823ad
This commit is contained in:
Colin Cross
2019-05-14 16:05:20 -07:00
parent 0d99f7cd84
commit 815daf95b2
4 changed files with 18 additions and 107 deletions

View File

@@ -20,7 +20,7 @@ import (
"testing"
"android/soong/android"
cc2 "android/soong/cc"
"android/soong/cc"
)
var buildDir string
@@ -49,115 +49,14 @@ func TestMain(m *testing.M) {
}
func testContext(bp string) *android.TestContext {
ctx := android.NewTestArchContext()
ctx.RegisterModuleType("bpf", android.ModuleFactoryAdaptor(bpfFactory))
ctx.RegisterModuleType("cc_test", android.ModuleFactoryAdaptor(cc2.TestFactory))
ctx.RegisterModuleType("cc_library", android.ModuleFactoryAdaptor(cc2.LibraryFactory))
ctx.RegisterModuleType("cc_library_static", android.ModuleFactoryAdaptor(cc2.LibraryStaticFactory))
ctx.RegisterModuleType("cc_object", android.ModuleFactoryAdaptor(cc2.ObjectFactory))
ctx.RegisterModuleType("toolchain_library", android.ModuleFactoryAdaptor(cc2.ToolchainLibraryFactory))
ctx.PreDepsMutators(func(ctx android.RegisterMutatorsContext) {
ctx.BottomUp("link", cc2.LinkageMutator).Parallel()
})
ctx.Register()
// Add some modules that are required by the compiler and/or linker
bp = bp + `
toolchain_library {
name: "libatomic",
vendor_available: true,
recovery_available: true,
src: "",
}
toolchain_library {
name: "libclang_rt.builtins-arm-android",
vendor_available: true,
recovery_available: true,
src: "",
}
toolchain_library {
name: "libclang_rt.builtins-aarch64-android",
vendor_available: true,
recovery_available: true,
src: "",
}
toolchain_library {
name: "libgcc",
vendor_available: true,
recovery_available: true,
src: "",
}
cc_library {
name: "libc",
no_libgcc: true,
nocrt: true,
system_shared_libs: [],
recovery_available: true,
}
cc_library {
name: "libm",
no_libgcc: true,
nocrt: true,
system_shared_libs: [],
recovery_available: true,
}
cc_library {
name: "libdl",
no_libgcc: true,
nocrt: true,
system_shared_libs: [],
recovery_available: true,
}
cc_library {
name: "libgtest",
host_supported: true,
vendor_available: true,
}
cc_library {
name: "libgtest_main",
host_supported: true,
vendor_available: true,
}
cc_object {
name: "crtbegin_dynamic",
recovery_available: true,
vendor_available: true,
}
cc_object {
name: "crtend_android",
recovery_available: true,
vendor_available: true,
}
cc_object {
name: "crtbegin_so",
recovery_available: true,
vendor_available: true,
}
cc_object {
name: "crtend_so",
recovery_available: true,
vendor_available: true,
}
`
mockFS := map[string][]byte{
"Android.bp": []byte(bp),
"bpf.c": nil,
"BpfTest.cpp": nil,
}
ctx.MockFileSystem(mockFS)
ctx := cc.CreateTestContext(bp, mockFS, android.Android)
ctx.RegisterModuleType("bpf", android.ModuleFactoryAdaptor(bpfFactory))
ctx.Register()
return ctx
}
@@ -174,6 +73,7 @@ func TestBpfDataDependency(t *testing.T) {
name: "vts_test_binary_bpf_module",
srcs: ["BpfTest.cpp"],
data: [":bpf.o"],
gtest: false,
}
`