]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Tests/CheckPythonSyntax.py
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / BaseTools / Tests / CheckPythonSyntax.py
CommitLineData
f51461c8
LG
1## @file\r
2# Unit tests for checking syntax of Python source code\r
3#\r
f7496d71 4# Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
f51461c8 5#\r
2e351cbe 6# SPDX-License-Identifier: BSD-2-Clause-Patent\r
f51461c8
LG
7#\r
8\r
9##\r
10# Import Modules\r
11#\r
12import os\r
13import unittest\r
14import py_compile\r
15\r
16import TestTools\r
17\r
18class Tests(TestTools.BaseToolsTest):\r
19\r
20 def setUp(self):\r
21 TestTools.BaseToolsTest.setUp(self)\r
22\r
23 def SingleFileTest(self, filename):\r
24 try:\r
25 py_compile.compile(filename, doraise=True)\r
5b0671c1 26 except Exception as e:\r
f51461c8
LG
27 self.fail('syntax error: %s, Error is %s' % (filename, str(e)))\r
28\r
29def MakePythonSyntaxCheckTests():\r
30 def GetAllPythonSourceFiles():\r
31 pythonSourceFiles = []\r
32 for (root, dirs, files) in os.walk(TestTools.PythonSourceDir):\r
33 for filename in files:\r
34 if filename.lower().endswith('.py'):\r
35 pythonSourceFiles.append(\r
36 os.path.join(root, filename)\r
37 )\r
38 return pythonSourceFiles\r
39\r
40 def MakeTestName(filename):\r
41 assert filename.lower().endswith('.py')\r
42 name = filename[:-3]\r
43 name = name.replace(TestTools.PythonSourceDir, '')\r
44 name = name.replace(os.path.sep, '_')\r
45 return 'test' + name\r
46\r
47 def MakeNewTest(filename):\r
48 test = MakeTestName(filename)\r
49 newmethod = lambda self: self.SingleFileTest(filename)\r
50 setattr(\r
51 Tests,\r
f7496d71 52 test,\r
f51461c8
LG
53 newmethod\r
54 )\r
55\r
56 for filename in GetAllPythonSourceFiles():\r
57 MakeNewTest(filename)\r
58\r
59MakePythonSyntaxCheckTests()\r
60del MakePythonSyntaxCheckTests\r
61\r
62TheTestSuite = TestTools.MakeTheTestSuite(locals())\r
63\r
64if __name__ == '__main__':\r
65 allTests = TheTestSuite()\r
66 unittest.TextTestRunner().run(allTests)\r
67\r
68\r