diff options
Diffstat (limited to 'deps/v8/test/cctest/wasm/test-run-wasm-module.cc')
-rw-r--r-- | deps/v8/test/cctest/wasm/test-run-wasm-module.cc | 73 |
1 files changed, 30 insertions, 43 deletions
diff --git a/deps/v8/test/cctest/wasm/test-run-wasm-module.cc b/deps/v8/test/cctest/wasm/test-run-wasm-module.cc index 905e8e4932..118a91f3e9 100644 --- a/deps/v8/test/cctest/wasm/test-run-wasm-module.cc +++ b/deps/v8/test/cctest/wasm/test-run-wasm-module.cc @@ -19,7 +19,6 @@ using namespace v8::internal::compiler; using namespace v8::internal::wasm; -#if !V8_TARGET_ARCH_ARM64 // TODO(titzer): fix arm64 frame alignment. namespace { void TestModule(WasmModuleIndex* module, int32_t expected_result) { @@ -36,19 +35,24 @@ void TestModule(WasmModuleIndex* module, int32_t expected_result) { // A raw test that skips the WasmModuleBuilder. TEST(Run_WasmModule_CallAdd_rev) { static const byte data[] = { + WASM_MODULE_HEADER, // sig#0 ------------------------------------------ - kDeclSignatures, 2, 0, kLocalI32, // void -> int - 2, kLocalI32, kLocalI32, kLocalI32, // int,int -> int + WASM_SECTION_SIGNATURES_SIZE + 7, // Section size. + WASM_SECTION_SIGNATURES, 2, 0, kLocalI32, // void -> int + 2, kLocalI32, kLocalI32, kLocalI32, // int,int -> int // func#0 (main) ---------------------------------- - kDeclFunctions, 2, kDeclFunctionExport, 0, 0, // sig index - 6, 0, // body size - kExprCallFunction, 1, // -- - kExprI8Const, 77, // -- - kExprI8Const, 22, // -- + WASM_SECTION_FUNCTIONS_SIZE + 24, WASM_SECTION_FUNCTIONS, 2, + kDeclFunctionExport, 0, 0, // sig index + 7, 0, // body size + 0, // locals + kExprCallFunction, 1, // -- + kExprI8Const, 77, // -- + kExprI8Const, 22, // -- // func#1 ----------------------------------------- 0, // no name, not exported 1, 0, // sig index - 5, 0, // body size + 6, 0, // body size + 0, // locals kExprI32Add, // -- kExprGetLocal, 0, // -- kExprGetLocal, 1, // -- @@ -65,7 +69,8 @@ TEST(Run_WasmModule_CallAdd_rev) { TEST(Run_WasmModule_Return114) { static const int32_t kReturnValue = 114; - Zone zone; + v8::base::AccountingAllocator allocator; + Zone zone(&allocator); WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone); uint16_t f_index = builder->AddFunction(); WasmFunctionBuilder* f = builder->FunctionAt(f_index); @@ -79,7 +84,8 @@ TEST(Run_WasmModule_Return114) { TEST(Run_WasmModule_CallAdd) { - Zone zone; + v8::base::AccountingAllocator allocator; + Zone zone(&allocator); WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone); uint16_t f1_index = builder->AddFunction(); WasmFunctionBuilder* f = builder->FunctionAt(f1_index); @@ -102,7 +108,8 @@ TEST(Run_WasmModule_CallAdd) { TEST(Run_WasmModule_ReadLoadedDataSegment) { static const byte kDataSegmentDest0 = 12; - Zone zone; + v8::base::AccountingAllocator allocator; + Zone zone(&allocator); WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone); uint16_t f_index = builder->AddFunction(); WasmFunctionBuilder* f = builder->FunctionAt(f_index); @@ -118,19 +125,10 @@ TEST(Run_WasmModule_ReadLoadedDataSegment) { TestModule(writer->WriteTo(&zone), 0xddccbbaa); } - -#if defined(__has_feature) -#if __has_feature(address_sanitizer) -#define V8_WITH_ASAN 1 -#endif -#endif - - -#if !defined(V8_WITH_ASAN) -// TODO(bradnelson): Figure out why this crashes under asan. TEST(Run_WasmModule_CheckMemoryIsZero) { static const int kCheckSize = 16 * 1024; - Zone zone; + v8::base::AccountingAllocator allocator; + Zone zone(&allocator); WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone); uint16_t f_index = builder->AddFunction(); WasmFunctionBuilder* f = builder->FunctionAt(f_index); @@ -140,23 +138,19 @@ TEST(Run_WasmModule_CheckMemoryIsZero) { byte code[] = {WASM_BLOCK( 2, WASM_WHILE( - WASM_I32_LTS(WASM_GET_LOCAL(localIndex), WASM_I32(kCheckSize)), + WASM_I32_LTS(WASM_GET_LOCAL(localIndex), WASM_I32V_3(kCheckSize)), WASM_IF_ELSE( WASM_LOAD_MEM(MachineType::Int32(), WASM_GET_LOCAL(localIndex)), WASM_BRV(2, WASM_I8(-1)), WASM_INC_LOCAL_BY(localIndex, 4))), WASM_I8(11))}; - uint32_t local_indices[] = {7, 19, 25, 28}; - f->EmitCode(code, sizeof(code), local_indices, sizeof(local_indices) / 4); + f->EmitCode(code, sizeof(code), nullptr, 0); WasmModuleWriter* writer = builder->Build(&zone); TestModule(writer->WriteTo(&zone), 11); } -#endif - -#if !defined(V8_WITH_ASAN) -// TODO(bradnelson): Figure out why this crashes under asan. TEST(Run_WasmModule_CallMain_recursive) { - Zone zone; + v8::base::AccountingAllocator allocator; + Zone zone(&allocator); WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone); uint16_t f_index = builder->AddFunction(); WasmFunctionBuilder* f = builder->FunctionAt(f_index); @@ -171,18 +165,14 @@ TEST(Run_WasmModule_CallMain_recursive) { WASM_INC_LOCAL(localIndex)), WASM_BRV(1, WASM_CALL_FUNCTION0(0))), WASM_BRV(0, WASM_I8(55))))}; - uint32_t local_indices[] = {3, 11, 21, 24}; - f->EmitCode(code, sizeof(code), local_indices, sizeof(local_indices) / 4); + f->EmitCode(code, sizeof(code), nullptr, 0); WasmModuleWriter* writer = builder->Build(&zone); TestModule(writer->WriteTo(&zone), 55); } -#endif - -#if !defined(V8_WITH_ASAN) -// TODO(bradnelson): Figure out why this crashes under asan. TEST(Run_WasmModule_Global) { - Zone zone; + v8::base::AccountingAllocator allocator; + Zone zone(&allocator); WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone); uint32_t global1 = builder->AddGlobal(MachineType::Int32(), 0); uint32_t global2 = builder->AddGlobal(MachineType::Int32(), 0); @@ -196,13 +186,10 @@ TEST(Run_WasmModule_Global) { f = builder->FunctionAt(f2_index); f->ReturnType(kAstI32); f->Exported(1); - byte code2[] = {WASM_STORE_GLOBAL(global1, WASM_I32(56)), - WASM_STORE_GLOBAL(global2, WASM_I32(41)), + byte code2[] = {WASM_STORE_GLOBAL(global1, WASM_I32V_1(56)), + WASM_STORE_GLOBAL(global2, WASM_I32V_1(41)), WASM_RETURN(WASM_CALL_FUNCTION0(f1_index))}; f->EmitCode(code2, sizeof(code2)); WasmModuleWriter* writer = builder->Build(&zone); TestModule(writer->WriteTo(&zone), 97); } -#endif - -#endif // !V8_TARGET_ARCH_ARM64 |