AppPkg/Applications/Python: Add Python 2.7.2 sources since the release of Python 2.7.3 made them unavailable from the python.org web site.
These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env python
|
||||
# Copyright 2006 Google, Inc. All Rights Reserved.
|
||||
# Licensed to PSF under a Contributor Agreement.
|
||||
|
||||
"""Main program for testing the infrastructure."""
|
||||
|
||||
__author__ = "Guido van Rossum <guido@python.org>"
|
||||
|
||||
# Support imports (need to be imported first)
|
||||
from . import support
|
||||
|
||||
# Python imports
|
||||
import os
|
||||
import sys
|
||||
import logging
|
||||
|
||||
# Local imports
|
||||
from .. import pytree
|
||||
import pgen2
|
||||
from pgen2 import driver
|
||||
|
||||
logging.basicConfig()
|
||||
|
||||
def main():
|
||||
gr = driver.load_grammar("Grammar.txt")
|
||||
dr = driver.Driver(gr, convert=pytree.convert)
|
||||
|
||||
fn = "example.py"
|
||||
tree = dr.parse_file(fn, debug=True)
|
||||
if not diff(fn, tree):
|
||||
print "No diffs."
|
||||
if not sys.argv[1:]:
|
||||
return # Pass a dummy argument to run the complete test suite below
|
||||
|
||||
problems = []
|
||||
|
||||
# Process every imported module
|
||||
for name in sys.modules:
|
||||
mod = sys.modules[name]
|
||||
if mod is None or not hasattr(mod, "__file__"):
|
||||
continue
|
||||
fn = mod.__file__
|
||||
if fn.endswith(".pyc"):
|
||||
fn = fn[:-1]
|
||||
if not fn.endswith(".py"):
|
||||
continue
|
||||
print >>sys.stderr, "Parsing", fn
|
||||
tree = dr.parse_file(fn, debug=True)
|
||||
if diff(fn, tree):
|
||||
problems.append(fn)
|
||||
|
||||
# Process every single module on sys.path (but not in packages)
|
||||
for dir in sys.path:
|
||||
try:
|
||||
names = os.listdir(dir)
|
||||
except os.error:
|
||||
continue
|
||||
print >>sys.stderr, "Scanning", dir, "..."
|
||||
for name in names:
|
||||
if not name.endswith(".py"):
|
||||
continue
|
||||
print >>sys.stderr, "Parsing", name
|
||||
fn = os.path.join(dir, name)
|
||||
try:
|
||||
tree = dr.parse_file(fn, debug=True)
|
||||
except pgen2.parse.ParseError, err:
|
||||
print "ParseError:", err
|
||||
else:
|
||||
if diff(fn, tree):
|
||||
problems.append(fn)
|
||||
|
||||
# Show summary of problem files
|
||||
if not problems:
|
||||
print "No problems. Congratulations!"
|
||||
else:
|
||||
print "Problems in following files:"
|
||||
for fn in problems:
|
||||
print "***", fn
|
||||
|
||||
def diff(fn, tree):
|
||||
f = open("@", "w")
|
||||
try:
|
||||
f.write(str(tree))
|
||||
finally:
|
||||
f.close()
|
||||
try:
|
||||
return os.system("diff -u %s @" % fn)
|
||||
finally:
|
||||
os.remove("@")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Reference in New Issue
Block a user