Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 045f0f1f authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge changes I3dc3fded,Ic1276329,I6be04dec

* changes:
  Add bpf_test.go to build and fix tests
  Don't create a second host arch for tests on darwin
  Move CreateTestContext to cc/testing.go
parents 77c22bf0 815daf95
Loading
Loading
Loading
Loading
+10 −12
Original line number Diff line number Diff line
@@ -235,20 +235,14 @@ func TestConfig(buildDir string, env map[string]string) Config {
}

func TestArchConfigNativeBridge(buildDir string, env map[string]string) Config {
	testConfig := TestConfig(buildDir, env)
	testConfig := TestArchConfig(buildDir, env)
	config := testConfig.config

	config.Targets = map[OsType][]Target{
		Android: []Target{
	config.Targets[Android] = []Target{
		{Android, Arch{ArchType: X86_64, ArchVariant: "silvermont", Native: true, Abi: []string{"arm64-v8a"}}, NativeBridgeDisabled},
		{Android, Arch{ArchType: X86, ArchVariant: "silvermont", Native: true, Abi: []string{"armeabi-v7a"}}, NativeBridgeDisabled},
		{Android, Arch{ArchType: Arm64, ArchVariant: "armv8-a", Native: true, Abi: []string{"arm64-v8a"}}, NativeBridgeEnabled},
		{Android, Arch{ArchType: Arm, ArchVariant: "armv7-a-neon", Native: true, Abi: []string{"armeabi-v7a"}}, NativeBridgeEnabled},
		},
		BuildOs: []Target{
			{BuildOs, Arch{ArchType: X86_64}, NativeBridgeDisabled},
			{BuildOs, Arch{ArchType: X86}, NativeBridgeDisabled},
		},
	}

	return testConfig
@@ -286,6 +280,10 @@ func TestArchConfig(buildDir string, env map[string]string) Config {
		},
	}

	if runtime.GOOS == "darwin" {
		config.Targets[BuildOs] = config.Targets[BuildOs][:1]
	}

	config.BuildOsVariant = config.Targets[BuildOs][0].String()
	config.BuildOsCommonVariant = getCommonTargets(config.Targets[BuildOs])[0].String()
	config.TestProductVariables.DeviceArch = proptools.StringPtr("arm64")
+4 −0
Original line number Diff line number Diff line
@@ -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"],
}
+2 −2
Original line number Diff line number Diff line
@@ -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{
+5 −105
Original line number Diff line number Diff line
@@ -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,
		}
	`

+2 −53
Original line number Diff line number Diff line
@@ -52,64 +52,13 @@ func TestMain(m *testing.M) {
	os.Exit(run())
}

func createTestContext(t *testing.T, config android.Config, bp string, fs map[string][]byte,
	os android.OsType) *android.TestContext {

	ctx := android.NewTestArchContext()
	ctx.RegisterModuleType("cc_binary", android.ModuleFactoryAdaptor(BinaryFactory))
	ctx.RegisterModuleType("cc_binary_host", android.ModuleFactoryAdaptor(binaryHostFactory))
	ctx.RegisterModuleType("cc_library", android.ModuleFactoryAdaptor(LibraryFactory))
	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("toolchain_library", android.ModuleFactoryAdaptor(ToolchainLibraryFactory))
	ctx.RegisterModuleType("llndk_library", android.ModuleFactoryAdaptor(LlndkLibraryFactory))
	ctx.RegisterModuleType("llndk_headers", android.ModuleFactoryAdaptor(llndkHeadersFactory))
	ctx.RegisterModuleType("vendor_public_library", android.ModuleFactoryAdaptor(vendorPublicLibraryFactory))
	ctx.RegisterModuleType("cc_object", android.ModuleFactoryAdaptor(ObjectFactory))
	ctx.RegisterModuleType("filegroup", android.ModuleFactoryAdaptor(android.FileGroupFactory))
	ctx.PreDepsMutators(func(ctx android.RegisterMutatorsContext) {
		ctx.BottomUp("image", ImageMutator).Parallel()
		ctx.BottomUp("link", LinkageMutator).Parallel()
		ctx.BottomUp("vndk", VndkMutator).Parallel()
		ctx.BottomUp("version", VersionMutator).Parallel()
		ctx.BottomUp("begin", BeginMutator).Parallel()
	})
	ctx.PostDepsMutators(func(ctx android.RegisterMutatorsContext) {
		ctx.TopDown("double_loadable", checkDoubleLoadableLibraries).Parallel()
	})
	ctx.RegisterSingletonType("vndk-snapshot", android.SingletonFactoryAdaptor(VndkSnapshotSingleton))

	// add some modules that are required by the compiler and/or linker
	bp = bp + GatherRequiredDepsForTest(os)

	mockFS := map[string][]byte{
		"Android.bp":  []byte(bp),
		"foo.c":       nil,
		"bar.c":       nil,
		"a.proto":     nil,
		"b.aidl":      nil,
		"my_include":  nil,
		"foo.map.txt": nil,
		"liba.so":     nil,
	}

	for k, v := range fs {
		mockFS[k] = v
	}

	ctx.MockFileSystem(mockFS)

	return ctx
}

func testCcWithConfig(t *testing.T, bp string, config android.Config) *android.TestContext {
	return testCcWithConfigForOs(t, bp, config, android.Android)
}

func testCcWithConfigForOs(t *testing.T, bp string, config android.Config, os android.OsType) *android.TestContext {
	t.Helper()
	ctx := createTestContext(t, config, bp, nil, os)
	ctx := CreateTestContext(bp, nil, os)
	ctx.Register()

	_, errs := ctx.ParseFileList(".", []string{"Android.bp"})
@@ -143,7 +92,7 @@ func testCcError(t *testing.T, pattern string, bp string) {
	config.TestProductVariables.DeviceVndkVersion = StringPtr("current")
	config.TestProductVariables.Platform_vndk_version = StringPtr("VER")

	ctx := createTestContext(t, config, bp, nil, android.Android)
	ctx := CreateTestContext(bp, nil, android.Android)
	ctx.Register()

	_, errs := ctx.ParseFileList(".", []string{"Android.bp"})
Loading