1 /* 2 * Copyright (c) 2025 Shenzhen Kaihong Digital. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 package parse; 17 18 import grammar.*; 19 import org.antlr.v4.runtime.CharStreams; 20 import org.antlr.v4.runtime.CodePointCharStream; 21 import org.junit.jupiter.api.AfterEach; 22 import org.junit.jupiter.api.BeforeEach; 23 import org.junit.jupiter.api.Test; 24 25 import java.util.List; 26 27 import static org.junit.jupiter.api.Assertions.*; 28 29 /** 30 * <h3>类名:该类用于xxx</h3> 31 * description 32 * 33 * @author Administrator 34 * date 2025-02-28 35 * @version 1.0 36 * @since 2025-02-28 37 */ 38 class ParseCppTest { 39 40 private final String testCStreamFile1 = "#ifndef COAP_ADDRESS_H_\n" + 41 "#define COAP_ADDRESS_H_\n" + 42 "\n" + 43 "#include <assert.h>\n" + 44 "#include <stdint.h>\n" + 45 "#include <string.h>\n" + 46 "#include <sys/types.h>\n" + 47 "#include \"libcoap.h\"\n" + 48 "\n" + 49 "#include \"coap3/coap_pdu.h\"\n" + 50 "\n" + 51 "#if defined(WITH_LWIP)\n" + 52 "\n" + 53 "#include <lwip/ip_addr.h>\n" + 54 "\n" + 55 "struct coap_address_t {\n" + 56 " uint16_t port;\n" + 57 " ip_addr_t addr;\n" + 58 "};\n" + 59 "\n" + 60 "/**\n" + 61 " * Returns the port from @p addr in host byte order.\n" + 62 " */\n" + 63 "COAP_STATIC_INLINE uint16_t\n" + 64 "coap_address_get_port(const coap_address_t *addr) {\n" + 65 " return addr->port;\n" + 66 "}\n" + 67 "\n" + 68 "/**\n" + 69 " * Sets the port field of @p addr to @p port (in host byte order).\n" + 70 " */\n" + 71 "COAP_STATIC_INLINE void\n" + 72 "coap_address_set_port(coap_address_t *addr, uint16_t port) {\n" + 73 " addr->port = port;\n" + 74 "}\n" + 75 "\n" + 76 "#define _coap_address_equals_impl(A, B) \\\n" + 77 " ((A)->port == (B)->port && \\\n" + 78 " (!!ip_addr_cmp(&(A)->addr,&(B)->addr)))\n" + 79 "\n" + 80 "#define _coap_address_isany_impl(A) ip_addr_isany(&(A)->addr)\n" + 81 "\n" + 82 "#define _coap_is_mcast_impl(Address) ip_addr_ismulticast(&(Address)->addr)\n" + 83 "\n" + 84 "#ifdef COAP_SUPPORT_SOCKET_BROADCAST\n" + 85 "#define _coap_is_bcast_impl(Address) ip_addr_isbroadcast(&(Address)->addr)\n" + 86 "#endif\n" + 87 "\n" + 88 "#elif defined(WITH_CONTIKI)\n" + 89 "\n" + 90 "#include \"uip.h\"\n" + 91 "\n" + 92 "struct coap_address_t {\n" + 93 " uip_ipaddr_t addr;\n" + 94 " uint16_t port;\n" + 95 "};"; 96 97 private final String testCStreamFile2 = "/*---------------------------------------\n" + 98 " * dEQP glslang integration\n" + 99 " * ------------------------\n" + 100 " *\n" + 101 " *\n" + 102 " * Licensed under the Apache License, Version 2.0 (the \"License\");\n" + 103 " * you may not use this file except in compliance with the License.\n" + 104 " * You may obtain a copy of the License at\n" + 105 " *\n" + 106 " * http://www.apache.org/licenses/LICENSE-2.0\n" + 107 " *\n" + 108 " * Unless required by applicable law or agreed to in writing, software\n" + 109 " * distributed under the License is distributed on an \"AS IS\" BASIS,\n" + 110 " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" + 111 " * See the License for the specific language governing permissions and\n" + 112 " * limitations under the License.\n" + 113 " *\n" + 114 " *//*!\n" + 115 " * \\file\n" + 116 " * \\brief glslang OS interface.\n" + 117 " *//*--------------------------------------------------------------------*/\n" + 118 "\n" + 119 "#include \"osinclude.h\"\n" + 120 "\n" + 121 "#include \"deThread.h\"\n" + 122 "#include \"deThreadLocal.h\"\n" + 123 "#include \"deMutex.h\"\n" + 124 "\n" + 125 "namespace glslang\n" + 126 "{\n" + 127 "\n" + 128 "DE_STATIC_ASSERT(sizeof(deThreadLocal)\t== sizeof(OS_TLSIndex));\n" + 129 "DE_STATIC_ASSERT(sizeof(deThread)\t\t== sizeof(void*));\n" + 130 "\n" + 131 "// Thread-local\n" + 132 "\n" + 133 "OS_TLSIndex OS_AllocTLSIndex (void)\n" + 134 "{\n" + 135 "\treturn (OS_TLSIndex)deThreadLocal_create();\n" + 136 "}\n" + 137 "\n" + 138 "bool OS_SetTLSValue (OS_TLSIndex nIndex, void* lpvValue)\n" + 139 "{\n" + 140 "\tdeThreadLocal_set((deThreadLocal)nIndex, lpvValue);\n" + 141 "\treturn true;\n" + 142 "}\n" + 143 "\n" + 144 "bool OS_FreeTLSIndex (OS_TLSIndex nIndex)\n" + 145 "{\n" + 146 "\tdeThreadLocal_destroy((deThreadLocal)nIndex);\n" + 147 "\treturn true;\n" + 148 "}\n" + 149 "\n" + 150 "void* OS_GetTLSValue (OS_TLSIndex nIndex)\n" + 151 "{\n" + 152 "\treturn deThreadLocal_get((deThreadLocal)nIndex);\n" + 153 "}\n" + 154 "\n" + 155 "// Global lock\n" + 156 "\n" + 157 "static deMutex s_globalLock = 0;\n" + 158 "\n" + 159 "void InitGlobalLock (void)\n" + 160 "{\n" + 161 "\tDE_ASSERT(s_globalLock == 0);\n" + 162 "\ts_globalLock = deMutex_create(DE_NULL);\n" + 163 "}\n" + 164 "\n" + 165 "void GetGlobalLock (void)\n" + 166 "{\n" + 167 "\tdeMutex_lock(s_globalLock);\n" + 168 "}\n" + 169 "\n" + 170 "void ReleaseGlobalLock (void)\n" + 171 "{\n" + 172 "\tdeMutex_unlock(s_globalLock);\n" + 173 "}\n" + 174 "\n" + 175 "// Threading\n" + 176 "\n" + 177 "DE_STATIC_ASSERT(sizeof(void*) >= sizeof(deThread));\n" + 178 "\n" + 179 "static void EnterGenericThread (void* entry)\n" + 180 "{\n" + 181 "\t((TThreadEntrypoint)entry)(DE_NULL);\n" + 182 "}\n" + 183 "\n" + 184 "void* OS_CreateThread (TThreadEntrypoint entry)\n" + 185 "{\n" + 186 "\treturn (void*)(deUintptr)deThread_create(EnterGenericThread, (void*)entry, DE_NULL);\n" + 187 "}\n" + 188 "\n" + 189 "void OS_WaitForAllThreads (void* threads, int numThreads)\n" + 190 "{\n" + 191 "\tfor (int ndx = 0; ndx < numThreads; ndx++)\n" + 192 "\t{\n" + 193 "\t\tconst deThread thread = (deThread)(deUintptr)((void**)threads)[ndx];\n" + 194 "\t\tdeThread_join(thread);\n" + 195 "\t\tdeThread_destroy(thread);\n" + 196 "\t}\n" + 197 "}\n" + 198 "\n" + 199 "void OS_Sleep (int milliseconds)\n" + 200 "{\n" + 201 "\tdeSleep(milliseconds);\n" + 202 "}\n" + 203 "\n" + 204 "void OS_DumpMemoryCounters (void)\n" + 205 "{\n" + 206 "\t// Not used\n" + 207 "}\n" + 208 "\n" + 209 "} // glslang\n"; 210 211 @BeforeEach setUp()212 void setUp() { 213 } 214 215 @AfterEach tearDown()216 void tearDown() { 217 } 218 219 @Test parseFile()220 void parseFile() { 221 } 222 223 @Test parseContent()224 void parseContent() { 225 } 226 227 @Test parseCStreamEnum1()228 void parseCStreamEnum1() { 229 ParseBase parser = ParseFactory.getParser("h2dts"); 230 String testEnum = "enum Colors {\n" + 231 " Red = 1,\n" + 232 " Green = 2,\n" + 233 " Blue = 3\n" + 234 "};"; 235 CodePointCharStream cStream = CharStreams.fromString(testEnum); 236 ParseObj po = parser.parseCStream(cStream); 237 List<EnumObj> eol = po.getEnumList(); 238 assertEquals(1, eol.size()); 239 EnumObj eo = eol.get(0); 240 assertEquals("Colors", eo.getName()); 241 List<String> ml = eo.getMemberList(); 242 assertEquals(3, ml.size()); 243 assertEquals("Red", ml.get(0)); 244 assertEquals("Green", ml.get(1)); 245 assertEquals("Blue", ml.get(2)); 246 List<String> vl = eo.getValueList(); 247 assertEquals(3, vl.size()); 248 assertEquals("1", vl.get(0)); 249 assertEquals("2", vl.get(1)); 250 assertEquals("3", vl.get(2)); 251 } 252 253 @Test parseCStreamEnum2()254 void parseCStreamEnum2() { 255 ParseBase parser = ParseFactory.getParser("h2dts"); 256 String testEnum = "enum {\n" + 257 " Red = 1,\n" + 258 " Green = 2,\n" + 259 " Blue = 3\n" + 260 "};"; 261 CodePointCharStream cStream = CharStreams.fromString(testEnum); 262 ParseObj po = parser.parseCStream(cStream); 263 List<EnumObj> eol = po.getEnumList(); 264 assertEquals(1, eol.size()); 265 EnumObj eo = eol.get(0); 266 assertEquals("", eo.getName()); 267 List<String> ml = eo.getMemberList(); 268 assertEquals(3, ml.size()); 269 assertEquals("Red", ml.get(0)); 270 assertEquals("Green", ml.get(1)); 271 assertEquals("Blue", ml.get(2)); 272 List<String> vl = eo.getValueList(); 273 assertEquals(3, vl.size()); 274 assertEquals("1", vl.get(0)); 275 assertEquals("2", vl.get(1)); 276 assertEquals("3", vl.get(2)); 277 } 278 279 @Test parseCStreamEnum3()280 void parseCStreamEnum3() { 281 ParseBase parser = ParseFactory.getParser("h2dts"); 282 String testEnum = "typedef enum {\n" + 283 " Red = 1,\n" + 284 " Green = 2,\n" + 285 " Blue = 3\n" + 286 "} Colors_T;"; 287 CodePointCharStream cStream = CharStreams.fromString(testEnum); 288 ParseObj po = parser.parseCStream(cStream); 289 List<EnumObj> eol = po.getEnumList(); 290 assertEquals(1, eol.size()); 291 EnumObj eo = eol.get(0); 292 assertEquals("", eo.getName()); 293 assertEquals("Colors_T", eo.getAlias()); 294 List<String> ml = eo.getMemberList(); 295 assertEquals(3, ml.size()); 296 assertEquals("Red", ml.get(0)); 297 assertEquals("Green", ml.get(1)); 298 assertEquals("Blue", ml.get(2)); 299 List<String> vl = eo.getValueList(); 300 assertEquals(3, vl.size()); 301 assertEquals("1", vl.get(0)); 302 assertEquals("2", vl.get(1)); 303 assertEquals("3", vl.get(2)); 304 } 305 306 @Test parseCStreamEnum4()307 void parseCStreamEnum4() { 308 ParseBase parser = ParseFactory.getParser("h2dts"); 309 String testEnum = "typedef enum Colors {\n" + 310 " Red = 1,\n" + 311 " Green = 2,\n" + 312 " Blue = 3\n" + 313 "} Colors_T;"; 314 CodePointCharStream cStream = CharStreams.fromString(testEnum); 315 ParseObj po = parser.parseCStream(cStream); 316 List<EnumObj> eol = po.getEnumList(); 317 assertEquals(1, eol.size()); 318 EnumObj eo = eol.get(0); 319 assertEquals("Colors", eo.getName()); 320 assertEquals("Colors_T", eo.getAlias()); 321 List<String> ml = eo.getMemberList(); 322 assertEquals(3, ml.size()); 323 assertEquals("Red", ml.get(0)); 324 assertEquals("Green", ml.get(1)); 325 assertEquals("Blue", ml.get(2)); 326 List<String> vl = eo.getValueList(); 327 assertEquals(3, vl.size()); 328 assertEquals("1", vl.get(0)); 329 assertEquals("2", vl.get(1)); 330 assertEquals("3", vl.get(2)); 331 } 332 333 @Test parseCStreamStruct1()334 void parseCStreamStruct1() { 335 ParseBase parser = ParseFactory.getParser("h2dts"); 336 String testEnum = "struct tree_el {\n" + 337 " int val;\n" + 338 " struct tree_el * right, * left;\n" + 339 "};"; 340 CodePointCharStream cStream = CharStreams.fromString(testEnum); 341 ParseObj po = parser.parseCStream(cStream); 342 List<StructObj> sol = po.getStructList(); 343 assertEquals(1, sol.size()); 344 StructObj so = sol.get(0); 345 assertEquals("tree_el", so.getName()); 346 347 List<ParamObj> ml = so.getMemberList(); 348 assertEquals(3, ml.size()); 349 assertEquals("val", ml.get(0).getName()); 350 assertEquals("int", ml.get(0).getType()); 351 assertEquals("struct tree_el", ml.get(1).getType()); 352 assertEquals("*right", ml.get(1).getName()); 353 assertEquals("struct tree_el", ml.get(2).getType()); 354 assertEquals("*left", ml.get(2).getName()); 355 356 } 357 358 @Test parseCStreamStruct2()359 void parseCStreamStruct2() { 360 ParseBase parser = ParseFactory.getParser("h2dts"); 361 String testEnum = "struct {\n" + 362 " int val;\n" + 363 " Tree_el_T * right, * left;\n" + 364 "};"; 365 CodePointCharStream cStream = CharStreams.fromString(testEnum); 366 ParseObj po = parser.parseCStream(cStream); 367 List<StructObj> sol = po.getStructList(); 368 assertEquals(1, sol.size()); 369 StructObj so = sol.get(0); 370 assertEquals("", so.getName()); 371 372 List<ParamObj> ml = so.getMemberList(); 373 assertEquals(3, ml.size()); 374 assertEquals("val", ml.get(0).getName()); 375 assertEquals("int", ml.get(0).getType()); 376 assertEquals("Tree_el_T", ml.get(1).getType()); 377 assertEquals("*right", ml.get(1).getName()); 378 assertEquals("Tree_el_T", ml.get(2).getType()); 379 assertEquals("*left", ml.get(2).getName()); 380 381 } 382 383 @Test parseCStreamStruct3()384 void parseCStreamStruct3() { 385 ParseBase parser = ParseFactory.getParser("h2dts"); 386 String testEnum = "typedef struct {\n" + 387 " int val;\n" + 388 " Tree_el_T * right, * left;\n" + 389 "} Tree_el_T;"; 390 CodePointCharStream cStream = CharStreams.fromString(testEnum); 391 ParseObj po = parser.parseCStream(cStream); 392 List<StructObj> sol = po.getStructList(); 393 assertEquals(1, sol.size()); 394 StructObj so = sol.get(0); 395 assertEquals("", so.getName()); 396 assertEquals("Tree_el_T", so.getAlias()); 397 398 List<ParamObj> ml = so.getMemberList(); 399 assertEquals(3, ml.size()); 400 assertEquals("val", ml.get(0).getName()); 401 assertEquals("int", ml.get(0).getType()); 402 assertEquals("Tree_el_T", ml.get(1).getType()); 403 assertEquals("*right", ml.get(1).getName()); 404 assertEquals("Tree_el_T", ml.get(2).getType()); 405 assertEquals("*left", ml.get(2).getName()); 406 407 } 408 409 @Test parseCStreamStruct4()410 void parseCStreamStruct4() { 411 ParseBase parser = ParseFactory.getParser("h2dts"); 412 String testEnum = "typedef struct tree_el {\n" + 413 " int val;\n" + 414 " struct tree_el * right, * left;\n" + 415 "} Tree_el_T;"; 416 CodePointCharStream cStream = CharStreams.fromString(testEnum); 417 ParseObj po = parser.parseCStream(cStream); 418 List<StructObj> sol = po.getStructList(); 419 assertEquals(1, sol.size()); 420 StructObj so = sol.get(0); 421 assertEquals("tree_el", so.getName()); 422 assertEquals("Tree_el_T", so.getAlias()); 423 424 List<ParamObj> ml = so.getMemberList(); 425 assertEquals(3, ml.size()); 426 assertEquals("val", ml.get(0).getName()); 427 assertEquals("int", ml.get(0).getType()); 428 assertEquals("struct tree_el", ml.get(1).getType()); 429 assertEquals("*right", ml.get(1).getName()); 430 assertEquals("struct tree_el", ml.get(2).getType()); 431 assertEquals("*left", ml.get(2).getName()); 432 433 } 434 435 @Test parseCStreamUnion1()436 void parseCStreamUnion1() { 437 ParseBase parser = ParseFactory.getParser("h2dts"); 438 String testEnum = "union tree_el {\n" + 439 " int val;\n" + 440 " struct tree_el * right, * left;\n" + 441 "};"; 442 CodePointCharStream cStream = CharStreams.fromString(testEnum); 443 ParseObj po = parser.parseCStream(cStream); 444 List<UnionObj> sol = po.getUnionList(); 445 assertEquals(1, sol.size()); 446 UnionObj so = sol.get(0); 447 assertEquals("tree_el", so.getName()); 448 449 List<ParamObj> ml = so.getMemList(); 450 assertEquals(3, ml.size()); 451 assertEquals("val", ml.get(0).getName()); 452 assertEquals("int", ml.get(0).getType()); 453 assertEquals("struct tree_el", ml.get(1).getType()); 454 assertEquals("*right", ml.get(1).getName()); 455 assertEquals("struct tree_el", ml.get(2).getType()); 456 assertEquals("*left", ml.get(2).getName()); 457 458 } 459 460 @Test parseCStreamUnion2()461 void parseCStreamUnion2() { 462 ParseBase parser = ParseFactory.getParser("h2dts"); 463 String testEnum = "union {\n" + 464 " int val;\n" + 465 " struct tree_el * right, * left;\n" + 466 "};"; 467 CodePointCharStream cStream = CharStreams.fromString(testEnum); 468 ParseObj po = parser.parseCStream(cStream); 469 List<UnionObj> sol = po.getUnionList(); 470 assertEquals(1, sol.size()); 471 UnionObj so = sol.get(0); 472 473 List<ParamObj> ml = so.getMemList(); 474 assertEquals(3, ml.size()); 475 assertEquals("val", ml.get(0).getName()); 476 assertEquals("int", ml.get(0).getType()); 477 assertEquals("struct tree_el", ml.get(1).getType()); 478 assertEquals("*right", ml.get(1).getName()); 479 assertEquals("struct tree_el", ml.get(2).getType()); 480 assertEquals("*left", ml.get(2).getName()); 481 482 } 483 484 @Test parseCStreamUnion3()485 void parseCStreamUnion3() { 486 ParseBase parser = ParseFactory.getParser("h2dts"); 487 String testEnum = "typedef union {\n" + 488 " int val;\n" + 489 " Tree_el_T * right, * left;\n" + 490 "} Tree_el_T;"; 491 CodePointCharStream cStream = CharStreams.fromString(testEnum); 492 ParseObj po = parser.parseCStream(cStream); 493 List<UnionObj> sol = po.getUnionList(); 494 assertEquals(1, sol.size()); 495 UnionObj so = sol.get(0); 496 assertEquals("", so.getName()); 497 assertEquals("Tree_el_T", so.getAlias()); 498 499 List<ParamObj> ml = so.getMemList(); 500 assertEquals(3, ml.size()); 501 assertEquals("val", ml.get(0).getName()); 502 assertEquals("int", ml.get(0).getType()); 503 assertEquals("Tree_el_T", ml.get(1).getType()); 504 assertEquals("*right", ml.get(1).getName()); 505 assertEquals("Tree_el_T", ml.get(2).getType()); 506 assertEquals("*left", ml.get(2).getName()); 507 508 } 509 510 @Test parseCStreamUnion4()511 void parseCStreamUnion4() { 512 ParseBase parser = ParseFactory.getParser("h2dts"); 513 String testEnum = "typedef union tree_el {\n" + 514 " int val;\n" + 515 " struct tree_el * right, * left;\n" + 516 "} Tree_el_T;"; 517 CodePointCharStream cStream = CharStreams.fromString(testEnum); 518 ParseObj po = parser.parseCStream(cStream); 519 List<UnionObj> sol = po.getUnionList(); 520 assertEquals(1, sol.size()); 521 UnionObj so = sol.get(0); 522 assertEquals("tree_el", so.getName()); 523 assertEquals("Tree_el_T", so.getAlias()); 524 525 List<ParamObj> ml = so.getMemList(); 526 assertEquals(3, ml.size()); 527 assertEquals("val", ml.get(0).getName()); 528 assertEquals("int", ml.get(0).getType()); 529 assertEquals("struct tree_el", ml.get(1).getType()); 530 assertEquals("*right", ml.get(1).getName()); 531 assertEquals("struct tree_el", ml.get(2).getType()); 532 assertEquals("*left", ml.get(2).getName()); 533 534 } 535 536 @Test parseCStreamClass1()537 void parseCStreamClass1() { 538 ParseBase parser = ParseFactory.getParser("h2dts"); 539 String testEnum = "class tree_el {\n" + 540 " int val;\n" + 541 " struct tree_el * right, * left;\n" + 542 "};"; 543 CodePointCharStream cStream = CharStreams.fromString(testEnum); 544 ParseObj po = parser.parseCStream(cStream); 545 List<ClassObj> col = po.getClassList(); 546 assertEquals(1, col.size()); 547 ClassObj co = col.get(0); 548 assertEquals("tree_el", co.getName()); 549 550 List<ParamObj> pl = co.getParamList(); 551 assertEquals(3, pl.size()); 552 assertEquals("val", pl.get(0).getName()); 553 assertEquals("int", pl.get(0).getType()); 554 assertEquals("struct tree_el", pl.get(1).getType()); 555 assertEquals("*right", pl.get(1).getName()); 556 assertEquals("struct tree_el", pl.get(2).getType()); 557 assertEquals("*left", pl.get(2).getName()); 558 559 } 560 561 @Test parseCStreamClass2()562 void parseCStreamClass2() { 563 ParseBase parser = ParseFactory.getParser("h2dts"); 564 String testEnum = "class {\n" + 565 " int val;\n" + 566 " struct tree_el * right, * left;\n" + 567 "};"; 568 CodePointCharStream cStream = CharStreams.fromString(testEnum); 569 ParseObj po = parser.parseCStream(cStream); 570 List<ClassObj> col = po.getClassList(); 571 assertEquals(1, col.size()); 572 ClassObj co = col.get(0); 573 574 List<ParamObj> pl = co.getParamList(); 575 assertEquals(3, pl.size()); 576 assertEquals("val", pl.get(0).getName()); 577 assertEquals("int", pl.get(0).getType()); 578 assertEquals("struct tree_el", pl.get(1).getType()); 579 assertEquals("*right", pl.get(1).getName()); 580 assertEquals("struct tree_el", pl.get(2).getType()); 581 assertEquals("*left", pl.get(2).getName()); 582 583 } 584 @Test parseCStreamClass3()585 void parseCStreamClass3() { 586 ParseBase parser = ParseFactory.getParser("h2dts"); 587 String testEnum = "typedef class {\n" + 588 " int val;\n" + 589 " struct tree_el * right, * left;\n" + 590 "} tree_el_T;"; 591 CodePointCharStream cStream = CharStreams.fromString(testEnum); 592 ParseObj po = parser.parseCStream(cStream); 593 List<ClassObj> col = po.getClassList(); 594 assertEquals(1, col.size()); 595 ClassObj co = col.get(0); 596 assertEquals("tree_el_T", co.getAlias()); 597 598 List<ParamObj> pl = co.getParamList(); 599 assertEquals(3, pl.size()); 600 assertEquals("val", pl.get(0).getName()); 601 assertEquals("int", pl.get(0).getType()); 602 assertEquals("struct tree_el", pl.get(1).getType()); 603 assertEquals("*right", pl.get(1).getName()); 604 assertEquals("struct tree_el", pl.get(2).getType()); 605 assertEquals("*left", pl.get(2).getName()); 606 607 } 608 609 @Test parseCStreamClass4()610 void parseCStreamClass4() { 611 ParseBase parser = ParseFactory.getParser("h2dts"); 612 String testEnum = "typedef class tree_el {\n" + 613 " int val;\n" + 614 " struct tree_el * right, * left;\n" + 615 "} tree_el_T;"; 616 CodePointCharStream cStream = CharStreams.fromString(testEnum); 617 ParseObj po = parser.parseCStream(cStream); 618 List<ClassObj> col = po.getClassList(); 619 assertEquals(1, col.size()); 620 ClassObj co = col.get(0); 621 assertEquals("tree_el", co.getName()); 622 assertEquals("tree_el_T", co.getAlias()); 623 624 List<ParamObj> pl = co.getParamList(); 625 assertEquals(3, pl.size()); 626 assertEquals("val", pl.get(0).getName()); 627 assertEquals("int", pl.get(0).getType()); 628 assertEquals("struct tree_el", pl.get(1).getType()); 629 assertEquals("*right", pl.get(1).getName()); 630 assertEquals("struct tree_el", pl.get(2).getType()); 631 assertEquals("*left", pl.get(2).getName()); 632 633 } 634 635 @Test parseCStreamFunction1()636 void parseCStreamFunction1() { 637 ParseBase parser = ParseFactory.getParser("h2dts"); 638 String testEnum = "int foo();"; 639 CodePointCharStream cStream = CharStreams.fromString(testEnum); 640 ParseObj po = parser.parseCStream(cStream); 641 List<FuncObj> fol = po.getFuncList(); 642 assertEquals(1, fol.size()); 643 FuncObj fo = fol.get(0); 644 assertEquals("foo", fo.getName()); 645 646 } 647 648 @Test parseCStreamFunction2()649 void parseCStreamFunction2() { 650 ParseBase parser = ParseFactory.getParser("h2dts"); 651 String testEnum = "int foo( short s );"; 652 CodePointCharStream cStream = CharStreams.fromString(testEnum); 653 ParseObj po = parser.parseCStream(cStream); 654 List<FuncObj> fol = po.getFuncList(); 655 assertEquals(1, fol.size()); 656 FuncObj fo = fol.get(0); 657 assertEquals("foo", fo.getName()); 658 659 List<ParamObj> pl = fo.getParamList(); 660 assertEquals(1, pl.size()); 661 assertEquals("s", pl.get(0).getName()); 662 assertEquals("short", pl.get(0).getType()); 663 } 664 665 @Test parseCStreamFunction3()666 void parseCStreamFunction3() { 667 ParseBase parser = ParseFactory.getParser("h2dts"); 668 String testEnum = "int foo( short int si );"; 669 CodePointCharStream cStream = CharStreams.fromString(testEnum); 670 ParseObj po = parser.parseCStream(cStream); 671 List<FuncObj> fol = po.getFuncList(); 672 assertEquals(1, fol.size()); 673 FuncObj fo = fol.get(0); 674 assertEquals("foo", fo.getName()); 675 676 List<ParamObj> pl = fo.getParamList(); 677 assertEquals(1, pl.size()); 678 assertEquals("si", pl.get(0).getName()); 679 assertEquals("short int", pl.get(0).getType()); 680 } 681 682 @Test parseCStreamFunction4()683 void parseCStreamFunction4() { 684 ParseBase parser = ParseFactory.getParser("h2dts"); 685 String testEnum = "int foo( signed short ss );"; 686 CodePointCharStream cStream = CharStreams.fromString(testEnum); 687 ParseObj po = parser.parseCStream(cStream); 688 List<FuncObj> fol = po.getFuncList(); 689 assertEquals(1, fol.size()); 690 FuncObj fo = fol.get(0); 691 assertEquals("foo", fo.getName()); 692 693 List<ParamObj> pl = fo.getParamList(); 694 assertEquals(1, pl.size()); 695 assertEquals("ss", pl.get(0).getName()); 696 assertEquals("signed short", pl.get(0).getType()); 697 } 698 699 @Test parseCStreamFunction5()700 void parseCStreamFunction5() { 701 ParseBase parser = ParseFactory.getParser("h2dts"); 702 String testEnum = "int foo( signed short int ssi);"; 703 CodePointCharStream cStream = CharStreams.fromString(testEnum); 704 ParseObj po = parser.parseCStream(cStream); 705 List<FuncObj> fol = po.getFuncList(); 706 assertEquals(1, fol.size()); 707 FuncObj fo = fol.get(0); 708 assertEquals("foo", fo.getName()); 709 710 List<ParamObj> pl = fo.getParamList(); 711 assertEquals(1, pl.size()); 712 assertEquals("ssi", pl.get(0).getName()); 713 assertEquals("signed short int", pl.get(0).getType()); 714 } 715 716 @Test parseCStreamFunction6()717 void parseCStreamFunction6() { 718 ParseBase parser = ParseFactory.getParser("h2dts"); 719 String testEnum = "int foo( unsigned short us );"; 720 CodePointCharStream cStream = CharStreams.fromString(testEnum); 721 ParseObj po = parser.parseCStream(cStream); 722 List<FuncObj> fol = po.getFuncList(); 723 assertEquals(1, fol.size()); 724 FuncObj fo = fol.get(0); 725 assertEquals("foo", fo.getName()); 726 727 List<ParamObj> pl = fo.getParamList(); 728 assertEquals(1, pl.size()); 729 assertEquals("us", pl.get(0).getName()); 730 assertEquals("unsigned short", pl.get(0).getType()); 731 } 732 733 @Test parseCStreamFunction7()734 void parseCStreamFunction7() { 735 ParseBase parser = ParseFactory.getParser("h2dts"); 736 String testEnum = "int foo( unsigned short int usi );"; 737 CodePointCharStream cStream = CharStreams.fromString(testEnum); 738 ParseObj po = parser.parseCStream(cStream); 739 List<FuncObj> fol = po.getFuncList(); 740 assertEquals(1, fol.size()); 741 FuncObj fo = fol.get(0); 742 assertEquals("foo", fo.getName()); 743 744 List<ParamObj> pl = fo.getParamList(); 745 assertEquals(1, pl.size()); 746 assertEquals("usi", pl.get(0).getName()); 747 assertEquals("unsigned short int", pl.get(0).getType()); 748 } 749 750 @Test parseCStreamFunction8()751 void parseCStreamFunction8() { 752 ParseBase parser = ParseFactory.getParser("h2dts"); 753 String testEnum = "int foo( int i);"; 754 CodePointCharStream cStream = CharStreams.fromString(testEnum); 755 ParseObj po = parser.parseCStream(cStream); 756 List<FuncObj> fol = po.getFuncList(); 757 assertEquals(1, fol.size()); 758 FuncObj fo = fol.get(0); 759 assertEquals("foo", fo.getName()); 760 761 List<ParamObj> pl = fo.getParamList(); 762 assertEquals(1, pl.size()); 763 assertEquals("i", pl.get(0).getName()); 764 assertEquals("int", pl.get(0).getType()); 765 } 766 767 @Test parseCStreamFunction9()768 void parseCStreamFunction9() { 769 ParseBase parser = ParseFactory.getParser("h2dts"); 770 String testEnum = "int foo( signed s );"; 771 CodePointCharStream cStream = CharStreams.fromString(testEnum); 772 ParseObj po = parser.parseCStream(cStream); 773 List<FuncObj> fol = po.getFuncList(); 774 assertEquals(1, fol.size()); 775 FuncObj fo = fol.get(0); 776 assertEquals("foo", fo.getName()); 777 778 List<ParamObj> pl = fo.getParamList(); 779 assertEquals(1, pl.size()); 780 assertEquals("s", pl.get(0).getName()); 781 assertEquals("signed", pl.get(0).getType()); 782 } 783 784 @Test parseCStreamFunction10()785 void parseCStreamFunction10() { 786 ParseBase parser = ParseFactory.getParser("h2dts"); 787 String testEnum = "int foo( signed int si );"; 788 CodePointCharStream cStream = CharStreams.fromString(testEnum); 789 ParseObj po = parser.parseCStream(cStream); 790 List<FuncObj> fol = po.getFuncList(); 791 assertEquals(1, fol.size()); 792 FuncObj fo = fol.get(0); 793 assertEquals("foo", fo.getName()); 794 795 List<ParamObj> pl = fo.getParamList(); 796 assertEquals(1, pl.size()); 797 assertEquals("si", pl.get(0).getName()); 798 assertEquals("signed int", pl.get(0).getType()); 799 } 800 801 @Test parseCStreamFunction11()802 void parseCStreamFunction11() { 803 ParseBase parser = ParseFactory.getParser("h2dts"); 804 String testEnum = "int foo( unsigned u );"; 805 CodePointCharStream cStream = CharStreams.fromString(testEnum); 806 ParseObj po = parser.parseCStream(cStream); 807 List<FuncObj> fol = po.getFuncList(); 808 assertEquals(1, fol.size()); 809 FuncObj fo = fol.get(0); 810 assertEquals("foo", fo.getName()); 811 812 List<ParamObj> pl = fo.getParamList(); 813 assertEquals(1, pl.size()); 814 assertEquals("u", pl.get(0).getName()); 815 assertEquals("unsigned", pl.get(0).getType()); 816 } 817 818 @Test parseCStreamFunction12()819 void parseCStreamFunction12() { 820 ParseBase parser = ParseFactory.getParser("h2dts"); 821 String testEnum = "int foo( unsigned int ui );"; 822 CodePointCharStream cStream = CharStreams.fromString(testEnum); 823 ParseObj po = parser.parseCStream(cStream); 824 List<FuncObj> fol = po.getFuncList(); 825 assertEquals(1, fol.size()); 826 FuncObj fo = fol.get(0); 827 assertEquals("foo", fo.getName()); 828 829 List<ParamObj> pl = fo.getParamList(); 830 assertEquals(1, pl.size()); 831 assertEquals("ui", pl.get(0).getName()); 832 assertEquals("unsigned int", pl.get(0).getType()); 833 } 834 835 @Test parseCStreamFunction13()836 void parseCStreamFunction13() { 837 ParseBase parser = ParseFactory.getParser("h2dts"); 838 String testEnum = "int foo( long l );"; 839 CodePointCharStream cStream = CharStreams.fromString(testEnum); 840 ParseObj po = parser.parseCStream(cStream); 841 List<FuncObj> fol = po.getFuncList(); 842 assertEquals(1, fol.size()); 843 FuncObj fo = fol.get(0); 844 assertEquals("foo", fo.getName()); 845 846 List<ParamObj> pl = fo.getParamList(); 847 assertEquals(1, pl.size()); 848 assertEquals("l", pl.get(0).getName()); 849 assertEquals("long", pl.get(0).getType()); 850 } 851 852 @Test parseCStreamFunction14()853 void parseCStreamFunction14() { 854 ParseBase parser = ParseFactory.getParser("h2dts"); 855 String testEnum = "int foo( long int li );"; 856 CodePointCharStream cStream = CharStreams.fromString(testEnum); 857 ParseObj po = parser.parseCStream(cStream); 858 List<FuncObj> fol = po.getFuncList(); 859 assertEquals(1, fol.size()); 860 FuncObj fo = fol.get(0); 861 assertEquals("foo", fo.getName()); 862 863 List<ParamObj> pl = fo.getParamList(); 864 assertEquals(1, pl.size()); 865 assertEquals("li", pl.get(0).getName()); 866 assertEquals("long int", pl.get(0).getType()); 867 } 868 869 @Test parseCStreamFunction15()870 void parseCStreamFunction15() { 871 ParseBase parser = ParseFactory.getParser("h2dts"); 872 String testEnum = "int foo( signed long sl );"; 873 CodePointCharStream cStream = CharStreams.fromString(testEnum); 874 ParseObj po = parser.parseCStream(cStream); 875 List<FuncObj> fol = po.getFuncList(); 876 assertEquals(1, fol.size()); 877 FuncObj fo = fol.get(0); 878 assertEquals("foo", fo.getName()); 879 880 List<ParamObj> pl = fo.getParamList(); 881 assertEquals(1, pl.size()); 882 assertEquals("sl", pl.get(0).getName()); 883 assertEquals("signed long", pl.get(0).getType()); 884 } 885 886 @Test parseCStreamFunction16()887 void parseCStreamFunction16() { 888 ParseBase parser = ParseFactory.getParser("h2dts"); 889 String testEnum = "int foo( signed long int sli );"; 890 CodePointCharStream cStream = CharStreams.fromString(testEnum); 891 ParseObj po = parser.parseCStream(cStream); 892 List<FuncObj> fol = po.getFuncList(); 893 assertEquals(1, fol.size()); 894 FuncObj fo = fol.get(0); 895 assertEquals("foo", fo.getName()); 896 897 List<ParamObj> pl = fo.getParamList(); 898 assertEquals(1, pl.size()); 899 assertEquals("sli", pl.get(0).getName()); 900 assertEquals("signed long int", pl.get(0).getType()); 901 } 902 903 @Test parseCStreamFunction17()904 void parseCStreamFunction17() { 905 ParseBase parser = ParseFactory.getParser("h2dts"); 906 String testEnum = "int foo( unsigned long ul );"; 907 CodePointCharStream cStream = CharStreams.fromString(testEnum); 908 ParseObj po = parser.parseCStream(cStream); 909 List<FuncObj> fol = po.getFuncList(); 910 assertEquals(1, fol.size()); 911 FuncObj fo = fol.get(0); 912 assertEquals("foo", fo.getName()); 913 914 List<ParamObj> pl = fo.getParamList(); 915 assertEquals(1, pl.size()); 916 assertEquals("ul", pl.get(0).getName()); 917 assertEquals("unsigned long", pl.get(0).getType()); 918 } 919 920 @Test parseCStreamFunction18()921 void parseCStreamFunction18() { 922 ParseBase parser = ParseFactory.getParser("h2dts"); 923 String testEnum = "int foo( unsigned long int uli );"; 924 CodePointCharStream cStream = CharStreams.fromString(testEnum); 925 ParseObj po = parser.parseCStream(cStream); 926 List<FuncObj> fol = po.getFuncList(); 927 assertEquals(1, fol.size()); 928 FuncObj fo = fol.get(0); 929 assertEquals("foo", fo.getName()); 930 931 List<ParamObj> pl = fo.getParamList(); 932 assertEquals(1, pl.size()); 933 assertEquals("uli", pl.get(0).getName()); 934 assertEquals("unsigned long int", pl.get(0).getType()); 935 } 936 937 @Test parseCStreamFunction19()938 void parseCStreamFunction19() { 939 ParseBase parser = ParseFactory.getParser("h2dts"); 940 String testEnum = "int foo( long long ll );"; 941 CodePointCharStream cStream = CharStreams.fromString(testEnum); 942 ParseObj po = parser.parseCStream(cStream); 943 List<FuncObj> fol = po.getFuncList(); 944 assertEquals(1, fol.size()); 945 FuncObj fo = fol.get(0); 946 assertEquals("foo", fo.getName()); 947 948 List<ParamObj> pl = fo.getParamList(); 949 assertEquals(1, pl.size()); 950 assertEquals("ll", pl.get(0).getName()); 951 assertEquals("long long", pl.get(0).getType()); 952 } 953 954 @Test parseCStreamFunction20()955 void parseCStreamFunction20() { 956 ParseBase parser = ParseFactory.getParser("h2dts"); 957 String testEnum = "int foo( long long int lli );"; 958 CodePointCharStream cStream = CharStreams.fromString(testEnum); 959 ParseObj po = parser.parseCStream(cStream); 960 List<FuncObj> fol = po.getFuncList(); 961 assertEquals(1, fol.size()); 962 FuncObj fo = fol.get(0); 963 assertEquals("foo", fo.getName()); 964 965 List<ParamObj> pl = fo.getParamList(); 966 assertEquals(1, pl.size()); 967 assertEquals("lli", pl.get(0).getName()); 968 assertEquals("long long int", pl.get(0).getType()); 969 } 970 971 @Test parseCStreamFunction21()972 void parseCStreamFunction21() { 973 ParseBase parser = ParseFactory.getParser("h2dts"); 974 String testEnum = "int foo( signed long long sll );"; 975 CodePointCharStream cStream = CharStreams.fromString(testEnum); 976 ParseObj po = parser.parseCStream(cStream); 977 List<FuncObj> fol = po.getFuncList(); 978 assertEquals(1, fol.size()); 979 FuncObj fo = fol.get(0); 980 assertEquals("foo", fo.getName()); 981 982 List<ParamObj> pl = fo.getParamList(); 983 assertEquals(1, pl.size()); 984 assertEquals("sll", pl.get(0).getName()); 985 assertEquals("signed long long", pl.get(0).getType()); 986 } 987 988 @Test parseCStreamFunction22()989 void parseCStreamFunction22() { 990 ParseBase parser = ParseFactory.getParser("h2dts"); 991 String testEnum = "int foo( signed long long int slli );"; 992 CodePointCharStream cStream = CharStreams.fromString(testEnum); 993 ParseObj po = parser.parseCStream(cStream); 994 List<FuncObj> fol = po.getFuncList(); 995 assertEquals(1, fol.size()); 996 FuncObj fo = fol.get(0); 997 assertEquals("foo", fo.getName()); 998 999 List<ParamObj> pl = fo.getParamList(); 1000 assertEquals(1, pl.size()); 1001 assertEquals("slli", pl.get(0).getName()); 1002 assertEquals("signed long long int", pl.get(0).getType()); 1003 } 1004 1005 @Test parseCStreamFunction23()1006 void parseCStreamFunction23() { 1007 ParseBase parser = ParseFactory.getParser("h2dts"); 1008 String testEnum = "int foo( unsigned long long ull );"; 1009 CodePointCharStream cStream = CharStreams.fromString(testEnum); 1010 ParseObj po = parser.parseCStream(cStream); 1011 List<FuncObj> fol = po.getFuncList(); 1012 assertEquals(1, fol.size()); 1013 FuncObj fo = fol.get(0); 1014 assertEquals("foo", fo.getName()); 1015 1016 List<ParamObj> pl = fo.getParamList(); 1017 assertEquals(1, pl.size()); 1018 assertEquals("ull", pl.get(0).getName()); 1019 assertEquals("unsigned long long", pl.get(0).getType()); 1020 } 1021 1022 @Test parseCStreamFunction24()1023 void parseCStreamFunction24() { 1024 ParseBase parser = ParseFactory.getParser("h2dts"); 1025 String testEnum = "int foo( unsigned long long int ulli );"; 1026 CodePointCharStream cStream = CharStreams.fromString(testEnum); 1027 ParseObj po = parser.parseCStream(cStream); 1028 List<FuncObj> fol = po.getFuncList(); 1029 assertEquals(1, fol.size()); 1030 FuncObj fo = fol.get(0); 1031 assertEquals("foo", fo.getName()); 1032 1033 List<ParamObj> pl = fo.getParamList(); 1034 assertEquals(1, pl.size()); 1035 assertEquals("ulli", pl.get(0).getName()); 1036 assertEquals("unsigned long long int", pl.get(0).getType()); 1037 } 1038 1039 @Test parseCStreamFunction25()1040 void parseCStreamFunction25() { 1041 ParseBase parser = ParseFactory.getParser("h2dts"); 1042 String testEnum = "int foo( double d );"; 1043 CodePointCharStream cStream = CharStreams.fromString(testEnum); 1044 ParseObj po = parser.parseCStream(cStream); 1045 List<FuncObj> fol = po.getFuncList(); 1046 assertEquals(1, fol.size()); 1047 FuncObj fo = fol.get(0); 1048 assertEquals("foo", fo.getName()); 1049 1050 List<ParamObj> pl = fo.getParamList(); 1051 assertEquals(1, pl.size()); 1052 assertEquals("d", pl.get(0).getName()); 1053 assertEquals("double", pl.get(0).getType()); 1054 } 1055 1056 @Test parseCStreamFunction26()1057 void parseCStreamFunction26() { 1058 ParseBase parser = ParseFactory.getParser("h2dts"); 1059 String testEnum = "int foo( long double ld );"; 1060 CodePointCharStream cStream = CharStreams.fromString(testEnum); 1061 ParseObj po = parser.parseCStream(cStream); 1062 List<FuncObj> fol = po.getFuncList(); 1063 assertEquals(1, fol.size()); 1064 FuncObj fo = fol.get(0); 1065 assertEquals("foo", fo.getName()); 1066 1067 List<ParamObj> pl = fo.getParamList(); 1068 assertEquals(1, pl.size()); 1069 assertEquals("ld", pl.get(0).getName()); 1070 assertEquals("long double", pl.get(0).getType()); 1071 } 1072 1073 @Test parseCStreamFunction27()1074 void parseCStreamFunction27() { 1075 ParseBase parser = ParseFactory.getParser("h2dts"); 1076 String testEnum = "int foo( unsigned long );"; 1077 CodePointCharStream cStream = CharStreams.fromString(testEnum); 1078 ParseObj po = parser.parseCStream(cStream); 1079 List<FuncObj> fol = po.getFuncList(); 1080 assertEquals(1, fol.size()); 1081 FuncObj fo = fol.get(0); 1082 assertEquals("foo", fo.getName()); 1083 1084 List<ParamObj> pl = fo.getParamList(); 1085 assertEquals(1, pl.size()); 1086 assertEquals("", pl.get(0).getName()); 1087 assertEquals("unsigned long", pl.get(0).getType()); 1088 } 1089 1090 @Test parseCStreamFunction28()1091 void parseCStreamFunction28() { 1092 ParseBase parser = ParseFactory.getParser("h2dts"); 1093 String testEnum = "int foo( unsigned long int );"; 1094 CodePointCharStream cStream = CharStreams.fromString(testEnum); 1095 ParseObj po = parser.parseCStream(cStream); 1096 List<FuncObj> fol = po.getFuncList(); 1097 assertEquals(1, fol.size()); 1098 FuncObj fo = fol.get(0); 1099 assertEquals("foo", fo.getName()); 1100 1101 List<ParamObj> pl = fo.getParamList(); 1102 assertEquals(1, pl.size()); 1103 assertEquals("", pl.get(0).getName()); 1104 assertEquals("unsigned long int", pl.get(0).getType()); 1105 } 1106 1107 @Test parseCStreamFunction29()1108 void parseCStreamFunction29() { 1109 ParseBase parser = ParseFactory.getParser("h2dts"); 1110 String testEnum = "int foo( long long );"; 1111 CodePointCharStream cStream = CharStreams.fromString(testEnum); 1112 ParseObj po = parser.parseCStream(cStream); 1113 List<FuncObj> fol = po.getFuncList(); 1114 assertEquals(1, fol.size()); 1115 FuncObj fo = fol.get(0); 1116 assertEquals("foo", fo.getName()); 1117 1118 List<ParamObj> pl = fo.getParamList(); 1119 assertEquals(1, pl.size()); 1120 assertEquals("", pl.get(0).getName()); 1121 assertEquals("long long", pl.get(0).getType()); 1122 } 1123 1124 @Test parseCStreamFunction30()1125 void parseCStreamFunction30() { 1126 ParseBase parser = ParseFactory.getParser("h2dts"); 1127 String testEnum = "int foo( long long int );"; 1128 CodePointCharStream cStream = CharStreams.fromString(testEnum); 1129 ParseObj po = parser.parseCStream(cStream); 1130 List<FuncObj> fol = po.getFuncList(); 1131 assertEquals(1, fol.size()); 1132 FuncObj fo = fol.get(0); 1133 assertEquals("foo", fo.getName()); 1134 1135 List<ParamObj> pl = fo.getParamList(); 1136 assertEquals(1, pl.size()); 1137 assertEquals("", pl.get(0).getName()); 1138 assertEquals("long long int", pl.get(0).getType()); 1139 } 1140 1141 @Test parseCStreamFile1()1142 void parseCStreamFile1() { 1143 ParseBase parser = ParseFactory.getParser("h2dts"); 1144 String testEnum = testCStreamFile1; 1145 CodePointCharStream cStream = CharStreams.fromString(testEnum); 1146 ParseObj po = parser.parseCStream(cStream); 1147 List<FuncObj> fol = po.getFuncList(); 1148 assertEquals(2, fol.size()); 1149 1150 FuncObj fo = fol.get(0); 1151 assertEquals("coap_address_get_port", fo.getName()); 1152 assertEquals("COAP_STATIC_INLINE uint16_t", fo.getRetValue()); 1153 List<ParamObj> pol = fo.getParamList(); 1154 ParamObj poItem = pol.get(0); 1155 assertEquals("constcoap_address_t", poItem.getType()); 1156 assertEquals("*addr", poItem.getName()); 1157 1158 fo = fol.get(1); 1159 assertEquals("coap_address_set_port", fo.getName()); 1160 assertEquals("COAP_STATIC_INLINE void", fo.getRetValue()); 1161 pol = fo.getParamList(); 1162 poItem = pol.get(0); 1163 assertEquals("coap_address_t", poItem.getType()); 1164 assertEquals("*addr", poItem.getName()); 1165 poItem = pol.get(1); 1166 assertEquals("uint16_t", poItem.getType()); 1167 assertEquals("port", poItem.getName()); 1168 1169 List<StructObj> sol = po.getStructList(); 1170 assertEquals(2, sol.size()); 1171 1172 StructObj soItem = sol.get(0); 1173 assertEquals("coap_address_t", soItem.getName()); 1174 pol = soItem.getMemberList(); 1175 poItem = pol.get(0); 1176 assertEquals("uint16_t", poItem.getType()); 1177 assertEquals("port", poItem.getName()); 1178 poItem = pol.get(1); 1179 assertEquals("ip_addr_t", poItem.getType()); 1180 assertEquals("addr", poItem.getName()); 1181 1182 soItem = sol.get(1); 1183 assertEquals("coap_address_t", soItem.getName()); 1184 pol = soItem.getMemberList(); 1185 poItem = pol.get(0); 1186 assertEquals("uip_ipaddr_t", poItem.getType()); 1187 assertEquals("addr", poItem.getName()); 1188 poItem = pol.get(1); 1189 assertEquals("uint16_t", poItem.getType()); 1190 assertEquals("port", poItem.getName()); 1191 1192 } 1193 1194 @Test parseCStreamFile2()1195 void parseCStreamFile2() { 1196 ParseBase parser = ParseFactory.getParser("h2dts"); 1197 String testEnum = testCStreamFile2; 1198 CodePointCharStream cStream = CharStreams.fromString(testEnum); 1199 ParseObj po = parser.parseCStream(cStream); 1200 List<FuncObj> fol = po.getFuncList(); 1201 assertEquals(12, fol.size()); 1202 FuncObj fo = fol.get(0); 1203 assertEquals("OS_AllocTLSIndex", fo.getName()); 1204 assertEquals("OS_TLSIndex", fo.getRetValue()); 1205 1206 List<ParamObj> pl = fo.getParamList(); 1207 assertEquals(1, pl.size()); 1208 assertEquals("", pl.get(0).getName()); 1209 assertEquals("void", pl.get(0).getType()); 1210 1211 fo = fol.get(1); 1212 assertEquals("OS_SetTLSValue", fo.getName()); 1213 assertEquals("bool", fo.getRetValue()); 1214 1215 pl = fo.getParamList(); 1216 assertEquals(2, pl.size()); 1217 assertEquals("nIndex", pl.get(0).getName()); 1218 assertEquals("OS_TLSIndex", pl.get(0).getType()); 1219 assertEquals("*lpvValue", pl.get(1).getName()); 1220 assertEquals("void", pl.get(1).getType()); 1221 1222 fo = fol.get(2); 1223 assertEquals("OS_FreeTLSIndex", fo.getName()); 1224 assertEquals("bool", fo.getRetValue()); 1225 1226 pl = fo.getParamList(); 1227 assertEquals(1, pl.size()); 1228 assertEquals("nIndex", pl.get(0).getName()); 1229 assertEquals("OS_TLSIndex", pl.get(0).getType()); 1230 1231 fo = fol.get(3); 1232 assertEquals("OS_GetTLSValue", fo.getName()); 1233 assertEquals("void", fo.getRetValue()); 1234 1235 pl = fo.getParamList(); 1236 assertEquals(1, pl.size()); 1237 assertEquals("nIndex", pl.get(0).getName()); 1238 assertEquals("OS_TLSIndex", pl.get(0).getType()); 1239 1240 fo = fol.get(4); 1241 assertEquals("InitGlobalLock", fo.getName()); 1242 assertEquals("void", fo.getRetValue()); 1243 1244 pl = fo.getParamList(); 1245 assertEquals(1, pl.size()); 1246 assertEquals("", pl.get(0).getName()); 1247 assertEquals("void", pl.get(0).getType()); 1248 1249 1250 } 1251 1252 @Test parseCStreamFile3()1253 void parseCStreamFile3() { 1254 ParseBase parser = ParseFactory.getParser("h2dts"); 1255 String testEnum = testCStreamFile2; 1256 CodePointCharStream cStream = CharStreams.fromString(testEnum); 1257 ParseObj po = parser.parseCStream(cStream); 1258 List<FuncObj> fol = po.getFuncList(); 1259 assertEquals(12, fol.size()); 1260 1261 FuncObj fo = fol.get(5); 1262 assertEquals("GetGlobalLock", fo.getName()); 1263 assertEquals("void", fo.getRetValue()); 1264 1265 List<ParamObj> pl = fo.getParamList(); 1266 assertEquals(1, pl.size()); 1267 assertEquals("", pl.get(0).getName()); 1268 assertEquals("void", pl.get(0).getType()); 1269 1270 fo = fol.get(8); 1271 assertEquals("OS_CreateThread", fo.getName()); 1272 assertEquals("void", fo.getRetValue()); 1273 1274 pl = fo.getParamList(); 1275 assertEquals(1, pl.size()); 1276 assertEquals("entry", pl.get(0).getName()); 1277 assertEquals("TThreadEntrypoint", pl.get(0).getType()); 1278 1279 fo = fol.get(9); 1280 assertEquals("OS_WaitForAllThreads", fo.getName()); 1281 assertEquals("void", fo.getRetValue()); 1282 1283 pl = fo.getParamList(); 1284 assertEquals(2, pl.size()); 1285 assertEquals("*threads", pl.get(0).getName()); 1286 assertEquals("void", pl.get(0).getType()); 1287 assertEquals("numThreads", pl.get(1).getName()); 1288 assertEquals("int", pl.get(1).getType()); 1289 1290 fo = fol.get(10); 1291 assertEquals("OS_Sleep", fo.getName()); 1292 assertEquals("void", fo.getRetValue()); 1293 1294 pl = fo.getParamList(); 1295 assertEquals(1, pl.size()); 1296 assertEquals("milliseconds", pl.get(0).getName()); 1297 assertEquals("int", pl.get(0).getType()); 1298 1299 fo = fol.get(11); 1300 assertEquals("OS_DumpMemoryCounters", fo.getName()); 1301 assertEquals("void", fo.getRetValue()); 1302 1303 pl = fo.getParamList(); 1304 assertEquals(1, pl.size()); 1305 assertEquals("", pl.get(0).getName()); 1306 assertEquals("void", pl.get(0).getType()); 1307 } 1308 1309 @Test genParseResult()1310 void genParseResult() { 1311 } 1312 1313 @Test parseEnum()1314 void parseEnum() { 1315 } 1316 1317 @Test parseUnion()1318 void parseUnion() { 1319 } 1320 1321 @Test parseStruct()1322 void parseStruct() { 1323 } 1324 1325 @Test parseClass()1326 void parseClass() { 1327 } 1328 1329 @Test parseFunc()1330 void parseFunc() { 1331 } 1332 1333 @Test parseType()1334 void parseType() { 1335 } 1336 }