summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_compiler.py
blob: f11bad6c51570c4468e03116bf7331d092f8c5bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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
                fpath = os.path.join(dir, path)
                if test.test_support.verbose:
                    print "compiling", fpath
                f = open(fpath)
                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()