Check In tool source code based on Build tool project revision r1655.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8964 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
74
BaseTools/Tests/CheckPythonSyntax.py
Normal file
74
BaseTools/Tests/CheckPythonSyntax.py
Normal file
@ -0,0 +1,74 @@
|
||||
## @file
|
||||
# Unit tests for checking syntax of Python source code
|
||||
#
|
||||
# Copyright (c) 2009, Intel Corporation
|
||||
#
|
||||
# All rights reserved. This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
# http://opensource.org/licenses/bsd-license.php
|
||||
#
|
||||
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
|
||||
##
|
||||
# Import Modules
|
||||
#
|
||||
import os
|
||||
import unittest
|
||||
import py_compile
|
||||
|
||||
import TestTools
|
||||
|
||||
class Tests(TestTools.BaseToolsTest):
|
||||
|
||||
def setUp(self):
|
||||
TestTools.BaseToolsTest.setUp(self)
|
||||
|
||||
def SingleFileTest(self, filename):
|
||||
try:
|
||||
py_compile.compile(filename, doraise=True)
|
||||
except:
|
||||
self.fail('syntax error: ' + filename)
|
||||
|
||||
def MakePythonSyntaxCheckTests():
|
||||
def GetAllPythonSourceFiles():
|
||||
pythonSourceFiles = []
|
||||
for (root, dirs, files) in os.walk(TestTools.PythonSourceDir):
|
||||
for filename in files:
|
||||
if filename.lower().endswith('.py'):
|
||||
pythonSourceFiles.append(
|
||||
os.path.join(root, filename)
|
||||
)
|
||||
return pythonSourceFiles
|
||||
|
||||
def MakeTestName(filename):
|
||||
assert filename.lower().endswith('.py')
|
||||
name = filename[:-3]
|
||||
name = name.replace(TestTools.PythonSourceDir, '')
|
||||
name = name.replace(os.path.sep, '_')
|
||||
return 'test' + name
|
||||
|
||||
def MakeNewTest(filename):
|
||||
test = MakeTestName(filename)
|
||||
newmethod = lambda self: self.SingleFileTest(filename)
|
||||
setattr(
|
||||
Tests,
|
||||
test,
|
||||
newmethod
|
||||
)
|
||||
|
||||
for filename in GetAllPythonSourceFiles():
|
||||
MakeNewTest(filename)
|
||||
|
||||
MakePythonSyntaxCheckTests()
|
||||
del MakePythonSyntaxCheckTests
|
||||
|
||||
TheTestSuite = TestTools.MakeTheTestSuite(locals())
|
||||
|
||||
if __name__ == '__main__':
|
||||
allTests = TheTestSuite()
|
||||
unittest.TextTestRunner().run(allTests)
|
||||
|
||||
|
Reference in New Issue
Block a user