| 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 |