mirror of https://github.com/python/cpython
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
|
||||
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=''):
|
||||
|
|
|
@ -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…
Reference in New Issue