Sync BaseTool trunk (version r2649) into EDKII BaseTools.
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
This commit is contained in:
		@@ -1,74 +1,74 @@
 | 
			
		||||
## @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)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## @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)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user