]>
Commit | Line | Data |
---|---|---|
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 |
8 | import os\r | |
9 | import unittest\r | |
10 | \r | |
11 | import Logger.Log as Logger\r | |
f7496d71 | 12 | from GenMetaFile.GenInfFile import GenGuidSections\r |
4234283c LG |
13 | from GenMetaFile.GenInfFile import GenProtocolPPiSections\r |
14 | from GenMetaFile.GenInfFile import GenPcdSections\r | |
15 | from GenMetaFile.GenInfFile import GenSpecialSections\r | |
16 | from Library.CommentGenerating import GenGenericCommentF\r | |
f7496d71 | 17 | from Library.CommentGenerating import _GetHelpStr\r |
4234283c LG |
18 | from Object.POM.CommonObject import TextObject\r |
19 | from Object.POM.CommonObject import GuidObject\r | |
20 | from Object.POM.CommonObject import ProtocolObject\r | |
21 | from Object.POM.CommonObject import PpiObject\r | |
22 | from Object.POM.CommonObject import PcdObject\r | |
23 | from Object.POM.ModuleObject import HobObject\r | |
f7496d71 | 24 | \r |
64285f15 | 25 | from Library.StringUtils import GetSplitValueList\r |
4234283c | 26 | from Library.DataType import TAB_SPACE_SPLIT\r |
421ccda3 HC |
27 | from Library.DataType import TAB_LANGUAGE_EN_US\r |
28 | from Library.DataType import TAB_LANGUAGE_ENG\r | |
4234283c LG |
29 | from Library.DataType import ITEM_UNDEFINED\r |
30 | from Library.DataType import TAB_INF_FEATURE_PCD\r | |
31 | from Library import GlobalData\r | |
32 | from Library.Misc import CreateDirectory\r | |
33 | \r | |
34 | #\r | |
35 | # Test _GetHelpStr\r | |
36 | #\r | |
37 | class _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 | |
155 | class 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 | |
210 | Guid1|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 | |
244 | Guid1|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 | |
279 | Guid1|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 | |
303 | Guid1|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 | |
325 | Guid1|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 | |
347 | Guid1|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 | |
381 | Guid1|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 | |
413 | Guid1|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 | |
458 | Guid1|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 | |
503 | Guid1|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 | |
510 | class 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 | |
569 | Guid1|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 | |
581 | Guid1|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 | |
601 | Guid1|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 | |
621 | Guid1|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 | |
641 | Guid1|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 | |
661 | Guid1|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 | |
681 | Guid1|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 | |
701 | Guid1|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 | |
721 | Guid1|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 | |
741 | Guid1|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 | |
761 | Guid1|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 | |
781 | Guid1|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 | |
801 | Guid1|FFE1 ## PRODUCES'''\r | |
802 | self.assertEqual(Result.strip(), Expected)\r | |
803 | \r | |
804 | #\r | |
805 | # Test GenPcdSections\r | |
806 | #\r | |
807 | class 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 | |
939 | TSCName.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 | |
970 | TSCName.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 | |
1008 | TSCName.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 | |
1036 | TSCName.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 | |
1058 | TSCName.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 | |
1084 | TSCName.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 | |
1092 | class 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 | |
1375 | class 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 |
1412 | if __name__ == '__main__':\r |
1413 | Logger.Initialize()\r | |
f7496d71 | 1414 | unittest.main()\r |