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:
parent
32dbddafd5
commit
4336eda886
@ -83,6 +83,10 @@ resources to test. Currently only the following are defined:
|
|||||||
decimal - Test the decimal module against a large suite that
|
decimal - Test the decimal module against a large suite that
|
||||||
verifies compliance with standards.
|
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
|
To enable all resources except one, use '-uall,-<resource>'. For
|
||||||
example, to run all the tests except for the bsddb tests, give the
|
example, to run all the tests except for the bsddb tests, give the
|
||||||
option '-uall,-bsddb'.
|
option '-uall,-bsddb'.
|
||||||
@ -126,7 +130,7 @@ if sys.platform == 'darwin':
|
|||||||
from test import test_support
|
from test import test_support
|
||||||
|
|
||||||
RESOURCE_NAMES = ('audio', 'curses', 'largefile', 'network', 'bsddb',
|
RESOURCE_NAMES = ('audio', 'curses', 'largefile', 'network', 'bsddb',
|
||||||
'decimal')
|
'decimal', 'compiler')
|
||||||
|
|
||||||
|
|
||||||
def usage(code, msg=''):
|
def usage(code, msg=''):
|
||||||
|
34
Lib/test/test_compiler.py
Normal file
34
Lib/test/test_compiler.py
Normal 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()
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user