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

Side by Side Diff: test/cctest/wasm/test-run-wasm-module.cc

Issue 2594993002: [wasm] Rename wasm::LocalType to wasm::ValueType and kAst* to kWasm* (Closed)
Patch Set: Fix inspector tests Created 4 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 | « test/cctest/wasm/test-run-wasm-js.cc ('k') | test/cctest/wasm/test-run-wasm-simd.cc » ('j') | 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 <stdlib.h> 5 #include <stdlib.h>
6 #include <string.h> 6 #include <string.h>
7 7
8 #include "src/snapshot/code-serializer.h" 8 #include "src/snapshot/code-serializer.h"
9 #include "src/version.h" 9 #include "src/version.h"
10 #include "src/wasm/module-decoder.h" 10 #include "src/wasm/module-decoder.h"
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 TEST(Run_WasmModule_CheckMemoryIsZero) { 132 TEST(Run_WasmModule_CheckMemoryIsZero) {
133 { 133 {
134 static const int kCheckSize = 16 * 1024; 134 static const int kCheckSize = 16 * 1024;
135 v8::internal::AccountingAllocator allocator; 135 v8::internal::AccountingAllocator allocator;
136 Zone zone(&allocator, ZONE_NAME); 136 Zone zone(&allocator, ZONE_NAME);
137 TestSignatures sigs; 137 TestSignatures sigs;
138 138
139 WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone); 139 WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
140 WasmFunctionBuilder* f = builder->AddFunction(sigs.i_v()); 140 WasmFunctionBuilder* f = builder->AddFunction(sigs.i_v());
141 141
142 uint16_t localIndex = f->AddLocal(kAstI32); 142 uint16_t localIndex = f->AddLocal(kWasmI32);
143 ExportAsMain(f); 143 ExportAsMain(f);
144 byte code[] = {WASM_BLOCK_I( 144 byte code[] = {WASM_BLOCK_I(
145 WASM_WHILE( 145 WASM_WHILE(
146 WASM_I32_LTS(WASM_GET_LOCAL(localIndex), WASM_I32V_3(kCheckSize)), 146 WASM_I32_LTS(WASM_GET_LOCAL(localIndex), WASM_I32V_3(kCheckSize)),
147 WASM_IF_ELSE( 147 WASM_IF_ELSE(
148 WASM_LOAD_MEM(MachineType::Int32(), WASM_GET_LOCAL(localIndex)), 148 WASM_LOAD_MEM(MachineType::Int32(), WASM_GET_LOCAL(localIndex)),
149 WASM_BRV(3, WASM_I8(-1)), WASM_INC_LOCAL_BY(localIndex, 4))), 149 WASM_BRV(3, WASM_I8(-1)), WASM_INC_LOCAL_BY(localIndex, 4))),
150 WASM_I8(11))}; 150 WASM_I8(11))};
151 f->EmitCode(code, sizeof(code)); 151 f->EmitCode(code, sizeof(code));
152 TestModule(&zone, builder, 11); 152 TestModule(&zone, builder, 11);
153 } 153 }
154 Cleanup(); 154 Cleanup();
155 } 155 }
156 156
157 TEST(Run_WasmModule_CallMain_recursive) { 157 TEST(Run_WasmModule_CallMain_recursive) {
158 { 158 {
159 v8::internal::AccountingAllocator allocator; 159 v8::internal::AccountingAllocator allocator;
160 Zone zone(&allocator, ZONE_NAME); 160 Zone zone(&allocator, ZONE_NAME);
161 TestSignatures sigs; 161 TestSignatures sigs;
162 162
163 WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone); 163 WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
164 WasmFunctionBuilder* f = builder->AddFunction(sigs.i_v()); 164 WasmFunctionBuilder* f = builder->AddFunction(sigs.i_v());
165 165
166 uint16_t localIndex = f->AddLocal(kAstI32); 166 uint16_t localIndex = f->AddLocal(kWasmI32);
167 ExportAsMain(f); 167 ExportAsMain(f);
168 byte code[] = { 168 byte code[] = {
169 WASM_SET_LOCAL(localIndex, 169 WASM_SET_LOCAL(localIndex,
170 WASM_LOAD_MEM(MachineType::Int32(), WASM_ZERO)), 170 WASM_LOAD_MEM(MachineType::Int32(), WASM_ZERO)),
171 WASM_IF_ELSE_I(WASM_I32_LTS(WASM_GET_LOCAL(localIndex), WASM_I8(5)), 171 WASM_IF_ELSE_I(WASM_I32_LTS(WASM_GET_LOCAL(localIndex), WASM_I8(5)),
172 WASM_SEQ(WASM_STORE_MEM(MachineType::Int32(), WASM_ZERO, 172 WASM_SEQ(WASM_STORE_MEM(MachineType::Int32(), WASM_ZERO,
173 WASM_INC_LOCAL(localIndex)), 173 WASM_INC_LOCAL(localIndex)),
174 WASM_CALL_FUNCTION0(0)), 174 WASM_CALL_FUNCTION0(0)),
175 WASM_I8(55))}; 175 WASM_I8(55))};
176 f->EmitCode(code, sizeof(code)); 176 f->EmitCode(code, sizeof(code));
177 TestModule(&zone, builder, 55); 177 TestModule(&zone, builder, 55);
178 } 178 }
179 Cleanup(); 179 Cleanup();
180 } 180 }
181 181
182 TEST(Run_WasmModule_Global) { 182 TEST(Run_WasmModule_Global) {
183 { 183 {
184 v8::internal::AccountingAllocator allocator; 184 v8::internal::AccountingAllocator allocator;
185 Zone zone(&allocator, ZONE_NAME); 185 Zone zone(&allocator, ZONE_NAME);
186 TestSignatures sigs; 186 TestSignatures sigs;
187 187
188 WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone); 188 WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
189 uint32_t global1 = builder->AddGlobal(kAstI32, 0); 189 uint32_t global1 = builder->AddGlobal(kWasmI32, 0);
190 uint32_t global2 = builder->AddGlobal(kAstI32, 0); 190 uint32_t global2 = builder->AddGlobal(kWasmI32, 0);
191 WasmFunctionBuilder* f1 = builder->AddFunction(sigs.i_v()); 191 WasmFunctionBuilder* f1 = builder->AddFunction(sigs.i_v());
192 byte code1[] = { 192 byte code1[] = {
193 WASM_I32_ADD(WASM_GET_GLOBAL(global1), WASM_GET_GLOBAL(global2))}; 193 WASM_I32_ADD(WASM_GET_GLOBAL(global1), WASM_GET_GLOBAL(global2))};
194 f1->EmitCode(code1, sizeof(code1)); 194 f1->EmitCode(code1, sizeof(code1));
195 WasmFunctionBuilder* f2 = builder->AddFunction(sigs.i_v()); 195 WasmFunctionBuilder* f2 = builder->AddFunction(sigs.i_v());
196 ExportAsMain(f2); 196 ExportAsMain(f2);
197 byte code2[] = {WASM_SET_GLOBAL(global1, WASM_I32V_1(56)), 197 byte code2[] = {WASM_SET_GLOBAL(global1, WASM_I32V_1(56)),
198 WASM_SET_GLOBAL(global2, WASM_I32V_1(41)), 198 WASM_SET_GLOBAL(global2, WASM_I32V_1(41)),
199 WASM_RETURN1(WASM_CALL_FUNCTION0(f1->func_index()))}; 199 WASM_RETURN1(WASM_CALL_FUNCTION0(f1->func_index()))};
200 f2->EmitCode(code2, sizeof(code2)); 200 f2->EmitCode(code2, sizeof(code2));
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 } 709 }
710 710
711 TEST(Run_WasmModule_Global_init) { 711 TEST(Run_WasmModule_Global_init) {
712 { 712 {
713 v8::internal::AccountingAllocator allocator; 713 v8::internal::AccountingAllocator allocator;
714 Zone zone(&allocator, ZONE_NAME); 714 Zone zone(&allocator, ZONE_NAME);
715 TestSignatures sigs; 715 TestSignatures sigs;
716 716
717 WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone); 717 WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
718 uint32_t global1 = 718 uint32_t global1 =
719 builder->AddGlobal(kAstI32, false, false, WasmInitExpr(777777)); 719 builder->AddGlobal(kWasmI32, false, false, WasmInitExpr(777777));
720 uint32_t global2 = 720 uint32_t global2 =
721 builder->AddGlobal(kAstI32, false, false, WasmInitExpr(222222)); 721 builder->AddGlobal(kWasmI32, false, false, WasmInitExpr(222222));
722 WasmFunctionBuilder* f1 = builder->AddFunction(sigs.i_v()); 722 WasmFunctionBuilder* f1 = builder->AddFunction(sigs.i_v());
723 byte code[] = { 723 byte code[] = {
724 WASM_I32_ADD(WASM_GET_GLOBAL(global1), WASM_GET_GLOBAL(global2))}; 724 WASM_I32_ADD(WASM_GET_GLOBAL(global1), WASM_GET_GLOBAL(global2))};
725 f1->EmitCode(code, sizeof(code)); 725 f1->EmitCode(code, sizeof(code));
726 ExportAsMain(f1); 726 ExportAsMain(f1);
727 TestModule(&zone, builder, 999999); 727 TestModule(&zone, builder, 999999);
728 } 728 }
729 Cleanup(); 729 Cleanup();
730 } 730 }
731 731
732 template <typename CType> 732 template <typename CType>
733 static void RunWasmModuleGlobalInitTest(LocalType type, CType expected) { 733 static void RunWasmModuleGlobalInitTest(ValueType type, CType expected) {
734 { 734 {
735 v8::internal::AccountingAllocator allocator; 735 v8::internal::AccountingAllocator allocator;
736 Zone zone(&allocator, ZONE_NAME); 736 Zone zone(&allocator, ZONE_NAME);
737 TestSignatures sigs; 737 TestSignatures sigs;
738 738
739 LocalType types[] = {type}; 739 ValueType types[] = {type};
740 FunctionSig sig(1, 0, types); 740 FunctionSig sig(1, 0, types);
741 741
742 for (int padding = 0; padding < 5; padding++) { 742 for (int padding = 0; padding < 5; padding++) {
743 // Test with a simple initializer 743 // Test with a simple initializer
744 WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone); 744 WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
745 745
746 for (int i = 0; i < padding; i++) { // pad global before 746 for (int i = 0; i < padding; i++) { // pad global before
747 builder->AddGlobal(kAstI32, false, false, WasmInitExpr(i + 20000)); 747 builder->AddGlobal(kWasmI32, false, false, WasmInitExpr(i + 20000));
748 } 748 }
749 uint32_t global = 749 uint32_t global =
750 builder->AddGlobal(type, false, false, WasmInitExpr(expected)); 750 builder->AddGlobal(type, false, false, WasmInitExpr(expected));
751 for (int i = 0; i < padding; i++) { // pad global after 751 for (int i = 0; i < padding; i++) { // pad global after
752 builder->AddGlobal(kAstI32, false, false, WasmInitExpr(i + 30000)); 752 builder->AddGlobal(kWasmI32, false, false, WasmInitExpr(i + 30000));
753 } 753 }
754 754
755 WasmFunctionBuilder* f1 = builder->AddFunction(&sig); 755 WasmFunctionBuilder* f1 = builder->AddFunction(&sig);
756 byte code[] = {WASM_GET_GLOBAL(global)}; 756 byte code[] = {WASM_GET_GLOBAL(global)};
757 f1->EmitCode(code, sizeof(code)); 757 f1->EmitCode(code, sizeof(code));
758 ExportAsMain(f1); 758 ExportAsMain(f1);
759 TestModule(&zone, builder, expected); 759 TestModule(&zone, builder, expected);
760 } 760 }
761 } 761 }
762 Cleanup(); 762 Cleanup();
763 } 763 }
764 764
765 TEST(Run_WasmModule_Global_i32) { 765 TEST(Run_WasmModule_Global_i32) {
766 RunWasmModuleGlobalInitTest<int32_t>(kAstI32, -983489); 766 RunWasmModuleGlobalInitTest<int32_t>(kWasmI32, -983489);
767 RunWasmModuleGlobalInitTest<int32_t>(kAstI32, 11223344); 767 RunWasmModuleGlobalInitTest<int32_t>(kWasmI32, 11223344);
768 } 768 }
769 769
770 TEST(Run_WasmModule_Global_f32) { 770 TEST(Run_WasmModule_Global_f32) {
771 RunWasmModuleGlobalInitTest<float>(kAstF32, -983.9f); 771 RunWasmModuleGlobalInitTest<float>(kWasmF32, -983.9f);
772 RunWasmModuleGlobalInitTest<float>(kAstF32, 1122.99f); 772 RunWasmModuleGlobalInitTest<float>(kWasmF32, 1122.99f);
773 } 773 }
774 774
775 TEST(Run_WasmModule_Global_f64) { 775 TEST(Run_WasmModule_Global_f64) {
776 RunWasmModuleGlobalInitTest<double>(kAstF64, -833.9); 776 RunWasmModuleGlobalInitTest<double>(kWasmF64, -833.9);
777 RunWasmModuleGlobalInitTest<double>(kAstF64, 86374.25); 777 RunWasmModuleGlobalInitTest<double>(kWasmF64, 86374.25);
778 } 778 }
779 779
780 TEST(InitDataAtTheUpperLimit) { 780 TEST(InitDataAtTheUpperLimit) {
781 { 781 {
782 Isolate* isolate = CcTest::InitIsolateOnce(); 782 Isolate* isolate = CcTest::InitIsolateOnce();
783 HandleScope scope(isolate); 783 HandleScope scope(isolate);
784 testing::SetupIsolateForWasmModule(isolate); 784 testing::SetupIsolateForWasmModule(isolate);
785 785
786 ErrorThrower thrower(isolate, "Run_WasmModule_InitDataAtTheUpperLimit"); 786 ErrorThrower thrower(isolate, "Run_WasmModule_InitDataAtTheUpperLimit");
787 787
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 }; 909 };
910 910
911 testing::CompileInstantiateWasmModuleForTesting(isolate, &thrower, data, 911 testing::CompileInstantiateWasmModuleForTesting(isolate, &thrower, data,
912 data + arraysize(data), 912 data + arraysize(data),
913 ModuleOrigin::kWasmOrigin); 913 ModuleOrigin::kWasmOrigin);
914 // It should be possible to instantiate this module. 914 // It should be possible to instantiate this module.
915 CHECK(!thrower.error()); 915 CHECK(!thrower.error());
916 } 916 }
917 Cleanup(); 917 Cleanup();
918 } 918 }
OLDNEW
« no previous file with comments | « test/cctest/wasm/test-run-wasm-js.cc ('k') | test/cctest/wasm/test-run-wasm-simd.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698