mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
MDEV-24100 Failed to read test report file: Invalid byte 2 of 3-byte UTF-8 sequence.
Explicitly setting encoding to UTF-8 when writing to file and replacing wide characters from MTR_RES_FAILED when writing to XML file. The wide characters are not allowed in XML.
This commit is contained in:
parent
ce0cb6a4f6
commit
bbbab8215f
1 changed files with 7 additions and 3 deletions
|
|
@ -514,6 +514,10 @@ sub mtr_report_stats ($$$$) {
|
|||
# if a test case has to be retried it should have the result MTR_RES_FAILED in jUnit XML
|
||||
if ($test->{'result'} eq "MTR_RES_FAILED" || $test->{'retries'} > 0) {
|
||||
my $logcontents = $test->{'logfile-failed'} || $test->{'logfile'};
|
||||
# remove any double ] that would end the cdata
|
||||
$logcontents =~ s/]]/\x{fffd}/g;
|
||||
# replace wide characters that aren't allowed in XML 1.0
|
||||
$logcontents =~ s/[\x00-\x08\x0B\x0C\x0E-\x1F]/\x{fffd}/g;
|
||||
|
||||
$xml_report .= qq(>\n\t\t\t<failure message="" type="MTR_RES_FAILED">\n<![CDATA[$logcontents]]>\n\t\t\t</failure>\n\t\t</testcase>\n);
|
||||
} elsif ($test->{'result'} eq "MTR_RES_SKIPPED" && $test->{'disable'}) {
|
||||
|
|
@ -530,9 +534,9 @@ sub mtr_report_stats ($$$$) {
|
|||
# save to file
|
||||
my $xml_file = $::opt_xml_report;
|
||||
|
||||
open XML_FILE, ">", $xml_file or die "Cannot create file $xml_file: $!";
|
||||
print XML_FILE $xml_report;
|
||||
close XML_FILE;
|
||||
open (my $XML_UFILE, '>:encoding(UTF-8)', $xml_file) or die 'Cannot create file $xml_file: $!';
|
||||
print $XML_UFILE $xml_report;
|
||||
close $XML_UFILE or warn "File close failed!";
|
||||
}
|
||||
|
||||
if (@$extra_warnings)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue