]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/UPT/UnitTest/DecParserUnitTest.py
BaseTools: Clean up source files
[mirror_edk2.git] / BaseTools / Source / Python / UPT / UnitTest / DecParserUnitTest.py
index 2f4917525b6acda752c2b48a95bd0e53e4c9afa4..afea4a438b62242116afa270c61d2efad3c2d389 100644 (file)
@@ -1,11 +1,11 @@
 ## @file\r
 # This file contain unit test for DecParser\r
 #\r
-# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
 #\r
-# This program and the accompanying materials are licensed and made available \r
-# under the terms and conditions of the BSD License which accompanies this \r
-# distribution. The full text of the license may be found at \r
+# This program and the accompanying materials are licensed and made available\r
+# under the terms and conditions of the BSD License which accompanies this\r
+# distribution. The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
 #\r
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
@@ -24,7 +24,7 @@ from Parser.DecParser import \
     FileContent, \\r
     _DecBase, \\r
     CleanString\r
-    \r
+\r
 from Object.Parser.DecObject import _DecComments\r
 \r
 #\r
@@ -35,19 +35,19 @@ class CleanStringTestCase(unittest.TestCase):
         Line, Comment = CleanString('')\r
         self.assertEqual(Line, '')\r
         self.assertEqual(Comment, '')\r
-        \r
+\r
         Line, Comment = CleanString('line without comment')\r
         self.assertEqual(Line, 'line without comment')\r
         self.assertEqual(Comment, '')\r
-        \r
+\r
         Line, Comment = CleanString('# pure comment')\r
         self.assertEqual(Line, '')\r
         self.assertEqual(Comment, '# pure comment')\r
-        \r
+\r
         Line, Comment = CleanString('line # and comment')\r
         self.assertEqual(Line, 'line')\r
         self.assertEqual(Comment, '# and comment')\r
-    \r
+\r
     def testCleanStringCpp(self):\r
         Line, Comment = CleanString('line // and comment', AllowCppStyleComment = True)\r
         self.assertEqual(Line, 'line')\r
@@ -59,16 +59,16 @@ class CleanStringTestCase(unittest.TestCase):
 class MacroParserTestCase(unittest.TestCase):\r
     def setUp(self):\r
         self.dec = _DecBase(FileContent('dummy', []))\r
-    \r
+\r
     def testCorrectMacro(self):\r
         self.dec._MacroParser('DEFINE MARCRO1 = test1')\r
         self.failIf('MARCRO1' not in self.dec._LocalMacro)\r
         self.assertEqual(self.dec._LocalMacro['MARCRO1'], 'test1')\r
-    \r
+\r
     def testErrorMacro1(self):\r
         # Raise fatal error, macro name must be upper case letter\r
         self.assertRaises(FatalError, self.dec._MacroParser, 'DEFINE not_upper_case = test2')\r
-    \r
+\r
     def testErrorMacro2(self):\r
         # No macro name given\r
         self.assertRaises(FatalError, self.dec._MacroParser, 'DEFINE ')\r
@@ -81,19 +81,19 @@ class TryBackSlashTestCase(unittest.TestCase):
         Content = [\r
             # Right case\r
             'test no backslash',\r
-            \r
+\r
             'test with backslash \\',\r
             'continue second line',\r
-            \r
+\r
             # Do not precede with whitespace\r
             '\\',\r
-            \r
+\r
             # Empty line after backlash is not allowed\r
             'line with backslash \\',\r
             ''\r
         ]\r
         self.dec = _DecBase(FileContent('dummy', Content))\r
-    \r
+\r
     def testBackSlash(self):\r
         #\r
         # Right case, assert return values\r
@@ -101,11 +101,11 @@ class TryBackSlashTestCase(unittest.TestCase):
         ConcatLine, CommentList = self.dec._TryBackSlash(self.dec._RawData.GetNextLine(), [])\r
         self.assertEqual(ConcatLine, 'test no backslash')\r
         self.assertEqual(CommentList, [])\r
-        \r
+\r
         ConcatLine, CommentList = self.dec._TryBackSlash(self.dec._RawData.GetNextLine(), [])\r
         self.assertEqual(CommentList, [])\r
         self.assertEqual(ConcatLine, 'test with backslash continue second line')\r
-        \r
+\r
         #\r
         # Error cases, assert raise exception\r
         #\r
@@ -130,16 +130,16 @@ class TestInner(_DecBase):
     def __init__(self, RawData):\r
         _DecBase.__init__(self, RawData)\r
         self.ItemObject = Data()\r
