Hmm, this test has failed at least twice recently on the OpenBSD and

Debian sparc buildbots.  Since this goes through a lot of tests
and hits the disk a lot it could be slow (especially if NFS is involved).
I'm not sure if that's the problem, but printing periodic msgs shouldn't hurt.
The code was stolen from test_compiler.
This commit is contained in:
Neal Norwitz 2006-09-02 19:40:19 +00:00
parent 681d86743c
commit c1120b4b66

View file

@ -79,13 +79,16 @@ if (x # The comments need to go in the right place
""" """
import os, glob, random import os, glob, random, time, sys
from cStringIO import StringIO from cStringIO import StringIO
from test.test_support import (verbose, findfile, is_resource_enabled, from test.test_support import (verbose, findfile, is_resource_enabled,
TestFailed) TestFailed)
from tokenize import (tokenize, generate_tokens, untokenize, tok_name, from tokenize import (tokenize, generate_tokens, untokenize, tok_name,
ENDMARKER, NUMBER, NAME, OP, STRING, COMMENT) ENDMARKER, NUMBER, NAME, OP, STRING, COMMENT)
# How much time in seconds can pass before we print a 'Still working' message.
_PRINT_WORKING_MSG_INTERVAL = 5 * 60
# Test roundtrip for `untokenize`. `f` is a file path. The source code in f # Test roundtrip for `untokenize`. `f` is a file path. The source code in f
# is tokenized, converted back to source code via tokenize.untokenize(), # is tokenized, converted back to source code via tokenize.untokenize(),
# and tokenized again from the latter. The test fails if the second # and tokenized again from the latter. The test fails if the second
@ -164,6 +167,8 @@ def test_main():
if verbose: if verbose:
print 'starting...' print 'starting...'
next_time = time.time() + _PRINT_WORKING_MSG_INTERVAL
# This displays the tokenization of tokenize_tests.py to stdout, and # This displays the tokenization of tokenize_tests.py to stdout, and
# regrtest.py checks that this equals the expected output (in the # regrtest.py checks that this equals the expected output (in the
# test/output/ directory). # test/output/ directory).
@ -183,6 +188,12 @@ def test_main():
testfiles = random.sample(testfiles, 10) testfiles = random.sample(testfiles, 10)
for f in testfiles: for f in testfiles:
# Print still working message since this test can be really slow
if next_time <= time.time():
next_time = time.time() + _PRINT_WORKING_MSG_INTERVAL
print >>sys.__stdout__, ' test_main still working, be patient...'
sys.__stdout__.flush()
test_roundtrip(f) test_roundtrip(f)
# Test detecton of IndentationError. # Test detecton of IndentationError.