Francois Gouget : testbot/reporttest: Add TestWTBS information.
Alexandre Julliard
julliard at winehq.org
Tue Feb 9 15:47:09 CST 2021
Module: tools
Branch: master
Commit: 109ed1a6c67d2a0eeb0badb01820807578037bed
URL: https://source.winehq.org/git/tools.git/?a=commit;h=109ed1a6c67d2a0eeb0badb01820807578037bed
Author: Francois Gouget <fgouget at codeweavers.com>
Date: Tue Feb 9 02:27:35 2021 +0100
testbot/reporttest: Add TestWTBS information.
Embed TestWTBS directives and add a --testwtbs option to output the
directives instead of the regular report.
Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
testbot/src/reporttest/Makefile | 2 +-
testbot/src/reporttest/report.testwtbs | 70 ++++++++++++++++++++++++++++++++++
testbot/src/reporttest/reporttest.c | 18 +++++++--
testbot/src/reporttest/reporttest.rc | 1 +
4 files changed, 87 insertions(+), 4 deletions(-)
diff --git a/testbot/src/reporttest/Makefile b/testbot/src/reporttest/Makefile
index f8a927d..152b987 100644
--- a/testbot/src/reporttest/Makefile
+++ b/testbot/src/reporttest/Makefile
@@ -21,7 +21,7 @@ ReportTest.exe: reporttest.obj reporttest.res
.rc.res:
$(CROSSWINDRES) -O coff -o $@ $<
-reporttest.res: report.template
+reporttest.res: report.template report.testwtbs
clean:
rm -f *.obj *.res
diff --git a/testbot/src/reporttest/report.testwtbs b/testbot/src/reporttest/report.testwtbs
new file mode 100644
index 0000000..49ef2c0
--- /dev/null
+++ b/testbot/src/reporttest/report.testwtbs
@@ -0,0 +1,70 @@
+The directives below allow checking the results of a ReportTest.exe
+TestBot run using TestWTBS. To do so use a command of the form:
+
+ tests/TestWTBS --jobs ID --job-wtbs ID src/reporttest/report.testwtbs
+
+Where ID is the identifier of the ReportTest.exe job.
+See the TestWTBS usage for more information about TestWTBS.
+
+As an alternative, if the ReportTest source is not available, extract this file
+with:
+
+ ReportTest.exe -T >report.testwtbs
+
+
+----- TestWTBS -----
+p tests.TestFailures 40
+
+p build.HasTask 0
+a wine.log.GrepV ^Applying patch
+a wine.log.GrepV ^Rebuilding the
+
+g 0 tests.report.advapi32
+n 0 crypt.c:1: Test failed: Something wrong
+n 0 crypt_lmhash.c:10: Test failed: Something wrong
+n 0 crypt_lmhash.c:20: Test failed: Second failure with added diacritics: àéïôÿ
+n 0 crypt_md5.c:20: Test failed: A failure here, presumably in the subprocess
+n 0 crypt_sha.c:20: Test failed: A failure here, presumably in the subprocess
+n 0 eventlog.c:20: Test failed: Something wrong
+n 0 service.c:20: Test failed: A failure in the subprocess
+
+g 0 tests.report.advpack
+n 0 files.c:20: Test failed: A failure in the main process
+n 0 07b0:install: unhandled exception c0000005 at 0040167C
+
+g 0 tests.report.comctl32
+n 0 animate: Timeout
+n 0 comboex.c:40: Test failed: A failure in the main process
+n 0 comboex.c:41: Test succeeded inside todo block: Success in the main process
+n 0 header.c:1: Test failed: Something wrong
+n 0 1234:rebar: unhandled exception c0000005 at 0040167C
+n 0 1234:subclass: unhandled exception c0000005 at 0040167C
+n 0 Do not cut syslink.c:40: Test failed: Something wrong
+n 0 Do not cut syslink.c:41: Test succeeded inside todo block: Something right!
+n 0 driver.c:40: Test failed: Something wrong
+n 0 driver.c:41: Test succeeded inside todo block: Something right!
+
+g 0 tests.report.xmllite
+n 0 writer.c:20: Test failed: A delayed failure, typically in a subprocess
+
+g 0 tests.report.Report validation errors
+n 0 advapi32:eventlog has unaccounted for failure messages
+n 0 advapi32:lsa has no test summary line (early exit of the main process?)
+n 0 advapi32:registry has no test summary line (early exit of the main process?)
+n 0 advapi32:service returned success despite having failures
+n 0 atl:registrar contains a misplaced test summary message for alien
+n 0 browseui:progressdlg has unaccounted for skip messages
+n 0 cabinet:extract is missing some skip messages
+n 0 cmd.exe:batch has unaccounted for todo messages
+n 0 comcat:comcat is missing some todo messages
+n 0 comctl32:datetime is missing some failure messages
+n 0 comctl32:dpa returned a non-zero exit code despite reporting no failures
+n 0 comctl32:header returned success despite having failures
+n 0 comctl32:ipaddress has no done line (or it is garbled)
+n 0 comctl32:misc had no start line (or it is garbled)
+n 0 comctl32:monthcal contains a misplaced todo message for security
+n 0 comctl32:rebar returned success despite having failures
+n 0 comctl32:toolbar has no done line (or it is garbled)
+n 0 xmllite:writer has unaccounted for failure messages
+n 0 xmllite:writer returned success despite having failures
+----- TestWTBS -----
diff --git a/testbot/src/reporttest/reporttest.c b/testbot/src/reporttest/reporttest.c
index e1a8a3d..d2364c9 100644
--- a/testbot/src/reporttest/reporttest.c
+++ b/testbot/src/reporttest/reporttest.c
@@ -44,6 +44,7 @@ static void usage(void)
"\n"
" -C COMMITID Reports the results for this Git commit id.\n"
" -t TAG Reports the results for this tag.\n"
+ " -T Output the TestWTBS directives instead of the standard report.\n"
" --help Print this message and exit.\n"
"Other WineTest options are either ignored or not supported.\n"
);
@@ -52,6 +53,7 @@ static void usage(void)
int main(int argc, char** argv)
{
char *commitid = NULL, *email = NULL, *logname = NULL, *tag = NULL;
+ int testwtbs = 0;
int i;
FILE *logfile;
char *report, *eol;
@@ -156,6 +158,9 @@ int main(int argc, char** argv)
return 2;
}
break;
+ case 'T':
+ testwtbs = 1;
+ break;
case 'x':
/* Nothing to do */
return 0;
@@ -170,16 +175,16 @@ int main(int argc, char** argv)
}
}
- report = extract_rcdata("TESTREPORT", "TESTRES", &size);
+ report = extract_rcdata(testwtbs ? "TESTWTBS" : "TESTREPORT", "TESTRES", &size);
if (!report)
{
- fprintf(stderr, "error: Could not extract the test report (%lu)\n", GetLastError());
+ fprintf(stderr, "error: Could not extract the %s (%lu)\n", testwtbs ? "TestWTBS directives" : "test report", GetLastError());
return 1;
}
if (logname)
{
- logfile = fopen(logname, "w");
+ logfile = fopen(logname, testwtbs ? "wb" : "w");
if (!logfile)
{
fprintf(stderr, "error: Could not open '%s' for writing the test: %s\n", logname, strerror(errno));
@@ -211,6 +216,13 @@ int main(int argc, char** argv)
line[eol-report] = '\0';
report = eol;
+ if (testwtbs)
+ {
+ /* The TestWTBS directives do not require any processing */
+ fputs(line, logfile);
+ continue;
+ }
+
/* Empty lines are only there to make the report more editable */
if (*line == '\n') continue;
diff --git a/testbot/src/reporttest/reporttest.rc b/testbot/src/reporttest/reporttest.rc
index 7dd0fc8..c252250 100644
--- a/testbot/src/reporttest/reporttest.rc
+++ b/testbot/src/reporttest/reporttest.rc
@@ -1 +1,2 @@
TESTREPORT TESTRES "report.template"
+TESTWTBS TESTRES "report.testwtbs"
More information about the wine-cvs
mailing list