-    \r
+\r
     def _StopCurrentParsing(self, Line):\r
         return Line == '[TOP]'\r
-    \r
+\r
     def _ParseItem(self):\r
         Item = DataItem()\r
         Item.String = self._RawData.CurrentLine\r
         self.ItemObject.ItemList.append(Item)\r
         return Item\r
-    \r
+\r
     def _TailCommentStrategy(self, Comment):\r
         return Comment.find('@comment') != -1\r
 \r
@@ -148,7 +148,7 @@ class TestTop(_DecBase):
         _DecBase.__init__(self, RawData)\r
         # List of Data\r
         self.ItemObject = []\r
-    \r
+\r
     # Top parser\r
     def _StopCurrentParsing(self, Line):\r
         return False\r
@@ -159,10 +159,10 @@ class TestTop(_DecBase):
         self.ItemObject.append(TestParser.ItemObject)\r
         return TestParser.ItemObject\r
 \r
-class ParseTestCase(unittest.TestCase):        \r
+class ParseTestCase(unittest.TestCase):\r
     def setUp(self):\r
         pass\r
-    \r
+\r
     def testParse(self):\r
         Content = \\r
         '''# Top comment\r
@@ -172,26 +172,26 @@ class ParseTestCase(unittest.TestCase):
           # sub2 head comment\r
           (test item has head and special tail comment)\r
           # @comment test TailCommentStrategy branch\r
-          \r
+\r
           (test item has no comment)\r
-        \r
+\r
         # test NextLine branch\r
         [TOP]\r
           sub-item\r
         '''\r
         dec = TestTop(FileContent('dummy', Content.splitlines()))\r
         dec.Parse()\r
-        \r
+\r
         # Two sections\r
         self.assertEqual(len(dec.ItemObject), 2)\r
-        \r
+\r
         data = dec.ItemObject[0]\r
         self.assertEqual(data._HeadComment[0][0], '# Top comment')\r
         self.assertEqual(data._HeadComment[0][1], 1)\r
-        \r
+\r
         # 3 subitems\r
         self.assertEqual(len(data.ItemList), 3)\r
-        \r
+\r
         dataitem = data.ItemList[0]\r
         self.assertEqual(dataitem.String, '(test item has both head and tail comment)')\r
         # Comment content\r
@@ -200,7 +200,7 @@ class ParseTestCase(unittest.TestCase):
         # Comment line number\r
         self.assertEqual(dataitem._HeadComment[0][1], 3)\r
         self.assertEqual(dataitem._TailComment[0][1], 4)\r
-        \r
+\r
         dataitem = data.ItemList[1]\r
         self.assertEqual(dataitem.String, '(test item has head and special tail comment)')\r
         # Comment content\r
@@ -209,20 +209,20 @@ class ParseTestCase(unittest.TestCase):
         # Comment line number\r
         self.assertEqual(dataitem._HeadComment[0][1], 5)\r
         self.assertEqual(dataitem._TailComment[0][1], 7)\r
-        \r
+\r
         dataitem = data.ItemList[2]\r
         self.assertEqual(dataitem.String, '(test item has no comment)')\r
         # Comment content\r
         self.assertEqual(dataitem._HeadComment, [])\r
         self.assertEqual(dataitem._TailComment, [])\r
-        \r
+\r
         data = dec.ItemObject[1]\r
         self.assertEqual(data._HeadComment[0][0], '# test NextLine branch')\r
         self.assertEqual(data._HeadComment[0][1], 11)\r
-        \r
+\r
         # 1 subitems\r
         self.assertEqual(len(data.ItemList), 1)\r
-        \r
+\r
         dataitem = data.ItemList[0]\r
         self.assertEqual(dataitem.String, 'sub-item')\r
         self.assertEqual(dataitem._HeadComment, [])\r
@@ -241,15 +241,15 @@ class DecDefineTestCase(unittest.TestCase):
         item = self.GetObj('PACKAGE_NAME = MdePkg')._ParseItem()\r
         self.assertEqual(item.Key, 'PACKAGE_NAME')\r
         self.assertEqual(item.Value, 'MdePkg')\r
-    \r
+\r
     def testDecDefine1(self):\r
         obj = self.GetObj('PACKAGE_NAME')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-    \r
+\r
     def testDecDefine2(self):\r
         obj = self.GetObj('unknown_key = ')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-    \r
+\r
     def testDecDefine3(self):\r
         obj = self.GetObj('PACKAGE_NAME = ')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
