diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2022-05-22 01:18:47 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-05-22 02:25:55 +0300 |
commit | 270ccd2a677766b7a7e22fdc16d6bb310eeda65b (patch) | |
tree | 4d249dc8cde69bdcb5da718d7983e9b37579b75c /t/test-lib-junit.sh | |
parent | 78d5e4cfb4b9f023549596c0d6fd0afdef57d571 (diff) |
test(junit): avoid line feeds in XML attributes
In the test case's output, we do want newline characters, but in the XML
attributes we do not want them.
However, the `xml_attr_encode` function always adds a Line Feed at the
end (which are then encoded as `
`, even for XML attributes.
This seems not to faze Azure Pipelines' XML parser, but it still is
incorrect, so let's fix it.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/test-lib-junit.sh')
-rw-r--r-- | t/test-lib-junit.sh | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/t/test-lib-junit.sh b/t/test-lib-junit.sh index 9d55d74d76..c959183c7e 100644 --- a/t/test-lib-junit.sh +++ b/t/test-lib-junit.sh @@ -50,7 +50,7 @@ finalize_test_case_output () { ;; failure) junit_insert="<failure message=\"not ok $test_count -" - junit_insert="$junit_insert $(xml_attr_encode "$1")\">" + junit_insert="$junit_insert $(xml_attr_encode --no-lf "$1")\">" junit_insert="$junit_insert $(xml_attr_encode \ "$(if test -n "$GIT_TEST_TEE_OUTPUT_FILE" then @@ -74,12 +74,12 @@ finalize_test_case_output () { set "$* (known breakage)" ;; skip) - message="$(xml_attr_encode "$skipped_reason")" + message="$(xml_attr_encode --no-lf "$skipped_reason")" set "$1" " <skipped message=\"$message\" />" ;; esac - junit_attrs="name=\"$(xml_attr_encode "$this_test.$test_count $1")\"" + junit_attrs="name=\"$(xml_attr_encode --no-lf "$this_test.$test_count $1")\"" shift junit_attrs="$junit_attrs classname=\"$this_test\"" junit_attrs="$junit_attrs time=\"$(test-tool \ @@ -122,5 +122,11 @@ write_junit_xml () { } xml_attr_encode () { - printf '%s\n' "$@" | test-tool xml-encode + if test "x$1" = "x--no-lf" + then + shift + printf '%s' "$*" | test-tool xml-encode + else + printf '%s\n' "$@" | test-tool xml-encode + fi } |