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

Side by Side Diff: test/unittests/wasm/module-decoder-unittest.cc

Issue 2456193006: Revert of [wasm] Support for restricted table imports. (Closed)
Patch Set: Created 4 years, 1 month 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 | « test/mjsunit/wasm/wasm-module-builder.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "test/unittests/test-utils.h" 5 #include "test/unittests/test-utils.h"
6 6
7 #include "src/handles.h" 7 #include "src/handles.h"
8 #include "src/objects-inl.h" 8 #include "src/objects-inl.h"
9 #include "src/wasm/module-decoder.h" 9 #include "src/wasm/module-decoder.h"
10 #include "src/wasm/wasm-macro-gen.h" 10 #include "src/wasm/wasm-macro-gen.h"
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 ONE_EMPTY_FUNCTION, 503 ONE_EMPTY_FUNCTION,
504 // table declaration --------------------------------------------------- 504 // table declaration ---------------------------------------------------
505 SECTION(Table, 4), ENTRY_COUNT(1), kWasmAnyFunctionTypeForm, 0, 1}; 505 SECTION(Table, 4), ENTRY_COUNT(1), kWasmAnyFunctionTypeForm, 0, 1};
506 506
507 ModuleResult result = DecodeModule(data, data + sizeof(data)); 507 ModuleResult result = DecodeModule(data, data + sizeof(data));
508 EXPECT_OK(result); 508 EXPECT_OK(result);
509 if (result.ok()) { 509 if (result.ok()) {
510 EXPECT_EQ(1, result.val->signatures.size()); 510 EXPECT_EQ(1, result.val->signatures.size());
511 EXPECT_EQ(1, result.val->functions.size()); 511 EXPECT_EQ(1, result.val->functions.size());
512 EXPECT_EQ(1, result.val->function_tables.size()); 512 EXPECT_EQ(1, result.val->function_tables.size());
513 EXPECT_EQ(1, result.val->function_tables[0].min_size); 513 EXPECT_EQ(1, result.val->function_tables[0].values.size());
514 EXPECT_EQ(-1, result.val->function_tables[0].values[0]);
514 } 515 }
515 if (result.val) delete result.val; 516 if (result.val) delete result.val;
516 } 517 }
517 518
518 TEST_F(WasmModuleVerifyTest, OneIndirectFunction_one_entry) { 519 TEST_F(WasmModuleVerifyTest, OneIndirectFunction_one_entry) {
519 static const byte data[] = { 520 static const byte data[] = {
520 // sig#0 --------------------------------------------------------------- 521 // sig#0 ---------------------------------------------------------------
521 SIGNATURES_SECTION_VOID_VOID, 522 SIGNATURES_SECTION_VOID_VOID,
522 // funcs --------------------------------------------------------------- 523 // funcs ---------------------------------------------------------------
523 ONE_EMPTY_FUNCTION, 524 ONE_EMPTY_FUNCTION,
524 // table declaration --------------------------------------------------- 525 // table declaration ---------------------------------------------------
525 SECTION(Table, 4), ENTRY_COUNT(1), kWasmAnyFunctionTypeForm, 0, 1, 526 SECTION(Table, 4), ENTRY_COUNT(1), kWasmAnyFunctionTypeForm, 0, 1,
526 // elements ------------------------------------------------------------ 527 // elements ------------------------------------------------------------
527 SECTION(Element, 7), 528 SECTION(Element, 7),
528 1, // entry count 529 1, // entry count
529 TABLE_INDEX(0), WASM_INIT_EXPR_I32V_1(0), 530 TABLE_INDEX(0), WASM_INIT_EXPR_I32V_1(0),
530 1, // elements count 531 1, // elements count
531 FUNC_INDEX(0)}; 532 FUNC_INDEX(0)};
532 533
533 ModuleResult result = DecodeModule(data, data + sizeof(data)); 534 ModuleResult result = DecodeModule(data, data + sizeof(data));
534 EXPECT_OK(result); 535 EXPECT_OK(result);
535 if (result.ok()) { 536 if (result.ok()) {
536 EXPECT_EQ(1, result.val->signatures.size()); 537 EXPECT_EQ(1, result.val->signatures.size());
537 EXPECT_EQ(1, result.val->functions.size()); 538 EXPECT_EQ(1, result.val->functions.size());
538 EXPECT_EQ(1, result.val->function_tables.size()); 539 EXPECT_EQ(1, result.val->function_tables.size());
539 EXPECT_EQ(1, result.val->function_tables[0].min_size); 540 EXPECT_EQ(1, result.val->function_tables[0].values.size());
541 EXPECT_EQ(0, result.val->function_tables[0].values[0]);
540 } 542 }
541 if (result.val) delete result.val; 543 if (result.val) delete result.val;
542 } 544 }
543 545
544 TEST_F(WasmModuleVerifyTest, MultipleIndirectFunctions) { 546 TEST_F(WasmModuleVerifyTest, MultipleIndirectFunctions) {
545 static const byte data[] = { 547 static const byte data[] = {
546 // sig#0 ------------------------------------------------------- 548 // sig#0 -------------------------------------------------------
547 SECTION(Type, 1 + SIZEOF_SIG_ENTRY_v_v + SIZEOF_SIG_ENTRY_v_x), 549 SECTION(Type, 1 + SIZEOF_SIG_ENTRY_v_v + SIZEOF_SIG_ENTRY_v_x),
548 2, // -- 550 2, // --
549 SIG_ENTRY_v_v, // void -> void 551 SIG_ENTRY_v_v, // void -> void
(...skipping 16 matching lines...) Expand all
566 FUNC_INDEX(2), // -- 568 FUNC_INDEX(2), // --
567 FUNC_INDEX(3), // -- 569 FUNC_INDEX(3), // --
568 FOUR_EMPTY_BODIES}; 570 FOUR_EMPTY_BODIES};
569 571
570 ModuleResult result = DecodeModule(data, data + sizeof(data)); 572 ModuleResult result = DecodeModule(data, data + sizeof(data));
571 EXPECT_OK(result); 573 EXPECT_OK(result);
572 if (result.ok()) { 574 if (result.ok()) {
573 EXPECT_EQ(2, result.val->signatures.size()); 575 EXPECT_EQ(2, result.val->signatures.size());
574 EXPECT_EQ(4, result.val->functions.size()); 576 EXPECT_EQ(4, result.val->functions.size());
575 EXPECT_EQ(1, result.val->function_tables.size()); 577 EXPECT_EQ(1, result.val->function_tables.size());
576 EXPECT_EQ(8, result.val->function_tables[0].min_size); 578 EXPECT_EQ(8, result.val->function_tables[0].values.size());
579 for (int i = 0; i < 8; i++) {
580 EXPECT_EQ(i & 3, result.val->function_tables[0].values[i]);
581 }
577 } 582 }
578 if (result.val) delete result.val; 583 if (result.val) delete result.val;
579 } 584 }
580 585
581 TEST_F(WasmModuleVerifyTest, IndirectFunctionNoFunctions) { 586 TEST_F(WasmModuleVerifyTest, IndirectFunctionNoFunctions) {
582 static const byte data[] = { 587 static const byte data[] = {
583 // sig#0 ------------------------------------------------------- 588 // sig#0 -------------------------------------------------------
584 SIGNATURES_SECTION_VOID_VOID, 589 SIGNATURES_SECTION_VOID_VOID,
585 // indirect table ---------------------------------------------- 590 // indirect table ----------------------------------------------
586 SECTION(Table, 4), ENTRY_COUNT(1), 1, 0, 0, 591 SECTION(Table, 4), ENTRY_COUNT(1), 1, 0, 0,
(...skipping 700 matching lines...) Expand 10 before | Expand all | Expand 10 after
1287 SECTION(Unknown, 4), 1, 'X', 17, 18, // -- 1292 SECTION(Unknown, 4), 1, 'X', 17, 18, // --
1288 SECTION(Unknown, 9), 3, 'f', 'o', 'o', 5, 6, 7, 8, 9, // -- 1293 SECTION(Unknown, 9), 3, 'f', 'o', 'o', 5, 6, 7, 8, 9, // --
1289 SECTION(Unknown, 8), 5, 'o', 't', 'h', 'e', 'r', 7, 8, // -- 1294 SECTION(Unknown, 8), 5, 'o', 't', 'h', 'e', 'r', 7, 8, // --
1290 }; 1295 };
1291 EXPECT_VERIFIES(data); 1296 EXPECT_VERIFIES(data);
1292 } 1297 }
1293 1298
1294 } // namespace wasm 1299 } // namespace wasm
1295 } // namespace internal 1300 } // namespace internal
1296 } // namespace v8 1301 } // namespace v8
OLDNEW
« no previous file with comments | « test/mjsunit/wasm/wasm-module-builder.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698