https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
		
			
				
	
	
		
			1415 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			1415 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
## @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 os
 | 
						|
import unittest
 | 
						|
 | 
						|
import Logger.Log as Logger
 | 
						|
from GenMetaFile.GenInfFile import GenGuidSections
 | 
						|
from GenMetaFile.GenInfFile import GenProtocolPPiSections
 | 
						|
from GenMetaFile.GenInfFile import GenPcdSections
 | 
						|
from GenMetaFile.GenInfFile import GenSpecialSections
 | 
						|
from Library.CommentGenerating import GenGenericCommentF
 | 
						|
from Library.CommentGenerating import _GetHelpStr
 | 
						|
from Object.POM.CommonObject import TextObject
 | 
						|
from Object.POM.CommonObject import GuidObject
 | 
						|
from Object.POM.CommonObject import ProtocolObject
 | 
						|
from Object.POM.CommonObject import PpiObject
 | 
						|
from Object.POM.CommonObject import PcdObject
 | 
						|
from Object.POM.ModuleObject import HobObject
 | 
						|
 | 
						|
from Library.StringUtils import GetSplitValueList
 | 
						|
from Library.DataType import TAB_SPACE_SPLIT
 | 
						|
from Library.DataType import TAB_LANGUAGE_EN_US
 | 
						|
from Library.DataType import TAB_LANGUAGE_ENG
 | 
						|
from Library.DataType import ITEM_UNDEFINED
 | 
						|
from Library.DataType import TAB_INF_FEATURE_PCD
 | 
						|
from Library import GlobalData
 | 
						|
from Library.Misc import CreateDirectory
 | 
						|
 | 
						|
#
 | 
						|
# Test _GetHelpStr
 | 
						|
#
 | 
						|
