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

Commit 39b614af authored by Cole Faust's avatar Cole Faust
Browse files

Add the system image test to the bazel sandwich

Also make -test.sh files executable, while we wait for a bazel update
that will tell us which FileWrite actions should be executable.

Bug: 297268692
Test: m bazel_sandwich
Change-Id: I60498577ba12813bff8bbdbc1b997ea4addefd17
parent 573eabaa
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1645,5 +1645,9 @@ var (
			Label: "//build/bazel/examples/partitions:system_image",
			Host:  false,
		},
		{
			Label: "//build/bazel/examples/partitions:run_test",
			Host:  false,
		},
	}
)
+8 −1
Original line number Diff line number Diff line
@@ -1382,7 +1382,14 @@ func (c *bazelSingleton) GenerateBuildActions(ctx SingletonContext) {
			WriteFileRuleVerbatim(ctx, out, "")
		case "FileWrite", "SourceSymlinkManifest":
			out := PathForBazelOut(ctx, buildStatement.OutputPaths[0])
			// TODO(b/297366783) This is a hack to make files from skylib's diff_test executable.
			// We need to update bazel to have aquery tell us whether a file is supposed to be
			// executable or not.
			if strings.HasSuffix(buildStatement.OutputPaths[0], "-test.sh") {
				WriteExecutableFileRuleVerbatim(ctx, out, buildStatement.FileContents)
			} else {
				WriteFileRuleVerbatim(ctx, out, buildStatement.FileContents)
			}
		case "SymlinkTree":
			// build-runfiles arguments are the manifest file and the target directory
			// where it creates the symlink tree according to this manifest (and then
+7 −5
Original line number Diff line number Diff line
@@ -209,12 +209,14 @@ func WriteFileRuleVerbatim(ctx BuilderContext, outputFile WritablePath, content
	buildWriteFileRule(ctx, outputFile, content)
}

func CatFileRule(ctx BuilderContext, paths Paths, outputFile WritablePath) {
// WriteExecutableFileRuleVerbatim is the same as WriteFileRuleVerbatim, but runs chmod +x on the result
func WriteExecutableFileRuleVerbatim(ctx BuilderContext, outputFile WritablePath, content string) {
	intermediate := PathForIntermediates(ctx, "write_executable_file_intermediates").Join(ctx, outputFile.String())
	WriteFileRuleVerbatim(ctx, intermediate, content)
	ctx.Build(pctx, BuildParams{
		Rule:        Cat,
		Inputs:      paths,
		Rule:   CpExecutable,
		Output: outputFile,
		Description: "combine files to " + outputFile.Base(),
		Input:  intermediate,
	})
}