]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/Python/UPT/UnitTest/CommentGeneratingUnitTest.py
BaseTools: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / BaseTools / Source / Python / UPT / UnitTest / CommentGeneratingUnitTest.py
CommitLineData
4234283c
LG
1## @file\r
2# This file contain unit test for CommentParsing\r
3#\r
64285f15 4# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
4234283c 5#\r
2e351cbe 6# SPDX-License-Identifier: BSD-2-Clause-Patent\r
4234283c
LG
7\r
8import os\r
9import unittest\r
10\r
11import Logger.Log as Logger\r
f7496d71 12from GenMetaFile.GenInfFile import GenGuidSections\r
4234283c
LG
13from GenMetaFile.GenInfFile import GenProtocolPPiSections\r
14from GenMetaFile.GenInfFile import GenPcdSections\r
15from GenMetaFile.GenInfFile import GenSpecialSections\r
16from Library.CommentGenerating import GenGenericCommentF\r
f7496d71 17from Library.CommentGenerating import _GetHelpStr\r
4234283c
LG
18from Object.POM.CommonObject import TextObject\r
19from Object.POM.CommonObject import GuidObject\r
20from Object.POM.CommonObject import ProtocolObject\r
21from Object.POM.CommonObject import PpiObject\r
22from Object.POM.CommonObject import PcdObject\r
23from Object.POM.ModuleObject import HobObject\r
f7496d71 24\r
64285f15 25from Library.StringUtils import GetSplitValueList\r
4234283c 26from Library.DataType import TAB_SPACE_SPLIT\r
421ccda3
HC
27from Library.DataType import TAB_LANGUAGE_EN_US\r
28from Library.DataType import TAB_LANGUAGE_ENG\r
4234283c
LG
29from Library.DataType import ITEM_UNDEFINED\r
30from Library.DataType import TAB_INF_FEATURE_PCD\r
31from Library import GlobalData\r
32from Library.Misc import CreateDirectory\r
33\r
34#\r
35# Test _GetHelpStr\r
36#\r
37class _GetHelpStrTest(unittest.TestCase):\r
38 def setUp(self):\r
39 pass\r
40\r
41 def tearDown(self):\r
42 pass\r
f7496d71 43\r
4234283c
LG
44 #\r
45 # Normal case1: have one help text object with Lang = 'en-US'\r
46 #\r
47 def testNormalCase1(self):\r
48 HelpStr = 'Hello world'\r
49 HelpTextObj = TextObject()\r
421ccda3 50 HelpTextObj.SetLang(TAB_LANGUAGE_EN_US)\r
4234283c 51 HelpTextObj.SetString(HelpStr)\r
f7496d71 52\r
4234283c
LG
53 HelpTextList = [HelpTextObj]\r
54 Result = _GetHelpStr(HelpTextList)\r
55 self.assertEqual(Result, HelpStr)\r
f7496d71 56\r
4234283c
LG
57 #\r
58 # Normal case2: have two help text object with Lang = 'en-US' and other\r
59 #\r
60 def testNormalCase2(self):\r
61 HelpStr = 'Hello world'\r
62 HelpTextObj = TextObject()\r
421ccda3 63 HelpTextObj.SetLang(TAB_LANGUAGE_ENG)\r
4234283c 64 HelpTextObj.SetString(HelpStr)\r
f7496d71 65\r
4234283c
LG
66 HelpTextList = [HelpTextObj]\r
67\r
68 ExpectedStr = 'Hello world1'\r
69 HelpTextObj = TextObject()\r
421ccda3 70 HelpTextObj.SetLang(TAB_LANGUAGE_EN_US)\r
f7496d71
LG
71 HelpTextObj.SetString(ExpectedStr)\r
72\r
4234283c 73 HelpTextList.append(HelpTextObj)\r
f7496d71 74\r
4234283c
LG
75 Result = _GetHelpStr(HelpTextList)\r
76 self.assertEqual(Result, ExpectedStr)\r
77\r
78 #\r
79 # Normal case3: have two help text object with Lang = '' and 'eng'\r
80 #\r
81 def testNormalCase3(self):\r
82 HelpStr = 'Hello world'\r
83 HelpTextObj = TextObject()\r
84 HelpTextObj.SetLang('')\r
85 HelpTextObj.SetString(HelpStr)\r
f7496d71 86\r
4234283c
LG
87 HelpTextList = [HelpTextObj]\r
88\r
89 ExpectedStr = 'Hello world1'\r
90 HelpTextObj = TextObject()\r
421ccda3 91 HelpTextObj.SetLang(TAB_LANGUAGE_ENG)\r
f7496d71
LG
92 HelpTextObj.SetString(ExpectedStr)\r
93\r
4234283c 94 HelpTextList.append(HelpTextObj)\r
f7496d71 95\r
4234283c
LG
96 Result = _GetHelpStr(HelpTextList)\r
97 self.assertEqual(Result, ExpectedStr)\r
98\r
99 #\r
100 # Normal case4: have two help text object with Lang = '' and ''\r
101 #\r
102 def testNormalCase4(self):\r
103\r
104 ExpectedStr = 'Hello world1'\r
105 HelpTextObj = TextObject()\r
421ccda3 106 HelpTextObj.SetLang(TAB_LANGUAGE_ENG)\r
f7496d71 107 HelpTextObj.SetString(ExpectedStr)\r
4234283c 108 HelpTextList = [HelpTextObj]\r
f7496d71 109\r
4234283c
LG
110 HelpStr = 'Hello world'\r
111 HelpTextObj = TextObject()\r
112 HelpTextObj.SetLang('')\r
f7496d71 113 HelpTextObj.SetString(HelpStr)\r
4234283c 114 HelpTextList.append(HelpTextObj)\r
f7496d71 115\r
4234283c
LG
116 Result = _GetHelpStr(HelpTextList)\r
117 self.assertEqual(Result, ExpectedStr)\r
118\r
119 #\r
120 # Normal case: have three help text object with Lang = '','en', 'en-US'\r
121 #\r
122 def testNormalCase5(self):\r
123\r
124 ExpectedStr = 'Hello world1'\r
125 HelpTextObj = TextObject()\r
421ccda3 126 HelpTextObj.SetLang(TAB_LANGUAGE_EN_US)\r
f7496d71 127 HelpTextObj.SetString(ExpectedStr)\r
4234283c 128 HelpTextList = [HelpTextObj]\r
f7496d71 129\r
4234283c
LG
130 HelpStr = 'Hello unknown world'\r
131 HelpTextObj = TextObject()\r
132 HelpTextObj.SetLang('')\r
f7496d71 133 HelpTextObj.SetString(HelpStr)\r
4234283c
LG
134 HelpTextList.append(HelpTextObj)\r
135\r
136 HelpStr = 'Hello mysterious world'\r
137 HelpTextObj = TextObject()\r
138 HelpTextObj.SetLang('')\r
f7496d71 139 HelpTextObj.SetString(HelpStr)\r
4234283c 140 HelpTextList.append(HelpTextObj)\r
f7496d71 141\r
4234283c
LG
142 Result = _GetHelpStr(HelpTextList)\r
143 self.assertEqual(Result, ExpectedStr)\r
f7496d71 144\r
4234283c
LG
145 HelpTextList.sort()\r
146 self.assertEqual(Result, ExpectedStr)\r
f7496d71 147\r
4234283c
LG
148 HelpTextList.sort(reverse=True)\r
149 self.assertEqual(Result, ExpectedStr)\r
150\r
151\r
152#\r
153# Test GenGuidSections\r
154#\r
155class GenGuidSectionsTest(unittest.TestCase):\r
156 def setUp(self):\r
f7496d71 157 pass\r
4234283c
LG
158\r
159 def tearDown(self):\r
160 pass\r
f7496d71 161\r
4234283c
LG
162 #\r
163 # This is the API to generate Guid Object to help UnitTest\r
164 #\r
f7496d71 165 def GuidFactory(self, CName, FFE, Usage, GuidType, VariableName, HelpStr):\r
4234283c
LG
166 Guid = GuidObject()\r
167 Guid.SetCName(CName)\r
168 Guid.SetFeatureFlag(FFE)\r
169 Guid.SetGuidTypeList([GuidType])\r
170 Guid.SetUsage(Usage)\r
171 Guid.SetVariableName(VariableName)\r
172\r
173 HelpTextObj = TextObject()\r
174 HelpTextObj.SetLang('')\r
175 HelpTextObj.SetString(HelpStr)\r
176 Guid.SetHelpTextList([HelpTextObj])\r
f7496d71
LG
177\r
178 return Guid\r
179\r
4234283c
LG
180 #\r
181 # Normal case: have two GuidObject\r
182 #\r
183 def testNormalCase1(self):\r
184 GuidList = []\r
f7496d71 185\r
4234283c
LG
186 CName = 'Guid1'\r
187 FFE = 'FFE1'\r
188 Usage = 'PRODUCES'\r
189 GuidType = 'Event'\r
190 VariableName = ''\r
191 HelpStr = 'Usage comment line 1'\r
f7496d71 192 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
193 VariableName, HelpStr)\r
194 GuidList.append(Guid1)\r
195\r
196 CName = 'Guid1'\r
197 FFE = 'FFE1'\r
198 Usage = 'CONSUMES'\r
199 GuidType = 'Variable'\r
200 VariableName = ''\r
201 HelpStr = 'Usage comment line 2'\r
f7496d71 202 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c 203 VariableName, HelpStr)\r
f7496d71
LG
204 GuidList.append(Guid1)\r
205\r
4234283c
LG
206 Result = GenGuidSections(GuidList)\r
207 Expected = '''[Guids]\r
208## PRODUCES ## Event # Usage comment line 1\r
209## CONSUMES ## Variable: # Usage comment line 2\r
210Guid1|FFE1'''\r
211 self.assertEqual(Result.strip(), Expected)\r
212\r
213 #\r
214 # Normal case: have two GuidObject\r
215 #\r
216 def testNormalCase2(self):\r
217 GuidList = []\r
f7496d71 218\r
4234283c
LG
219 CName = 'Guid1'\r
220 FFE = 'FFE1'\r
221 Usage = 'PRODUCES'\r
222 GuidType = 'Event'\r
223 VariableName = ''\r
224 HelpStr = 'Usage comment line 1'\r
f7496d71 225 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
226 VariableName, HelpStr)\r
227 GuidList.append(Guid1)\r
228\r
229 CName = 'Guid1'\r
230 FFE = 'FFE1'\r
231 Usage = 'UNDEFINED'\r
232 GuidType = 'UNDEFINED'\r
233 VariableName = ''\r
234 HelpStr = 'Generic comment line 1\n Generic comment line 2'\r
f7496d71 235 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c 236 VariableName, HelpStr)\r
f7496d71
LG
237 GuidList.append(Guid1)\r
238\r
4234283c
LG
239 Result = GenGuidSections(GuidList)\r
240 Expected = '''[Guids]\r
241## PRODUCES ## Event # Usage comment line 1\r
242# Generic comment line 1\r
243# Generic comment line 2\r
244Guid1|FFE1'''\r
245\r
246 self.assertEqual(Result.strip(), Expected)\r
247\r
248 #\r
f7496d71 249 # Normal case: have two GuidObject, one help goes to generic help,\r
4234283c
LG
250 # the other go into usage comment\r
251 #\r
252 def testNormalCase3(self):\r
253 GuidList = []\r
254\r
255 CName = 'Guid1'\r
256 FFE = 'FFE1'\r
257 Usage = 'UNDEFINED'\r
258 GuidType = 'UNDEFINED'\r
259 VariableName = ''\r
260 HelpStr = 'Generic comment'\r
f7496d71 261 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c 262 VariableName, HelpStr)\r
f7496d71
LG
263 GuidList.append(Guid1)\r
264\r
4234283c
LG
265 CName = 'Guid1'\r
266 FFE = 'FFE1'\r
267 Usage = 'PRODUCES'\r
268 GuidType = 'Event'\r
269 VariableName = ''\r
270 HelpStr = 'Usage comment line 1'\r
f7496d71 271 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
272 VariableName, HelpStr)\r
273 GuidList.append(Guid1)\r
f7496d71 274\r
4234283c
LG
275 Result = GenGuidSections(GuidList)\r
276 Expected = '''[Guids]\r
277# Generic comment\r
278## PRODUCES ## Event # Usage comment line 1\r
279Guid1|FFE1'''\r
280\r
281 self.assertEqual(Result.strip(), Expected)\r
282\r
283 #\r
284 # Normal case: have one GuidObject, generic comment multiple lines\r
285 #\r
286 def testNormalCase5(self):\r
287 GuidList = []\r
288\r
289 CName = 'Guid1'\r
290 FFE = 'FFE1'\r
291 Usage = 'UNDEFINED'\r
292 GuidType = 'UNDEFINED'\r
293 VariableName = ''\r
294 HelpStr = 'Generic comment line1 \n generic comment line 2'\r
f7496d71 295 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c 296 VariableName, HelpStr)\r
f7496d71
LG
297 GuidList.append(Guid1)\r
298\r
4234283c
LG
299 Result = GenGuidSections(GuidList)\r
300 Expected = '''[Guids]\r
301# Generic comment line1\r
302# generic comment line 2\r
303Guid1|FFE1'''\r
304\r
305 self.assertEqual(Result.strip(), Expected)\r
306\r
307 #\r
308 # Normal case: have one GuidObject, usage comment multiple lines\r
309 #\r
310 def testNormalCase6(self):\r
311 GuidList = []\r
f7496d71 312\r
4234283c
LG
313 CName = 'Guid1'\r
314 FFE = 'FFE1'\r
315 Usage = 'PRODUCES'\r
316 GuidType = 'Event'\r
317 VariableName = ''\r
318 HelpStr = 'Usage comment line 1\n Usage comment line 2'\r
f7496d71 319 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
320 VariableName, HelpStr)\r
321 GuidList.append(Guid1)\r
f7496d71 322\r
4234283c
LG
323 Result = GenGuidSections(GuidList)\r
324 Expected = '''[Guids]\r
325Guid1|FFE1 ## PRODUCES ## Event # Usage comment line 1 Usage comment line 2\r
326'''\r
327 self.assertEqual(Result.strip(), Expected.strip())\r
328\r
329 #\r
330 # Normal case: have one GuidObject, usage comment one line\r
331 #\r
332 def testNormalCase7(self):\r
333 GuidList = []\r
f7496d71 334\r
4234283c
LG
335 CName = 'Guid1'\r
336 FFE = 'FFE1'\r
337 Usage = 'UNDEFINED'\r
338 GuidType = 'UNDEFINED'\r
339 VariableName = ''\r
340 HelpStr = 'Usage comment line 1'\r
f7496d71 341 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
342 VariableName, HelpStr)\r
343 GuidList.append(Guid1)\r
f7496d71 344\r
4234283c
LG
345 Result = GenGuidSections(GuidList)\r
346 Expected = '''[Guids]\r
347Guid1|FFE1 # Usage comment line 1\r
348'''\r
349 self.assertEqual(Result.strip(), Expected.strip())\r
f7496d71 350\r
4234283c
LG
351 #\r
352 # Normal case: have two GuidObject\r
353 #\r
354 def testNormalCase8(self):\r
355 GuidList = []\r
f7496d71 356\r
4234283c
LG
357 CName = 'Guid1'\r
358 FFE = 'FFE1'\r
359 Usage = 'PRODUCES'\r
360 GuidType = 'Event'\r
361 VariableName = ''\r
362 HelpStr = 'Usage comment line 1\n Usage comment line 2'\r
f7496d71 363 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
364 VariableName, HelpStr)\r
365 GuidList.append(Guid1)\r
366\r
367 CName = 'Guid1'\r
368 FFE = 'FFE1'\r
369 Usage = 'PRODUCES'\r
370 GuidType = 'Event'\r
371 VariableName = ''\r
372 HelpStr = 'Usage comment line 3'\r
f7496d71 373 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
374 VariableName, HelpStr)\r
375 GuidList.append(Guid1)\r
f7496d71 376\r
4234283c
LG
377 Result = GenGuidSections(GuidList)\r
378 Expected = '''[Guids]\r
379## PRODUCES ## Event # Usage comment line 1 Usage comment line 2\r
380## PRODUCES ## Event # Usage comment line 3\r
381Guid1|FFE1\r
382'''\r
383 self.assertEqual(Result.strip(), Expected.strip())\r
384\r
385 #\r
386 # Normal case: have no GuidObject\r
387 #\r
388 def testNormalCase9(self):\r
389 GuidList = []\r
390\r
391 Result = GenGuidSections(GuidList)\r
392 Expected = ''\r
393 self.assertEqual(Result.strip(), Expected.strip())\r
394\r
395 #\r
396 # Normal case: have one GuidObject with no comment generated\r
397 #\r
398 def testNormalCase10(self):\r
399 GuidList = []\r
f7496d71 400\r
4234283c
LG
401 CName = 'Guid1'\r
402 FFE = 'FFE1'\r
403 Usage = 'UNDEFINED'\r
404 GuidType = 'UNDEFINED'\r
405 VariableName = ''\r
406 HelpStr = ''\r
f7496d71 407 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
408 VariableName, HelpStr)\r
409 GuidList.append(Guid1)\r
410\r
411 Result = GenGuidSections(GuidList)\r
412 Expected = '''[Guids]\r
413Guid1|FFE1\r
414'''\r
415 self.assertEqual(Result.strip(), Expected.strip())\r
416\r
417 #\r
418 # Normal case: have three GuidObject\r
419 #\r
420 def testNormalCase11(self):\r
421 GuidList = []\r
f7496d71 422\r
4234283c
LG
423 CName = 'Guid1'\r
424 FFE = 'FFE1'\r
425 Usage = 'UNDEFINED'\r
426 GuidType = 'UNDEFINED'\r
427 VariableName = ''\r
428 HelpStr = 'general comment line 1'\r
f7496d71 429 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
430 VariableName, HelpStr)\r
431 GuidList.append(Guid1)\r
432\r
433 CName = 'Guid1'\r
434 FFE = 'FFE1'\r
435 Usage = 'PRODUCES'\r
436 GuidType = 'Event'\r
437 VariableName = ''\r
438 HelpStr = 'Usage comment line 3'\r
f7496d71 439 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
440 VariableName, HelpStr)\r
441 GuidList.append(Guid1)\r
442\r
443 CName = 'Guid1'\r
444 FFE = 'FFE1'\r
445 Usage = 'UNDEFINED'\r
446 GuidType = 'UNDEFINED'\r
447 VariableName = ''\r
448 HelpStr = 'general comment line 2'\r
f7496d71 449 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
450 VariableName, HelpStr)\r
451 GuidList.append(Guid1)\r
f7496d71 452\r
4234283c
LG
453 Result = GenGuidSections(GuidList)\r
454 Expected = '''[Guids]\r
455# general comment line 1\r
456## PRODUCES ## Event # Usage comment line 3\r
457# general comment line 2\r
458Guid1|FFE1\r
459'''\r
460 self.assertEqual(Result.strip(), Expected.strip())\r
461\r
462 #\r
463 # Normal case: have three GuidObject, with Usage/Type and no help\r
464 #\r
465 def testNormalCase12(self):\r
466 GuidList = []\r
f7496d71 467\r
4234283c
LG
468 CName = 'Guid1'\r
469 FFE = 'FFE1'\r
470 Usage = 'PRODUCES'\r
471 GuidType = 'GUID'\r
472 VariableName = ''\r
473 HelpStr = ''\r
f7496d71 474 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
475 VariableName, HelpStr)\r
476 GuidList.append(Guid1)\r
477\r
478 CName = 'Guid1'\r
479 FFE = 'FFE1'\r
480 Usage = 'PRODUCES'\r
481 GuidType = 'Event'\r
482 VariableName = ''\r
483 HelpStr = ''\r
f7496d71 484 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
485 VariableName, HelpStr)\r
486 GuidList.append(Guid1)\r
487\r
488 CName = 'Guid1'\r
489 FFE = 'FFE1'\r
490 Usage = 'CONSUMES'\r
491 GuidType = 'Event'\r
492 VariableName = ''\r
493 HelpStr = ''\r
f7496d71 494 Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType,\r
4234283c
LG
495 VariableName, HelpStr)\r
496 GuidList.append(Guid1)\r
f7496d71 497\r
4234283c
LG
498 Result = GenGuidSections(GuidList)\r
499 Expected = '''[Guids]\r
500## PRODUCES ## GUID\r
501## PRODUCES ## Event\r
502## CONSUMES ## Event\r
503Guid1|FFE1\r
504'''\r
505 self.assertEqual(Result.strip(), Expected.strip())\r
f7496d71 506\r
4234283c
LG
507#\r
508# Test GenProtocolPPiSections\r
509#\r
510class GenProtocolPPiSectionsTest(unittest.TestCase):\r
511 def setUp(self):\r
f7496d71 512 pass\r
4234283c
LG
513\r
514 def tearDown(self):\r
515 pass\r
f7496d71 516\r
4234283c
LG
517 #\r
518 # This is the API to generate Protocol/Ppi Object to help UnitTest\r
519 #\r
520 def ObjectFactory(self, CName, FFE, Usage, Notify, HelpStr, IsProtocol):\r
521 if IsProtocol:\r
522 Object = ProtocolObject()\r
523 else:\r
524 Object = PpiObject()\r
f7496d71 525\r
4234283c
LG
526 Object.SetCName(CName)\r
527 Object.SetFeatureFlag(FFE)\r
528 Object.SetUsage(Usage)\r
529 Object.SetNotify(Notify)\r
530\r
531 HelpTextObj = TextObject()\r
532 HelpTextObj.SetLang('')\r
533 HelpTextObj.SetString(HelpStr)\r
534 Object.SetHelpTextList([HelpTextObj])\r
f7496d71
LG
535\r
536 return Object\r
4234283c
LG
537\r
538 # Usage Notify Help INF Comment\r
539 #1 UNDEFINED true Present ## UNDEFINED ## NOTIFY # Help\r
540 #2 UNDEFINED true Not Present ## UNDEFINED ## NOTIFY\r
541 #3 UNDEFINED false Present ## UNDEFINED # Help\r
542 #4 UNDEFINED false Not Present ## UNDEFINED\r
543 #5 UNDEFINED Not Present Present # Help\r
544 #6 UNDEFINED Not Present Not Present <empty>\r
545 #7 Other true Present ## Other ## NOTIFY # Help\r
546 #8 Other true Not Present ## Other ## NOTIFY\r
547 #9 Other false Present ## Other # Help\r
548 #A Other false Not Present ## Other\r
549 #B Other Not Present Present ## Other # Help\r
550 #C Other Not Present Not Present ## Other\r
551\r
552 def testNormalCase1(self):\r
553 ObjectList = []\r
f7496d71 554\r
4234283c
LG
555 CName = 'Guid1'\r
556 FFE = 'FFE1'\r
f7496d71 557\r
4234283c
LG
558 Usage = 'UNDEFINED'\r
559 Notify = True\r
560 HelpStr = 'Help'\r
561 IsProtocol = True\r
f7496d71 562 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
563 HelpStr, IsProtocol)\r
564 ObjectList.append(Object)\r
f7496d71
LG
565\r
566\r
4234283c
LG
567 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
568 Expected = '''[Protocols]\r
569Guid1|FFE1 ## UNDEFINED ## NOTIFY # Help'''\r
570 self.assertEqual(Result.strip(), Expected)\r
571\r
572 IsProtocol = False\r
573 ObjectList = []\r
f7496d71 574 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
575 HelpStr, IsProtocol)\r
576 ObjectList.append(Object)\r
f7496d71
LG
577\r
578\r
4234283c
LG
579 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
580 Expected = '''[Ppis]\r
581Guid1|FFE1 ## UNDEFINED ## NOTIFY # Help'''\r
582 self.assertEqual(Result.strip(), Expected)\r
583\r
584 def testNormalCase2(self):\r
585 ObjectList = []\r
f7496d71 586\r
4234283c
LG
587 CName = 'Guid1'\r
588 FFE = 'FFE1'\r
f7496d71 589\r
4234283c
LG
590 Usage = 'UNDEFINED'\r
591 Notify = True\r
592 HelpStr = ''\r
593 IsProtocol = True\r
f7496d71 594 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
595 HelpStr, IsProtocol)\r
596 ObjectList.append(Object)\r
f7496d71
LG
597\r
598\r
4234283c
LG
599 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
600 Expected = '''[Protocols]\r
601Guid1|FFE1 ## UNDEFINED ## NOTIFY'''\r
602 self.assertEqual(Result.strip(), Expected)\r
603\r
604 def testNormalCase3(self):\r
605 ObjectList = []\r
f7496d71 606\r
4234283c
LG
607 CName = 'Guid1'\r
608 FFE = 'FFE1'\r
f7496d71 609\r
4234283c
LG
610 Usage = 'UNDEFINED'\r
611 Notify = False\r
612 HelpStr = 'Help'\r
613 IsProtocol = True\r
f7496d71 614 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
615 HelpStr, IsProtocol)\r
616 ObjectList.append(Object)\r
f7496d71
LG
617\r
618\r
4234283c
LG
619 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
620 Expected = '''[Protocols]\r
621Guid1|FFE1 ## UNDEFINED # Help'''\r
622 self.assertEqual(Result.strip(), Expected)\r
623\r
624 def testNormalCase4(self):\r
625 ObjectList = []\r
f7496d71 626\r
4234283c
LG
627 CName = 'Guid1'\r
628 FFE = 'FFE1'\r
f7496d71 629\r
4234283c
LG
630 Usage = 'UNDEFINED'\r
631 Notify = False\r
632 HelpStr = ''\r
633 IsProtocol = True\r
f7496d71 634 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
635 HelpStr, IsProtocol)\r
636 ObjectList.append(Object)\r
f7496d71
LG
637\r
638\r
4234283c
LG
639 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
640 Expected = '''[Protocols]\r
641Guid1|FFE1 ## UNDEFINED'''\r
642 self.assertEqual(Result.strip(), Expected)\r
643\r
644 def testNormalCase5(self):\r
645 ObjectList = []\r
f7496d71 646\r
4234283c
LG
647 CName = 'Guid1'\r
648 FFE = 'FFE1'\r
f7496d71 649\r
4234283c
LG
650 Usage = 'UNDEFINED'\r
651 Notify = ''\r
652 HelpStr = 'Help'\r
653 IsProtocol = True\r
f7496d71 654 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
655 HelpStr, IsProtocol)\r
656 ObjectList.append(Object)\r
f7496d71
LG
657\r
658\r
4234283c
LG
659 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
660 Expected = '''[Protocols]\r
661Guid1|FFE1 # Help'''\r
662 self.assertEqual(Result.strip(), Expected)\r
663\r
664 def testNormalCase6(self):\r
665 ObjectList = []\r
f7496d71 666\r
4234283c
LG
667 CName = 'Guid1'\r
668 FFE = 'FFE1'\r
f7496d71 669\r
4234283c
LG
670 Usage = 'UNDEFINED'\r
671 Notify = ''\r
672 HelpStr = ''\r
673 IsProtocol = True\r
f7496d71 674 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
675 HelpStr, IsProtocol)\r
676 ObjectList.append(Object)\r
f7496d71
LG
677\r
678\r
4234283c
LG
679 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
680 Expected = '''[Protocols]\r
681Guid1|FFE1'''\r
682 self.assertEqual(Result.strip(), Expected)\r
683\r
684 def testNormalCase7(self):\r
685 ObjectList = []\r
f7496d71 686\r
4234283c
LG
687 CName = 'Guid1'\r
688 FFE = 'FFE1'\r
f7496d71 689\r
4234283c
LG
690 Usage = 'PRODUCES'\r
691 Notify = True\r
692 HelpStr = 'Help'\r
693 IsProtocol = True\r
f7496d71 694 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
695 HelpStr, IsProtocol)\r
696 ObjectList.append(Object)\r
f7496d71
LG
697\r
698\r
4234283c
LG
699 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
700 Expected = '''[Protocols]\r
701Guid1|FFE1 ## PRODUCES ## NOTIFY # Help'''\r
702 self.assertEqual(Result.strip(), Expected)\r
703\r
704 def testNormalCase8(self):\r
705 ObjectList = []\r
f7496d71 706\r
4234283c
LG
707 CName = 'Guid1'\r
708 FFE = 'FFE1'\r
f7496d71 709\r
4234283c
LG
710 Usage = 'PRODUCES'\r
711 Notify = True\r
712 HelpStr = ''\r
713 IsProtocol = True\r
f7496d71 714 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
715 HelpStr, IsProtocol)\r
716 ObjectList.append(Object)\r
f7496d71
LG
717\r
718\r
4234283c
LG
719 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
720 Expected = '''[Protocols]\r
721Guid1|FFE1 ## PRODUCES ## NOTIFY'''\r
722 self.assertEqual(Result.strip(), Expected)\r
723\r
724 def testNormalCase9(self):\r
725 ObjectList = []\r
f7496d71 726\r
4234283c
LG
727 CName = 'Guid1'\r
728 FFE = 'FFE1'\r
f7496d71 729\r
4234283c
LG
730 Usage = 'PRODUCES'\r
731 Notify = False\r
732 HelpStr = 'Help'\r
733 IsProtocol = True\r
f7496d71 734 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
735 HelpStr, IsProtocol)\r
736 ObjectList.append(Object)\r
f7496d71
LG
737\r
738\r
4234283c
LG
739 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
740 Expected = '''[Protocols]\r
741Guid1|FFE1 ## PRODUCES # Help'''\r
742 self.assertEqual(Result.strip(), Expected)\r
743\r
744 def testNormalCaseA(self):\r
745 ObjectList = []\r
f7496d71 746\r
4234283c
LG
747 CName = 'Guid1'\r
748 FFE = 'FFE1'\r
f7496d71 749\r
4234283c
LG
750 Usage = 'PRODUCES'\r
751 Notify = False\r
752 HelpStr = ''\r
753 IsProtocol = True\r
f7496d71 754 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
755 HelpStr, IsProtocol)\r
756 ObjectList.append(Object)\r
f7496d71
LG
757\r
758\r
4234283c
LG
759 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
760 Expected = '''[Protocols]\r
761Guid1|FFE1 ## PRODUCES'''\r
762 self.assertEqual(Result.strip(), Expected)\r
763\r
764 def testNormalCaseB(self):\r
765 ObjectList = []\r
f7496d71 766\r
4234283c
LG
767 CName = 'Guid1'\r
768 FFE = 'FFE1'\r
f7496d71 769\r
4234283c
LG
770 Usage = 'PRODUCES'\r
771 Notify = ''\r
772 HelpStr = 'Help'\r
773 IsProtocol = True\r
f7496d71 774 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
775 HelpStr, IsProtocol)\r
776 ObjectList.append(Object)\r
f7496d71
LG
777\r
778\r
4234283c
LG
779 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
780 Expected = '''[Protocols]\r
781Guid1|FFE1 ## PRODUCES # Help'''\r
782 self.assertEqual(Result.strip(), Expected)\r
783\r
784 def testNormalCaseC(self):\r
785 ObjectList = []\r
f7496d71 786\r
4234283c
LG
787 CName = 'Guid1'\r
788 FFE = 'FFE1'\r
f7496d71 789\r
4234283c
LG
790 Usage = 'PRODUCES'\r
791 Notify = ''\r
792 HelpStr = ''\r
793 IsProtocol = True\r
f7496d71 794 Object = self.ObjectFactory(CName, FFE, Usage, Notify,\r
4234283c
LG
795 HelpStr, IsProtocol)\r
796 ObjectList.append(Object)\r
f7496d71
LG
797\r
798\r
4234283c
LG
799 Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r
800 Expected = '''[Protocols]\r
801Guid1|FFE1 ## PRODUCES'''\r
802 self.assertEqual(Result.strip(), Expected)\r
803\r
804#\r
805# Test GenPcdSections\r
806#\r
807class GenPcdSectionsTest(unittest.TestCase):\r
808 def setUp(self):\r
f7496d71 809 pass\r
4234283c
LG
810\r
811 def tearDown(self):\r
812 pass\r
f7496d71 813\r
4234283c
LG
814 #\r
815 # This is the API to generate Pcd Object to help UnitTest\r
816 #\r
817 def ObjectFactory(self, ItemType, TSCName, CName, DValue, FFE, Usage, Str):\r
818 Object = PcdObject()\r
819 HelpStr = Str\r
f7496d71 820\r
4234283c
LG
821 Object.SetItemType(ItemType)\r
822 Object.SetTokenSpaceGuidCName(TSCName)\r
823 Object.SetCName(CName)\r
824 Object.SetDefaultValue(DValue)\r
825 Object.SetFeatureFlag(FFE)\r
826 Object.SetValidUsage(Usage)\r
827\r
828 HelpTextObj = TextObject()\r
829 HelpTextObj.SetLang('')\r
830 HelpTextObj.SetString(HelpStr)\r
831 Object.SetHelpTextList([HelpTextObj])\r
f7496d71
LG
832\r
833 return Object\r
4234283c
LG
834\r
835\r
836 # Usage Help INF Comment\r
837 #1 UNDEFINED Present # Help\r
838 #2 UNDEFINED Not Present <empty>\r
839 #3 Other Present ## Other # Help\r
840 #4 Other Not Present ## Other\r
841\r
842 def testNormalCase1(self):\r
843 ObjectList = []\r
844 ItemType = 'Pcd'\r
845 TSCName = 'TSCName'\r
846 CName = 'CName'\r
847 DValue = 'DValue'\r
848 FFE = 'FFE'\r
f7496d71 849\r
4234283c
LG
850 Usage = 'UNDEFINED'\r
851 Str = 'Help'\r
f7496d71
LG
852\r
853 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
854 Usage, Str)\r
855 ObjectList.append(Object)\r
f7496d71 856\r
4234283c
LG
857 Result = GenPcdSections(ObjectList)\r
858 Expected = \\r
859 '[Pcd]\n' + \\r
860 'TSCName.CName|DValue|FFE # Help'\r
861 self.assertEqual(Result.strip(), Expected)\r
862\r
863 def testNormalCase2(self):\r
864 ObjectList = []\r
865 ItemType = 'Pcd'\r
866 TSCName = 'TSCName'\r
867 CName = 'CName'\r
868 DValue = 'DValue'\r
869 FFE = 'FFE'\r
f7496d71 870\r
4234283c
LG
871 Usage = 'UNDEFINED'\r
872 Str = ''\r
f7496d71
LG
873\r
874 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
875 Usage, Str)\r
876 ObjectList.append(Object)\r
f7496d71 877\r
4234283c
LG
878 Result = GenPcdSections(ObjectList)\r
879 Expected = '[Pcd]\nTSCName.CName|DValue|FFE'\r
880 self.assertEqual(Result.strip(), Expected)\r
881\r
882 def testNormalCase3(self):\r
883 ObjectList = []\r
884 ItemType = 'Pcd'\r
885 TSCName = 'TSCName'\r
886 CName = 'CName'\r
887 DValue = 'DValue'\r
888 FFE = 'FFE'\r
f7496d71 889\r
4234283c
LG
890 Usage = 'CONSUMES'\r
891 Str = 'Help'\r
f7496d71
LG
892\r
893 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
894 Usage, Str)\r
895 ObjectList.append(Object)\r
f7496d71 896\r
4234283c
LG
897 Result = GenPcdSections(ObjectList)\r
898 Expected = '[Pcd]\nTSCName.CName|DValue|FFE ## CONSUMES # Help'\r
899 self.assertEqual(Result.strip(), Expected)\r
900\r
901 def testNormalCase4(self):\r
902 ObjectList = []\r
903 ItemType = 'Pcd'\r
904 TSCName = 'TSCName'\r
905 CName = 'CName'\r
906 DValue = 'DValue'\r
907 FFE = 'FFE'\r
f7496d71 908\r
4234283c
LG
909 Usage = 'CONSUMES'\r
910 Str = ''\r
f7496d71
LG
911\r
912 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
913 Usage, Str)\r
914 ObjectList.append(Object)\r
f7496d71 915\r
4234283c
LG
916 Result = GenPcdSections(ObjectList)\r
917 Expected = '[Pcd]\nTSCName.CName|DValue|FFE ## CONSUMES'\r
918 self.assertEqual(Result.strip(), Expected)\r
919\r
920 #\r
921 # multiple lines for normal usage\r
922 #\r
923 def testNormalCase5(self):\r
924 ObjectList = []\r
925 ItemType = 'Pcd'\r
926 TSCName = 'TSCName'\r
927 CName = 'CName'\r
928 DValue = 'DValue'\r
929 FFE = 'FFE'\r
f7496d71 930\r
4234283c
LG
931 Usage = 'CONSUMES'\r
932 Str = 'commment line 1\ncomment line 2'\r
f7496d71 933 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
934 Usage, Str)\r
935 ObjectList.append(Object)\r
f7496d71 936\r
4234283c
LG
937 Result = GenPcdSections(ObjectList)\r
938 Expected = '''[Pcd]\r
939TSCName.CName|DValue|FFE ## CONSUMES # commment line 1 comment line 2'''\r
940 self.assertEqual(Result.strip(), Expected)\r
941\r
942 #\r
943 # multiple lines for UNDEFINED usage\r
944 #\r
945 def testNormalCase6(self):\r
946 ObjectList = []\r
947 ItemType = 'Pcd'\r
948 TSCName = 'TSCName'\r
949 CName = 'CName'\r
950 DValue = 'DValue'\r
951 FFE = 'FFE'\r
f7496d71 952\r
4234283c
LG
953 Usage = 'UNDEFINED'\r
954 Str = 'commment line 1\ncomment line 2'\r
f7496d71 955 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
956 Usage, Str)\r
957 ObjectList.append(Object)\r
958\r
959 Usage = 'UNDEFINED'\r
960 Str = 'commment line 3'\r
f7496d71 961 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
962 Usage, Str)\r
963 ObjectList.append(Object)\r
f7496d71 964\r
4234283c
LG
965 Result = GenPcdSections(ObjectList)\r
966 Expected = '''[Pcd]\r
967# commment line 1\r
968# comment line 2\r
969# commment line 3\r
970TSCName.CName|DValue|FFE'''\r
971 self.assertEqual(Result.strip(), Expected)\r
972\r
973 #\r
974 # multiple lines for UNDEFINED and normal usage\r
975 #\r
976 def testNormalCase7(self):\r
977 ObjectList = []\r
978 ItemType = 'Pcd'\r
979 TSCName = 'TSCName'\r
980 CName = 'CName'\r
981 DValue = 'DValue'\r
982 FFE = 'FFE'\r
f7496d71 983\r
4234283c
LG
984 Usage = 'UNDEFINED'\r
985 Str = 'commment line 1\ncomment line 2'\r
f7496d71 986 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
987 Usage, Str)\r
988 ObjectList.append(Object)\r
989\r
990 Usage = 'CONSUMES'\r
991 Str = 'Foo'\r
f7496d71 992 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
993 Usage, Str)\r
994 ObjectList.append(Object)\r
f7496d71 995\r
4234283c
LG
996 Usage = 'UNDEFINED'\r
997 Str = 'commment line 3'\r
f7496d71 998 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
999 Usage, Str)\r
1000 ObjectList.append(Object)\r
f7496d71 1001\r
4234283c
LG
1002 Result = GenPcdSections(ObjectList)\r
1003 Expected = '''[Pcd]\r
1004# commment line 1\r
1005# comment line 2\r
1006## CONSUMES # Foo\r
1007# commment line 3\r
1008TSCName.CName|DValue|FFE'''\r
1009 self.assertEqual(Result.strip(), Expected)\r
1010\r
1011 # Usage Help INF Comment\r
1012 # CONSUMES Present # Help (keep <EOL> and insert '#' at beginning of each new line)\r
1013 # CONSUMES Not Present <empty>\r
1014\r
1015 #\r
1016 # TAB_INF_FEATURE_PCD\r
1017 #\r
1018 def testNormalCase8(self):\r
1019 ObjectList = []\r
1020 ItemType = TAB_INF_FEATURE_PCD\r
1021 TSCName = 'TSCName'\r
1022 CName = 'CName'\r
1023 DValue = 'DValue'\r
1024 FFE = 'FFE'\r
f7496d71 1025\r
4234283c
LG
1026 Usage = 'CONSUMES'\r
1027 Str = 'commment line 1\ncomment line 2'\r
f7496d71 1028 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
1029 Usage, Str)\r
1030 ObjectList.append(Object)\r
f7496d71 1031\r
4234283c
LG
1032 Result = GenPcdSections(ObjectList)\r
1033 Expected = '''[FeaturePcd]\r
1034# commment line 1\r
1035# comment line 2\r
1036TSCName.CName|DValue|FFE'''\r
1037 self.assertEqual(Result.strip(), Expected)\r
1038\r
1039 #\r
1040 # TAB_INF_FEATURE_PCD\r
1041 #\r
1042 def testNormalCase9(self):\r
1043 ObjectList = []\r
1044 ItemType = TAB_INF_FEATURE_PCD\r
1045 TSCName = 'TSCName'\r
1046 CName = 'CName'\r
1047 DValue = 'DValue'\r
1048 FFE = 'FFE'\r
f7496d71 1049\r
4234283c
LG
1050 Usage = 'CONSUMES'\r
1051 Str = ''\r
f7496d71 1052 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
1053 Usage, Str)\r
1054 ObjectList.append(Object)\r
f7496d71 1055\r
4234283c
LG
1056 Result = GenPcdSections(ObjectList)\r
1057 Expected = '''[FeaturePcd]\r
1058TSCName.CName|DValue|FFE'''\r
1059 self.assertEqual(Result.strip(), Expected)\r
1060\r
1061 #\r
1062 # TAB_INF_FEATURE_PCD\r
1063 #\r
1064 def testNormalCase10(self):\r
1065 ObjectList = []\r
1066 ItemType = TAB_INF_FEATURE_PCD\r
1067 TSCName = 'TSCName'\r
1068 CName = 'CName'\r
1069 DValue = 'DValue'\r
1070 FFE = 'FFE'\r
f7496d71 1071\r
4234283c
LG
1072 Usage = 'PRODUCES'\r
1073 Str = 'commment line 1\ncomment line 2'\r
f7496d71 1074 Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE,\r
4234283c
LG
1075 Usage, Str)\r
1076 ObjectList.append(Object)\r
f7496d71 1077\r
4234283c
LG
1078 Result = GenPcdSections(ObjectList)\r
1079 Expected = '''\r
1080\r
1081[FeaturePcd]\r
1082# commment line 1\r
1083# comment line 2\r
1084TSCName.CName|DValue|FFE\r
1085'''\r
1086 self.assertEqual(Result, Expected)\r
1087\r
1088\r
1089#\r
1090# Test GenSpecialSections of Hob\r
1091#\r
1092class GenHobSectionsTest(unittest.TestCase):\r
1093 def setUp(self):\r
f7496d71 1094 pass\r
4234283c
LG
1095\r
1096 def tearDown(self):\r
1097 pass\r
f7496d71 1098\r
4234283c
LG
1099 #\r
1100 # This is the API to generate Event Object to help UnitTest\r
1101 #\r
1102 def ObjectFactory(self, SupArchList, Type, Usage, Str):\r
1103 Object = HobObject()\r
1104 HelpStr = Str\r
f7496d71 1105\r
4234283c
LG
1106 Object.SetHobType(Type)\r
1107 Object.SetUsage(Usage)\r
1108 Object.SetSupArchList(SupArchList)\r
f7496d71 1109\r
4234283c
LG
1110 HelpTextObj = TextObject()\r
1111 HelpTextObj.SetLang('')\r
1112 HelpTextObj.SetString(HelpStr)\r
1113 Object.SetHelpTextList([HelpTextObj])\r
f7496d71
LG
1114\r
1115 return Object\r
4234283c
LG
1116\r
1117 def testNormalCase1(self):\r
1118 ObjectList = []\r
1119 SupArchList = ['X64']\r
1120 Type = 'Foo'\r
1121 Usage = 'UNDEFINED'\r
1122 Str = 'Help'\r
f7496d71 1123\r
4234283c
LG
1124 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1125 ObjectList.append(Object)\r
f7496d71 1126\r
4234283c
LG
1127 Result = GenSpecialSections(ObjectList, 'Hob')\r
1128 Expected = '''# [Hob.X64]\r
1129# ##\r
1130# # Help\r
1131# #\r
1132# Foo ## UNDEFINED\r
1133#\r
1134#\r
1135'''\r
1136 self.assertEqual(Result, Expected)\r
1137\r
1138 def testNormalCase2(self):\r
1139 ObjectList = []\r
1140 SupArchList = []\r
1141 Type = 'Foo'\r
1142 Usage = 'UNDEFINED'\r
1143 Str = 'Help'\r
f7496d71 1144\r
4234283c
LG
1145 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1146 ObjectList.append(Object)\r
f7496d71 1147\r
4234283c
LG
1148 Result = GenSpecialSections(ObjectList, 'Hob')\r
1149 Expected = '''# [Hob]\r
1150# ##\r
1151# # Help\r
1152# #\r
1153# Foo ## UNDEFINED\r
1154#\r
1155#\r
1156'''\r
1157 self.assertEqual(Result, Expected)\r
f7496d71 1158\r
4234283c
LG
1159 def testNormalCase3(self):\r
1160 ObjectList = []\r
1161 SupArchList = ['X64']\r
1162 Type = 'Foo'\r
1163 Usage = 'UNDEFINED'\r
1164 Str = '\nComment Line 1\n\n'\r
f7496d71 1165\r
4234283c
LG
1166 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1167 ObjectList.append(Object)\r
f7496d71 1168\r
4234283c
LG
1169 Result = GenSpecialSections(ObjectList, 'Hob')\r
1170 Expected = '''# [Hob.X64]\r
1171# ##\r
1172# # Comment Line 1\r
1173# #\r
1174# Foo ## UNDEFINED\r
1175#\r
1176#\r
1177'''\r
1178 self.assertEqual(Result, Expected)\r
1179\r
1180 def testNormalCase4(self):\r
1181 ObjectList = []\r
1182 SupArchList = ['X64']\r
1183 Type = 'Foo'\r
1184 Usage = 'UNDEFINED'\r
1185 Str = '\nComment Line 1\n'\r
f7496d71 1186\r
4234283c
LG
1187 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1188 ObjectList.append(Object)\r
f7496d71 1189\r
4234283c
LG
1190 Result = GenSpecialSections(ObjectList, 'Hob')\r
1191 Expected = '''# [Hob.X64]\r
1192# ##\r
1193# # Comment Line 1\r
1194# #\r
1195# Foo ## UNDEFINED\r
1196#\r
1197#\r
1198'''\r
1199 self.assertEqual(Result, Expected)\r
1200\r
1201 def testNormalCase5(self):\r
1202 ObjectList = []\r
1203 SupArchList = ['X64']\r
1204 Type = 'Foo'\r
1205 Usage = 'UNDEFINED'\r
1206 Str = 'Comment Line 1\n\n'\r
f7496d71 1207\r
4234283c
LG
1208 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1209 ObjectList.append(Object)\r
f7496d71 1210\r
4234283c
LG
1211 Result = GenSpecialSections(ObjectList, 'Hob')\r
1212 Expected = '''# [Hob.X64]\r
1213# ##\r
1214# # Comment Line 1\r
1215# #\r
1216# Foo ## UNDEFINED\r
1217#\r
1218#\r
1219'''\r
1220 self.assertEqual(Result, Expected)\r
1221\r
1222 def testNormalCase6(self):\r
1223 ObjectList = []\r
1224 SupArchList = ['X64']\r
1225 Type = 'Foo'\r
1226 Usage = 'UNDEFINED'\r
1227 Str = ''\r
f7496d71 1228\r
4234283c
LG
1229 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1230 ObjectList.append(Object)\r
f7496d71 1231\r
4234283c
LG
1232 Result = GenSpecialSections(ObjectList, 'Hob')\r
1233 Expected = '''# [Hob.X64]\r
1234# Foo ## UNDEFINED\r
1235#\r
1236#\r
1237'''\r
f7496d71 1238 self.assertEqual(Result, Expected)\r
4234283c
LG
1239\r
1240 def testNormalCase7(self):\r
1241 ObjectList = []\r
1242 SupArchList = ['X64']\r
1243 Type = 'Foo'\r
1244 Usage = 'UNDEFINED'\r
1245 Str = '\nNew Stack HoB'\r
1246\r
f7496d71 1247\r
4234283c
LG
1248 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1249 ObjectList.append(Object)\r
f7496d71 1250\r
4234283c
LG
1251 Result = GenSpecialSections(ObjectList, 'Hob')\r
1252 Expected = '''# [Hob.X64]\r
1253# ##\r
1254# # New Stack HoB\r
1255# #\r
1256# Foo ## UNDEFINED\r
1257#\r
1258#\r
1259'''\r
1260 self.assertEqual(Result, Expected)\r
1261\r
1262 def testNormalCase8(self):\r
1263 ObjectList = []\r
1264 SupArchList = ['X64']\r
1265 Type = 'Foo'\r
1266 Usage = 'UNDEFINED'\r
1267 Str = '\nNew Stack HoB\n\nTail Comment'\r
1268\r
f7496d71 1269\r
4234283c
LG
1270 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1271 ObjectList.append(Object)\r
f7496d71 1272\r
4234283c
LG
1273 Result = GenSpecialSections(ObjectList, 'Hob')\r
1274 Expected = '''# [Hob.X64]\r
1275# ##\r
1276# # New Stack HoB\r
1277# #\r
1278# # Tail Comment\r
1279# #\r
1280# Foo ## UNDEFINED\r
1281#\r
1282#\r
1283'''\r
f7496d71 1284 self.assertEqual(Result, Expected)\r
4234283c
LG
1285\r
1286 def testNormalCase9(self):\r
1287 ObjectList = []\r
1288 SupArchList = ['X64']\r
1289 Type = 'Foo'\r
1290 Usage = 'UNDEFINED'\r
1291 Str = '\n\n'\r
1292\r
f7496d71 1293\r
4234283c
LG
1294 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1295 ObjectList.append(Object)\r
f7496d71 1296\r
4234283c
LG
1297 Result = GenSpecialSections(ObjectList, 'Hob')\r
1298 Expected = '''# [Hob.X64]\r
1299# ##\r
1300# #\r
1301# #\r
1302# Foo ## UNDEFINED\r
1303#\r
1304#\r
1305'''\r
f7496d71 1306 self.assertEqual(Result, Expected)\r
4234283c
LG
1307\r
1308 def testNormalCase10(self):\r
1309 ObjectList = []\r
1310 SupArchList = ['X64']\r
1311 Type = 'Foo'\r
1312 Usage = 'UNDEFINED'\r
1313 Str = '\n'\r
1314\r
1315 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1316 ObjectList.append(Object)\r
f7496d71 1317\r
4234283c
LG
1318 Result = GenSpecialSections(ObjectList, 'Hob')\r
1319 Expected = '''# [Hob.X64]\r
1320# ##\r
1321# #\r
1322# #\r
1323# Foo ## UNDEFINED\r
1324#\r
1325#\r
1326'''\r
f7496d71 1327 self.assertEqual(Result, Expected)\r
4234283c
LG
1328\r
1329 def testNormalCase11(self):\r
1330 ObjectList = []\r
1331 SupArchList = ['X64']\r
1332 Type = 'Foo'\r
1333 Usage = 'UNDEFINED'\r
1334 Str = '\n\n\n'\r
1335\r
1336 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1337 ObjectList.append(Object)\r
f7496d71 1338\r
4234283c
LG
1339 Result = GenSpecialSections(ObjectList, 'Hob')\r
1340 Expected = '''# [Hob.X64]\r
1341# ##\r
1342# #\r
1343# #\r
1344# Foo ## UNDEFINED\r
1345#\r
1346#\r
1347'''\r
f7496d71 1348 self.assertEqual(Result, Expected)\r
4234283c
LG
1349\r
1350 def testNormalCase12(self):\r
1351 ObjectList = []\r
1352 SupArchList = ['X64']\r
1353 Type = 'Foo'\r
1354 Usage = 'UNDEFINED'\r
1355 Str = '\n\n\n\n'\r
1356\r
1357 Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r
1358 ObjectList.append(Object)\r
f7496d71 1359\r
4234283c
LG
1360 Result = GenSpecialSections(ObjectList, 'Hob')\r
1361 Expected = '''# [Hob.X64]\r
1362# ##\r
1363# #\r
1364# #\r
1365# #\r
1366# Foo ## UNDEFINED\r
1367#\r
1368#\r
1369'''\r
f7496d71
LG
1370 self.assertEqual(Result, Expected)\r
1371\r
4234283c
LG
1372#\r
1373# Test GenGenericCommentF\r
1374#\r
1375class GenGenericCommentFTest(unittest.TestCase):\r
1376 def setUp(self):\r
f7496d71 1377 pass\r
4234283c
LG
1378\r
1379 def tearDown(self):\r
1380 pass\r
f7496d71 1381\r
4234283c
LG
1382 def testNormalCase1(self):\r
1383 CommentLines = 'Comment Line 1'\r
1384 Result = GenGenericCommentF(CommentLines)\r
1385 Expected = '# Comment Line 1\n'\r
1386 self.assertEqual(Result, Expected)\r
1387\r
1388 def testNormalCase2(self):\r
1389 CommentLines = '\n'\r
1390 Result = GenGenericCommentF(CommentLines)\r
1391 Expected = '#\n'\r
f7496d71 1392 self.assertEqual(Result, Expected)\r
4234283c
LG
1393\r
1394 def testNormalCase3(self):\r
1395 CommentLines = '\n\n\n'\r
1396 Result = GenGenericCommentF(CommentLines)\r
1397 Expected = '#\n#\n#\n'\r
f7496d71 1398 self.assertEqual(Result, Expected)\r
4234283c
LG
1399\r
1400 def testNormalCase4(self):\r
1401 CommentLines = 'coment line 1\n'\r
1402 Result = GenGenericCommentF(CommentLines)\r
1403 Expected = '# coment line 1\n'\r
f7496d71
LG
1404 self.assertEqual(Result, Expected)\r
1405\r
4234283c
LG
1406 def testNormalCase5(self):\r
1407 CommentLines = 'coment line 1\n coment line 2\n'\r
1408 Result = GenGenericCommentF(CommentLines)\r
1409 Expected = '# coment line 1\n# coment line 2\n'\r
f7496d71
LG
1410 self.assertEqual(Result, Expected)\r
1411\r
4234283c
LG
1412if __name__ == '__main__':\r
1413 Logger.Initialize()\r
f7496d71 1414 unittest.main()\r