OLD | NEW |
1 //===- llvm/unittest/Bitcode/NaClObjDumpTypesTest.cpp ---------------------===// | 1 //===- llvm/unittest/Bitcode/NaClObjDumpTypesTest.cpp ---------------------===// |
2 // Tests objdump stream for PNaCl bitcode. | 2 // Tests objdump stream for PNaCl bitcode. |
3 // | 3 // |
4 // The LLVM Compiler Infrastructure | 4 // The LLVM Compiler Infrastructure |
5 // | 5 // |
6 // This file is distributed under the University of Illinois Open Source | 6 // This file is distributed under the University of Illinois Open Source |
7 // License. See LICENSE.TXT for details. | 7 // License. See LICENSE.TXT for details. |
8 // | 8 // |
9 //===----------------------------------------------------------------------===// | 9 //===----------------------------------------------------------------------===// |
10 | 10 |
(...skipping 20 matching lines...) Expand all Loading... |
31 3, 1, 2, Terminator, | 31 3, 1, 2, Terminator, |
32 3, 7, 32, Terminator, | 32 3, 7, 32, Terminator, |
33 3, 3, Terminator, | 33 3, 3, Terminator, |
34 0, 65534, Terminator, | 34 0, 65534, Terminator, |
35 0, 65534, Terminator | 35 0, 65534, Terminator |
36 }; | 36 }; |
37 | 37 |
38 const uint64_t ReplaceIndex = 4; | 38 const uint64_t ReplaceIndex = 4; |
39 | 39 |
40 // Show base input. | 40 // Show base input. |
41 NaClBitcodeMunger Munger(BitcodeRecords, | 41 NaClObjDumpMunger Munger(BitcodeRecords, |
42 array_lengthof(BitcodeRecords), Terminator); | 42 array_lengthof(BitcodeRecords), Terminator); |
43 EXPECT_TRUE(Munger.runTestForAssembly("Bad type references base")); | 43 EXPECT_TRUE(Munger.runTestForAssembly("Bad type references base")); |
44 EXPECT_EQ( | 44 EXPECT_EQ( |
45 "module { // BlockID = 8\n" | 45 "module { // BlockID = 8\n" |
46 " types { // BlockID = 17\n" | 46 " types { // BlockID = 17\n" |
47 " count 2;\n" | 47 " count 2;\n" |
48 " @t0 = i32;\n" | 48 " @t0 = i32;\n" |
49 " @t1 = float;\n" | 49 " @t1 = float;\n" |
50 " }\n" | 50 " }\n" |
51 "}\n", | 51 "}\n", |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 3, 1, 2, Terminator, | 95 3, 1, 2, Terminator, |
96 3, 7, 32, Terminator, | 96 3, 7, 32, Terminator, |
97 3, 3, Terminator, | 97 3, 3, Terminator, |
98 0, 65534, Terminator, | 98 0, 65534, Terminator, |
99 0, 65534, Terminator | 99 0, 65534, Terminator |
100 }; | 100 }; |
101 | 101 |
102 const uint64_t AddBeforeIndex = 5; | 102 const uint64_t AddBeforeIndex = 5; |
103 const uint64_t ReplaceIndex = 2; | 103 const uint64_t ReplaceIndex = 2; |
104 | 104 |
105 NaClBitcodeMunger Munger(BitcodeRecords, | 105 NaClObjDumpMunger Munger(BitcodeRecords, |
106 array_lengthof(BitcodeRecords), Terminator); | 106 array_lengthof(BitcodeRecords), Terminator); |
107 | 107 |
108 // Test case where count is correct. | 108 // Test case where count is correct. |
109 EXPECT_TRUE(Munger.runTestForAssembly("Good case")); | 109 EXPECT_TRUE(Munger.runTestForAssembly("Good case")); |
110 EXPECT_EQ( | 110 EXPECT_EQ( |
111 "module { // BlockID = 8\n" | 111 "module { // BlockID = 8\n" |
112 " types { // BlockID = 17\n" | 112 " types { // BlockID = 17\n" |
113 " count 2;\n" | 113 " count 2;\n" |
114 " @t0 = i32;\n" | 114 " @t0 = i32;\n" |
115 " @t1 = float;\n" | 115 " @t1 = float;\n" |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 1, 65535, 8, 2, Terminator, | 190 1, 65535, 8, 2, Terminator, |
191 1, 65535, 17, 2, Terminator, | 191 1, 65535, 17, 2, Terminator, |
192 3, 1, 1, Terminator, | 192 3, 1, 1, Terminator, |
193 3, 2, Terminator, | 193 3, 2, Terminator, |
194 0, 65534, Terminator, | 194 0, 65534, Terminator, |
195 0, 65534, Terminator | 195 0, 65534, Terminator |
196 }; | 196 }; |
197 | 197 |
198 const uint64_t ReplaceIndex = 3; | 198 const uint64_t ReplaceIndex = 3; |
199 | 199 |
200 NaClBitcodeMunger Munger(BitcodeRecords, | 200 NaClObjDumpMunger Munger(BitcodeRecords, |
201 array_lengthof(BitcodeRecords), Terminator); | 201 array_lengthof(BitcodeRecords), Terminator); |
202 | 202 |
203 // Test where void is properly specified. | 203 // Test where void is properly specified. |
204 EXPECT_TRUE(Munger.runTestForAssembly("Good case")); | 204 EXPECT_TRUE(Munger.runTestForAssembly("Good case")); |
205 EXPECT_EQ( | 205 EXPECT_EQ( |
206 "module { // BlockID = 8\n" | 206 "module { // BlockID = 8\n" |
207 " types { // BlockID = 17\n" | 207 " types { // BlockID = 17\n" |
208 " count 1;\n" | 208 " count 1;\n" |
209 " @t0 = void;\n" | 209 " @t0 = void;\n" |
210 " }\n" | 210 " }\n" |
(...skipping 20 matching lines...) Expand all Loading... |
231 1, 65535, 8, 2, Terminator, | 231 1, 65535, 8, 2, Terminator, |
232 1, 65535, 17, 2, Terminator, | 232 1, 65535, 17, 2, Terminator, |
233 3, 1, 1, Terminator, | 233 3, 1, 1, Terminator, |
234 3, 7, 1, Terminator, | 234 3, 7, 1, Terminator, |
235 0, 65534, Terminator, | 235 0, 65534, Terminator, |
236 0, 65534, Terminator | 236 0, 65534, Terminator |
237 }; | 237 }; |
238 | 238 |
239 const uint64_t ReplaceIndex = 3; | 239 const uint64_t ReplaceIndex = 3; |
240 | 240 |
241 NaClBitcodeMunger Munger(BitcodeRecords, | 241 NaClObjDumpMunger Munger(BitcodeRecords, |
242 array_lengthof(BitcodeRecords), Terminator); | 242 array_lengthof(BitcodeRecords), Terminator); |
243 | 243 |
244 // Tests that we accept i1. | 244 // Tests that we accept i1. |
245 EXPECT_TRUE(Munger.runTestForAssembly("Test type i1")); | 245 EXPECT_TRUE(Munger.runTestForAssembly("Test type i1")); |
246 EXPECT_EQ( | 246 EXPECT_EQ( |
247 "module { // BlockID = 8\n" | 247 "module { // BlockID = 8\n" |
248 " types { // BlockID = 17\n" | 248 " types { // BlockID = 17\n" |
249 " count 1;\n" | 249 " count 1;\n" |
250 " @t0 = i1;\n" | 250 " @t0 = i1;\n" |
251 " }\n" | 251 " }\n" |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 1, 65535, 8, 2, Terminator, | 340 1, 65535, 8, 2, Terminator, |
341 1, 65535, 17, 2, Terminator, | 341 1, 65535, 17, 2, Terminator, |
342 3, 1, 1, Terminator, | 342 3, 1, 1, Terminator, |
343 3, 3, Terminator, | 343 3, 3, Terminator, |
344 0, 65534, Terminator, | 344 0, 65534, Terminator, |
345 0, 65534, Terminator | 345 0, 65534, Terminator |
346 }; | 346 }; |
347 | 347 |
348 const uint64_t ReplaceIndex = 3; | 348 const uint64_t ReplaceIndex = 3; |
349 | 349 |
350 NaClBitcodeMunger Munger(BitcodeRecords, | 350 NaClObjDumpMunger Munger(BitcodeRecords, |
351 array_lengthof(BitcodeRecords), Terminator); | 351 array_lengthof(BitcodeRecords), Terminator); |
352 | 352 |
353 // Test that we accept the float record. | 353 // Test that we accept the float record. |
354 EXPECT_TRUE(Munger.runTestForAssembly("Good case")); | 354 EXPECT_TRUE(Munger.runTestForAssembly("Good case")); |
355 EXPECT_EQ( | 355 EXPECT_EQ( |
356 "module { // BlockID = 8\n" | 356 "module { // BlockID = 8\n" |
357 " types { // BlockID = 17\n" | 357 " types { // BlockID = 17\n" |
358 " count 1;\n" | 358 " count 1;\n" |
359 " @t0 = float;\n" | 359 " @t0 = float;\n" |
360 " }\n" | 360 " }\n" |
(...skipping 21 matching lines...) Expand all Loading... |
382 1, 65535, 8, 2, Terminator, | 382 1, 65535, 8, 2, Terminator, |
383 1, 65535, 17, 2, Terminator, | 383 1, 65535, 17, 2, Terminator, |
384 3, 1, 1, Terminator, | 384 3, 1, 1, Terminator, |
385 3, 4, Terminator, | 385 3, 4, Terminator, |
386 0, 65534, Terminator, | 386 0, 65534, Terminator, |
387 0, 65534, Terminator | 387 0, 65534, Terminator |
388 }; | 388 }; |
389 | 389 |
390 const uint64_t ReplaceIndex = 3; | 390 const uint64_t ReplaceIndex = 3; |
391 | 391 |
392 NaClBitcodeMunger Munger(BitcodeRecords, | 392 NaClObjDumpMunger Munger(BitcodeRecords, |
393 array_lengthof(BitcodeRecords), Terminator); | 393 array_lengthof(BitcodeRecords), Terminator); |
394 | 394 |
395 // Test that we accept the double record. | 395 // Test that we accept the double record. |
396 EXPECT_TRUE(Munger.runTestForAssembly("Good case")); | 396 EXPECT_TRUE(Munger.runTestForAssembly("Good case")); |
397 EXPECT_EQ( | 397 EXPECT_EQ( |
398 "module { // BlockID = 8\n" | 398 "module { // BlockID = 8\n" |
399 " types { // BlockID = 17\n" | 399 " types { // BlockID = 17\n" |
400 " count 1;\n" | 400 " count 1;\n" |
401 " @t0 = double;\n" | 401 " @t0 = double;\n" |
402 " }\n" | 402 " }\n" |
(...skipping 22 matching lines...) Expand all Loading... |
425 1, 65535, 17, 2, Terminator, | 425 1, 65535, 17, 2, Terminator, |
426 3, 1, 2, Terminator, | 426 3, 1, 2, Terminator, |
427 3, 7, 32, Terminator, | 427 3, 7, 32, Terminator, |
428 3, 12, 4, 0, Terminator, | 428 3, 12, 4, 0, Terminator, |
429 0, 65534, Terminator, | 429 0, 65534, Terminator, |
430 0, 65534, Terminator | 430 0, 65534, Terminator |
431 }; | 431 }; |
432 | 432 |
433 const uint64_t ReplaceIndex = 4; | 433 const uint64_t ReplaceIndex = 4; |
434 | 434 |
435 NaClBitcodeMunger Munger(BitcodeRecords, | 435 NaClObjDumpMunger Munger(BitcodeRecords, |
436 array_lengthof(BitcodeRecords), Terminator); | 436 array_lengthof(BitcodeRecords), Terminator); |
437 | 437 |
438 // Test correct length vector record. | 438 // Test correct length vector record. |
439 EXPECT_TRUE(Munger.runTestForAssembly("Test valid vector record")); | 439 EXPECT_TRUE(Munger.runTestForAssembly("Test valid vector record")); |
440 EXPECT_EQ( | 440 EXPECT_EQ( |
441 "module { // BlockID = 8\n" | 441 "module { // BlockID = 8\n" |
442 " types { // BlockID = 17\n" | 442 " types { // BlockID = 17\n" |
443 " count 2;\n" | 443 " count 2;\n" |
444 " @t0 = i32;\n" | 444 " @t0 = i32;\n" |
445 " @t1 = <4 x i32>;\n" | 445 " @t1 = <4 x i32>;\n" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 1, 65535, 17, 2, Terminator, | 481 1, 65535, 17, 2, Terminator, |
482 3, 1, 2, Terminator, | 482 3, 1, 2, Terminator, |
483 3, 7, 1, Terminator, | 483 3, 7, 1, Terminator, |
484 3, 12, 4, 0, Terminator, | 484 3, 12, 4, 0, Terminator, |
485 0, 65534, Terminator, | 485 0, 65534, Terminator, |
486 0, 65534, Terminator | 486 0, 65534, Terminator |
487 }; | 487 }; |
488 | 488 |
489 const uint64_t ReplaceIndex = 4; | 489 const uint64_t ReplaceIndex = 4; |
490 | 490 |
491 NaClBitcodeMunger Munger(BitcodeRecords, | 491 NaClObjDumpMunger Munger(BitcodeRecords, |
492 array_lengthof(BitcodeRecords), Terminator); | 492 array_lengthof(BitcodeRecords), Terminator); |
493 | 493 |
494 // Test that we accept <4 x i1>. | 494 // Test that we accept <4 x i1>. |
495 EXPECT_TRUE(Munger.runTestForAssembly("Type <4 x i1>")); | 495 EXPECT_TRUE(Munger.runTestForAssembly("Type <4 x i1>")); |
496 EXPECT_EQ( | 496 EXPECT_EQ( |
497 "module { // BlockID = 8\n" | 497 "module { // BlockID = 8\n" |
498 " types { // BlockID = 17\n" | 498 " types { // BlockID = 17\n" |
499 " count 2;\n" | 499 " count 2;\n" |
500 " @t0 = i1;\n" | 500 " @t0 = i1;\n" |
501 " @t1 = <4 x i1>;\n" | 501 " @t1 = <4 x i1>;\n" |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 1, 65535, 17, 2, Terminator, | 577 1, 65535, 17, 2, Terminator, |
578 3, 1, 2, Terminator, | 578 3, 1, 2, Terminator, |
579 3, 7, 8, Terminator, | 579 3, 7, 8, Terminator, |
580 3, 12, 16, 0, Terminator, | 580 3, 12, 16, 0, Terminator, |
581 0, 65534, Terminator, | 581 0, 65534, Terminator, |
582 0, 65534, Terminator | 582 0, 65534, Terminator |
583 }; | 583 }; |
584 | 584 |
585 const uint64_t ReplaceIndex = 4; | 585 const uint64_t ReplaceIndex = 4; |
586 | 586 |
587 NaClBitcodeMunger Munger(BitcodeRecords, | 587 NaClObjDumpMunger Munger(BitcodeRecords, |
588 array_lengthof(BitcodeRecords), Terminator); | 588 array_lengthof(BitcodeRecords), Terminator); |
589 | 589 |
590 // Test that we accept <16 x i8>. | 590 // Test that we accept <16 x i8>. |
591 EXPECT_TRUE(Munger.runTestForAssembly("Type <16 x i8>")); | 591 EXPECT_TRUE(Munger.runTestForAssembly("Type <16 x i8>")); |
592 EXPECT_EQ( | 592 EXPECT_EQ( |
593 "module { // BlockID = 8\n" | 593 "module { // BlockID = 8\n" |
594 " types { // BlockID = 17\n" | 594 " types { // BlockID = 17\n" |
595 " count 2;\n" | 595 " count 2;\n" |
596 " @t0 = i8;\n" | 596 " @t0 = i8;\n" |
597 " @t1 = <16 x i8>;\n" | 597 " @t1 = <16 x i8>;\n" |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
685 1, 65535, 17, 2, Terminator, | 685 1, 65535, 17, 2, Terminator, |
686 3, 1, 2, Terminator, | 686 3, 1, 2, Terminator, |
687 3, 7, 16, Terminator, | 687 3, 7, 16, Terminator, |
688 3, 12, 8, 0, Terminator, | 688 3, 12, 8, 0, Terminator, |
689 0, 65534, Terminator, | 689 0, 65534, Terminator, |
690 0, 65534, Terminator | 690 0, 65534, Terminator |
691 }; | 691 }; |
692 | 692 |
693 const uint64_t ReplaceIndex = 4; | 693 const uint64_t ReplaceIndex = 4; |
694 | 694 |
695 NaClBitcodeMunger Munger(BitcodeRecords, | 695 NaClObjDumpMunger Munger(BitcodeRecords, |
696 array_lengthof(BitcodeRecords), Terminator); | 696 array_lengthof(BitcodeRecords), Terminator); |
697 | 697 |
698 // Test that we accept <8 x i16>. | 698 // Test that we accept <8 x i16>. |
699 EXPECT_TRUE(Munger.runTestForAssembly("Type <16 x i16>")); | 699 EXPECT_TRUE(Munger.runTestForAssembly("Type <16 x i16>")); |
700 EXPECT_EQ( | 700 EXPECT_EQ( |
701 "module { // BlockID = 8\n" | 701 "module { // BlockID = 8\n" |
702 " types { // BlockID = 17\n" | 702 " types { // BlockID = 17\n" |
703 " count 2;\n" | 703 " count 2;\n" |
704 " @t0 = i16;\n" | 704 " @t0 = i16;\n" |
705 " @t1 = <8 x i16>;\n" | 705 " @t1 = <8 x i16>;\n" |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
793 1, 65535, 17, 2, Terminator, | 793 1, 65535, 17, 2, Terminator, |
794 3, 1, 2, Terminator, | 794 3, 1, 2, Terminator, |
795 3, 7, 32, Terminator, | 795 3, 7, 32, Terminator, |
796 3, 12, 4, 0, Terminator, | 796 3, 12, 4, 0, Terminator, |
797 0, 65534, Terminator, | 797 0, 65534, Terminator, |
798 0, 65534, Terminator | 798 0, 65534, Terminator |
799 }; | 799 }; |
800 | 800 |
801 const uint64_t ReplaceIndex = 4; | 801 const uint64_t ReplaceIndex = 4; |
802 | 802 |
803 NaClBitcodeMunger Munger(BitcodeRecords, | 803 NaClObjDumpMunger Munger(BitcodeRecords, |
804 array_lengthof(BitcodeRecords), Terminator); | 804 array_lengthof(BitcodeRecords), Terminator); |
805 | 805 |
806 // Test that we accept <4 x i32>. | 806 // Test that we accept <4 x i32>. |
807 EXPECT_TRUE(Munger.runTestForAssembly("Type <4 x i32>")); | 807 EXPECT_TRUE(Munger.runTestForAssembly("Type <4 x i32>")); |
808 EXPECT_EQ( | 808 EXPECT_EQ( |
809 "module { // BlockID = 8\n" | 809 "module { // BlockID = 8\n" |
810 " types { // BlockID = 17\n" | 810 " types { // BlockID = 17\n" |
811 " count 2;\n" | 811 " count 2;\n" |
812 " @t0 = i32;\n" | 812 " @t0 = i32;\n" |
813 " @t1 = <4 x i32>;\n" | 813 " @t1 = <4 x i32>;\n" |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
901 1, 65535, 17, 2, Terminator, | 901 1, 65535, 17, 2, Terminator, |
902 3, 1, 2, Terminator, | 902 3, 1, 2, Terminator, |
903 3, 7, 64, Terminator, | 903 3, 7, 64, Terminator, |
904 3, 12, 1, 0, Terminator, | 904 3, 12, 1, 0, Terminator, |
905 0, 65534, Terminator, | 905 0, 65534, Terminator, |
906 0, 65534, Terminator | 906 0, 65534, Terminator |
907 }; | 907 }; |
908 | 908 |
909 const uint64_t ReplaceIndex = 4; | 909 const uint64_t ReplaceIndex = 4; |
910 | 910 |
911 NaClBitcodeMunger Munger(BitcodeRecords, | 911 NaClObjDumpMunger Munger(BitcodeRecords, |
912 array_lengthof(BitcodeRecords), Terminator); | 912 array_lengthof(BitcodeRecords), Terminator); |
913 | 913 |
914 // Test that we reject <1 x i64>. | 914 // Test that we reject <1 x i64>. |
915 EXPECT_FALSE(Munger.runTestForAssembly("Type <1 x i64>")); | 915 EXPECT_FALSE(Munger.runTestForAssembly("Type <1 x i64>")); |
916 EXPECT_EQ( | 916 EXPECT_EQ( |
917 "module { // BlockID = 8\n" | 917 "module { // BlockID = 8\n" |
918 " types { // BlockID = 17\n" | 918 " types { // BlockID = 17\n" |
919 " count 2;\n" | 919 " count 2;\n" |
920 " @t0 = i64;\n" | 920 " @t0 = i64;\n" |
921 " @t1 = <1 x i64>;\n" | 921 " @t1 = <1 x i64>;\n" |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1010 1, 65535, 17, 2, Terminator, | 1010 1, 65535, 17, 2, Terminator, |
1011 3, 1, 2, Terminator, | 1011 3, 1, 2, Terminator, |
1012 3, 3, Terminator, | 1012 3, 3, Terminator, |
1013 3, 12, 4, 0, Terminator, | 1013 3, 12, 4, 0, Terminator, |
1014 0, 65534, Terminator, | 1014 0, 65534, Terminator, |
1015 0, 65534, Terminator | 1015 0, 65534, Terminator |
1016 }; | 1016 }; |
1017 | 1017 |
1018 const uint64_t ReplaceIndex = 4; | 1018 const uint64_t ReplaceIndex = 4; |
1019 | 1019 |
1020 NaClBitcodeMunger Munger(BitcodeRecords, | 1020 NaClObjDumpMunger Munger(BitcodeRecords, |
1021 array_lengthof(BitcodeRecords), Terminator); | 1021 array_lengthof(BitcodeRecords), Terminator); |
1022 | 1022 |
1023 // Test that we accept <4 x float>. | 1023 // Test that we accept <4 x float>. |
1024 EXPECT_TRUE(Munger.runTestForAssembly("Type <4 x float>")); | 1024 EXPECT_TRUE(Munger.runTestForAssembly("Type <4 x float>")); |
1025 EXPECT_EQ( | 1025 EXPECT_EQ( |
1026 "module { // BlockID = 8\n" | 1026 "module { // BlockID = 8\n" |
1027 " types { // BlockID = 17\n" | 1027 " types { // BlockID = 17\n" |
1028 " count 2;\n" | 1028 " count 2;\n" |
1029 " @t0 = float;\n" | 1029 " @t0 = float;\n" |
1030 " @t1 = <4 x float>;\n" | 1030 " @t1 = <4 x float>;\n" |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1092 1, 65535, 17, 2, Terminator, | 1092 1, 65535, 17, 2, Terminator, |
1093 3, 1, 2, Terminator, | 1093 3, 1, 2, Terminator, |
1094 3, 4, Terminator, | 1094 3, 4, Terminator, |
1095 3, 12, 4, 0, Terminator, | 1095 3, 12, 4, 0, Terminator, |
1096 0, 65534, Terminator, | 1096 0, 65534, Terminator, |
1097 0, 65534, Terminator | 1097 0, 65534, Terminator |
1098 }; | 1098 }; |
1099 | 1099 |
1100 const uint64_t ReplaceIndex = 4; | 1100 const uint64_t ReplaceIndex = 4; |
1101 | 1101 |
1102 NaClBitcodeMunger Munger(BitcodeRecords, | 1102 NaClObjDumpMunger Munger(BitcodeRecords, |
1103 array_lengthof(BitcodeRecords), Terminator); | 1103 array_lengthof(BitcodeRecords), Terminator); |
1104 | 1104 |
1105 // Test that we reject <4 x double>. | 1105 // Test that we reject <4 x double>. |
1106 EXPECT_FALSE(Munger.runTestForAssembly("Type <4 x double>")); | 1106 EXPECT_FALSE(Munger.runTestForAssembly("Type <4 x double>")); |
1107 EXPECT_EQ( | 1107 EXPECT_EQ( |
1108 "module { // BlockID = 8\n" | 1108 "module { // BlockID = 8\n" |
1109 " types { // BlockID = 17\n" | 1109 " types { // BlockID = 17\n" |
1110 " count 2;\n" | 1110 " count 2;\n" |
1111 " @t0 = double;\n" | 1111 " @t0 = double;\n" |
1112 " @t1 = <4 x double>;\n" | 1112 " @t1 = <4 x double>;\n" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1172 TEST(NaClObjDumpTypesTest, TestVoidVectorRecord) { | 1172 TEST(NaClObjDumpTypesTest, TestVoidVectorRecord) { |
1173 const uint64_t BitcodeRecords[] = { | 1173 const uint64_t BitcodeRecords[] = { |
1174 1, 65535, 8, 2, Terminator, | 1174 1, 65535, 8, 2, Terminator, |
1175 1, 65535, 17, 2, Terminator, | 1175 1, 65535, 17, 2, Terminator, |
1176 3, 1, 2, Terminator, | 1176 3, 1, 2, Terminator, |
1177 3, 2, Terminator, | 1177 3, 2, Terminator, |
1178 3, 12, 4, 0, Terminator, | 1178 3, 12, 4, 0, Terminator, |
1179 0, 65534, Terminator, | 1179 0, 65534, Terminator, |
1180 0, 65534, Terminator | 1180 0, 65534, Terminator |
1181 }; | 1181 }; |
1182 NaClBitcodeMunger Munger(BitcodeRecords, | 1182 NaClObjDumpMunger Munger(BitcodeRecords, |
1183 array_lengthof(BitcodeRecords), Terminator); | 1183 array_lengthof(BitcodeRecords), Terminator); |
1184 EXPECT_FALSE(Munger.runTestForAssembly("Type <4 x void>")); | 1184 EXPECT_FALSE(Munger.runTestForAssembly("Type <4 x void>")); |
1185 EXPECT_EQ( | 1185 EXPECT_EQ( |
1186 "module { // BlockID = 8\n" | 1186 "module { // BlockID = 8\n" |
1187 " types { // BlockID = 17\n" | 1187 " types { // BlockID = 17\n" |
1188 " count 2;\n" | 1188 " count 2;\n" |
1189 " @t0 = void;\n" | 1189 " @t0 = void;\n" |
1190 " @t1 = <4 x i32>;\n" | 1190 " @t1 = <4 x i32>;\n" |
1191 "Error(36:2): Vectors can only be defined on primitive types. " | 1191 "Error(36:2): Vectors can only be defined on primitive types. " |
1192 "Found void. Assuming i32 instead.\n" | 1192 "Found void. Assuming i32 instead.\n" |
1193 " }\n" | 1193 " }\n" |
1194 "}\n", | 1194 "}\n", |
1195 Munger.getTestResults()); | 1195 Munger.getTestResults()); |
1196 } | 1196 } |
1197 | 1197 |
1198 // Tests that we don't allow vectors of vectors. | 1198 // Tests that we don't allow vectors of vectors. |
1199 TEST(NaClObjDumpTypesTest, TestNestedVectorRecord) { | 1199 TEST(NaClObjDumpTypesTest, TestNestedVectorRecord) { |
1200 const uint64_t BitcodeRecords[] = { | 1200 const uint64_t BitcodeRecords[] = { |
1201 1, 65535, 8, 2, Terminator, | 1201 1, 65535, 8, 2, Terminator, |
1202 1, 65535, 17, 2, Terminator, | 1202 1, 65535, 17, 2, Terminator, |
1203 3, 1, 3, Terminator, | 1203 3, 1, 3, Terminator, |
1204 3, 3, Terminator, | 1204 3, 3, Terminator, |
1205 3, 12, 4, 0, Terminator, | 1205 3, 12, 4, 0, Terminator, |
1206 3, 12, 4, 1, Terminator, | 1206 3, 12, 4, 1, Terminator, |
1207 0, 65534, Terminator, | 1207 0, 65534, Terminator, |
1208 0, 65534, Terminator | 1208 0, 65534, Terminator |
1209 }; | 1209 }; |
1210 NaClBitcodeMunger Munger(BitcodeRecords, | 1210 NaClObjDumpMunger Munger(BitcodeRecords, |
1211 array_lengthof(BitcodeRecords), Terminator); | 1211 array_lengthof(BitcodeRecords), Terminator); |
1212 EXPECT_FALSE(Munger.runTestForAssembly("Type <4 x <4 x float>>")); | 1212 EXPECT_FALSE(Munger.runTestForAssembly("Type <4 x <4 x float>>")); |
1213 EXPECT_EQ( | 1213 EXPECT_EQ( |
1214 "module { // BlockID = 8\n" | 1214 "module { // BlockID = 8\n" |
1215 " types { // BlockID = 17\n" | 1215 " types { // BlockID = 17\n" |
1216 " count 3;\n" | 1216 " count 3;\n" |
1217 " @t0 = float;\n" | 1217 " @t0 = float;\n" |
1218 " @t1 = <4 x float>;\n" | 1218 " @t1 = <4 x float>;\n" |
1219 " @t2 = <4 x i32>;\n" | 1219 " @t2 = <4 x i32>;\n" |
1220 "Error(39:4): Vectors can only be defined on primitive types. " | 1220 "Error(39:4): Vectors can only be defined on primitive types. " |
(...skipping 16 matching lines...) Expand all Loading... |
1237 3, 4, Terminator, | 1237 3, 4, Terminator, |
1238 3, 12, 4, 2, Terminator, | 1238 3, 12, 4, 2, Terminator, |
1239 3, 21, 0, 0, Terminator, | 1239 3, 21, 0, 0, Terminator, |
1240 0, 65534, Terminator, | 1240 0, 65534, Terminator, |
1241 0, 65534, Terminator | 1241 0, 65534, Terminator |
1242 }; | 1242 }; |
1243 | 1243 |
1244 const uint64_t TypeCountIndex = 2; | 1244 const uint64_t TypeCountIndex = 2; |
1245 const uint64_t ReplaceIndex = 9; | 1245 const uint64_t ReplaceIndex = 9; |
1246 | 1246 |
1247 NaClBitcodeMunger Munger(BitcodeRecords, | 1247 NaClObjDumpMunger Munger(BitcodeRecords, |
1248 array_lengthof(BitcodeRecords), Terminator); | 1248 array_lengthof(BitcodeRecords), Terminator); |
1249 | 1249 |
1250 // Test void() signature. | 1250 // Test void() signature. |
1251 EXPECT_TRUE(Munger.runTestForAssembly("Type void()")); | 1251 EXPECT_TRUE(Munger.runTestForAssembly("Type void()")); |
1252 EXPECT_EQ( | 1252 EXPECT_EQ( |
1253 "module { // BlockID = 8\n" | 1253 "module { // BlockID = 8\n" |
1254 " types { // BlockID = 17\n" | 1254 " types { // BlockID = 17\n" |
1255 " count 7;\n" | 1255 " count 7;\n" |
1256 " @t0 = void;\n" | 1256 " @t0 = void;\n" |
1257 " @t1 = i16;\n" | 1257 " @t1 = i16;\n" |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1387 // Tests how we report unknown record codes in the types block. | 1387 // Tests how we report unknown record codes in the types block. |
1388 TEST(NaClObjDumpTypesTest, TestUnknownTypesRecordCode) { | 1388 TEST(NaClObjDumpTypesTest, TestUnknownTypesRecordCode) { |
1389 const uint64_t BitcodeRecords[] = { | 1389 const uint64_t BitcodeRecords[] = { |
1390 1, 65535, 8, 2, Terminator, | 1390 1, 65535, 8, 2, Terminator, |
1391 1, 65535, 17, 2, Terminator, | 1391 1, 65535, 17, 2, Terminator, |
1392 3, 1, 1, Terminator, | 1392 3, 1, 1, Terminator, |
1393 3, 10, Terminator, | 1393 3, 10, Terminator, |
1394 0, 65534, Terminator, | 1394 0, 65534, Terminator, |
1395 0, 65534, Terminator | 1395 0, 65534, Terminator |
1396 }; | 1396 }; |
1397 NaClBitcodeMunger Munger(BitcodeRecords, | 1397 NaClObjDumpMunger Munger(BitcodeRecords, |
1398 array_lengthof(BitcodeRecords), Terminator); | 1398 array_lengthof(BitcodeRecords), Terminator); |
1399 EXPECT_FALSE(Munger.runTestForAssembly("Unknown types record code")); | 1399 EXPECT_FALSE(Munger.runTestForAssembly("Unknown types record code")); |
1400 EXPECT_EQ( | 1400 EXPECT_EQ( |
1401 "module { // BlockID = 8\n" | 1401 "module { // BlockID = 8\n" |
1402 " types { // BlockID = 17\n" | 1402 " types { // BlockID = 17\n" |
1403 " count 1;\n" | 1403 " count 1;\n" |
1404 "Error(34:4): Unknown record code in types block. Found: 10\n" | 1404 "Error(34:4): Unknown record code in types block. Found: 10\n" |
1405 " }\n" | 1405 " }\n" |
1406 "Error(36:2): Expected 1 types but found: 0\n" | 1406 "Error(36:2): Expected 1 types but found: 0\n" |
1407 "}\n", | 1407 "}\n", |
1408 Munger.getTestResults()); | 1408 Munger.getTestResults()); |
1409 } | 1409 } |
1410 | 1410 |
1411 } // End of anonymous namespace. | 1411 } // End of anonymous namespace. |
OLD | NEW |