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:
@@ -334,6 +334,9 @@ var (
|
|||||||
mixedBuildsDisabledList = []string{
|
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
|
"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.
|
"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
|
// Used for quicker lookups
|
||||||
|
@@ -271,7 +271,7 @@ func AqueryBuildStatements(aqueryJsonProto []byte) ([]BuildStatement, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
buildStatement := BuildStatement{
|
buildStatement := BuildStatement{
|
||||||
Command: strings.Join(proptools.ShellEscapeList(actionEntry.Arguments), " "),
|
Command: strings.Join(proptools.ShellEscapeListIncludingSpaces(actionEntry.Arguments), " "),
|
||||||
Depfile: depfile,
|
Depfile: depfile,
|
||||||
OutputPaths: outputPaths,
|
OutputPaths: outputPaths,
|
||||||
InputPaths: inputPaths,
|
InputPaths: inputPaths,
|
||||||
|
@@ -709,7 +709,7 @@ func TestTransitiveInputDepsets(t *testing.T) {
|
|||||||
}
|
}
|
||||||
expectedBuildStatements := []BuildStatement{
|
expectedBuildStatements := []BuildStatement{
|
||||||
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"},
|
OutputPaths: []string{"bazel-out/sourceroot/k8-fastbuild/bin/testpkg/test_out"},
|
||||||
InputPaths: inputPaths,
|
InputPaths: inputPaths,
|
||||||
Mnemonic: "Action",
|
Mnemonic: "Action",
|
||||||
@@ -1378,7 +1378,7 @@ func assertError(t *testing.T, err error, expected string) {
|
|||||||
func assertBuildStatements(t *testing.T, expected []BuildStatement, actual []BuildStatement) {
|
func assertBuildStatements(t *testing.T, expected []BuildStatement, actual []BuildStatement) {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
if len(expected) != len(actual) {
|
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)
|
len(expected), len(actual), expected, actual)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -1389,7 +1389,7 @@ ACTUAL_LOOP:
|
|||||||
continue 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)
|
actualStatement, expected)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user