Quote aquery commands.

Bazel run shell actions begin `bin/bash -c <command>`, without escaping,
the command can be treated as an argument to `bin/bash`.

Test: build/bazel/mixed_droid.sh
Change-Id: I423cb393da2e6ac97448ec77b2596f12670dfd31
This commit is contained in:
Liz Kammer 2021-11-16 17:01:11 -05:00
parent ddeab21340
commit c31929962b
3 changed files with 7 additions and 4 deletions

View file

@ -334,6 +334,9 @@ var (
mixedBuildsDisabledList = []string{
"libbrotli", // http://b/198585397, ld.lld: error: bionic/libc/arch-arm64/generic/bionic/memmove.S:95:(.text+0x10): relocation R_AARCH64_CONDBR19 out of range: -1404176 is not in [-1048576, 1048575]; references __memcpy
"minijail_constants_json", // http://b/200899432, bazel-built cc_genrule does not work in mixed build when it is a dependency of another soong module.
"cap_names.h", // TODO(b/204913827) runfiles need to be handled in mixed builds
"libcap", // TODO(b/204913827) runfiles need to be handled in mixed builds
}
// Used for quicker lookups

View file

@ -271,7 +271,7 @@ func AqueryBuildStatements(aqueryJsonProto []byte) ([]BuildStatement, error) {
}
buildStatement := BuildStatement{
Command: strings.Join(proptools.ShellEscapeList(actionEntry.Arguments), " "),
Command: strings.Join(proptools.ShellEscapeListIncludingSpaces(actionEntry.Arguments), " "),
Depfile: depfile,
OutputPaths: outputPaths,
InputPaths: inputPaths,

View file

@ -709,7 +709,7 @@ func TestTransitiveInputDepsets(t *testing.T) {
}
expectedBuildStatements := []BuildStatement{
BuildStatement{
Command: "/bin/bash -c touch bazel-out/sourceroot/k8-fastbuild/bin/testpkg/test_out",
Command: "/bin/bash -c 'touch bazel-out/sourceroot/k8-fastbuild/bin/testpkg/test_out'",
OutputPaths: []string{"bazel-out/sourceroot/k8-fastbuild/bin/testpkg/test_out"},
InputPaths: inputPaths,
Mnemonic: "Action",
@ -1378,7 +1378,7 @@ func assertError(t *testing.T, err error, expected string) {
func assertBuildStatements(t *testing.T, expected []BuildStatement, actual []BuildStatement) {
t.Helper()
if len(expected) != len(actual) {
t.Errorf("expected %d build statements, but got %d,\n expected: %v,\n actual: %v",
t.Errorf("expected %d build statements, but got %d,\n expected: %#v,\n actual: %#v",
len(expected), len(actual), expected, actual)
return
}
@ -1389,7 +1389,7 @@ ACTUAL_LOOP:
continue ACTUAL_LOOP
}
}
t.Errorf("unexpected build statement %v.\n expected: %v",
t.Errorf("unexpected build statement %#v.\n expected: %#v",
actualStatement, expected)
return
}