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

Unified Diff: test/unittests/wasm/decoder-unittest.cc

Issue 1749343002: Revert of [wasm] Add support for 64-bit LEB encodings. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/wasm/decoder.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/unittests/wasm/decoder-unittest.cc
diff --git a/test/unittests/wasm/decoder-unittest.cc b/test/unittests/wasm/decoder-unittest.cc
index d773c955c0454e629d7ac501d02971a9352edc53..de6bf49ea855fd5aa07ae27b7f0ca4971c967558 100644
--- a/test/unittests/wasm/decoder-unittest.cc
+++ b/test/unittests/wasm/decoder-unittest.cc
@@ -35,26 +35,6 @@
int length; \
EXPECT_EQ(expected, \
decoder.checked_read_i32v(decoder.start(), 0, &length)); \
- EXPECT_EQ(expected_length, length); \
- } while (false)
-
-#define CHECK_UINT64V_INLINE(expected, expected_length, ...) \
- do { \
- const byte data[] = {__VA_ARGS__}; \
- decoder.Reset(data, data + sizeof(data)); \
- int length; \
- EXPECT_EQ(expected, \
- decoder.checked_read_u64v(decoder.start(), 0, &length)); \
- EXPECT_EQ(expected_length, length); \
- } while (false)
-
-#define CHECK_INT64V_INLINE(expected, expected_length, ...) \
- do { \
- const byte data[] = {__VA_ARGS__}; \
- decoder.Reset(data, data + sizeof(data)); \
- int length; \
- EXPECT_EQ(expected, \
- decoder.checked_read_i64v(decoder.start(), 0, &length)); \
EXPECT_EQ(expected_length, length); \
} while (false)
@@ -428,201 +408,6 @@
}
}
-TEST_F(DecoderTest, ReadU32v_Bits) {
- // A more exhaustive test.
- const int kMaxSize = 5;
- const uint32_t kVals[] = {
- 0xaabbccdd, 0x11223344, 0x33445566, 0xffeeddcc, 0xF0F0F0F0, 0x0F0F0F0F,
- 0xEEEEEEEE, 0xAAAAAAAA, 0x12345678, 0x9abcdef0, 0x80309488, 0x729ed997,
- 0xc4a0cf81, 0x16c6eb85, 0x4206db8e, 0xf3b089d5, 0xaa2e223e, 0xf99e29c8,
- 0x4a4357d8, 0x1890b1c1, 0x8d80a085, 0xacb6ae4c, 0x1b827e10, 0xeb5c7bd9,
- 0xbb1bc146, 0xdf57a33l};
- byte data[kMaxSize];
-
- // foreach value in above array
- for (size_t v = 0; v < arraysize(kVals); v++) {
- // foreach length 1...32
- for (int i = 1; i <= 32; i++) {
- uint32_t val = kVals[v];
- if (i < 32) val &= ((1 << i) - 1);
-
- int length = 1 + i / 7;
- for (int j = 0; j < kMaxSize; j++) {
- data[j] = static_cast<byte>((val >> (7 * j)) & MASK_7);
- }
- for (int j = 0; j < length - 1; j++) {
- data[j] |= 0x80;
- }
-
- // foreach buffer size 0...5
- for (int limit = 0; limit <= kMaxSize; limit++) {
- decoder.Reset(data, data + limit);
- int rlen;
- uint32_t result = decoder.checked_read_u32v(data, 0, &rlen);
- if (limit < length) {
- EXPECT_FALSE(decoder.ok());
- } else {
- EXPECT_TRUE(decoder.ok());
- EXPECT_EQ(val, result);
- EXPECT_EQ(length, rlen);
- }
- }
- }
- }
-}
-
-TEST_F(DecoderTest, ReadU64v_OneByte) {
- CHECK_UINT64V_INLINE(0, 1, 0);
- CHECK_UINT64V_INLINE(6, 1, 6);
- CHECK_UINT64V_INLINE(8, 1, 8);
- CHECK_UINT64V_INLINE(12, 1, 12);
- CHECK_UINT64V_INLINE(33, 1, 33);
- CHECK_UINT64V_INLINE(59, 1, 59);
- CHECK_UINT64V_INLINE(110, 1, 110);
- CHECK_UINT64V_INLINE(125, 1, 125);
- CHECK_UINT64V_INLINE(126, 1, 126);
- CHECK_UINT64V_INLINE(127, 1, 127);
-}
-
-TEST_F(DecoderTest, ReadI64v_OneByte) {
- CHECK_INT64V_INLINE(0, 1, 0);
- CHECK_INT64V_INLINE(4, 1, 4);
- CHECK_INT64V_INLINE(6, 1, 6);
- CHECK_INT64V_INLINE(9, 1, 9);
- CHECK_INT64V_INLINE(33, 1, 33);
- CHECK_INT64V_INLINE(61, 1, 61);
- CHECK_INT64V_INLINE(63, 1, 63);
-
- CHECK_INT64V_INLINE(-1, 1, 127);
- CHECK_INT64V_INLINE(-2, 1, 126);
- CHECK_INT64V_INLINE(-11, 1, 117);
- CHECK_INT64V_INLINE(-62, 1, 66);
- CHECK_INT64V_INLINE(-63, 1, 65);
- CHECK_INT64V_INLINE(-64, 1, 64);
-}
-
-TEST_F(DecoderTest, ReadU64v_PowerOf2) {
- const int kMaxSize = 10;
- byte data[kMaxSize];
-
- for (int i = 0; i < 64; i++) {
- const uint64_t val = 1ull << i;
- int index = i / 7;
- data[index] = 1 << (i % 7);
- memset(data, 0x80, index);
-
- for (int limit = 0; limit <= kMaxSize; limit++) {
- decoder.Reset(data, data + limit);
- int length;
- uint64_t result = decoder.checked_read_u64v(data, 0, &length);
- if (limit <= index) {
- EXPECT_FALSE(decoder.ok());
- } else {
- EXPECT_TRUE(decoder.ok());
- EXPECT_EQ(val, result);
- EXPECT_EQ(index + 1, length);
- }
- }
- }
-}
-
-TEST_F(DecoderTest, ReadU64v_Bits) {
- const int kMaxSize = 10;
- const uint64_t kVals[] = {
- 0xaabbccdd11223344ull, 0x33445566ffeeddccull, 0xF0F0F0F0F0F0F0F0ull,
- 0x0F0F0F0F0F0F0F0Full, 0xEEEEEEEEEEEEEEEEull, 0xAAAAAAAAAAAAAAAAull,
- 0x123456789abcdef0ull, 0x80309488729ed997ull, 0xc4a0cf8116c6eb85ull,
- 0x4206db8ef3b089d5ull, 0xaa2e223ef99e29c8ull, 0x4a4357d81890b1c1ull,
- 0x8d80a085acb6ae4cull, 0x1b827e10eb5c7bd9ull, 0xbb1bc146df57a338ull};
- byte data[kMaxSize];
-
- // foreach value in above array
- for (size_t v = 0; v < arraysize(kVals); v++) {
- // foreach length 1...64
- for (int i = 1; i <= 64; i++) {
- uint64_t val = kVals[v];
- if (i < 64) val &= ((1ull << i) - 1);
-
- int length = 1 + i / 7;
- for (int j = 0; j < kMaxSize; j++) {
- data[j] = static_cast<byte>((val >> (7 * j)) & MASK_7);
- }
- for (int j = 0; j < length - 1; j++) {
- data[j] |= 0x80;
- }
-
- // foreach buffer size 0...10
- for (int limit = 0; limit <= kMaxSize; limit++) {
- decoder.Reset(data, data + limit);
- int rlen;
- uint64_t result = decoder.checked_read_u64v(data, 0, &rlen);
- if (limit < length) {
- EXPECT_FALSE(decoder.ok());
- } else {
- EXPECT_TRUE(decoder.ok());
- EXPECT_EQ(val, result);
- EXPECT_EQ(length, rlen);
- }
- }
- }
- }
-}
-
-TEST_F(DecoderTest, ReadI64v_Bits) {
- const int kMaxSize = 10;
- // Exhaustive signedness test.
- const uint64_t kVals[] = {
- 0xaabbccdd11223344ull, 0x33445566ffeeddccull, 0xF0F0F0F0F0F0F0F0ull,
- 0x0F0F0F0F0F0F0F0Full, 0xEEEEEEEEEEEEEEEEull, 0xAAAAAAAAAAAAAAAAull,
- 0x123456789abcdef0ull, 0x80309488729ed997ull, 0xc4a0cf8116c6eb85ull,
- 0x4206db8ef3b089d5ull, 0xaa2e223ef99e29c8ull, 0x4a4357d81890b1c1ull,
- 0x8d80a085acb6ae4cull, 0x1b827e10eb5c7bd9ull, 0xbb1bc146df57a338ull};
- byte data[kMaxSize];
-
- // foreach value in above array
- for (size_t v = 0; v < arraysize(kVals); v++) {
- // foreach length 1...64
- for (int i = 1; i <= 64; i++) {
- const int64_t val = bit_cast<int64_t>(kVals[v] << (64 - i)) >> (64 - i);
-
- int length = 1 + i / 7;
- for (int j = 0; j < kMaxSize; j++) {
- const uint64_t uval = bit_cast<uint64_t>(val);
- data[j] = static_cast<byte>((uval >> (7 * j)) & MASK_7);
- }
- for (int j = 0; j < length - 1; j++) {
- data[j] |= 0x80;
- }
-
- // foreach buffer size 0...10
- for (int limit = 0; limit <= kMaxSize; limit++) {
- decoder.Reset(data, data + limit);
- int rlen;
- int64_t result = decoder.checked_read_i64v(data, 0, &rlen);
- if (limit < length) {
- EXPECT_FALSE(decoder.ok());
- } else {
- EXPECT_TRUE(decoder.ok());
- EXPECT_EQ(val, result);
- EXPECT_EQ(length, rlen);
- }
- }
- }
- }
-}
-
-TEST_F(DecoderTest, ReadU64v_extra_bits) {
- byte data[] = {0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00};
- for (int i = 1; i < 128; i++) {
- data[9] = static_cast<byte>(i << 1);
- int length = 0;
- decoder.Reset(data, data + sizeof(data));
- decoder.checked_read_u64v(decoder.start(), 0, &length);
- EXPECT_EQ(10, length);
- EXPECT_FALSE(decoder.ok());
- }
-}
-
} // namespace wasm
} // namespace internal
} // namespace v8
« no previous file with comments | « src/wasm/decoder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698