]>
Commit | Line | Data |
---|---|---|
4234283c LG |
1 | ## @file\r |
2 | # This file contain unit test for CommentParsing\r | |
3 | #\r | |
421ccda3 | 4 | # Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR>\r |
4234283c LG |
5 | #\r |
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 | |
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 | |
14 | import os\r | |
15 | import unittest\r | |
16 | \r | |
17 | import Logger.Log as Logger\r | |
18 | from GenMetaFile.GenInfFile import GenGuidSections \r | |
19 | from GenMetaFile.GenInfFile import GenProtocolPPiSections\r | |
20 | from GenMetaFile.GenInfFile import GenPcdSections\r | |
21 | from GenMetaFile.GenInfFile import GenSpecialSections\r | |
22 | from Library.CommentGenerating import GenGenericCommentF\r | |
23 | from Library.CommentGenerating import _GetHelpStr \r | |
24 | from Object.POM.CommonObject import TextObject\r | |
25 | from Object.POM.CommonObject import GuidObject\r | |
26 | from Object.POM.CommonObject import ProtocolObject\r | |
27 | from Object.POM.CommonObject import PpiObject\r | |
28 | from Object.POM.CommonObject import PcdObject\r | |
29 | from Object.POM.ModuleObject import HobObject\r | |
30 | \r | |
31 | from Library.String import GetSplitValueList\r | |
32 | from Library.DataType import TAB_SPACE_SPLIT\r | |
421ccda3 HC |
33 | from Library.DataType import TAB_LANGUAGE_EN_US\r |
34 | from Library.DataType import TAB_LANGUAGE_ENG\r | |
4234283c LG |
35 | from Library.DataType import ITEM_UNDEFINED\r |
36 | from Library.DataType import TAB_INF_FEATURE_PCD\r | |
37 | from Library import GlobalData\r | |
38 | from Library.Misc import CreateDirectory\r | |
39 | \r | |
40 | #\r | |
41 | # Test _GetHelpStr\r | |
42 | #\r | |
43 | class _GetHelpStrTest(unittest.TestCase):\r | |
44 | def setUp(self):\r | |
45 | pass\r | |
46 | \r | |
47 | def tearDown(self):\r | |
48 | pass\r | |
49 | \r | |
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 LG |
57 | HelpTextObj.SetString(HelpStr)\r |
58 | \r | |
59 | HelpTextList = [HelpTextObj]\r | |
60 | Result = _GetHelpStr(HelpTextList)\r | |
61 | self.assertEqual(Result, HelpStr)\r | |
62 | \r | |
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 LG |
70 | HelpTextObj.SetString(HelpStr)\r |
71 | \r | |
72 | HelpTextList = [HelpTextObj]\r | |
73 | \r | |
74 | ExpectedStr = 'Hello world1'\r | |
75 | HelpTextObj = TextObject()\r | |
421ccda3 | 76 | HelpTextObj.SetLang(TAB_LANGUAGE_EN_US)\r |
4234283c LG |
77 | HelpTextObj.SetString(ExpectedStr) \r |
78 | \r | |
79 | HelpTextList.append(HelpTextObj)\r | |
80 | \r | |
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 | |
92 | \r | |
93 | HelpTextList = [HelpTextObj]\r | |
94 | \r | |
95 | ExpectedStr = 'Hello world1'\r | |
96 | HelpTextObj = TextObject()\r | |
421ccda3 | 97 | HelpTextObj.SetLang(TAB_LANGUAGE_ENG)\r |
4234283c LG |
98 | HelpTextObj.SetString(ExpectedStr) \r |
99 | \r | |
100 | HelpTextList.append(HelpTextObj)\r | |
101 | \r | |
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 |
4234283c LG |
113 | HelpTextObj.SetString(ExpectedStr) \r |
114 | HelpTextList = [HelpTextObj]\r | |
115 | \r | |
116 | HelpStr = 'Hello world'\r | |
117 | HelpTextObj = TextObject()\r | |
118 | HelpTextObj.SetLang('')\r | |
119 | HelpTextObj.SetString(HelpStr) \r | |
120 | HelpTextList.append(HelpTextObj)\r | |
121 | \r | |
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 |
4234283c LG |
133 | HelpTextObj.SetString(ExpectedStr) \r |
134 | HelpTextList = [HelpTextObj]\r | |
135 | \r | |
136 | HelpStr = 'Hello unknown world'\r | |
137 | HelpTextObj = TextObject()\r | |
138 | HelpTextObj.SetLang('')\r | |
139 | HelpTextObj.SetString(HelpStr) \r | |
140 | HelpTextList.append(HelpTextObj)\r | |
141 | \r | |
142 | HelpStr = 'Hello mysterious world'\r | |
143 | HelpTextObj = TextObject()\r | |
144 | HelpTextObj.SetLang('')\r | |
145 | HelpTextObj.SetString(HelpStr) \r | |
146 | HelpTextList.append(HelpTextObj)\r | |
147 | \r | |
148 | Result = _GetHelpStr(HelpTextList)\r | |
149 | self.assertEqual(Result, ExpectedStr)\r | |
150 | \r | |
151 | HelpTextList.sort()\r | |
152 | self.assertEqual(Result, ExpectedStr)\r | |
153 | \r | |
154 | HelpTextList.sort(reverse=True)\r | |
155 | self.assertEqual(Result, ExpectedStr)\r | |
156 | \r | |
157 | \r | |
158 | #\r | |
159 | # Test GenGuidSections\r | |
160 | #\r | |
161 | class GenGuidSectionsTest(unittest.TestCase):\r | |
162 | def setUp(self):\r | |
163 | pass \r | |
164 | \r | |
165 | def tearDown(self):\r | |
166 | pass\r | |
167 | \r | |
168 | #\r | |
169 | # This is the API to generate Guid Object to help UnitTest\r | |
170 | #\r | |
171 | def GuidFactory(self, CName, FFE, Usage, GuidType, VariableName, HelpStr): \r | |
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 | |
183 | \r | |
184 | return Guid \r | |
185 | \r | |
186 | #\r | |
187 | # Normal case: have two GuidObject\r | |
188 | #\r | |
189 | def testNormalCase1(self):\r | |
190 | GuidList = []\r | |
191 | \r | |
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 | |
198 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
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 | |
208 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
209 | VariableName, HelpStr)\r | |
210 | GuidList.append(Guid1) \r | |
211 | \r | |
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 | |
216 | Guid1|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 | |
224 | \r | |
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 | |
231 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
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 | |
241 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
242 | VariableName, HelpStr)\r | |
243 | GuidList.append(Guid1) \r | |
244 | \r | |
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 | |
250 | Guid1|FFE1'''\r | |
251 | \r | |
252 | self.assertEqual(Result.strip(), Expected)\r | |
253 | \r | |
254 | #\r | |
255 | # Normal case: have two GuidObject, one help goes to generic help, \r | |
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 | |
267 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
268 | VariableName, HelpStr)\r | |
269 | GuidList.append(Guid1) \r | |
270 | \r | |
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 | |
277 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
278 | VariableName, HelpStr)\r | |
279 | GuidList.append(Guid1)\r | |
280 | \r | |
281 | Result = GenGuidSections(GuidList)\r | |
282 | Expected = '''[Guids]\r | |
283 | # Generic comment\r | |
284 | ## PRODUCES ## Event # Usage comment line 1\r | |
285 | Guid1|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 | |
301 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
302 | VariableName, HelpStr)\r | |
303 | GuidList.append(Guid1) \r | |
304 | \r | |
305 | Result = GenGuidSections(GuidList)\r | |
306 | Expected = '''[Guids]\r | |
307 | # Generic comment line1\r | |
308 | # generic comment line 2\r | |
309 | Guid1|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 | |
318 | \r | |
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 | |
325 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
326 | VariableName, HelpStr)\r | |
327 | GuidList.append(Guid1)\r | |
328 | \r | |
329 | Result = GenGuidSections(GuidList)\r | |
330 | Expected = '''[Guids]\r | |
331 | Guid1|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 | |
340 | \r | |
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 | |
347 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
348 | VariableName, HelpStr)\r | |
349 | GuidList.append(Guid1)\r | |
350 | \r | |
351 | Result = GenGuidSections(GuidList)\r | |
352 | Expected = '''[Guids]\r | |
353 | Guid1|FFE1 # Usage comment line 1\r | |
354 | '''\r | |
355 | self.assertEqual(Result.strip(), Expected.strip())\r | |
356 | \r | |
357 | #\r | |
358 | # Normal case: have two GuidObject\r | |
359 | #\r | |
360 | def testNormalCase8(self):\r | |
361 | GuidList = []\r | |
362 | \r | |
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 | |
369 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
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 | |
379 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
380 | VariableName, HelpStr)\r | |
381 | GuidList.append(Guid1)\r | |
382 | \r | |
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 | |
387 | Guid1|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 | |
406 | \r | |
407 | CName = 'Guid1'\r | |
408 | FFE = 'FFE1'\r | |
409 | Usage = 'UNDEFINED'\r | |
410 | GuidType = 'UNDEFINED'\r | |
411 | VariableName = ''\r | |
412 | HelpStr = ''\r | |
413 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
414 | VariableName, HelpStr)\r | |
415 | GuidList.append(Guid1)\r | |
416 | \r | |
417 | Result = GenGuidSections(GuidList)\r | |
418 | Expected = '''[Guids]\r | |
419 | Guid1|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 | |
428 | \r | |
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 | |
435 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
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 | |
445 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
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 | |
455 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
456 | VariableName, HelpStr)\r | |
457 | GuidList.append(Guid1)\r | |
458 | \r | |
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 | |
464 | Guid1|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 | |
473 | \r | |
474 | CName = 'Guid1'\r | |
475 | FFE = 'FFE1'\r | |
476 | Usage = 'PRODUCES'\r | |
477 | GuidType = 'GUID'\r | |
478 | VariableName = ''\r | |
479 | HelpStr = ''\r | |
480 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
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 | |
490 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
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 | |
500 | Guid1 = self.GuidFactory(CName, FFE, Usage, GuidType, \r | |
501 | VariableName, HelpStr)\r | |
502 | GuidList.append(Guid1)\r | |
503 | \r | |
504 | Result = GenGuidSections(GuidList)\r | |
505 | Expected = '''[Guids]\r | |
506 | ## PRODUCES ## GUID\r | |
507 | ## PRODUCES ## Event\r | |
508 | ## CONSUMES ## Event\r | |
509 | Guid1|FFE1\r | |
510 | '''\r | |
511 | self.assertEqual(Result.strip(), Expected.strip())\r | |
512 | \r | |
513 | #\r | |
514 | # Test GenProtocolPPiSections\r | |
515 | #\r | |
516 | class GenProtocolPPiSectionsTest(unittest.TestCase):\r | |
517 | def setUp(self):\r | |
518 | pass \r | |
519 | \r | |
520 | def tearDown(self):\r | |
521 | pass\r | |
522 | \r | |
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 | |
531 | \r | |
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 | |
541 | \r | |
542 | return Object \r | |
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 | |
560 | \r | |
561 | CName = 'Guid1'\r | |
562 | FFE = 'FFE1'\r | |
563 | \r | |
564 | Usage = 'UNDEFINED'\r | |
565 | Notify = True\r | |
566 | HelpStr = 'Help'\r | |
567 | IsProtocol = True\r | |
568 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
569 | HelpStr, IsProtocol)\r | |
570 | ObjectList.append(Object)\r | |
571 | \r | |
572 | \r | |
573 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
574 | Expected = '''[Protocols]\r | |
575 | Guid1|FFE1 ## UNDEFINED ## NOTIFY # Help'''\r | |
576 | self.assertEqual(Result.strip(), Expected)\r | |
577 | \r | |
578 | IsProtocol = False\r | |
579 | ObjectList = []\r | |
580 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
581 | HelpStr, IsProtocol)\r | |
582 | ObjectList.append(Object)\r | |
583 | \r | |
584 | \r | |
585 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
586 | Expected = '''[Ppis]\r | |
587 | Guid1|FFE1 ## UNDEFINED ## NOTIFY # Help'''\r | |
588 | self.assertEqual(Result.strip(), Expected)\r | |
589 | \r | |
590 | def testNormalCase2(self):\r | |
591 | ObjectList = []\r | |
592 | \r | |
593 | CName = 'Guid1'\r | |
594 | FFE = 'FFE1'\r | |
595 | \r | |
596 | Usage = 'UNDEFINED'\r | |
597 | Notify = True\r | |
598 | HelpStr = ''\r | |
599 | IsProtocol = True\r | |
600 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
601 | HelpStr, IsProtocol)\r | |
602 | ObjectList.append(Object)\r | |
603 | \r | |
604 | \r | |
605 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
606 | Expected = '''[Protocols]\r | |
607 | Guid1|FFE1 ## UNDEFINED ## NOTIFY'''\r | |
608 | self.assertEqual(Result.strip(), Expected)\r | |
609 | \r | |
610 | def testNormalCase3(self):\r | |
611 | ObjectList = []\r | |
612 | \r | |
613 | CName = 'Guid1'\r | |
614 | FFE = 'FFE1'\r | |
615 | \r | |
616 | Usage = 'UNDEFINED'\r | |
617 | Notify = False\r | |
618 | HelpStr = 'Help'\r | |
619 | IsProtocol = True\r | |
620 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
621 | HelpStr, IsProtocol)\r | |
622 | ObjectList.append(Object)\r | |
623 | \r | |
624 | \r | |
625 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
626 | Expected = '''[Protocols]\r | |
627 | Guid1|FFE1 ## UNDEFINED # Help'''\r | |
628 | self.assertEqual(Result.strip(), Expected)\r | |
629 | \r | |
630 | def testNormalCase4(self):\r | |
631 | ObjectList = []\r | |
632 | \r | |
633 | CName = 'Guid1'\r | |
634 | FFE = 'FFE1'\r | |
635 | \r | |
636 | Usage = 'UNDEFINED'\r | |
637 | Notify = False\r | |
638 | HelpStr = ''\r | |
639 | IsProtocol = True\r | |
640 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
641 | HelpStr, IsProtocol)\r | |
642 | ObjectList.append(Object)\r | |
643 | \r | |
644 | \r | |
645 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
646 | Expected = '''[Protocols]\r | |
647 | Guid1|FFE1 ## UNDEFINED'''\r | |
648 | self.assertEqual(Result.strip(), Expected)\r | |
649 | \r | |
650 | def testNormalCase5(self):\r | |
651 | ObjectList = []\r | |
652 | \r | |
653 | CName = 'Guid1'\r | |
654 | FFE = 'FFE1'\r | |
655 | \r | |
656 | Usage = 'UNDEFINED'\r | |
657 | Notify = ''\r | |
658 | HelpStr = 'Help'\r | |
659 | IsProtocol = True\r | |
660 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
661 | HelpStr, IsProtocol)\r | |
662 | ObjectList.append(Object)\r | |
663 | \r | |
664 | \r | |
665 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
666 | Expected = '''[Protocols]\r | |
667 | Guid1|FFE1 # Help'''\r | |
668 | self.assertEqual(Result.strip(), Expected)\r | |
669 | \r | |
670 | def testNormalCase6(self):\r | |
671 | ObjectList = []\r | |
672 | \r | |
673 | CName = 'Guid1'\r | |
674 | FFE = 'FFE1'\r | |
675 | \r | |
676 | Usage = 'UNDEFINED'\r | |
677 | Notify = ''\r | |
678 | HelpStr = ''\r | |
679 | IsProtocol = True\r | |
680 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
681 | HelpStr, IsProtocol)\r | |
682 | ObjectList.append(Object)\r | |
683 | \r | |
684 | \r | |
685 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
686 | Expected = '''[Protocols]\r | |
687 | Guid1|FFE1'''\r | |
688 | self.assertEqual(Result.strip(), Expected)\r | |
689 | \r | |
690 | def testNormalCase7(self):\r | |
691 | ObjectList = []\r | |
692 | \r | |
693 | CName = 'Guid1'\r | |
694 | FFE = 'FFE1'\r | |
695 | \r | |
696 | Usage = 'PRODUCES'\r | |
697 | Notify = True\r | |
698 | HelpStr = 'Help'\r | |
699 | IsProtocol = True\r | |
700 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
701 | HelpStr, IsProtocol)\r | |
702 | ObjectList.append(Object)\r | |
703 | \r | |
704 | \r | |
705 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
706 | Expected = '''[Protocols]\r | |
707 | Guid1|FFE1 ## PRODUCES ## NOTIFY # Help'''\r | |
708 | self.assertEqual(Result.strip(), Expected)\r | |
709 | \r | |
710 | def testNormalCase8(self):\r | |
711 | ObjectList = []\r | |
712 | \r | |
713 | CName = 'Guid1'\r | |
714 | FFE = 'FFE1'\r | |
715 | \r | |
716 | Usage = 'PRODUCES'\r | |
717 | Notify = True\r | |
718 | HelpStr = ''\r | |
719 | IsProtocol = True\r | |
720 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
721 | HelpStr, IsProtocol)\r | |
722 | ObjectList.append(Object)\r | |
723 | \r | |
724 | \r | |
725 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
726 | Expected = '''[Protocols]\r | |
727 | Guid1|FFE1 ## PRODUCES ## NOTIFY'''\r | |
728 | self.assertEqual(Result.strip(), Expected)\r | |
729 | \r | |
730 | def testNormalCase9(self):\r | |
731 | ObjectList = []\r | |
732 | \r | |
733 | CName = 'Guid1'\r | |
734 | FFE = 'FFE1'\r | |
735 | \r | |
736 | Usage = 'PRODUCES'\r | |
737 | Notify = False\r | |
738 | HelpStr = 'Help'\r | |
739 | IsProtocol = True\r | |
740 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
741 | HelpStr, IsProtocol)\r | |
742 | ObjectList.append(Object)\r | |
743 | \r | |
744 | \r | |
745 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
746 | Expected = '''[Protocols]\r | |
747 | Guid1|FFE1 ## PRODUCES # Help'''\r | |
748 | self.assertEqual(Result.strip(), Expected)\r | |
749 | \r | |
750 | def testNormalCaseA(self):\r | |
751 | ObjectList = []\r | |
752 | \r | |
753 | CName = 'Guid1'\r | |
754 | FFE = 'FFE1'\r | |
755 | \r | |
756 | Usage = 'PRODUCES'\r | |
757 | Notify = False\r | |
758 | HelpStr = ''\r | |
759 | IsProtocol = True\r | |
760 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
761 | HelpStr, IsProtocol)\r | |
762 | ObjectList.append(Object)\r | |
763 | \r | |
764 | \r | |
765 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
766 | Expected = '''[Protocols]\r | |
767 | Guid1|FFE1 ## PRODUCES'''\r | |
768 | self.assertEqual(Result.strip(), Expected)\r | |
769 | \r | |
770 | def testNormalCaseB(self):\r | |
771 | ObjectList = []\r | |
772 | \r | |
773 | CName = 'Guid1'\r | |
774 | FFE = 'FFE1'\r | |
775 | \r | |
776 | Usage = 'PRODUCES'\r | |
777 | Notify = ''\r | |
778 | HelpStr = 'Help'\r | |
779 | IsProtocol = True\r | |
780 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
781 | HelpStr, IsProtocol)\r | |
782 | ObjectList.append(Object)\r | |
783 | \r | |
784 | \r | |
785 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
786 | Expected = '''[Protocols]\r | |
787 | Guid1|FFE1 ## PRODUCES # Help'''\r | |
788 | self.assertEqual(Result.strip(), Expected)\r | |
789 | \r | |
790 | def testNormalCaseC(self):\r | |
791 | ObjectList = []\r | |
792 | \r | |
793 | CName = 'Guid1'\r | |
794 | FFE = 'FFE1'\r | |
795 | \r | |
796 | Usage = 'PRODUCES'\r | |
797 | Notify = ''\r | |
798 | HelpStr = ''\r | |
799 | IsProtocol = True\r | |
800 | Object = self.ObjectFactory(CName, FFE, Usage, Notify, \r | |
801 | HelpStr, IsProtocol)\r | |
802 | ObjectList.append(Object)\r | |
803 | \r | |
804 | \r | |
805 | Result = GenProtocolPPiSections(ObjectList, IsProtocol)\r | |
806 | Expected = '''[Protocols]\r | |
807 | Guid1|FFE1 ## PRODUCES'''\r | |
808 | self.assertEqual(Result.strip(), Expected)\r | |
809 | \r | |
810 | #\r | |
811 | # Test GenPcdSections\r | |
812 | #\r | |
813 | class GenPcdSectionsTest(unittest.TestCase):\r | |
814 | def setUp(self):\r | |
815 | pass \r | |
816 | \r | |
817 | def tearDown(self):\r | |
818 | pass\r | |
819 | \r | |
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 | |
826 | \r | |
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 | |
838 | \r | |
839 | return Object \r | |
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 | |
855 | \r | |
856 | Usage = 'UNDEFINED'\r | |
857 | Str = 'Help'\r | |
858 | \r | |
859 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
860 | Usage, Str)\r | |
861 | ObjectList.append(Object)\r | |
862 | \r | |
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 | |
876 | \r | |
877 | Usage = 'UNDEFINED'\r | |
878 | Str = ''\r | |
879 | \r | |
880 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
881 | Usage, Str)\r | |
882 | ObjectList.append(Object)\r | |
883 | \r | |
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 | |
895 | \r | |
896 | Usage = 'CONSUMES'\r | |
897 | Str = 'Help'\r | |
898 | \r | |
899 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
900 | Usage, Str)\r | |
901 | ObjectList.append(Object)\r | |
902 | \r | |
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 | |
914 | \r | |
915 | Usage = 'CONSUMES'\r | |
916 | Str = ''\r | |
917 | \r | |
918 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
919 | Usage, Str)\r | |
920 | ObjectList.append(Object)\r | |
921 | \r | |
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 | |
936 | \r | |
937 | Usage = 'CONSUMES'\r | |
938 | Str = 'commment line 1\ncomment line 2'\r | |
939 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
940 | Usage, Str)\r | |
941 | ObjectList.append(Object)\r | |
942 | \r | |
943 | Result = GenPcdSections(ObjectList)\r | |
944 | Expected = '''[Pcd]\r | |
945 | TSCName.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 | |
958 | \r | |
959 | Usage = 'UNDEFINED'\r | |
960 | Str = 'commment line 1\ncomment line 2'\r | |
961 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
962 | Usage, Str)\r | |
963 | ObjectList.append(Object)\r | |
964 | \r | |
965 | Usage = 'UNDEFINED'\r | |
966 | Str = 'commment line 3'\r | |
967 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
968 | Usage, Str)\r | |
969 | ObjectList.append(Object)\r | |
970 | \r | |
971 | Result = GenPcdSections(ObjectList)\r | |
972 | Expected = '''[Pcd]\r | |
973 | # commment line 1\r | |
974 | # comment line 2\r | |
975 | # commment line 3\r | |
976 | TSCName.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 | |
989 | \r | |
990 | Usage = 'UNDEFINED'\r | |
991 | Str = 'commment line 1\ncomment line 2'\r | |
992 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
993 | Usage, Str)\r | |
994 | ObjectList.append(Object)\r | |
995 | \r | |
996 | Usage = 'CONSUMES'\r | |
997 | Str = 'Foo'\r | |
998 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
999 | Usage, Str)\r | |
1000 | ObjectList.append(Object)\r | |
1001 | \r | |
1002 | Usage = 'UNDEFINED'\r | |
1003 | Str = 'commment line 3'\r | |
1004 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
1005 | Usage, Str)\r | |
1006 | ObjectList.append(Object)\r | |
1007 | \r | |
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 | |
1014 | TSCName.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 | |
1031 | \r | |
1032 | Usage = 'CONSUMES'\r | |
1033 | Str = 'commment line 1\ncomment line 2'\r | |
1034 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
1035 | Usage, Str)\r | |
1036 | ObjectList.append(Object)\r | |
1037 | \r | |
1038 | Result = GenPcdSections(ObjectList)\r | |
1039 | Expected = '''[FeaturePcd]\r | |
1040 | # commment line 1\r | |
1041 | # comment line 2\r | |
1042 | TSCName.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 | |
1055 | \r | |
1056 | Usage = 'CONSUMES'\r | |
1057 | Str = ''\r | |
1058 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
1059 | Usage, Str)\r | |
1060 | ObjectList.append(Object)\r | |
1061 | \r | |
1062 | Result = GenPcdSections(ObjectList)\r | |
1063 | Expected = '''[FeaturePcd]\r | |
1064 | TSCName.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 | |
1077 | \r | |
1078 | Usage = 'PRODUCES'\r | |
1079 | Str = 'commment line 1\ncomment line 2'\r | |
1080 | Object = self.ObjectFactory(ItemType, TSCName, CName, DValue, FFE, \r | |
1081 | Usage, Str)\r | |
1082 | ObjectList.append(Object)\r | |
1083 | \r | |
1084 | Result = GenPcdSections(ObjectList)\r | |
1085 | Expected = '''\r | |
1086 | \r | |
1087 | [FeaturePcd]\r | |
1088 | # commment line 1\r | |
1089 | # comment line 2\r | |
1090 | TSCName.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 | |
1098 | class GenHobSectionsTest(unittest.TestCase):\r | |
1099 | def setUp(self):\r | |
1100 | pass \r | |
1101 | \r | |
1102 | def tearDown(self):\r | |
1103 | pass\r | |
1104 | \r | |
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 | |
1111 | \r | |
1112 | Object.SetHobType(Type)\r | |
1113 | Object.SetUsage(Usage)\r | |
1114 | Object.SetSupArchList(SupArchList)\r | |
1115 | \r | |
1116 | HelpTextObj = TextObject()\r | |
1117 | HelpTextObj.SetLang('')\r | |
1118 | HelpTextObj.SetString(HelpStr)\r | |
1119 | Object.SetHelpTextList([HelpTextObj])\r | |
1120 | \r | |
1121 | return Object \r | |
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 | |
1129 | \r | |
1130 | Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r | |
1131 | ObjectList.append(Object)\r | |
1132 | \r | |
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 | |
1150 | \r | |
1151 | Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r | |
1152 | ObjectList.append(Object)\r | |
1153 | \r | |
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 | |
1164 | \r | |
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 | |
1171 | \r | |
1172 | Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r | |
1173 | ObjectList.append(Object)\r | |
1174 | \r | |
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 | |
1192 | \r | |
1193 | Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r | |
1194 | ObjectList.append(Object)\r | |
1195 | \r | |
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 | |
1213 | \r | |
1214 | Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r | |
1215 | ObjectList.append(Object)\r | |
1216 | \r | |
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 | |
1234 | \r | |
1235 | Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r | |
1236 | ObjectList.append(Object)\r | |
1237 | \r | |
1238 | Result = GenSpecialSections(ObjectList, 'Hob')\r | |
1239 | Expected = '''# [Hob.X64]\r | |
1240 | # Foo ## UNDEFINED\r | |
1241 | #\r | |
1242 | #\r | |
1243 | '''\r | |
1244 | self.assertEqual(Result, Expected) \r | |
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 | |
1253 | \r | |
1254 | Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r | |
1255 | ObjectList.append(Object)\r | |
1256 | \r | |
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 | |
1275 | \r | |
1276 | Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r | |
1277 | ObjectList.append(Object)\r | |
1278 | \r | |
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 | |
1290 | self.assertEqual(Result, Expected) \r | |
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 | |
1299 | \r | |
1300 | Object = self.ObjectFactory(SupArchList, Type, Usage, Str)\r | |
1301 | ObjectList.append(Object)\r | |
1302 | \r | |
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 | |
1312 | self.assertEqual(Result, Expected) \r | |
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 | |
1323 | \r | |
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 | |
1333 | self.assertEqual(Result, Expected) \r | |
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 | |
1344 | \r | |
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 | |
1354 | self.assertEqual(Result, Expected) \r | |
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 | |
1365 | \r | |
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 | |
1376 | self.assertEqual(Result, Expected) \r | |
1377 | \r | |
1378 | #\r | |
1379 | # Test GenGenericCommentF\r | |
1380 | #\r | |
1381 | class GenGenericCommentFTest(unittest.TestCase):\r | |
1382 | def setUp(self):\r | |
1383 | pass \r | |
1384 | \r | |
1385 | def tearDown(self):\r | |
1386 | pass\r | |
1387 | \r | |
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 | |
1398 | self.assertEqual(Result, Expected) \r | |
1399 | \r | |
1400 | def testNormalCase3(self):\r | |
1401 | CommentLines = '\n\n\n'\r | |
1402 | Result = GenGenericCommentF(CommentLines)\r | |
1403 | Expected = '#\n#\n#\n'\r | |
1404 | self.assertEqual(Result, Expected) \r | |
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 | |
1410 | self.assertEqual(Result, Expected) \r | |
1411 | \r | |
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 | |
1416 | self.assertEqual(Result, Expected) \r | |
1417 | \r | |
1418 | if __name__ == '__main__':\r | |
1419 | Logger.Initialize()\r | |
1420 | unittest.main() |