diff options
author | Ben Gamari <ben@smart-cactus.org> | 2019-01-24 14:33:26 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2019-01-24 14:33:26 -0500 |
commit | 2e3118f54d0e54a7d8ecd3d20f4c8f7f628ad463 (patch) | |
tree | ee0178a070ee68f313f98fd6785e497640efdf92 | |
parent | df0c3966f2e16278fd6fc29360a729a199cefd73 (diff) | |
download | haskell-wip/testsuite-stdout.tar.gz |
WIP: testsuite: Report stdout and stderrwip/testsuite-stdout
I'm having second thoughts about the semantics here; perhaps we actually
want a diff.
-rw-r--r-- | testsuite/driver/testlib.py | 9 | ||||
-rw-r--r-- | testsuite/driver/testutil.py | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/testsuite/driver/testlib.py b/testsuite/driver/testlib.py index 8f76378531..431232c9dc 100644 --- a/testsuite/driver/testlib.py +++ b/testsuite/driver/testlib.py @@ -942,7 +942,12 @@ def do_test(name, way, func, args, files): t.unexpected_stat_failures.append(TestResult(directory, name, reason, way)) else: if_verbose(1, '*** unexpected failure for %s' % full_name) - t.unexpected_failures.append(TestResult(directory, name, reason, way)) + other = { + 'stdout': result.get('stdout'), + 'stderr': result.get('stderr') + } + result = TestResult(directory, name, reason, way, **other) + t.unexpected_failures.append(result) else: if opts.expect == 'missing-lib': t.missing_libs.append(TestResult(directory, name, 'missing-lib', way)) @@ -1078,7 +1083,7 @@ def do_compile(name, way, should_fail, top_mod, extra_mods, extra_hc_opts, **kwa whitespace_normaliser=getattr(getTestOpts(), "whitespace_normaliser", normalise_whitespace)): - return failBecause('stderr mismatch') + return failBecause('stderr mismatch', stderr=open(actual_stderr_file, 'rb').read()) # no problems found, this test passed return passed() diff --git a/testsuite/driver/testutil.py b/testsuite/driver/testutil.py index 6e0c2684d7..888e77bc5a 100644 --- a/testsuite/driver/testutil.py +++ b/testsuite/driver/testutil.py @@ -8,8 +8,8 @@ import threading def passed(): return {'passFail': 'pass'} -def failBecause(reason, tag=None): - return {'passFail': 'fail', 'reason': reason, 'tag': tag} +def failBecause(reason, tag=None, **kwargs): + return kwargs.update({'passFail': 'fail', 'reason': reason, 'tag': tag}) def strip_quotes(s): # Don't wrap commands to subprocess.call/Popen in quotes. |