mirror of
https://github.com/php/php-src.git
synced 2025-01-19 10:13:38 +08:00
Escape non-printable characters in the junit XML output
XML doesn't allow most of the characters < 0x20 and binary output breaks XML parsers. Such characters are not allowed as entities either, so the generated entities are escaped in order to be printed as text.
This commit is contained in:
parent
4c9f6caf39
commit
5270563167
@ -2708,6 +2708,9 @@ function junit_mark_test_as($type, $file_name, $test_name, $time = null, $messag
|
||||
junit_suite_record($suite, 'execution_time', $time);
|
||||
|
||||
$escaped_details = htmlspecialchars($details, ENT_QUOTES, 'UTF-8');
|
||||
$escaped_details = preg_replace_callback('/[\0-\x08\x0B\x0C\x0E-\x1F]/', function ($c) {
|
||||
return sprintf('[[0x%02x]]', ord($c[0]));
|
||||
}, $escaped_details);
|
||||
$escaped_message = htmlspecialchars($message, ENT_QUOTES, 'UTF-8');
|
||||
|
||||
$escaped_test_name = basename($file_name) . ' - ' . htmlspecialchars($test_name, ENT_QUOTES);
|
||||
|
Loading…
Reference in New Issue
Block a user