[lit] Remove ANSI control characters from xunit output
authorAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>
Thu, 6 Aug 2020 07:53:47 +0000 (08:53 +0100)
committerAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>
Thu, 6 Aug 2020 08:16:52 +0000 (09:16 +0100)
commit3b3cdcc7a557a7dbd53e9e8cc311247d6df46c5c
tree8685a354cad31252512a9063c9ba6960e3ea9f3b
parent8803ebcf3b562172687321318c423f39f22b2e5b
[lit] Remove ANSI control characters from xunit output

Failing test output sometimes contains control characters like \x1b (e.g.
if there was some -fcolor-diagnostics output) which are not allowed inside
XML files. This causes problems with CI systems: for example, the Jenkins
JUnit XML will throw an exception when ecountering those characters and
similar problems also occur with GitLab CI.

Reviewed By: yln, jdenny

Differential Revision: https://reviews.llvm.org/D84233
llvm/utils/lit/lit/reports.py
llvm/utils/lit/tests/Inputs/shtest-format/external_shell/fail_with_control_chars.txt [new file with mode: 0644]
llvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-control-chars.py [new file with mode: 0644]
llvm/utils/lit/tests/shtest-format.py