class _GetHelpStrTest(unittest.TestCase):
 | 
						|
    def setUp(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    def tearDown(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case1: have one help text object with Lang = 'en-US'
 | 
						|
    #
 | 
						|
    def testNormalCase1(self):
 | 
						|
        HelpStr = 'Hello world'
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang(TAB_LANGUAGE_EN_US)
 | 
						|
        HelpTextObj.SetString(HelpStr)
 | 
						|
 | 
						|
        HelpTextList = [HelpTextObj]
 | 
						|
        Result = _GetHelpStr(HelpTextList)
 | 
						|
        self.assertEqual(Result, HelpStr)
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case2: have two help text object with Lang = 'en-US' and other
 | 
						|
    #
 | 
						|
    def testNormalCase2(self):
 | 
						|
        HelpStr = 'Hello world'
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang(TAB_LANGUAGE_ENG)
 | 
						|
        HelpTextObj.SetString(HelpStr)
 | 
						|
 | 
						|
        HelpTextList = [HelpTextObj]
 | 
						|
 | 
						|
        ExpectedStr = 'Hello world1'
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang(TAB_LANGUAGE_EN_US)
 | 
						|
        HelpTextObj.SetString(ExpectedStr)
 | 
						|
 | 
						|
        HelpTextList.append(HelpTextObj)
 | 
						|
 | 
						|
        Result = _GetHelpStr(HelpTextList)
 | 
						|
        self.assertEqual(Result, ExpectedStr)
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case3: have two help text object with Lang = '' and 'eng'
 | 
						|
    #
 | 
						|
    def testNormalCase3(self):
 | 
						|
        HelpStr = 'Hello world'
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang('')
 | 
						|
        HelpTextObj.SetString(HelpStr)
 | 
						|
 | 
						|
        HelpTextList = [HelpTextObj]
 | 
						|
 | 
						|
        ExpectedStr = 'Hello world1'
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang(TAB_LANGUAGE_ENG)
 | 
						|
        HelpTextObj.SetString(ExpectedStr)
 | 
						|
 | 
						|
        HelpTextList.append(HelpTextObj)
 | 
						|
 | 
						|
        Result = _GetHelpStr(HelpTextList)
 | 
						|
        self.assertEqual(Result, ExpectedStr)
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case4: have two help text object with Lang = '' and ''
 | 
						|
    #
 | 
						|
    def testNormalCase4(self):
 | 
						|
 | 
						|
        ExpectedStr = 'Hello world1'
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang(TAB_LANGUAGE_ENG)
 | 
						|
        HelpTextObj.SetString(ExpectedStr)
 | 
						|
        HelpTextList = [HelpTextObj]
 | 
						|
 | 
						|
        HelpStr = 'Hello world'
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang('')
 | 
						|
        HelpTextObj.SetString(HelpStr)
 | 
						|
        HelpTextList.append(HelpTextObj)
 | 
						|
 | 
						|
        Result = _GetHelpStr(HelpTextList)
 | 
						|
        self.assertEqual(Result, ExpectedStr)
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have three help text object with Lang = '','en', 'en-US'
 | 
						|
    #
 | 
						|
    def testNormalCase5(self):
 | 
						|
 | 
						|
        ExpectedStr = 'Hello world1'
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang(TAB_LANGUAGE_EN_US)
 | 
						|
        HelpTextObj.SetString(ExpectedStr)
 | 
						|
        HelpTextList = [HelpTextObj]
 | 
						|
 | 
						|
        HelpStr = 'Hello unknown world'
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang('')
 | 
						|
        HelpTextObj.SetString(HelpStr)
 | 
						|
        HelpTextList.append(HelpTextObj)
 | 
						|
 | 
						|
        HelpStr = 'Hello mysterious world'
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang('')
 | 
						|
        HelpTextObj.SetString(HelpStr)
 | 
						|
        HelpTextList.append(HelpTextObj)
 | 
						|
 | 
						|
        Result = _GetHelpStr(HelpTextList)
 | 
						|
        self.assertEqual(Result, ExpectedStr)
 | 
						|
 | 
						|
        HelpTextList.sort()
 | 
						|
        self.assertEqual(Result, ExpectedStr)
 | 
						|
 | 
						|
        HelpTextList.sort(reverse=True)
 | 
						|
        self.assertEqual(Result, ExpectedStr)
 | 
						|
 | 
						|
 | 
						|
#
 | 
						|
# Test GenGuidSections
 | 
						|
#
 | 
						|
class GenGuidSectionsTest(unittest.TestCase):
 | 
						|
    def setUp(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    def tearDown(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    #
 | 
						|
    # This is the API to generate Guid Object to help UnitTest
 | 
						|
    #
 | 
						|
    def GuidFactory(self, CName, FFE, Usage, GuidType, VariableName, HelpStr):
 | 
						|
        Guid = GuidObject()
 | 
						|
        Guid.SetCName(CName)
 | 
						|
        Guid.SetFeatureFlag(FFE)
 | 
						|
        Guid.SetGuidTypeList([GuidType])
 | 
						|
        Guid.SetUsage(Usage)
 | 
						|
        Guid.SetVariableName(VariableName)
 | 
						|
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang('')
 | 
						|
        HelpTextObj.SetString(HelpStr)
 | 
						|
        Guid.SetHelpTextList([HelpTextObj])
 | 
						|
 | 
						|
        return Guid
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have two GuidObject
 | 
						|
    #
 | 
						|
    def testNormalCase1(self):
 | 
						|
        GuidList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        GuidType = 'Event'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Usage comment line 1'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'CONSUMES'
 | 
						|
        GuidType = 'Variable'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Usage comment line 2'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        Result = GenGuidSections(GuidList)
 | 
						|
        Expected = '''[Guids]
 | 
						|
## PRODUCES ## Event # Usage comment line 1
 | 
						|
## CONSUMES ## Variable: # Usage comment line 2
 | 
						|
Guid1|FFE1'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have two GuidObject
 | 
						|
    #
 | 
						|
    def testNormalCase2(self):
 | 
						|
        GuidList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        GuidType = 'Event'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Usage comment line 1'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        GuidType = 'UNDEFINED'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Generic comment line 1\n Generic comment line 2'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        Result = GenGuidSections(GuidList)
 | 
						|
        Expected = '''[Guids]
 | 
						|
## PRODUCES ## Event # Usage comment line 1
 | 
						|
# Generic comment line 1
 | 
						|
# Generic comment line 2
 | 
						|
Guid1|FFE1'''
 | 
						|
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have two GuidObject, one help goes to generic help,
 | 
						|
    # the other go into usage comment
 | 
						|
    #
 | 
						|
    def testNormalCase3(self):
 | 
						|
        GuidList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        GuidType = 'UNDEFINED'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Generic comment'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        GuidType = 'Event'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Usage comment line 1'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        Result = GenGuidSections(GuidList)
 | 
						|
        Expected = '''[Guids]
 | 
						|
# Generic comment
 | 
						|
## PRODUCES ## Event # Usage comment line 1
 | 
						|
Guid1|FFE1'''
 | 
						|
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have one GuidObject, generic comment multiple lines
 | 
						|
    #
 | 
						|
    def testNormalCase5(self):
 | 
						|
        GuidList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        GuidType = 'UNDEFINED'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Generic comment line1 \n generic comment line 2'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        Result = GenGuidSections(GuidList)
 | 
						|
        Expected = '''[Guids]
 | 
						|
# Generic comment line1
 | 
						|
# generic comment line 2
 | 
						|
Guid1|FFE1'''
 | 
						|
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have one GuidObject, usage comment multiple lines
 | 
						|
    #
 | 
						|
    def testNormalCase6(self):
 | 
						|
        GuidList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        GuidType = 'Event'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Usage comment line 1\n Usage comment line 2'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        Result = GenGuidSections(GuidList)
 | 
						|
        Expected = '''[Guids]
 | 
						|
Guid1|FFE1 ## PRODUCES ## Event # Usage comment line 1  Usage comment line 2
 | 
						|
'''
 | 
						|
        self.assertEqual(Result.strip(), Expected.strip())
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have one GuidObject, usage comment one line
 | 
						|
    #
 | 
						|
    def testNormalCase7(self):
 | 
						|
        GuidList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        GuidType = 'UNDEFINED'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Usage comment line 1'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        Result = GenGuidSections(GuidList)
 | 
						|
        Expected = '''[Guids]
 | 
						|
Guid1|FFE1 # Usage comment line 1
 | 
						|
'''
 | 
						|
        self.assertEqual(Result.strip(), Expected.strip())
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have two GuidObject
 | 
						|
    #
 | 
						|
    def testNormalCase8(self):
 | 
						|
        GuidList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        GuidType = 'Event'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Usage comment line 1\n Usage comment line 2'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        GuidType = 'Event'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Usage comment line 3'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        Result = GenGuidSections(GuidList)
 | 
						|
        Expected = '''[Guids]
 | 
						|
## PRODUCES ## Event # Usage comment line 1  Usage comment line 2
 | 
						|
## PRODUCES ## Event # Usage comment line 3
 | 
						|
Guid1|FFE1
 | 
						|
'''
 | 
						|
        self.assertEqual(Result.strip(), Expected.strip())
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have no GuidObject
 | 
						|
    #
 | 
						|
    def testNormalCase9(self):
 | 
						|
        GuidList = []
 | 
						|
 | 
						|
        Result = GenGuidSections(GuidList)
 | 
						|
        Expected = ''
 | 
						|
        self.assertEqual(Result.strip(), Expected.strip())
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have one GuidObject with no comment generated
 | 
						|
    #
 | 
						|
    def testNormalCase10(self):
 | 
						|
        GuidList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        GuidType = 'UNDEFINED'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = ''
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        Result = GenGuidSections(GuidList)
 | 
						|
        Expected = '''[Guids]
 | 
						|
Guid1|FFE1
 | 
						|
'''
 | 
						|
        self.assertEqual(Result.strip(), Expected.strip())
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have three GuidObject
 | 
						|
    #
 | 
						|
    def testNormalCase11(self):
 | 
						|
        GuidList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        GuidType = 'UNDEFINED'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'general comment line 1'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        GuidType = 'Event'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'Usage comment line 3'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        GuidType = 'UNDEFINED'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = 'general comment line 2'
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        Result = GenGuidSections(GuidList)
 | 
						|
        Expected = '''[Guids]
 | 
						|
# general comment line 1
 | 
						|
## PRODUCES ## Event # Usage comment line 3
 | 
						|
# general comment line 2
 | 
						|
Guid1|FFE1
 | 
						|
'''
 | 
						|
        self.assertEqual(Result.strip(), Expected.strip())
 | 
						|
 | 
						|
    #
 | 
						|
    # Normal case: have three GuidObject, with Usage/Type and no help
 | 
						|
    #
 | 
						|
    def testNormalCase12(self):
 | 
						|
        GuidList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        GuidType = 'GUID'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = ''
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        GuidType = 'Event'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = ''
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
        Usage = 'CONSUMES'
 | 
						|
        GuidType = 'Event'
 | 
						|
        VariableName = ''
 | 
						|
        HelpStr = ''
 | 
						|
        Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,
 | 
						|
                                 VariableName, HelpStr)
 | 
						|
        GuidList.append(Guid1)
 | 
						|
 | 
						|
        Result = GenGuidSections(GuidList)
 | 
						|
        Expected = '''[Guids]
 | 
						|
## PRODUCES ## GUID
 | 
						|
## PRODUCES ## Event
 | 
						|
## CONSUMES ## Event
 | 
						|
Guid1|FFE1
 | 
						|
'''
 | 
						|
        self.assertEqual(Result.strip(), Expected.strip())
 | 
						|
 | 
						|
#
 | 
						|
# Test GenProtocolPPiSections
 | 
						|
#
 | 
						|
class GenProtocolPPiSectionsTest(unittest.TestCase):
 | 
						|
    def setUp(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    def tearDown(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    #
 | 
						|
    # This is the API to generate Protocol/Ppi Object to help UnitTest
 | 
						|
    #
 | 
						|
    def ObjectFactory(self, CName, FFE, Usage, Notify, HelpStr, IsProtocol):
 | 
						|
        if IsProtocol:
 | 
						|
            Object = ProtocolObject()
 | 
						|
        else:
 | 
						|
            Object = PpiObject()
 | 
						|
 | 
						|
        Object.SetCName(CName)
 | 
						|
        Object.SetFeatureFlag(FFE)
 | 
						|
        Object.SetUsage(Usage)
 | 
						|
        Object.SetNotify(Notify)
 | 
						|
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang('')
 | 
						|
        HelpTextObj.SetString(HelpStr)
 | 
						|
        Object.SetHelpTextList([HelpTextObj])
 | 
						|
 | 
						|
        return Object
 | 
						|
 | 
						|
    #    Usage        Notify    Help    INF Comment
 | 
						|
    #1   UNDEFINED    true    Present    ## UNDEFINED ## NOTIFY # Help
 | 
						|
    #2   UNDEFINED    true    Not Present    ## UNDEFINED ## NOTIFY
 | 
						|
    #3   UNDEFINED    false    Present    ## UNDEFINED # Help
 | 
						|
    #4   UNDEFINED    false     Not Present    ## UNDEFINED
 | 
						|
    #5   UNDEFINED    Not Present    Present    # Help
 | 
						|
    #6   UNDEFINED    Not Present    Not Present    <empty>
 | 
						|
    #7   Other        true    Present    ## Other ## NOTIFY # Help
 | 
						|
    #8   Other        true    Not Present    ## Other ## NOTIFY
 | 
						|
    #9   Other        false    Present    ## Other # Help
 | 
						|
    #A   Other        false     Not Present    ## Other
 | 
						|
    #B   Other        Not Present    Present    ## Other # Help
 | 
						|
    #C   Other        Not Present    Not Present    ## Other
 | 
						|
 | 
						|
    def testNormalCase1(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Notify = True
 | 
						|
        HelpStr = 'Help'
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1 ## UNDEFINED ## NOTIFY # Help'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
        IsProtocol = False
 | 
						|
        ObjectList = []
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Ppis]
 | 
						|
Guid1|FFE1 ## UNDEFINED ## NOTIFY # Help'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCase2(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Notify = True
 | 
						|
        HelpStr = ''
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1 ## UNDEFINED ## NOTIFY'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCase3(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Notify = False
 | 
						|
        HelpStr = 'Help'
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1 ## UNDEFINED # Help'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCase4(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Notify = False
 | 
						|
        HelpStr = ''
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1 ## UNDEFINED'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCase5(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Notify = ''
 | 
						|
        HelpStr = 'Help'
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1 # Help'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCase6(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Notify = ''
 | 
						|
        HelpStr = ''
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCase7(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        Notify = True
 | 
						|
        HelpStr = 'Help'
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1 ## PRODUCES ## NOTIFY # Help'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCase8(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        Notify = True
 | 
						|
        HelpStr = ''
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1 ## PRODUCES ## NOTIFY'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCase9(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        Notify = False
 | 
						|
        HelpStr = 'Help'
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1 ## PRODUCES # Help'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCaseA(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        Notify = False
 | 
						|
        HelpStr = ''
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1 ## PRODUCES'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCaseB(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        Notify = ''
 | 
						|
        HelpStr = 'Help'
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1 ## PRODUCES # Help'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCaseC(self):
 | 
						|
        ObjectList = []
 | 
						|
 | 
						|
        CName = 'Guid1'
 | 
						|
        FFE = 'FFE1'
 | 
						|
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        Notify = ''
 | 
						|
        HelpStr = ''
 | 
						|
        IsProtocol = True
 | 
						|
        Object = self.ObjectFactory(CName, FFE, Usage, Notify,
 | 
						|
                                 HelpStr, IsProtocol)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
 | 
						|
        Result = GenProtocolPPiSections(ObjectList, IsProtocol)
 | 
						|
        Expected = '''[Protocols]
 | 
						|
Guid1|FFE1 ## PRODUCES'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
#
 | 
						|
# Test GenPcdSections
 | 
						|
#
 | 
						|
class GenPcdSectionsTest(unittest.TestCase):
 | 
						|
    def setUp(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    def tearDown(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    #
 | 
						|
    # This is the API to generate Pcd Object to help UnitTest
 | 
						|
    #
 | 
						|
    def ObjectFactory(self, ItemType, TSCName, CName, DValue, FFE, Usage, Str):
 | 
						|
        Object = PcdObject()
 | 
						|
        HelpStr = Str
 | 
						|
 | 
						|
        Object.SetItemType(ItemType)
 | 
						|
        Object.SetTokenSpaceGuidCName(TSCName)
 | 
						|
        Object.SetCName(CName)
 | 
						|
        Object.SetDefaultValue(DValue)
 | 
						|
        Object.SetFeatureFlag(FFE)
 | 
						|
        Object.SetValidUsage(Usage)
 | 
						|
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang('')
 | 
						|
        HelpTextObj.SetString(HelpStr)
 | 
						|
        Object.SetHelpTextList([HelpTextObj])
 | 
						|
 | 
						|
        return Object
 | 
						|
 | 
						|
 | 
						|
    #    Usage        Help    INF Comment
 | 
						|
    #1   UNDEFINED    Present    # Help
 | 
						|
    #2   UNDEFINED    Not Present    <empty>
 | 
						|
    #3   Other        Present    ## Other # Help
 | 
						|
    #4   Other        Not Present    ## Other
 | 
						|
 | 
						|
    def testNormalCase1(self):
 | 
						|
        ObjectList = []
 | 
						|
        ItemType = 'Pcd'
 | 
						|
        TSCName = 'TSCName'
 | 
						|
        CName = 'CName'
 | 
						|
        DValue = 'DValue'
 | 
						|
        FFE = 'FFE'
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = 'Help'
 | 
						|
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenPcdSections(ObjectList)
 | 
						|
        Expected = \
 | 
						|
            '[Pcd]\n' + \
 | 
						|
            'TSCName.CName|DValue|FFE # Help'
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCase2(self):
 | 
						|
        ObjectList = []
 | 
						|
        ItemType = 'Pcd'
 | 
						|
        TSCName = 'TSCName'
 | 
						|
        CName = 'CName'
 | 
						|
        DValue = 'DValue'
 | 
						|
        FFE = 'FFE'
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = ''
 | 
						|
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenPcdSections(ObjectList)
 | 
						|
        Expected = '[Pcd]\nTSCName.CName|DValue|FFE'
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCase3(self):
 | 
						|
        ObjectList = []
 | 
						|
        ItemType = 'Pcd'
 | 
						|
        TSCName = 'TSCName'
 | 
						|
        CName = 'CName'
 | 
						|
        DValue = 'DValue'
 | 
						|
        FFE = 'FFE'
 | 
						|
 | 
						|
        Usage = 'CONSUMES'
 | 
						|
        Str = 'Help'
 | 
						|
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenPcdSections(ObjectList)
 | 
						|
        Expected = '[Pcd]\nTSCName.CName|DValue|FFE ## CONSUMES # Help'
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    def testNormalCase4(self):
 | 
						|
        ObjectList = []
 | 
						|
        ItemType = 'Pcd'
 | 
						|
        TSCName = 'TSCName'
 | 
						|
        CName = 'CName'
 | 
						|
        DValue = 'DValue'
 | 
						|
        FFE = 'FFE'
 | 
						|
 | 
						|
        Usage = 'CONSUMES'
 | 
						|
        Str = ''
 | 
						|
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenPcdSections(ObjectList)
 | 
						|
        Expected = '[Pcd]\nTSCName.CName|DValue|FFE ## CONSUMES'
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    #
 | 
						|
    # multiple lines for normal usage
 | 
						|
    #
 | 
						|
    def testNormalCase5(self):
 | 
						|
        ObjectList = []
 | 
						|
        ItemType = 'Pcd'
 | 
						|
        TSCName = 'TSCName'
 | 
						|
        CName = 'CName'
 | 
						|
        DValue = 'DValue'
 | 
						|
        FFE = 'FFE'
 | 
						|
 | 
						|
        Usage = 'CONSUMES'
 | 
						|
        Str = 'commment line 1\ncomment line 2'
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenPcdSections(ObjectList)
 | 
						|
        Expected = '''[Pcd]
 | 
						|
TSCName.CName|DValue|FFE ## CONSUMES # commment line 1 comment line 2'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    #
 | 
						|
    # multiple lines for UNDEFINED usage
 | 
						|
    #
 | 
						|
    def testNormalCase6(self):
 | 
						|
        ObjectList = []
 | 
						|
        ItemType = 'Pcd'
 | 
						|
        TSCName = 'TSCName'
 | 
						|
        CName = 'CName'
 | 
						|
        DValue = 'DValue'
 | 
						|
        FFE = 'FFE'
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = 'commment line 1\ncomment line 2'
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = 'commment line 3'
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenPcdSections(ObjectList)
 | 
						|
        Expected = '''[Pcd]
 | 
						|
# commment line 1
 | 
						|
# comment line 2
 | 
						|
# commment line 3
 | 
						|
TSCName.CName|DValue|FFE'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    #
 | 
						|
    # multiple lines for UNDEFINED and normal usage
 | 
						|
    #
 | 
						|
    def testNormalCase7(self):
 | 
						|
        ObjectList = []
 | 
						|
        ItemType = 'Pcd'
 | 
						|
        TSCName = 'TSCName'
 | 
						|
        CName = 'CName'
 | 
						|
        DValue = 'DValue'
 | 
						|
        FFE = 'FFE'
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = 'commment line 1\ncomment line 2'
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Usage = 'CONSUMES'
 | 
						|
        Str = 'Foo'
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = 'commment line 3'
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenPcdSections(ObjectList)
 | 
						|
        Expected = '''[Pcd]
 | 
						|
# commment line 1
 | 
						|
# comment line 2
 | 
						|
## CONSUMES # Foo
 | 
						|
# commment line 3
 | 
						|
TSCName.CName|DValue|FFE'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    #    Usage        Help    INF Comment
 | 
						|
    #    CONSUMES    Present    # Help (keep <EOL> and insert '#' at beginning of each new line)
 | 
						|
    #    CONSUMES    Not Present   <empty>
 | 
						|
 | 
						|
    #
 | 
						|
    # TAB_INF_FEATURE_PCD
 | 
						|
    #
 | 
						|
    def testNormalCase8(self):
 | 
						|
        ObjectList = []
 | 
						|
        ItemType = TAB_INF_FEATURE_PCD
 | 
						|
        TSCName = 'TSCName'
 | 
						|
        CName = 'CName'
 | 
						|
        DValue = 'DValue'
 | 
						|
        FFE = 'FFE'
 | 
						|
 | 
						|
        Usage = 'CONSUMES'
 | 
						|
        Str = 'commment line 1\ncomment line 2'
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenPcdSections(ObjectList)
 | 
						|
        Expected = '''[FeaturePcd]
 | 
						|
# commment line 1
 | 
						|
# comment line 2
 | 
						|
TSCName.CName|DValue|FFE'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    #
 | 
						|
    # TAB_INF_FEATURE_PCD
 | 
						|
    #
 | 
						|
    def testNormalCase9(self):
 | 
						|
        ObjectList = []
 | 
						|
        ItemType = TAB_INF_FEATURE_PCD
 | 
						|
        TSCName = 'TSCName'
 | 
						|
        CName = 'CName'
 | 
						|
        DValue = 'DValue'
 | 
						|
        FFE = 'FFE'
 | 
						|
 | 
						|
        Usage = 'CONSUMES'
 | 
						|
        Str = ''
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenPcdSections(ObjectList)
 | 
						|
        Expected = '''[FeaturePcd]
 | 
						|
TSCName.CName|DValue|FFE'''
 | 
						|
        self.assertEqual(Result.strip(), Expected)
 | 
						|
 | 
						|
    #
 | 
						|
    # TAB_INF_FEATURE_PCD
 | 
						|
    #
 | 
						|
    def testNormalCase10(self):
 | 
						|
        ObjectList = []
 | 
						|
        ItemType = TAB_INF_FEATURE_PCD
 | 
						|
        TSCName = 'TSCName'
 | 
						|
        CName = 'CName'
 | 
						|
        DValue = 'DValue'
 | 
						|
        FFE = 'FFE'
 | 
						|
 | 
						|
        Usage = 'PRODUCES'
 | 
						|
        Str = 'commment line 1\ncomment line 2'
 | 
						|
        Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,
 | 
						|
                                    Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenPcdSections(ObjectList)
 | 
						|
        Expected = '''
 | 
						|
 | 
						|
[FeaturePcd]
 | 
						|
# commment line 1
 | 
						|
# comment line 2
 | 
						|
TSCName.CName|DValue|FFE
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
 | 
						|
#
 | 
						|
# Test GenSpecialSections of Hob
 | 
						|
#
 | 
						|
class GenHobSectionsTest(unittest.TestCase):
 | 
						|
    def setUp(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    def tearDown(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    #
 | 
						|
    # This is the API to generate Event Object to help UnitTest
 | 
						|
    #
 | 
						|
    def ObjectFactory(self, SupArchList, Type, Usage, Str):
 | 
						|
        Object = HobObject()
 | 
						|
        HelpStr = Str
 | 
						|
 | 
						|
        Object.SetHobType(Type)
 | 
						|
        Object.SetUsage(Usage)
 | 
						|
        Object.SetSupArchList(SupArchList)
 | 
						|
 | 
						|
        HelpTextObj = TextObject()
 | 
						|
        HelpTextObj.SetLang('')
 | 
						|
        HelpTextObj.SetString(HelpStr)
 | 
						|
        Object.SetHelpTextList([HelpTextObj])
 | 
						|
 | 
						|
        return Object
 | 
						|
 | 
						|
    def testNormalCase1(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = ['X64']
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = 'Help'
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob.X64]
 | 
						|
# ##
 | 
						|
# # Help
 | 
						|
# #
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase2(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = []
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = 'Help'
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob]
 | 
						|
# ##
 | 
						|
# # Help
 | 
						|
# #
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase3(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = ['X64']
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = '\nComment Line 1\n\n'
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob.X64]
 | 
						|
# ##
 | 
						|
# # Comment Line 1
 | 
						|
# #
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase4(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = ['X64']
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = '\nComment Line 1\n'
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob.X64]
 | 
						|
# ##
 | 
						|
# # Comment Line 1
 | 
						|
# #
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase5(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = ['X64']
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = 'Comment Line 1\n\n'
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob.X64]
 | 
						|
# ##
 | 
						|
# # Comment Line 1
 | 
						|
# #
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase6(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = ['X64']
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = ''
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob.X64]
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase7(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = ['X64']
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = '\nNew Stack HoB'
 | 
						|
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob.X64]
 | 
						|
# ##
 | 
						|
# # New Stack HoB
 | 
						|
# #
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase8(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = ['X64']
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = '\nNew Stack HoB\n\nTail Comment'
 | 
						|
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob.X64]
 | 
						|
# ##
 | 
						|
# # New Stack HoB
 | 
						|
# #
 | 
						|
# # Tail Comment
 | 
						|
# #
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase9(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = ['X64']
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = '\n\n'
 | 
						|
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob.X64]
 | 
						|
# ##
 | 
						|
# #
 | 
						|
# #
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase10(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = ['X64']
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = '\n'
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob.X64]
 | 
						|
# ##
 | 
						|
# #
 | 
						|
# #
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase11(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = ['X64']
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = '\n\n\n'
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob.X64]
 | 
						|
# ##
 | 
						|
# #
 | 
						|
# #
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase12(self):
 | 
						|
        ObjectList = []
 | 
						|
        SupArchList = ['X64']
 | 
						|
        Type = 'Foo'
 | 
						|
        Usage = 'UNDEFINED'
 | 
						|
        Str = '\n\n\n\n'
 | 
						|
 | 
						|
        Object = self.ObjectFactory(SupArchList, Type, Usage, Str)
 | 
						|
        ObjectList.append(Object)
 | 
						|
 | 
						|
        Result = GenSpecialSections(ObjectList, 'Hob')
 | 
						|
        Expected = '''# [Hob.X64]
 | 
						|
# ##
 | 
						|
# #
 | 
						|
# #
 | 
						|
# #
 | 
						|
# Foo ## UNDEFINED
 | 
						|
#
 | 
						|
#
 | 
						|
'''
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
#
 | 
						|
# Test GenGenericCommentF
 | 
						|
#
 | 
						|
class GenGenericCommentFTest(unittest.TestCase):
 | 
						|
    def setUp(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    def tearDown(self):
 | 
						|
        pass
 | 
						|
 | 
						|
    def testNormalCase1(self):
 | 
						|
        CommentLines = 'Comment Line 1'
 | 
						|
        Result = GenGenericCommentF(CommentLines)
 | 
						|
        Expected = '# Comment Line 1\n'
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase2(self):
 | 
						|
        CommentLines = '\n'
 | 
						|
        Result = GenGenericCommentF(CommentLines)
 | 
						|
        Expected = '#\n'
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase3(self):
 | 
						|
        CommentLines = '\n\n\n'
 | 
						|
        Result = GenGenericCommentF(CommentLines)
 | 
						|
        Expected = '#\n#\n#\n'
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase4(self):
 | 
						|
        CommentLines = 'coment line 1\n'
 | 
						|
        Result = GenGenericCommentF(CommentLines)
 | 
						|
        Expected = '# coment line 1\n'
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
    def testNormalCase5(self):
 | 
						|
        CommentLines = 'coment line 1\n coment line 2\n'
 | 
						|
        Result = GenGenericCommentF(CommentLines)
 | 
						|
        Expected = '# coment line 1\n# coment line 2\n'
 | 
						|
        self.assertEqual(Result, Expected)
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    Logger.Initialize()
 | 
						|
    unittest.main()
 |