@@ -262,23 +262,23 @@ class DecLibraryTestCase(unittest.TestCase):
         Obj = _DecLibraryclass(FileContent('dummy', Content.splitlines()))\r
         Obj._RawData.CurrentLine = Obj._RawData.GetNextLine()\r
         return Obj\r
-    \r
+\r
     def testNoInc(self):\r
         obj = self.GetObj('UefiRuntimeLib')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-    \r
+\r
     def testEmpty(self):\r
         obj = self.GetObj(' | ')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-        \r
+\r
     def testLibclassNaming(self):\r
         obj = self.GetObj('lowercase_efiRuntimeLib|Include/Library/UefiRuntimeLib.h')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-        \r
+\r
     def testLibclassExt(self):\r
         obj = self.GetObj('RuntimeLib|Include/Library/UefiRuntimeLib.no_h')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-    \r
+\r
     def testLibclassRelative(self):\r
         obj = self.GetObj('RuntimeLib|Include/../UefiRuntimeLib.h')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
@@ -292,7 +292,7 @@ class DecPcdTestCase(unittest.TestCase):
         Obj._RawData.CurrentLine = Obj._RawData.GetNextLine()\r
         Obj._RawData.CurrentScope = [('PcdsFeatureFlag'.upper(), 'COMMON')]\r
         return Obj\r
-    \r
+\r
     def testOK(self):\r
         item = self.GetObj('gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|FALSE|BOOLEAN|0x0000000d')._ParseItem()\r
         self.assertEqual(item.TokenSpaceGuidCName, 'gEfiMdePkgTokenSpaceGuid')\r
@@ -300,26 +300,26 @@ class DecPcdTestCase(unittest.TestCase):
         self.assertEqual(item.DefaultValue, 'FALSE')\r
         self.assertEqual(item.DatumType, 'BOOLEAN')\r
         self.assertEqual(item.TokenValue, '0x0000000d')\r
-    \r
+\r
     def testNoCvar(self):\r
         obj = self.GetObj('123ai.PcdComponentNameDisable|FALSE|BOOLEAN|0x0000000d')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-    \r
+\r
     def testSplit(self):\r
         obj = self.GetObj('gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable FALSE|BOOLEAN|0x0000000d')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-        \r
+\r
         obj = self.GetObj('gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|FALSE|BOOLEAN|0x0000000d | abc')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-    \r
+\r
     def testUnknownType(self):\r
         obj = self.GetObj('gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|FALSE|unknown|0x0000000d')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-    \r
+\r
     def testVoid(self):\r
         obj = self.GetObj('gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|abc|VOID*|0x0000000d')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-    \r
+\r
     def testUINT(self):\r
         obj = self.GetObj('gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|0xabc|UINT8|0x0000000d')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
@@ -342,26 +342,26 @@ class DecGuidTestCase(unittest.TestCase):
         Obj._RawData.CurrentLine = Obj._RawData.GetNextLine()\r
         Obj._RawData.CurrentScope = [('guids'.upper(), 'COMMON')]\r
         return Obj\r
-    \r
+\r
     def testCValue(self):\r
         item = self.GetObj('gEfiIpSecProtocolGuid={ 0xdfb386f7, 0xe100, 0x43ad,'\r
                            ' {0x9c, 0x9a, 0xed, 0x90, 0xd0, 0x8a, 0x5e, 0x12 }}')._ParseItem()\r
         self.assertEqual(item.GuidCName, 'gEfiIpSecProtocolGuid')\r
         self.assertEqual(item.GuidCValue, '{ 0xdfb386f7, 0xe100, 0x43ad, {0x9c, 0x9a, 0xed, 0x90, 0xd0, 0x8a, 0x5e, 0x12 }}')\r
-    \r
+\r
     def testGuidString(self):\r
         item = self.GetObj('gEfiIpSecProtocolGuid=1E73767F-8F52-4603-AEB4-F29B510B6766')._ParseItem()\r
         self.assertEqual(item.GuidCName, 'gEfiIpSecProtocolGuid')\r
         self.assertEqual(item.GuidCValue, '1E73767F-8F52-4603-AEB4-F29B510B6766')\r
-    \r
+\r
     def testNoValue1(self):\r
         obj = self.GetObj('gEfiIpSecProtocolGuid')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-    \r
+\r
     def testNoValue2(self):\r
         obj = self.GetObj('gEfiIpSecProtocolGuid=')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
-        \r
+\r
     def testNoName(self):\r
         obj = self.GetObj('=')\r
         self.assertRaises(FatalError, obj._ParseItem)\r
