| ## @file | |
| # This file contain unit test for CommentParsing | |
| # | |
| # Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # | |
| # SPDX-License-Identifier: BSD-2-Clause-Patent | |
| import unittest | |
| import Logger.Log as Logger | |
| from Library.CommentParsing import ParseHeaderCommentSection, \ | |
| ParseGenericComment, \ | |
| ParseDecPcdGenericComment, \ | |
| ParseDecPcdTailComment | |
| from Library.CommentParsing import _IsCopyrightLine | |
| from Library.StringUtils import GetSplitValueList | |
| from Library.DataType import TAB_SPACE_SPLIT | |
| from Library.DataType import TAB_LANGUAGE_EN_US | |
| # | |
| # Test ParseHeaderCommentSection | |
| # | |
| class ParseHeaderCommentSectionTest(unittest.TestCase): | |
| def setUp(self): | |
| pass | |
| def tearDown(self): | |
| pass | |
| # | |
| # Normal case1: have license/copyright/license above @file | |
| # | |
| def testNormalCase1(self): | |
| TestCommentLines1 = \ | |
| '''# License1 | |
| # License2 | |
| # | |
| ## @file | |
| # example abstract | |
| # | |
| # example description | |
| # | |
| # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # | |
| # License3 | |
| #''' | |
| CommentList = GetSplitValueList(TestCommentLines1, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| Abstract, Description, Copyright, License = \ | |
| ParseHeaderCommentSection(TestCommentLinesList, "PhonyFile") | |
| ExpectedAbstract = 'example abstract' | |
| self.assertEqual(Abstract, ExpectedAbstract) | |
| ExpectedDescription = 'example description' | |
| self.assertEqual(Description, ExpectedDescription) | |
| ExpectedCopyright = \ | |
| 'Copyright (c) 2007 - 2010,'\ | |
| ' Intel Corporation. All rights reserved.<BR>' | |
| self.assertEqual(Copyright, ExpectedCopyright) | |
| ExpectedLicense = 'License1\nLicense2\n\nLicense3' | |
| self.assertEqual(License, ExpectedLicense) | |
| # | |
| # Normal case2: have license/copyright above @file, but no copyright after | |
| # | |
| def testNormalCase2(self): | |
| TestCommentLines2 = \ | |
| ''' # License1 | |
| # License2 | |
| # | |
| ## @file | |
| # example abstract | |
| # | |
| # example description | |
| # | |
| #Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # | |
| ##''' | |
| CommentList = GetSplitValueList(TestCommentLines2, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| Abstract, Description, Copyright, License = \ | |
| ParseHeaderCommentSection(TestCommentLinesList, "PhonyFile") | |
| ExpectedAbstract = 'example abstract' | |
| self.assertEqual(Abstract, ExpectedAbstract) | |
| ExpectedDescription = 'example description' | |
| self.assertEqual(Description, ExpectedDescription) | |
| ExpectedCopyright = \ | |
| 'Copyright (c) 2007 - 2018, Intel Corporation.'\ | |
| ' All rights reserved.<BR>' | |
| self.assertEqual(Copyright, ExpectedCopyright) | |
| ExpectedLicense = 'License1\nLicense2' | |
| self.assertEqual(License, ExpectedLicense) | |
| # | |
| # Normal case2: have license/copyright/license above @file, | |
| # but no abstract/description | |
| # | |
| def testNormalCase3(self): | |
| TestCommentLines3 = \ | |
| ''' # License1 | |
| # License2 | |
| # | |
| ## @file | |
| # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # | |
| # License3 Line1 | |
| # License3 Line2 | |
| ##''' | |
| CommentList = GetSplitValueList(TestCommentLines3, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| Abstract, Description, Copyright, License = \ | |
| ParseHeaderCommentSection(TestCommentLinesList, "PhonyFile") | |
| ExpectedAbstract = '' | |
| self.assertEqual(Abstract, ExpectedAbstract) | |
| ExpectedDescription = '' | |
| self.assertEqual(Description, ExpectedDescription) | |
| ExpectedCopyright = \ | |
| 'Copyright (c) 2007 - 2010,'\ | |
| ' Intel Corporation. All rights reserved.<BR>' | |
| self.assertEqual(Copyright, ExpectedCopyright) | |
| ExpectedLicense = \ | |
| 'License1\n' \ | |
| 'License2\n\n' \ | |
| 'License3 Line1\n' \ | |
| 'License3 Line2' | |
| self.assertEqual(License, ExpectedLicense) | |
| # | |
| # Normal case4: format example in spec | |
| # | |
| def testNormalCase4(self): | |
| TestCommentLines = \ | |
| ''' | |
| ## @file | |
| # Abstract | |
| # | |
| # Description | |
| # | |
| # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # | |
| # License | |
| # | |
| ##''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| Abstract, Description, Copyright, License = \ | |
| ParseHeaderCommentSection(TestCommentLinesList, "PhonyFile") | |
| ExpectedAbstract = 'Abstract' | |
| self.assertEqual(Abstract, ExpectedAbstract) | |
| ExpectedDescription = 'Description' | |
| self.assertEqual(Description, ExpectedDescription) | |
| ExpectedCopyright = \ | |
| 'Copyright (c) 2007 - 2018, Intel Corporation.'\ | |
| ' All rights reserved.<BR>' | |
| self.assertEqual(Copyright, ExpectedCopyright) | |
| ExpectedLicense = \ | |
| 'License' | |
| self.assertEqual(License, ExpectedLicense) | |
| # | |
| # Normal case5: other line between copyright | |
| # | |
| def testNormalCase5(self): | |
| TestCommentLines = \ | |
| ''' | |
| ## @file | |
| # Abstract | |
| # | |
| # Description | |
| # | |
| # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # other line | |
| # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # | |
| # License | |
| # | |
| ##''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| Abstract, Description, Copyright, License = \ | |
| ParseHeaderCommentSection(TestCommentLinesList, "PhonyFile") | |
| ExpectedAbstract = 'Abstract' | |
| self.assertEqual(Abstract, ExpectedAbstract) | |
| ExpectedDescription = 'Description' | |
| self.assertEqual(Description, ExpectedDescription) | |
| ExpectedCopyright = \ | |
| 'Copyright (c) 2007 - 2018, Intel Corporation.'\ | |
| ' All rights reserved.<BR>\n'\ | |
| 'Copyright (c) 2007 - 2018, Intel Corporation.'\ | |
| ' All rights reserved.<BR>' | |
| self.assertEqual(Copyright, ExpectedCopyright) | |
| ExpectedLicense = \ | |
| 'License' | |
| self.assertEqual(License, ExpectedLicense) | |
| # | |
| # Normal case6: multiple lines of copyright | |
| # | |
| def testNormalCase6(self): | |
| TestCommentLines = \ | |
| ''' | |
| ## @file | |
| # Abstract | |
| # | |
| # Description | |
| # | |
| # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # Copyright (c) 2007 - 2010, FOO1 Corporation. All rights reserved.<BR> | |
| # Copyright (c) 2007 - 2010, FOO2 Corporation. All rights reserved.<BR> | |
| # | |
| # License | |
| # | |
| ##''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| Abstract, Description, Copyright, License = \ | |
| ParseHeaderCommentSection(TestCommentLinesList, "PhonyFile") | |
| ExpectedAbstract = 'Abstract' | |
| self.assertEqual(Abstract, ExpectedAbstract) | |
| ExpectedDescription = 'Description' | |
| self.assertEqual(Description, ExpectedDescription) | |
| ExpectedCopyright = \ | |
| 'Copyright (c) 2007 - 2018, Intel Corporation.'\ | |
| ' All rights reserved.<BR>\n'\ | |
| 'Copyright (c) 2007 - 2010, FOO1 Corporation.'\ | |
| ' All rights reserved.<BR>\n'\ | |
| 'Copyright (c) 2007 - 2010, FOO2 Corporation.'\ | |
| ' All rights reserved.<BR>' | |
| self.assertEqual(Copyright, ExpectedCopyright) | |
| ExpectedLicense = \ | |
| 'License' | |
| self.assertEqual(License, ExpectedLicense) | |
| # | |
| # Normal case7: Abstract not present | |
| # | |
| def testNormalCase7(self): | |
| TestCommentLines = \ | |
| ''' | |
| ## @file | |
| # | |
| # Description | |
| # | |
| # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # Copyright (c) 2007 - 2010, FOO1 Corporation. All rights reserved.<BR> | |
| # Copyright (c) 2007 - 2010, FOO2 Corporation. All rights reserved.<BR> | |
| # | |
| # License | |
| # | |
| ##''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| Abstract, Description, Copyright, License = \ | |
| ParseHeaderCommentSection(TestCommentLinesList, "PhonyFile") | |
| ExpectedAbstract = '' | |
| self.assertEqual(Abstract, ExpectedAbstract) | |
| ExpectedDescription = 'Description' | |
| self.assertEqual(Description, ExpectedDescription) | |
| ExpectedCopyright = \ | |
| 'Copyright (c) 2007 - 2018, Intel Corporation.'\ | |
| ' All rights reserved.<BR>\n'\ | |
| 'Copyright (c) 2007 - 2010, FOO1 Corporation.'\ | |
| ' All rights reserved.<BR>\n'\ | |
| 'Copyright (c) 2007 - 2010, FOO2 Corporation.'\ | |
| ' All rights reserved.<BR>' | |
| self.assertEqual(Copyright, ExpectedCopyright) | |
| ExpectedLicense = \ | |
| 'License' | |
| self.assertEqual(License, ExpectedLicense) | |
| # | |
| # Normal case8: Description not present | |
| # | |
| def testNormalCase8(self): | |
| TestCommentLines = \ | |
| ''' | |
| ## @file | |
| # Abstact | |
| # | |
| # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # | |
| # License | |
| # | |
| ##''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| Abstract, Description, Copyright, License = \ | |
| ParseHeaderCommentSection(TestCommentLinesList, "PhonyFile") | |
| ExpectedAbstract = 'Abstact' | |
| self.assertEqual(Abstract, ExpectedAbstract) | |
| ExpectedDescription = '' | |
| self.assertEqual(Description, ExpectedDescription) | |
| ExpectedCopyright = \ | |
| 'Copyright (c) 2007 - 2018, Intel Corporation.'\ | |
| ' All rights reserved.<BR>' | |
| self.assertEqual(Copyright, ExpectedCopyright) | |
| ExpectedLicense = \ | |
| 'License' | |
| self.assertEqual(License, ExpectedLicense) | |
| # | |
| # Error case1: No copyright found | |
| # | |
| def testErrorCase1(self): | |
| TestCommentLines = \ | |
| ''' | |
| ## @file | |
| # Abstract | |
| # | |
| # Description | |
| # | |
| # License | |
| # | |
| ##''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| self.assertRaises(Logger.FatalError, | |
| ParseHeaderCommentSection, | |
| TestCommentLinesList, | |
| "PhonyFile") | |
| # | |
| # Error case2: non-empty non-comment lines passed in | |
| # | |
| def testErrorCase2(self): | |
| TestCommentLines = \ | |
| ''' | |
| ## @file | |
| # Abstract | |
| # | |
| this is invalid line | |
| # Description | |
| # | |
| # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # License | |
| # | |
| ##''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| self.assertRaises(Logger.FatalError, | |
| ParseHeaderCommentSection, | |
| TestCommentLinesList, | |
| "PhonyFile") | |
| # | |
| # Test ParseGenericComment | |
| # | |
| class ParseGenericCommentTest(unittest.TestCase): | |
| def setUp(self): | |
| pass | |
| def tearDown(self): | |
| pass | |
| # | |
| # Normal case1: one line of comment | |
| # | |
| def testNormalCase1(self): | |
| TestCommentLines = \ | |
| '''# hello world''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| HelptxtObj = ParseGenericComment(TestCommentLinesList, 'testNormalCase1') | |
| self.failIf(not HelptxtObj) | |
| self.assertEqual(HelptxtObj.GetString(), 'hello world') | |
| self.assertEqual(HelptxtObj.GetLang(), TAB_LANGUAGE_EN_US) | |
| # | |
| # Normal case2: multiple lines of comment | |
| # | |
| def testNormalCase2(self): | |
| TestCommentLines = \ | |
| '''## hello world | |
| # second line''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| HelptxtObj = ParseGenericComment(TestCommentLinesList, 'testNormalCase2') | |
| self.failIf(not HelptxtObj) | |
| self.assertEqual(HelptxtObj.GetString(), | |
| 'hello world\n' + 'second line') | |
| self.assertEqual(HelptxtObj.GetLang(), TAB_LANGUAGE_EN_US) | |
| # | |
| # Normal case3: multiple lines of comment, non comment lines will be skipped | |
| # | |
| def testNormalCase3(self): | |
| TestCommentLines = \ | |
| '''## hello world | |
| This is not comment line''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| HelptxtObj = ParseGenericComment(TestCommentLinesList, 'testNormalCase3') | |
| self.failIf(not HelptxtObj) | |
| self.assertEqual(HelptxtObj.GetString(), | |
| 'hello world\n\n') | |
| self.assertEqual(HelptxtObj.GetLang(), TAB_LANGUAGE_EN_US) | |
| # | |
| # Test ParseDecPcdGenericComment | |
| # | |
| class ParseDecPcdGenericCommentTest(unittest.TestCase): | |
| def setUp(self): | |
| pass | |
| def tearDown(self): | |
| pass | |
| # | |
| # Normal case1: comments with no special comment | |
| # | |
| def testNormalCase1(self): | |
| TestCommentLines = \ | |
| '''## hello world | |
| # second line''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| (HelpTxt, PcdErr) = \ | |
| ParseDecPcdGenericComment(TestCommentLinesList, 'testNormalCase1') | |
| self.failIf(not HelpTxt) | |
| self.failIf(PcdErr) | |
| self.assertEqual(HelpTxt, | |
| 'hello world\n' + 'second line') | |
| # | |
| # Normal case2: comments with valid list | |
| # | |
| def testNormalCase2(self): | |
| TestCommentLines = \ | |
| '''## hello world | |
| # second line | |
| # @ValidList 1, 2, 3 | |
| # other line''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| (HelpTxt, PcdErr) = \ | |
| ParseDecPcdGenericComment(TestCommentLinesList, 'UnitTest') | |
| self.failIf(not HelpTxt) | |
| self.failIf(not PcdErr) | |
| self.assertEqual(HelpTxt, | |
| 'hello world\n' + 'second line\n' + 'other line') | |
| ExpectedList = GetSplitValueList('1 2 3', TAB_SPACE_SPLIT) | |
| ActualList = [item for item in \ | |
| GetSplitValueList(PcdErr.GetValidValue(), TAB_SPACE_SPLIT) if item] | |
| self.assertEqual(ExpectedList, ActualList) | |
| self.failIf(PcdErr.GetExpression()) | |
| self.failIf(PcdErr.GetValidValueRange()) | |
| # | |
| # Normal case3: comments with valid range | |
| # | |
| def testNormalCase3(self): | |
| TestCommentLines = \ | |
| '''## hello world | |
| # second line | |
| # @ValidRange LT 1 AND GT 2 | |
| # other line''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| (HelpTxt, PcdErr) = \ | |
| ParseDecPcdGenericComment(TestCommentLinesList, 'UnitTest') | |
| self.failIf(not HelpTxt) | |
| self.failIf(not PcdErr) | |
| self.assertEqual(HelpTxt, | |
| 'hello world\n' + 'second line\n' + 'other line') | |
| self.assertEqual(PcdErr.GetValidValueRange().strip(), 'LT 1 AND GT 2') | |
| self.failIf(PcdErr.GetExpression()) | |
| self.failIf(PcdErr.GetValidValue()) | |
| # | |
| # Normal case4: comments with valid expression | |
| # | |
| def testNormalCase4(self): | |
| TestCommentLines = \ | |
| '''## hello world | |
| # second line | |
| # @Expression LT 1 AND GT 2 | |
| # other line''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| (HelpTxt, PcdErr) = \ | |
| ParseDecPcdGenericComment(TestCommentLinesList, 'UnitTest') | |
| self.failIf(not HelpTxt) | |
| self.failIf(not PcdErr) | |
| self.assertEqual(HelpTxt, | |
| 'hello world\n' + 'second line\n' + 'other line') | |
| self.assertEqual(PcdErr.GetExpression().strip(), 'LT 1 AND GT 2') | |
| self.failIf(PcdErr.GetValidValueRange()) | |
| self.failIf(PcdErr.GetValidValue()) | |
| # | |
| # Normal case5: comments with valid expression and no generic comment | |
| # | |
| def testNormalCase5(self): | |
| TestCommentLines = \ | |
| '''# @Expression LT 1 AND GT 2''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| (HelpTxt, PcdErr) = \ | |
| ParseDecPcdGenericComment(TestCommentLinesList, 'UnitTest') | |
| self.failIf(HelpTxt) | |
| self.failIf(not PcdErr) | |
| self.assertEqual(PcdErr.GetExpression().strip(), 'LT 1 AND GT 2') | |
| self.failIf(PcdErr.GetValidValueRange()) | |
| self.failIf(PcdErr.GetValidValue()) | |
| # | |
| # Normal case6: comments with only generic help text | |
| # | |
| def testNormalCase6(self): | |
| TestCommentLines = \ | |
| '''#''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| (HelpTxt, PcdErr) = \ | |
| ParseDecPcdGenericComment(TestCommentLinesList, 'UnitTest') | |
| self.assertEqual(HelpTxt, '\n') | |
| self.failIf(PcdErr) | |
| # | |
| # Error case1: comments with both expression and valid list, use later | |
| # ignore the former and with a warning message | |
| # | |
| def testErrorCase1(self): | |
| TestCommentLines = \ | |
| '''## hello world | |
| # second line | |
| # @ValidList 1, 2, 3 | |
| # @Expression LT 1 AND GT 2 | |
| # other line''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| try: | |
| ParseDecPcdGenericComment(TestCommentLinesList, 'UnitTest') | |
| except Logger.FatalError: | |
| pass | |
| # | |
| # Test ParseDecPcdTailComment | |
| # | |
| class ParseDecPcdTailCommentTest(unittest.TestCase): | |
| def setUp(self): | |
| pass | |
| def tearDown(self): | |
| pass | |
| # | |
| # Normal case1: comments with no SupModeList | |
| # | |
| def testNormalCase1(self): | |
| TestCommentLines = \ | |
| '''## #hello world''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| (SupModeList, HelpStr) = \ | |
| ParseDecPcdTailComment(TestCommentLinesList, 'UnitTest') | |
| self.failIf(not HelpStr) | |
| self.failIf(SupModeList) | |
| self.assertEqual(HelpStr, | |
| 'hello world') | |
| # | |
| # Normal case2: comments with one SupMode | |
| # | |
| def testNormalCase2(self): | |
| TestCommentLines = \ | |
| '''## BASE #hello world''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| (SupModeList, HelpStr) = \ | |
| ParseDecPcdTailComment(TestCommentLinesList, 'UnitTest') | |
| self.failIf(not HelpStr) | |
| self.failIf(not SupModeList) | |
| self.assertEqual(HelpStr, | |
| 'hello world') | |
| self.assertEqual(SupModeList, | |
| ['BASE']) | |
| # | |
| # Normal case3: comments with more than one SupMode | |
| # | |
| def testNormalCase3(self): | |
| TestCommentLines = \ | |
| '''## BASE UEFI_APPLICATION #hello world''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| (SupModeList, HelpStr) = \ | |
| ParseDecPcdTailComment(TestCommentLinesList, 'UnitTest') | |
| self.failIf(not HelpStr) | |
| self.failIf(not SupModeList) | |
| self.assertEqual(HelpStr, | |
| 'hello world') | |
| self.assertEqual(SupModeList, | |
| ['BASE', 'UEFI_APPLICATION']) | |
| # | |
| # Normal case4: comments with more than one SupMode, no help text | |
| # | |
| def testNormalCase4(self): | |
| TestCommentLines = \ | |
| '''## BASE UEFI_APPLICATION''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| (SupModeList, HelpStr) = \ | |
| ParseDecPcdTailComment(TestCommentLinesList, 'UnitTest') | |
| self.failIf(HelpStr) | |
| self.failIf(not SupModeList) | |
| self.assertEqual(SupModeList, | |
| ['BASE', 'UEFI_APPLICATION']) | |
| # | |
| # Normal case5: general comments with no supModList, extract from real case | |
| # | |
| def testNormalCase5(self): | |
| TestCommentLines = \ | |
| ''' # 1 = 128MB, 2 = 256MB, 3 = MAX''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| (SupModeList, HelpStr) = \ | |
| ParseDecPcdTailComment(TestCommentLinesList, 'UnitTest') | |
| self.failIf(not HelpStr) | |
| self.assertEqual(HelpStr, | |
| '1 = 128MB, 2 = 256MB, 3 = MAX') | |
| self.failIf(SupModeList) | |
| # | |
| # Error case2: comments with supModList contains valid and invalid | |
| # module type | |
| # | |
| def testErrorCase2(self): | |
| TestCommentLines = \ | |
| '''## BASE INVALID_MODULE_TYPE #hello world''' | |
| CommentList = GetSplitValueList(TestCommentLines, "\n") | |
| LineNum = 0 | |
| TestCommentLinesList = [] | |
| for Comment in CommentList: | |
| LineNum += 1 | |
| TestCommentLinesList.append((Comment, LineNum)) | |
| try: | |
| ParseDecPcdTailComment(TestCommentLinesList, 'UnitTest') | |
| except Logger.FatalError: | |
| pass | |
| # | |
| # Test _IsCopyrightLine | |
| # | |
| class _IsCopyrightLineTest(unittest.TestCase): | |
| def setUp(self): | |
| pass | |
| def tearDown(self): | |
| pass | |
| # | |
| # Normal case | |
| # | |
| def testCase1(self): | |
| Line = 'this is a copyright ( line' | |
| Result = _IsCopyrightLine(Line) | |
| self.failIf(not Result) | |
| # | |
| # Normal case | |
| # | |
| def testCase2(self): | |
| Line = 'this is a Copyright ( line' | |
| Result = _IsCopyrightLine(Line) | |
| self.failIf(not Result) | |
| # | |
| # Normal case | |
| # | |
| def testCase3(self): | |
| Line = 'this is not aCopyright ( line' | |
| Result = _IsCopyrightLine(Line) | |
| self.failIf(Result) | |
| # | |
| # Normal case | |
| # | |
| def testCase4(self): | |
| Line = 'this is Copyright( line' | |
| Result = _IsCopyrightLine(Line) | |
| self.failIf(not Result) | |
| # | |
| # Normal case | |
| # | |
| def testCase5(self): | |
| Line = 'this is Copyright (line' | |
| Result = _IsCopyrightLine(Line) | |
| self.failIf(not Result) | |
| # | |
| # Normal case | |
| # | |
| def testCase6(self): | |
| Line = 'this is not Copyright line' | |
| Result = _IsCopyrightLine(Line) | |
| self.failIf(Result) | |
| # | |
| # Normal case | |
| # | |
| def testCase7(self): | |
| Line = 'Copyright (c) line' | |
| Result = _IsCopyrightLine(Line) | |
| self.failIf(not Result) | |
| # | |
| # Normal case | |
| # | |
| def testCase8(self): | |
| Line = ' Copyright (c) line' | |
| Result = _IsCopyrightLine(Line) | |
| self.failIf(not Result) | |
| # | |
| # Normal case | |
| # | |
| def testCase9(self): | |
| Line = 'not a Copyright ' | |
| Result = _IsCopyrightLine(Line) | |
| self.failIf(Result) | |
| if __name__ == '__main__': | |
| Logger.Initialize() | |
| unittest.main() |