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