com web/qa: Fix recognition of test filenames: reports/parserfunc.php
| From: | Christoph Michael Becker | Date: | Wed, 25 Jul 2018 21:39:40 +0000 |
| Subject: | com web/qa: Fix recognition of test filenames: reports/parserfunc.php | ||
| Groups: | php.qa | ||
| Request: | Send a blank email to php-qa+get-68142@lists.php.net to get a copy of this message | ||
Commit: 5d9e7526a065b7d661bf5fee6c9aaf222f29ae83
Author: Christoph M. Becker <cmbecker69@gmx.de> Wed, 25 Jul 2018 23:39:40 +0200
Parents: 77ab09143f7d7cb941db5aa256d9290487a9a3ec
Branches: master
Link: http://git.php.net/?p=web/qa.git;a=commitdiff;h=5d9e7526a065b7d661bf5fee6c9aaf222f29ae83
Log:
Fix recognition of test filenames
The filenames of submitted test runs are determined from each line of
the test results, which has the format
testname [filename] for failed
tests. If the testname contains a bracketed phrase, the filename is
not correctly recognized. Expected failing tests have the format
testname [filename] XFAIL REASON: reason, though. We fix this by
asserting that the bracketed filename is either at the end of the
string or that it's been followed by XFAIL.
We also cater to output of redirected tests, which add lines with the
format via [filename], which we have to ignore.
This is supposed to fix the resulting mess that currently can be seen
on <http://qa.php.net/reports/run_tests.php?version=7.2.0>
for new bug
reports.
However, this kind of filename recognition is still fragile, especially
with regard to potential changes of the run-tests.php output. It
might be sensible to change it so it can more reliably be parsed.. We'd
still would have to cater to tests results produced with the present
test runner, though.
Changed paths:
M reports/parserfunc.php
Diff:
diff --git a/reports/parserfunc.php b/reports/parserfunc.php
index 82ea966..6b58770 100644
--- a/reports/parserfunc.php
+++ b/reports/parserfunc.php
@@ -265,7 +265,7 @@ function parse_phpmaketest($version, $status=null, $file)
$currentTest = '';
} elseif ($currentPart == 'failedTest' || $currentPart ==
'expectedFailedTest') {
- preg_match('@ \[([^\]]{1,})\]@', $row, $tab);
+ preg_match('@(?<!via) \[([^\]]{1,})\]\s*(?:$|XFAIL)@', $row, $tab);
if (count($tab) == 2)
if (!isset($extract[$currentPart]) || !in_array($tab[1], $extract[$currentPart]))
$extract[$currentPart][] = $tab[1];