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

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

Issue 2493433002: [wasm] Only immutable imported globals are valid initializer expressions (Closed)
Patch Set: Removed another test 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 | « src/wasm/module-decoder.cc ('k') | test/mjsunit/wasm/data-segments.js » ('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 737 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 for (int i = 0; i < padding; i++) { // pad global after 748 for (int i = 0; i < padding; i++) { // pad global after
749 builder->AddGlobal(kAstI32, false, false, WasmInitExpr(i + 30000)); 749 builder->AddGlobal(kAstI32, false, false, WasmInitExpr(i + 30000));
750 } 750 }
751 751
752 WasmFunctionBuilder* f1 = builder->AddFunction(&sig); 752 WasmFunctionBuilder* f1 = builder->AddFunction(&sig);
753 byte code[] = {WASM_GET_GLOBAL(global)}; 753 byte code[] = {WASM_GET_GLOBAL(global)};
754 f1->EmitCode(code, sizeof(code)); 754 f1->EmitCode(code, sizeof(code));
755 ExportAsMain(f1); 755 ExportAsMain(f1);
756 TestModule(&zone, builder, expected); 756 TestModule(&zone, builder, expected);
757 } 757 }
758
759 for (int padding = 0; padding < 5; padding++) {
760 // Test with a global index
761 WasmModuleBuilder* builder = new (&zone) WasmModuleBuilder(&zone);
762 for (int i = 0; i < padding; i++) { // pad global before
763 builder->AddGlobal(kAstI32, false, false, WasmInitExpr(i + 40000));
764 }
765
766 uint32_t global1 =
767 builder->AddGlobal(type, false, false, WasmInitExpr(expected));
768
769 for (int i = 0; i < padding; i++) { // pad global middle
770 builder->AddGlobal(kAstI32, false, false, WasmInitExpr(i + 50000));
771 }
772
773 uint32_t global2 =
774 builder->AddGlobal(type, false, false,
775 WasmInitExpr(WasmInitExpr::kGlobalIndex, global1));
776
777 for (int i = 0; i < padding; i++) { // pad global after
778 builder->AddGlobal(kAstI32, false, false, WasmInitExpr(i + 60000));
779 }
780
781 WasmFunctionBuilder* f1 = builder->AddFunction(&sig);
782 byte code[] = {WASM_GET_GLOBAL(global2)};
783 f1->EmitCode(code, sizeof(code));
784 ExportAsMain(f1);
785 TestModule(&zone, builder, expected);
786 }
787 } 758 }
788 Cleanup(); 759 Cleanup();
789 } 760 }
790 761
791 TEST(Run_WasmModule_Global_i32) { 762 TEST(Run_WasmModule_Global_i32) {
792 RunWasmModuleGlobalInitTest<int32_t>(kAstI32, -983489); 763 RunWasmModuleGlobalInitTest<int32_t>(kAstI32, -983489);
793 RunWasmModuleGlobalInitTest<int32_t>(kAstI32, 11223344); 764 RunWasmModuleGlobalInitTest<int32_t>(kAstI32, 11223344);
794 } 765 }
795 766
796 TEST(Run_WasmModule_Global_f32) { 767 TEST(Run_WasmModule_Global_f32) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 testing::CompileInstantiateWasmModuleForTesting(isolate, &thrower, data, 803 testing::CompileInstantiateWasmModuleForTesting(isolate, &thrower, data,
833 data + arraysize(data), 804 data + arraysize(data),
834 ModuleOrigin::kWasmOrigin); 805 ModuleOrigin::kWasmOrigin);
835 if (thrower.error()) { 806 if (thrower.error()) {
836 thrower.Reify()->Print(); 807 thrower.Reify()->Print();
837 CHECK(false); 808 CHECK(false);
838 } 809 }
839 } 810 }
840 Cleanup(); 811 Cleanup();
841 } 812 }
OLDNEW
« no previous file with comments | « src/wasm/module-decoder.cc ('k') | test/mjsunit/wasm/data-segments.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698