@@ -376,7 +376,7 @@ class DecDecInitTestCase(unittest.TestCase):
 class TmpFile:\r
     def __init__(self, File):\r
         self.File = File\r
-    \r
+\r
     def Write(self, Content):\r
         try:\r
             FileObj = open(self.File, 'w')\r
@@ -384,7 +384,7 @@ class TmpFile:
             FileObj.close()\r
         except:\r
             pass\r
-    \r
+\r
     def Remove(self):\r
         try:\r
             os.remove(self.File)\r
@@ -404,13 +404,13 @@ class DecUESectionTestCase(unittest.TestCase):
 [userextensions.intel."myid]\r
 '''\r
         )\r
-    \r
+\r
     def tearDown(self):\r
         self.File.Remove()\r
-    \r
+\r
     def testUserExtentionHeader(self):\r
         dec = Dec('test.dec', False)\r
-        \r
+\r
         # OK: [userextensions.intel."myid"]\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         dec._UserExtentionSectionParser()\r
@@ -419,7 +419,7 @@ class DecUESectionTestCase(unittest.TestCase):
         self.assertEqual(dec._RawData.CurrentScope[0][1], 'intel')\r
         self.assertEqual(dec._RawData.CurrentScope[0][2], '"myid"')\r
         self.assertEqual(dec._RawData.CurrentScope[0][3], 'COMMON')\r
-        \r
+\r
         # OK: [userextensions.intel."myid".IA32]\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         dec._UserExtentionSectionParser()\r
@@ -428,11 +428,11 @@ class DecUESectionTestCase(unittest.TestCase):
         self.assertEqual(dec._RawData.CurrentScope[0][1], 'intel')\r
         self.assertEqual(dec._RawData.CurrentScope[0][2], '"myid"')\r
         self.assertEqual(dec._RawData.CurrentScope[0][3], 'IA32')\r
-        \r
+\r
         # Fail: [userextensions.intel."myid".IA32,]\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         self.assertRaises(FatalError, dec._UserExtentionSectionParser)\r
-        \r
+\r
         # Fail: [userextensions.intel."myid]\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         self.assertRaises(FatalError, dec._UserExtentionSectionParser)\r
@@ -453,43 +453,43 @@ class DecSectionTestCase(unittest.TestCase):
 [Includes, Includes.IA32] # common cannot be with other arch\r
 [Includes.IA32, PcdsFeatureFlag] # different section name\r
 '''     )\r
-    \r
+\r
     def tearDown(self):\r
         self.File.Remove()\r
-    \r
+\r
     def testSectionHeader(self):\r
         dec = Dec('test.dec', False)\r
         # [no section start or end\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         self.assertRaises(FatalError, dec._SectionHeaderParser)\r
-        \r
+\r
         #[,] # empty sub-section\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         self.assertRaises(FatalError, dec._SectionHeaderParser)\r
-        \r
+\r
         # [unknow_section_name]\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         self.assertRaises(FatalError, dec._SectionHeaderParser)\r
-        \r
+\r
         # [Includes.IA32.other] # no third one\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         self.assertRaises(FatalError, dec._SectionHeaderParser)\r
-        \r
+\r
         # [PcdsFeatureFlag, PcdsFixedAtBuild]\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         self.assertRaises(FatalError, dec._SectionHeaderParser)\r
-        \r
+\r
         # [Includes.IA32, Includes.IA32]\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         dec._SectionHeaderParser()\r
         self.assertEqual(len(dec._RawData.CurrentScope), 1)\r
         self.assertEqual(dec._RawData.CurrentScope[0][0], 'Includes'.upper())\r
         self.assertEqual(dec._RawData.CurrentScope[0][1], 'IA32')\r
-        \r
+\r
         # [Includes, Includes.IA32] # common cannot be with other arch\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         self.assertRaises(FatalError, dec._SectionHeaderParser)\r
-        \r
+\r
         # [Includes.IA32, PcdsFeatureFlag] # different section name not allowed\r
         dec._RawData.CurrentLine = CleanString(dec._RawData.GetNextLine())[0]\r
         self.assertRaises(FatalError, dec._SectionHeaderParser)\r
@@ -511,7 +511,7 @@ class DecDecCommentTestCase(unittest.TestCase):
         self.assertEqual(dec._HeadComment[1][0], '##')\r
         self.assertEqual(dec._HeadComment[1][1], 2)\r
         File.Remove()\r
-    \r
+\r
     def testNoDoubleComment(self):\r
         File = TmpFile('test.dec')\r
         File.Write(\r