Signed-off-by: Gao, Liming <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15188 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			75 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| ## @file
 | |
| #  Unit tests for checking syntax of Python source code
 | |
| #
 | |
| #  Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
 | |
| #
 | |
| #  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 Exception, e:
 | |
|             self.fail('syntax error: %s, Error is %s' % (filename, str(e)))
 | |
| 
 | |
| 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)
 | |
| 
 | |
| 
 |