diff options
author | 2019-05-14 16:05:20 -0700 | |
---|---|---|
committer | 2019-05-17 08:43:36 -0700 | |
commit | 815daf95b2a019cc997484841d318ee86e3f8c08 (patch) | |
tree | d1d141e594991c6349cbd724d4f94a71273edcdc | |
parent | 0d99f7cd8419a16132dc0aa3a6f37697dc473aad (diff) |
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
-rw-r--r-- | bpf/Android.bp | 4 | ||||
-rw-r--r-- | bpf/bpf.go | 4 | ||||
-rw-r--r-- | bpf/bpf_test.go | 110 | ||||
-rw-r--r-- | cc/testing.go | 7 |
4 files changed, 18 insertions, 107 deletions
diff --git a/bpf/Android.bp b/bpf/Android.bp index 7bd4d4431..882cd8afe 100644 --- a/bpf/Android.bp +++ b/bpf/Android.bp @@ -21,10 +21,14 @@ bootstrap_go_package { "blueprint", "blueprint-proptools", "soong-android", + "soong-cc", "soong-cc-config", ], srcs: [ "bpf.go", ], + testSrcs: [ + "bpf_test.go", + ], pluginFor: ["soong_build"], } diff --git a/bpf/bpf.go b/bpf/bpf.go index 13468c73f..dcbf9adac 100644 --- a/bpf/bpf.go +++ b/bpf/bpf.go @@ -33,7 +33,7 @@ func init() { var ( pctx = android.NewPackageContext("android/soong/bpf") - cc = pctx.AndroidGomaStaticRule("cc", + ccRule = pctx.AndroidGomaStaticRule("ccRule", blueprint.RuleParams{ Depfile: "${out}.d", Deps: blueprint.DepsGCC, @@ -82,7 +82,7 @@ func (bpf *bpf) GenerateAndroidBuildActions(ctx android.ModuleContext) { obj := android.ObjPathWithExt(ctx, "", src, "o") ctx.Build(pctx, android.BuildParams{ - Rule: cc, + Rule: ccRule, Input: src, Output: obj, Args: map[string]string{ diff --git a/bpf/bpf_test.go b/bpf/bpf_test.go index 1d53e4138..cbb251fad 100644 --- a/bpf/bpf_test.go +++ b/bpf/bpf_test.go @@ -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, } ` diff --git a/cc/testing.go b/cc/testing.go index 162a74600..259fb19e5 100644 --- a/cc/testing.go +++ b/cc/testing.go @@ -148,6 +148,12 @@ func GatherRequiredDepsForTest(os android.OsType) string { } cc_object { + name: "crtbegin_dynamic", + recovery_available: true, + vendor_available: true, + } + + cc_object { name: "crtbegin_static", recovery_available: true, vendor_available: true, @@ -194,6 +200,7 @@ func CreateTestContext(bp string, fs map[string][]byte, ctx.RegisterModuleType("cc_library_shared", android.ModuleFactoryAdaptor(LibrarySharedFactory)) ctx.RegisterModuleType("cc_library_static", android.ModuleFactoryAdaptor(LibraryStaticFactory)) ctx.RegisterModuleType("cc_library_headers", android.ModuleFactoryAdaptor(LibraryHeaderFactory)) + ctx.RegisterModuleType("cc_test", android.ModuleFactoryAdaptor(TestFactory)) ctx.RegisterModuleType("toolchain_library", android.ModuleFactoryAdaptor(ToolchainLibraryFactory)) ctx.RegisterModuleType("llndk_library", android.ModuleFactoryAdaptor(LlndkLibraryFactory)) ctx.RegisterModuleType("llndk_headers", android.ModuleFactoryAdaptor(llndkHeadersFactory)) |