summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-03-07 21:05:43 (GMT)
committerGuido van Rossum <guido@python.org>1997-03-07 21:05:43 (GMT)
commit27e280dc7769427b0386dfc7b36e97a7b4274554 (patch)
tree76c1682ff781ec44e492e98436c875c60143dc03
parentf58ed2596706b97c16174a839c1ed6f6b1f87fa6 (diff)
downloadcpython-27e280dc7769427b0386dfc7b36e97a7b4274554.zip
cpython-27e280dc7769427b0386dfc7b36e97a7b4274554.tar.gz
cpython-27e280dc7769427b0386dfc7b36e97a7b4274554.tar.bz2
Restore old behavior of autotest and testall, using regrtest.
This is done for backward compatibility with Python 1.4.
-rw-r--r--Lib/test/autotest.py166
-rw-r--r--Lib/test/testall.py58
2 files changed, 7 insertions, 217 deletions
diff --git a/Lib/test/autotest.py b/Lib/test/autotest.py
index 94ae9c1..ba85a0d 100644
--- a/Lib/test/autotest.py
+++ b/Lib/test/autotest.py
@@ -1,163 +1,3 @@
-"""
-Automatic Python regression test.
-
-The list of individual tests is contained in the `testall' module.
-These test some (but not all) essential parts of the Python
-interpreter and built-in modules. When a test fails, an exception is
-raised and testing halts. When a test succeeds, it can produce quite
-a lot of output, which is compared against the output from a previous
-run. If a difference is noticed it raises an exception; if all is
-well, it prints nothing except 'All tests OK.' at the very end.
-
-The output from a previous run is supposed to be contained in separate
-files (one per test) in the `output' subdirectory somewhere on the
-search path for modules (sys.path, initialized from $PYTHONPATH plus
-some default places).
-
-Of course, if the normal output of the tests is changed because the
-tests have been changed (rather than a test producing the wrong
-output), 'autotest' will fail as well. In this case, run 'autotest'
-with the -g option.
-
-Usage:
-
- %s [-g] [-w] [-h] [test1 [test2 ...]]
-
-Options:
-
- -g, --generate : generate the output files instead of verifying
- the results
-
- -w, --warn : warn about un-importable tests
-
- -h, --help : print this message
-
-If individual tests are provided on the command line, only those tests
-will be performed or generated. Otherwise, all tests (as contained in
-testall.py) will be performed.
-
-"""
-
-import os
-import sys
-import getopt
-import traceback
-import test_support
-test_support.verbose = 0
-from test_support import *
-
-# Exception raised when the test failed (not the same as in test_support)
-TestFailed = 'autotest.TestFailed'
-TestMissing = 'autotest.TestMissing'
-
-# defaults
-generate = 0
-warn = 0
-
-
-
-# Function to find a file somewhere on sys.path
-def findfile(filename):
- for dirname in sys.path:
- fullname = os.path.join(dirname, filename)
- if os.path.exists(fullname):
- return fullname
- return filename # Will cause exception later
-
-
-
-# Class substituted for sys.stdout, to compare it with the given file
-class Compare:
- def __init__(self, filename):
- self.fp = open(filename, 'r')
- def write(self, data):
- expected = self.fp.read(len(data))
- if data <> expected:
- raise TestFailed, \
- 'Writing: '+`data`+', expected: '+`expected`
- def close(self):
- leftover = self.fp.read()
- if leftover:
- raise TestFailed, 'Unread: '+`leftover`
- self.fp.close()
-
-
-# The main program
-def usage(status):
- print __doc__ % sys.argv[0]
- sys.exit(status)
-
-
-
-def do_one_test(t, outdir):
- filename = os.path.join(outdir, t)
- real_stdout = sys.stdout
- if generate:
- print 'Generating:', filename
- fake_stdout = open(filename, 'w')
- else:
- try:
- fake_stdout = Compare(filename)
- except IOError:
- raise TestMissing
- try:
- sys.stdout = fake_stdout
- print t
- unload(t)
- try:
- __import__(t, globals(), locals())
- except ImportError, msg:
- if warn:
- sys.stderr.write(msg+': Un-installed'
- ' optional module?\n')
- try:
- fake_stdout.close()
- except TestFailed:
- pass
- fake_stdout = None
- finally:
- sys.stdout = real_stdout
- if fake_stdout:
- fake_stdout.close()
-
-
-
-def main():
- global generate
- global warn
- try:
- opts, args = getopt.getopt(
- sys.argv[1:], 'ghw',
- ['generate', 'help', 'warn'])
- except getopt.error, msg:
- print msg
- usage(1)
- for opt, val in opts:
- if opt in ['-h', '--help']:
- usage(0)
- elif opt in ['-g', '--generate']:
- generate = 1
- elif opt in ['-w', '--warn']:
- warn = 1
-
- # find the output directory
- outdir = findfile('output')
- if args:
- tests = args
- else:
- import testall
- tests = testall.tests
- failed = 0
- for test in tests:
- print 'testing:', test
- try:
- do_one_test(test, outdir)
- except TestFailed, msg:
- print 'test', test, 'failed'
- failed = failed + 1
- if not failed:
- print 'All tests OK.'
- else:
- print failed, 'tests failed'
-
-main()
+# Backward compatibility -- you should use regrtest instead of this module.
+import regrtest
+regrtest.main()
diff --git a/Lib/test/testall.py b/Lib/test/testall.py
index e410e8f..2349394 100644
--- a/Lib/test/testall.py
+++ b/Lib/test/testall.py
@@ -1,54 +1,4 @@
-# This file now contains only the list of separate regression tests.
-# All of the testing harness is now contained in autotest.py.
-
-tests = ['test_grammar',
- 'test_opcodes',
- 'test_operations',
- 'test_builtin',
- 'test_exceptions',
- 'test_types',
- 'test_math',
- 'test_time',
- 'test_array',
- 'test_strop',
- 'test_md5',
- 'test_cmath',
- 'test_crypt',
- 'test_dbm',
- 'test_new',
- 'test_nis',
- 'test_pwd',
- 'test_rgbimg',
- 'test_select',
- 'test_strftime',
- 'test_struct',
- 'test_errno',
- 'test_dl',
- 'test_thread',
- 'test_xdr',
- 'test_fcntl',
- 'test_gdbm',
- 'test_grp',
- 'test_operator',
- 'test_imageop',
- 'test_imgfile',
- 'test_regex',
- 'test_rotor',
- ]
-
-if __name__ == '__main__':
- # low-overhead testing, for cases where autotest.py harness
- # doesn't even work!
- import sys
- from test_support import *
-
- for t in tests:
- print t
- unload(t)
- try:
- __import__(t, globals(), locals())
- except ImportError, msg:
-## sys.stderr.write('%s. Uninstalled optional module?\n' % msg)
- pass
-
- print 'Passed all tests.'
+# Backward compatibility -- you should use regrtest instead of this module.
+import sys, regrtest
+sys.argv[1:] = ["-vv"]
+regrtest.main()