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

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

Issue 1866873002: [wasm] Adding metrics for Asm/Wasm. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix Created 4 years, 8 months 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
« src/counters.h ('K') | « src/wasm/wasm-module.cc ('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/wasm/module-decoder.h" 7 #include "src/wasm/module-decoder.h"
8 #include "src/wasm/wasm-macro-gen.h" 8 #include "src/wasm/wasm-macro-gen.h"
9 #include "src/wasm/wasm-opcodes.h" 9 #include "src/wasm/wasm-opcodes.h"
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 } 59 }
60 60
61 struct LocalTypePair { 61 struct LocalTypePair {
62 uint8_t code; 62 uint8_t code;
63 LocalType type; 63 LocalType type;
64 } kLocalTypes[] = {{kLocalI32, kAstI32}, 64 } kLocalTypes[] = {{kLocalI32, kAstI32},
65 {kLocalI64, kAstI64}, 65 {kLocalI64, kAstI64},
66 {kLocalF32, kAstF32}, 66 {kLocalF32, kAstF32},
67 {kLocalF64, kAstF64}}; 67 {kLocalF64, kAstF64}};
68 68
69 class WasmModuleVerifyTest : public TestWithZone { 69 class WasmModuleVerifyTest : public TestWithIsolateAndZone {
70 public: 70 public:
71 ModuleResult DecodeModule(const byte* module_start, const byte* module_end) { 71 ModuleResult DecodeModule(const byte* module_start, const byte* module_end) {
72 // Add the WASM magic and version number automatically. 72 // Add the WASM magic and version number automatically.
73 size_t size = static_cast<size_t>(module_end - module_start); 73 size_t size = static_cast<size_t>(module_end - module_start);
74 byte header[] = {WASM_MODULE_HEADER}; 74 byte header[] = {WASM_MODULE_HEADER};
75 size_t total = sizeof(header) + size; 75 size_t total = sizeof(header) + size;
76 auto temp = new byte[total]; 76 auto temp = new byte[total];
77 memcpy(temp, header, sizeof(header)); 77 memcpy(temp, header, sizeof(header));
78 memcpy(temp + sizeof(header), module_start, size); 78 memcpy(temp + sizeof(header), module_start, size);
79 ModuleResult result = DecodeWasmModule(nullptr, zone(), temp, temp + total, 79 ModuleResult result = DecodeWasmModule(isolate(), zone(), temp,
80 false, kWasmOrigin); 80 temp + total, false, kWasmOrigin);
81 delete[] temp; 81 delete[] temp;
82 return result; 82 return result;
83 } 83 }
84 ModuleResult DecodeModuleNoHeader(const byte* module_start, 84 ModuleResult DecodeModuleNoHeader(const byte* module_start,
85 const byte* module_end) { 85 const byte* module_end) {
86 return DecodeWasmModule(nullptr, zone(), module_start, module_end, false, 86 return DecodeWasmModule(isolate(), zone(), module_start, module_end, false,
87 kWasmOrigin); 87 kWasmOrigin);
88 } 88 }
89 }; 89 };
90 90
91 TEST_F(WasmModuleVerifyTest, WrongMagic) { 91 TEST_F(WasmModuleVerifyTest, WrongMagic) {
92 for (uint32_t x = 1; x; x <<= 1) { 92 for (uint32_t x = 1; x; x <<= 1) {
93 const byte data[] = {U32_LE(kWasmMagic ^ x), U32_LE(kWasmVersion), 93 const byte data[] = {U32_LE(kWasmMagic ^ x), U32_LE(kWasmVersion),
94 SECTION(END, 0)}; 94 SECTION(END, 0)};
95 ModuleResult result = DecodeModuleNoHeader(data, data + sizeof(data)); 95 ModuleResult result = DecodeModuleNoHeader(data, data + sizeof(data));
96 EXPECT_FALSE(result.ok()); 96 EXPECT_FALSE(result.ok());
(...skipping 797 matching lines...) Expand 10 before | Expand all | Expand 10 after
894 static const int kParamCount = 3; 894 static const int kParamCount = 3;
895 for (int i = 0; i < kParamCount; i++) { 895 for (int i = 0; i < kParamCount; i++) {
896 byte data[] = {kParamCount, kLocalI32, kLocalI32, kLocalI32, kLocalI32}; 896 byte data[] = {kParamCount, kLocalI32, kLocalI32, kLocalI32, kLocalI32};
897 data[i + 2] = kLocalVoid; 897 data[i + 2] = kLocalVoid;
898 FunctionSig* sig = 898 FunctionSig* sig =
899 DecodeWasmSignatureForTesting(zone(), data, data + arraysize(data)); 899 DecodeWasmSignatureForTesting(zone(), data, data + arraysize(data));
900 EXPECT_EQ(nullptr, sig); 900 EXPECT_EQ(nullptr, sig);
901 } 901 }
902 } 902 }
903 903
904 904 class WasmFunctionVerifyTest : public TestWithIsolateAndZone {};
905 class WasmFunctionVerifyTest : public TestWithZone {};
906
907 905
908 TEST_F(WasmFunctionVerifyTest, Ok_v_v_empty) { 906 TEST_F(WasmFunctionVerifyTest, Ok_v_v_empty) {
909 static const byte data[] = { 907 static const byte data[] = {
910 0, kLocalVoid, // signature 908 0, kLocalVoid, // signature
911 4, // locals 909 4, // locals
912 3, kLocalI32, // -- 910 3, kLocalI32, // --
913 4, kLocalI64, // -- 911 4, kLocalI64, // --
914 5, kLocalF32, // -- 912 5, kLocalF32, // --
915 6, kLocalF64, // -- 913 6, kLocalF64, // --
916 kExprNop // body 914 kExprNop // body
917 }; 915 };
918 916
919 FunctionResult result = DecodeWasmFunction(nullptr, zone(), nullptr, data, 917 FunctionResult result = DecodeWasmFunction(isolate(), zone(), nullptr, data,
920 data + arraysize(data)); 918 data + arraysize(data));
921 EXPECT_TRUE(result.ok()); 919 EXPECT_TRUE(result.ok());
922 920
923 if (result.val && result.ok()) { 921 if (result.val && result.ok()) {
924 WasmFunction* function = result.val; 922 WasmFunction* function = result.val;
925 EXPECT_EQ(0, function->sig->parameter_count()); 923 EXPECT_EQ(0, function->sig->parameter_count());
926 EXPECT_EQ(0, function->sig->return_count()); 924 EXPECT_EQ(0, function->sig->return_count());
927 EXPECT_EQ(0, function->name_offset); 925 EXPECT_EQ(0, function->name_offset);
928 EXPECT_EQ(2, function->code_start_offset); 926 EXPECT_EQ(2, function->code_start_offset);
929 EXPECT_EQ(arraysize(data), function->code_end_offset); 927 EXPECT_EQ(arraysize(data), function->code_end_offset);
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
1370 NO_LOCAL_NAMES, // -- 1368 NO_LOCAL_NAMES, // --
1371 FOO_STRING, 1369 FOO_STRING,
1372 NO_LOCAL_NAMES, // -- 1370 NO_LOCAL_NAMES, // --
1373 }; 1371 };
1374 EXPECT_VERIFIES(data); 1372 EXPECT_VERIFIES(data);
1375 } 1373 }
1376 1374
1377 } // namespace wasm 1375 } // namespace wasm
1378 } // namespace internal 1376 } // namespace internal
1379 } // namespace v8 1377 } // namespace v8
OLDNEW
« src/counters.h ('K') | « src/wasm/wasm-module.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698