--- a/tests/run-tests.py Mon Apr 20 21:42:20 2009 -0400
+++ b/tests/run-tests.py Mon Apr 20 21:50:11 2009 -0400
@@ -46,11 +46,7 @@
'port': ('HGTEST_PORT', 20059),
}
-# globals set by parse_args() (ugh)
-verbose = False
-nodiff = False
-coverage = False
-python = None
+python = sys.executable
def parse_args():
parser = optparse.OptionParser("%prog [options] [tests]")
@@ -98,11 +94,18 @@
parser.set_defaults(**defaults)
(options, args) = parser.parse_args()
- global verbose, nodiff, coverage, python
- verbose = options.verbose
- nodiff = options.nodiff
- coverage = options.cover or options.cover_stdlib or options.annotate
- python = sys.executable
+ global vlog
+ options.anycoverage = (options.cover or
+ options.cover_stdlib or
+ options.annotate)
+
+ if options.verbose:
+ def vlog(*msg):
+ for m in msg:
+ print m,
+ print
+ else:
+ vlog = lambda *msg: None
if options.jobs < 1:
print >> sys.stderr, 'ERROR: -j/--jobs must be positive'
@@ -120,12 +123,6 @@
shutil.copy(src, dst)
os.remove(src)
-def vlog(*msg):
- if verbose:
- for m in msg:
- print m,
- print
-
def splitnewlines(text):
'''like str.splitlines, but only split on newlines.
keep line endings.'''
@@ -185,7 +182,7 @@
def cleanup_exit(options):
if not options.keep_tmpdir:
- if verbose:
+ if options.verbose:
print "# Cleaning up HGTMP", HGTMP
shutil.rmtree(HGTMP, True)
@@ -220,7 +217,7 @@
% (sys.executable, pure, INST, PYTHONDIR, BINDIR, installerrs))
vlog("# Running", cmd)
if os.system(cmd) == 0:
- if not verbose:
+ if not options.verbose:
os.remove(installerrs)
else:
f = open(installerrs)
@@ -256,7 +253,7 @@
f.close()
os.chmod(os.path.join(BINDIR, 'diffstat'), 0700)
- if coverage:
+ if options.anycoverage:
vlog("# Installing coverage wrapper")
os.environ['COVERAGE_FILE'] = COVERAGE_FILE
if os.path.exists(COVERAGE_FILE):
@@ -346,7 +343,7 @@
False -> failed'''
def skip(msg):
- if not verbose:
+ if not options.verbose:
skips.append((test, msg))
else:
print "\nSkipping %s: %s" % (test, msg)
@@ -354,7 +351,7 @@
def fail(msg):
fails.append((test, msg))
- if not nodiff:
+ if not options.nodiff:
print "\nERROR: %s %s" % (test, msg)
return None
@@ -447,14 +444,14 @@
fail("output changed and returned error code %d" % ret)
else:
fail("output changed")
- if not nodiff:
+ if not options.nodiff:
show_diff(ref_out, out)
ret = 1
elif ret:
mark = '!'
fail("returned error code %d" % ret)
- if not verbose:
+ if not options.verbose:
sys.stdout.write(mark)
sys.stdout.flush()
@@ -638,7 +635,7 @@
print "# Ran %d tests, %d skipped, %d failed." % (
tested, skipped, failed)
- if coverage:
+ if options.anycoverage:
output_coverage(options)
except KeyboardInterrupt:
failed = True