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

Commit 3092a8e5 authored by Trevor Radcliffe's avatar Trevor Radcliffe
Browse files

Write Soong tests to confirm Sysprop directories

These tests will break if the sysprop output files and directory
paths are changed. At the very least, this is a good warning to
let us know to change other places accordingly, like the Bazel
rule.

Bug: 235131252
Test: tests
Change-Id: I80f037a6e8fe68cdd2042c64175e0d3bd3fefde3
parent f273470a
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -4111,7 +4111,7 @@ func TestIncludeDirsExporting(t *testing.T) {
			name: "libfoo",
			srcs: [
				"foo.c",
				"a.sysprop",
				"path/to/a.sysprop",
				"b.aidl",
				"a.proto",
			],
@@ -4124,11 +4124,11 @@ func TestIncludeDirsExporting(t *testing.T) {
			`),
			expectedSystemIncludeDirs(``),
			expectedGeneratedHeaders(`
				.intermediates/libfoo/android_arm64_armv8-a_shared/gen/sysprop/include/a.sysprop.h
				.intermediates/libfoo/android_arm64_armv8-a_shared/gen/sysprop/include/path/to/a.sysprop.h
			`),
			expectedOrderOnlyDeps(`
				.intermediates/libfoo/android_arm64_armv8-a_shared/gen/sysprop/include/a.sysprop.h
				.intermediates/libfoo/android_arm64_armv8-a_shared/gen/sysprop/public/include/a.sysprop.h
				.intermediates/libfoo/android_arm64_armv8-a_shared/gen/sysprop/include/path/to/a.sysprop.h
				.intermediates/libfoo/android_arm64_armv8-a_shared/gen/sysprop/public/include/path/to/a.sysprop.h
			`),
		)
	})
+22 −0
Original line number Diff line number Diff line
@@ -74,4 +74,26 @@ func TestGen(t *testing.T) {

	})

	t.Run("sysprop", func(t *testing.T) {
		ctx := testCc(t, `
		cc_library {
			name: "libsysprop",
			srcs: [
				"path/to/foo.sysprop",
			],
		}`)

		outDir := "out/soong/.intermediates/libsysprop/android_arm64_armv8-a_static/gen"
		syspropBuildParams := ctx.ModuleForTests("libsysprop", "android_arm64_armv8-a_static").Rule("sysprop")

		android.AssertStringEquals(t, "header output directory does not match", outDir+"/sysprop/include/path/to", syspropBuildParams.Args["headerOutDir"])
		android.AssertStringEquals(t, "public output directory does not match", outDir+"/sysprop/public/include/path/to", syspropBuildParams.Args["publicOutDir"])
		android.AssertStringEquals(t, "src output directory does not match", outDir+"/sysprop/path/to", syspropBuildParams.Args["srcOutDir"])
		android.AssertStringEquals(t, "output include name does not match", "path/to/foo.sysprop.h", syspropBuildParams.Args["includeName"])
		android.AssertStringEquals(t, "Input file does not match", "path/to/foo.sysprop", syspropBuildParams.Input.String())
		android.AssertStringEquals(t, "Output file does not match", outDir+"/sysprop/path/to/foo.sysprop.cpp", syspropBuildParams.Output.String())
		android.AssertStringListContains(t, "Implicit outputs does not contain header file", syspropBuildParams.ImplicitOutputs.Strings(), outDir+"/sysprop/include/path/to/foo.sysprop.h")
		android.AssertStringListContains(t, "Implicit outputs does not contain public header file", syspropBuildParams.ImplicitOutputs.Strings(), outDir+"/sysprop/public/include/path/to/foo.sysprop.h")
		android.AssertIntEquals(t, "Implicit outputs contains the incorrect number of elements", 2, len(syspropBuildParams.ImplicitOutputs.Strings()))
	})
}