Hi all,
I have this small patch that prints test failures right after each
tests section during 'make check', so that it looks like this:
[[[
Running tests in utf-test [31/75]...................success
Running tests in window-test [32/75]................success
Running tests in authz_tests.py [33/75].............success
Running tests in autoprop_tests.py [34/75]..........FAILURE
FAIL: autoprop_tests.py 1: add: config=no, commandline=none
FAIL: autoprop_tests.py 2: add: config=yes, commandline=none
FAIL: autoprop_tests.py 3: add: config=no, commandline=yes
FAIL: autoprop_tests.py 4: add: config=yes, commandline=yes
FAIL: autoprop_tests.py 5: add: config=no, commandline=no
FAIL: autoprop_tests.py 6: add: config=yes, commandline=no
FAIL: autoprop_tests.py 7: import: config=no, commandline=none
FAIL: autoprop_tests.py 8: import: config=yes, commandline=none
FAIL: autoprop_tests.py 9: import: config=no, commandline=yes
FAIL: autoprop_tests.py 10: import: config=yes, commandline=yes
FAIL: autoprop_tests.py 11: import: config=no, commandline=no
FAIL: autoprop_tests.py 12: import: config=yes, commandline=no
FAIL: autoprop_tests.py 13: add directory
FAIL: autoprop_tests.py 14: import directory
Running tests in basic_tests.py [35/75].............FAILURE
FAIL: basic_tests.py 1: basic checkout of a wc
Running tests in blame_tests.py [36/75].............success
Running tests in cat_tests.py [37/75]...............success
Running tests in changelist_tests.py [38/75]........success
]]]
I like this cause I don't need to go dig into tests.log myself if I
want to know the specific failing test numbers before 'make check'
completed. For me it's especially handy when I run the tests on a
remote computer.
If I commit this, do I break build bots and whatnot?
[[[
* build/run_tests.py: Print failures right after each tests section.
]]]
[[[
Index: build/run_tests.py
===================================================================
--- build/run_tests.py (revision 933797)
+++ build/run_tests.py (working copy)
@@ -110,7 +110,7 @@ class TestHarness:
def run(self, list):
'''Run all test programs given in LIST. Print a summary of results, if
there is a log file. Return zero iff all test programs passed.'''
- self._open_log('w')
+ self._open_log('w+')
failed = 0
for cnt, prog in enumerate(list):
failed = self._run_test(prog, cnt, len(list)) or failed
@@ -234,6 +234,7 @@ class TestHarness:
test_info = '%s [%d/%d]' % (progbase, test_nr + 1, total_tests)
sys.stdout.write('Running tests in %s' % (test_info, ))
sys.stdout.write('.'*(35 - len(test_info)))
+ log_start = self.log.tell()
log.write('START: %s\n' % progbase)
log.flush()
@@ -315,6 +316,12 @@ class TestHarness:
if self.log:
if failed:
print(TextColors.FAILURE + 'FAILURE' + TextColors.ENDC)
+ # Also try to print the failures of this test.
+ self.log.seek(log_start)
+ for line in self.log.readlines():
+ if line.startswith('FAIL'):
+ print line,
+ self.log.seek(0, os.SEEK_END)
else:
print(TextColors.SUCCESS + 'success' + TextColors.ENDC)
]]]
~Neels
Received on 2010-04-18 05:12:25 CEST