mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-11-03 21:17:23 +01:00 
			
		
		
		
	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)
 | 
						|
 | 
						|
 |