Merge "bp2build/queryview: codegen control sequences literally." am: a5dcb03450

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1657881

Change-Id: I16c70676816ff1b8f9e8160c5b862afcb04814ad
This commit is contained in:
Jingwen Chen
2021-03-30 23:14:54 +00:00
committed by Automerger Merge Worker
2 changed files with 23 additions and 0 deletions

View File

@@ -568,6 +568,13 @@ func isZero(value reflect.Value) bool {
func escapeString(s string) string {
s = strings.ReplaceAll(s, "\\", "\\\\")
// b/184026959: Reverse the application of some common control sequences.
// These must be generated literally in the BUILD file.
s = strings.ReplaceAll(s, "\t", "\\t")
s = strings.ReplaceAll(s, "\n", "\\n")
s = strings.ReplaceAll(s, "\r", "\\r")
return strings.ReplaceAll(s, "\"", "\\\"")
}

View File

@@ -239,6 +239,22 @@ func TestGenerateBazelTargetModules(t *testing.T) {
"b",
],
string_prop = "a",
)`,
},
{
bp: `custom {
name: "control_characters",
string_list_prop: ["\t", "\n"],
string_prop: "a\t\n\r",
bazel_module: { bp2build_available: true },
}`,
expectedBazelTarget: `custom(
name = "control_characters",
string_list_prop = [
"\t",
"\n",
],
string_prop = "a\t\n\r",
)`,
},
}