Add a trivial test for the compiler package, guarded by compiler resource.

This test is insanely slow, so it requires a resource.  On my machine,
it also appears to dump core.  I think the problem is a stack
overflow, but haven't been able to confirm.
This commit is contained in:
Jeremy Hylton 2004-08-07 19:25:33 +00:00
parent 32dbddafd5
commit 4336eda886
2 changed files with 39 additions and 1 deletions

View File

@ -83,6 +83,10 @@ resources to test. Currently only the following are defined:
decimal - Test the decimal module against a large suite that
verifies compliance with standards.
compiler - Test the compiler package by compiling all the source
in the standard library and test suite. This takes
a long time.
To enable all resources except one, use '-uall,-<resource>'. For
example, to run all the tests except for the bsddb tests, give the
option '-uall,-bsddb'.
@ -126,7 +130,7 @@ if sys.platform == 'darwin':
from test import test_support
RESOURCE_NAMES = ('audio', 'curses', 'largefile', 'network', 'bsddb',
'decimal')
'decimal', 'compiler')
def usage(code, msg=''):

34
Lib/test/test_compiler.py Normal file
View File

@ -0,0 +1,34 @@
import compiler
import os
import test.test_support
import unittest
class CompilerTest(unittest.TestCase):
def testCompileLibrary(self):
# A simple but large test. Compile all the code in the
# standard library and its test suite. This doesn't verify
# that any of the code is correct, merely the compiler is able
# to generate some kind of code for it.
libdir = os.path.dirname(unittest.__file__)
testdir = os.path.dirname(test.test_support.__file__)
for dir in [libdir, testdir]:
for path in os.listdir(dir):
if not path.endswith(".py"):
continue
f = open(os.path.join(dir, path), "r")
buf = f.read()
f.close()
compiler.compile(buf, path, "exec")
def test_main():
test.test_support.requires("compiler")
test.test_support.run_unittest(CompilerTest)
if __name__ == "__main__":
test_main()