Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: unittests/Bitcode/NaClObjDumpTypesTest.cpp

Issue 770853002: Fix error reporting in the PNaCl bitcode reader. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Fix typo. Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « unittests/Bitcode/CMakeLists.txt ('k') | unittests/Bitcode/NaClParseTypesTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
OLDNEW
« no previous file with comments | « unittests/Bitcode/CMakeLists.txt ('k') | unittests/Bitcode/NaClParseTypesTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698