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

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

Merge "Move cc_object tests to object_test.go"

parents 91fc8cbc 25f369fd
Loading
Loading
Loading
Loading
+0 −53
Original line number Diff line number Diff line
@@ -3778,59 +3778,6 @@ func TestMinSdkVersionInClangTriple(t *testing.T) {
	android.AssertStringDoesContain(t, "min sdk version", cFlags, "-target aarch64-linux-android29")
}

func TestMinSdkVersionsOfCrtObjects(t *testing.T) {
	ctx := testCc(t, `
		cc_object {
			name: "crt_foo",
			srcs: ["foo.c"],
			crt: true,
			stl: "none",
			min_sdk_version: "28",

		}`)

	arch := "android_arm64_armv8-a"
	for _, v := range []string{"", "28", "29", "30", "current"} {
		var variant string
		if v == "" {
			variant = arch
		} else {
			variant = arch + "_sdk_" + v
		}
		cflags := ctx.ModuleForTests("crt_foo", variant).Rule("cc").Args["cFlags"]
		vNum := v
		if v == "current" || v == "" {
			vNum = "10000"
		}
		expected := "-target aarch64-linux-android" + vNum + " "
		android.AssertStringDoesContain(t, "cflag", cflags, expected)
	}
}

func TestUseCrtObjectOfCorrectVersion(t *testing.T) {
	ctx := testCc(t, `
		cc_binary {
			name: "bin",
			srcs: ["foo.c"],
			stl: "none",
			min_sdk_version: "29",
			sdk_version: "current",
		}
		`)

	// Sdk variant uses the crt object of the matching min_sdk_version
	variant := "android_arm64_armv8-a_sdk"
	crt := ctx.ModuleForTests("bin", variant).Rule("ld").Args["crtBegin"]
	android.AssertStringDoesContain(t, "crt dep of sdk variant", crt,
		variant+"_29/crtbegin_dynamic.o")

	// platform variant uses the crt object built for platform
	variant = "android_arm64_armv8-a"
	crt = ctx.ModuleForTests("bin", variant).Rule("ld").Args["crtBegin"]
	android.AssertStringDoesContain(t, "crt dep of platform variant", crt,
		variant+"/crtbegin_dynamic.o")
}

type MemtagNoteType int

const (
+54 −0
Original line number Diff line number Diff line
@@ -19,6 +19,60 @@ import (
	"testing"
)

func TestMinSdkVersionsOfCrtObjects(t *testing.T) {
	ctx := testCc(t, `
		cc_object {
			name: "crt_foo",
			srcs: ["foo.c"],
			crt: true,
			stl: "none",
			min_sdk_version: "28",

		}`)

	arch := "android_arm64_armv8-a"
	for _, v := range []string{"", "28", "29", "30", "current"} {
		var variant string
		// platform variant
		if v == "" {
			variant = arch
		} else {
			variant = arch + "_sdk_" + v
		}
		cflags := ctx.ModuleForTests("crt_foo", variant).Rule("cc").Args["cFlags"]
		vNum := v
		if v == "current" || v == "" {
			vNum = "10000"
		}
		expected := "-target aarch64-linux-android" + vNum + " "
		android.AssertStringDoesContain(t, "cflag", cflags, expected)
	}
}

func TestUseCrtObjectOfCorrectVersion(t *testing.T) {
	ctx := testCc(t, `
		cc_binary {
			name: "bin",
			srcs: ["foo.c"],
			stl: "none",
			min_sdk_version: "29",
			sdk_version: "current",
		}
		`)

	// Sdk variant uses the crt object of the matching min_sdk_version
	variant := "android_arm64_armv8-a_sdk"
	crt := ctx.ModuleForTests("bin", variant).Rule("ld").Args["crtBegin"]
	android.AssertStringDoesContain(t, "crt dep of sdk variant", crt,
		variant+"_29/crtbegin_dynamic.o")

	// platform variant uses the crt object built for platform
	variant = "android_arm64_armv8-a"
	crt = ctx.ModuleForTests("bin", variant).Rule("ld").Args["crtBegin"]
	android.AssertStringDoesContain(t, "crt dep of platform variant", crt,
		variant+"/crtbegin_dynamic.o")
}

func TestLinkerScript(t *testing.T) {
	t.Run("script", func(t *testing.T) {
		testCc(t, `