77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 //===- llvm/unittest/Support/LEB128Test.cpp - LEB128 function tests -------===//
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 //
|
147
|
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4 // See https://llvm.org/LICENSE.txt for license information.
|
|
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 //
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 //===----------------------------------------------------------------------===//
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8
|
121
|
9 #include "llvm/Support/LEB128.h"
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 #include "llvm/Support/DataTypes.h"
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 #include "llvm/Support/raw_ostream.h"
|
121
|
12 #include "gtest/gtest.h"
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 #include <string>
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 using namespace llvm;
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 namespace {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 TEST(LEB128Test, EncodeSLEB128) {
|
121
|
19 #define EXPECT_SLEB128_EQ(EXPECTED, VALUE, PAD) \
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 do { \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 std::string Expected(EXPECTED, sizeof(EXPECTED) - 1); \
|
121
|
22 \
|
|
23 /* encodeSLEB128(uint64_t, raw_ostream &, unsigned) */ \
|
|
24 std::string Actual1; \
|
|
25 raw_string_ostream Stream(Actual1); \
|
|
26 encodeSLEB128(VALUE, Stream, PAD); \
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 Stream.flush(); \
|
121
|
28 EXPECT_EQ(Expected, Actual1); \
|
|
29 \
|
|
30 /* encodeSLEB128(uint64_t, uint8_t *, unsigned) */ \
|
|
31 uint8_t Buffer[32]; \
|
|
32 unsigned Size = encodeSLEB128(VALUE, Buffer, PAD); \
|
|
33 std::string Actual2(reinterpret_cast<const char *>(Buffer), Size); \
|
|
34 EXPECT_EQ(Expected, Actual2); \
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 } while (0)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 // Encode SLEB128
|
121
|
38 EXPECT_SLEB128_EQ("\x00", 0, 0);
|
|
39 EXPECT_SLEB128_EQ("\x01", 1, 0);
|
|
40 EXPECT_SLEB128_EQ("\x7f", -1, 0);
|
|
41 EXPECT_SLEB128_EQ("\x3f", 63, 0);
|
|
42 EXPECT_SLEB128_EQ("\x41", -63, 0);
|
|
43 EXPECT_SLEB128_EQ("\x40", -64, 0);
|
|
44 EXPECT_SLEB128_EQ("\xbf\x7f", -65, 0);
|
|
45 EXPECT_SLEB128_EQ("\xc0\x00", 64, 0);
|
|
46
|
|
47 // Encode SLEB128 with some extra padding bytes
|
|
48 EXPECT_SLEB128_EQ("\x80\x00", 0, 2);
|
|
49 EXPECT_SLEB128_EQ("\x80\x80\x00", 0, 3);
|
|
50 EXPECT_SLEB128_EQ("\xff\x80\x00", 0x7f, 3);
|
|
51 EXPECT_SLEB128_EQ("\xff\x80\x80\x00", 0x7f, 4);
|
|
52 EXPECT_SLEB128_EQ("\x80\x81\x00", 0x80, 3);
|
|
53 EXPECT_SLEB128_EQ("\x80\x81\x80\x00", 0x80, 4);
|
|
54 EXPECT_SLEB128_EQ("\xc0\x7f", -0x40, 2);
|
|
55
|
|
56 EXPECT_SLEB128_EQ("\xc0\xff\x7f", -0x40, 3);
|
|
57 EXPECT_SLEB128_EQ("\x80\xff\x7f", -0x80, 3);
|
|
58 EXPECT_SLEB128_EQ("\x80\xff\xff\x7f", -0x80, 4);
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 #undef EXPECT_SLEB128_EQ
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63 TEST(LEB128Test, EncodeULEB128) {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
64 #define EXPECT_ULEB128_EQ(EXPECTED, VALUE, PAD) \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 do { \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
66 std::string Expected(EXPECTED, sizeof(EXPECTED) - 1); \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
67 \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 /* encodeULEB128(uint64_t, raw_ostream &, unsigned) */ \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 std::string Actual1; \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 raw_string_ostream Stream(Actual1); \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 encodeULEB128(VALUE, Stream, PAD); \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 Stream.flush(); \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73 EXPECT_EQ(Expected, Actual1); \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75 /* encodeULEB128(uint64_t, uint8_t *, unsigned) */ \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76 uint8_t Buffer[32]; \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 unsigned Size = encodeULEB128(VALUE, Buffer, PAD); \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 std::string Actual2(reinterpret_cast<const char *>(Buffer), Size); \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 EXPECT_EQ(Expected, Actual2); \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80 } while (0)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
82 // Encode ULEB128
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
83 EXPECT_ULEB128_EQ("\x00", 0, 0);
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
84 EXPECT_ULEB128_EQ("\x01", 1, 0);
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
85 EXPECT_ULEB128_EQ("\x3f", 63, 0);
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 EXPECT_ULEB128_EQ("\x40", 64, 0);
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
87 EXPECT_ULEB128_EQ("\x7f", 0x7f, 0);
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
88 EXPECT_ULEB128_EQ("\x80\x01", 0x80, 0);
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
89 EXPECT_ULEB128_EQ("\x81\x01", 0x81, 0);
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
90 EXPECT_ULEB128_EQ("\x90\x01", 0x90, 0);
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
91 EXPECT_ULEB128_EQ("\xff\x01", 0xff, 0);
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
92 EXPECT_ULEB128_EQ("\x80\x02", 0x100, 0);
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
93 EXPECT_ULEB128_EQ("\x81\x02", 0x101, 0);
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
94
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
95 // Encode ULEB128 with some extra padding bytes
|
121
|
96 EXPECT_ULEB128_EQ("\x80\x00", 0, 2);
|
|
97 EXPECT_ULEB128_EQ("\x80\x80\x00", 0, 3);
|
|
98 EXPECT_ULEB128_EQ("\xff\x00", 0x7f, 2);
|
|
99 EXPECT_ULEB128_EQ("\xff\x80\x00", 0x7f, 3);
|
|
100 EXPECT_ULEB128_EQ("\x80\x81\x00", 0x80, 3);
|
|
101 EXPECT_ULEB128_EQ("\x80\x81\x80\x00", 0x80, 4);
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
102
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
103 #undef EXPECT_ULEB128_EQ
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
104 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
105
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
106 TEST(LEB128Test, DecodeULEB128) {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
107 #define EXPECT_DECODE_ULEB128_EQ(EXPECTED, VALUE) \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
108 do { \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
109 unsigned ActualSize = 0; \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
110 uint64_t Actual = decodeULEB128(reinterpret_cast<const uint8_t *>(VALUE), \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111 &ActualSize); \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
112 EXPECT_EQ(sizeof(VALUE) - 1, ActualSize); \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
113 EXPECT_EQ(EXPECTED, Actual); \
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
114 } while (0)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
115
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
116 // Decode ULEB128
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
117 EXPECT_DECODE_ULEB128_EQ(0u, "\x00");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
118 EXPECT_DECODE_ULEB128_EQ(1u, "\x01");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
119 EXPECT_DECODE_ULEB128_EQ(63u, "\x3f");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
120 EXPECT_DECODE_ULEB128_EQ(64u, "\x40");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
121 EXPECT_DECODE_ULEB128_EQ(0x7fu, "\x7f");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
122 EXPECT_DECODE_ULEB128_EQ(0x80u, "\x80\x01");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
123 EXPECT_DECODE_ULEB128_EQ(0x81u, "\x81\x01");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
124 EXPECT_DECODE_ULEB128_EQ(0x90u, "\x90\x01");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
125 EXPECT_DECODE_ULEB128_EQ(0xffu, "\xff\x01");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
126 EXPECT_DECODE_ULEB128_EQ(0x100u, "\x80\x02");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
127 EXPECT_DECODE_ULEB128_EQ(0x101u, "\x81\x02");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
128 EXPECT_DECODE_ULEB128_EQ(4294975616ULL, "\x80\xc1\x80\x80\x10");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
129
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
130 // Decode ULEB128 with extra padding bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
131 EXPECT_DECODE_ULEB128_EQ(0u, "\x80\x00");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
132 EXPECT_DECODE_ULEB128_EQ(0u, "\x80\x80\x00");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
133 EXPECT_DECODE_ULEB128_EQ(0x7fu, "\xff\x00");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
134 EXPECT_DECODE_ULEB128_EQ(0x7fu, "\xff\x80\x00");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
135 EXPECT_DECODE_ULEB128_EQ(0x80u, "\x80\x81\x00");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
136 EXPECT_DECODE_ULEB128_EQ(0x80u, "\x80\x81\x80\x00");
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
137
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
138 #undef EXPECT_DECODE_ULEB128_EQ
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
139 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
140
|
83
|
141 TEST(LEB128Test, DecodeSLEB128) {
|
|
142 #define EXPECT_DECODE_SLEB128_EQ(EXPECTED, VALUE) \
|
|
143 do { \
|
|
144 unsigned ActualSize = 0; \
|
|
145 int64_t Actual = decodeSLEB128(reinterpret_cast<const uint8_t *>(VALUE), \
|
|
146 &ActualSize); \
|
|
147 EXPECT_EQ(sizeof(VALUE) - 1, ActualSize); \
|
|
148 EXPECT_EQ(EXPECTED, Actual); \
|
|
149 } while (0)
|
|
150
|
|
151 // Decode SLEB128
|
|
152 EXPECT_DECODE_SLEB128_EQ(0L, "\x00");
|
|
153 EXPECT_DECODE_SLEB128_EQ(1L, "\x01");
|
|
154 EXPECT_DECODE_SLEB128_EQ(63L, "\x3f");
|
|
155 EXPECT_DECODE_SLEB128_EQ(-64L, "\x40");
|
|
156 EXPECT_DECODE_SLEB128_EQ(-63L, "\x41");
|
|
157 EXPECT_DECODE_SLEB128_EQ(-1L, "\x7f");
|
|
158 EXPECT_DECODE_SLEB128_EQ(128L, "\x80\x01");
|
|
159 EXPECT_DECODE_SLEB128_EQ(129L, "\x81\x01");
|
|
160 EXPECT_DECODE_SLEB128_EQ(-129L, "\xff\x7e");
|
|
161 EXPECT_DECODE_SLEB128_EQ(-128L, "\x80\x7f");
|
|
162 EXPECT_DECODE_SLEB128_EQ(-127L, "\x81\x7f");
|
|
163 EXPECT_DECODE_SLEB128_EQ(64L, "\xc0\x00");
|
|
164 EXPECT_DECODE_SLEB128_EQ(-12345L, "\xc7\x9f\x7f");
|
|
165
|
|
166 // Decode unnormalized SLEB128 with extra padding bytes.
|
|
167 EXPECT_DECODE_SLEB128_EQ(0L, "\x80\x00");
|
|
168 EXPECT_DECODE_SLEB128_EQ(0L, "\x80\x80\x00");
|
|
169 EXPECT_DECODE_SLEB128_EQ(0x7fL, "\xff\x00");
|
|
170 EXPECT_DECODE_SLEB128_EQ(0x7fL, "\xff\x80\x00");
|
|
171 EXPECT_DECODE_SLEB128_EQ(0x80L, "\x80\x81\x00");
|
|
172 EXPECT_DECODE_SLEB128_EQ(0x80L, "\x80\x81\x80\x00");
|
|
173
|
|
174 #undef EXPECT_DECODE_SLEB128_EQ
|
|
175 }
|
|
176
|
77
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
177 TEST(LEB128Test, SLEB128Size) {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
178 // Positive Value Testing Plan:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
179 // (1) 128 ^ n - 1 ........ need (n+1) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
180 // (2) 128 ^ n ............ need (n+1) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
181 // (3) 128 ^ n * 63 ....... need (n+1) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
182 // (4) 128 ^ n * 64 - 1 ... need (n+1) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
183 // (5) 128 ^ n * 64 ....... need (n+2) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
184
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
185 EXPECT_EQ(1u, getSLEB128Size(0x0LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
186 EXPECT_EQ(1u, getSLEB128Size(0x1LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
187 EXPECT_EQ(1u, getSLEB128Size(0x3fLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
188 EXPECT_EQ(1u, getSLEB128Size(0x3fLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
189 EXPECT_EQ(2u, getSLEB128Size(0x40LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
190
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
191 EXPECT_EQ(2u, getSLEB128Size(0x7fLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
192 EXPECT_EQ(2u, getSLEB128Size(0x80LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
193 EXPECT_EQ(2u, getSLEB128Size(0x1f80LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
194 EXPECT_EQ(2u, getSLEB128Size(0x1fffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
195 EXPECT_EQ(3u, getSLEB128Size(0x2000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
196
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
197 EXPECT_EQ(3u, getSLEB128Size(0x3fffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
198 EXPECT_EQ(3u, getSLEB128Size(0x4000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
199 EXPECT_EQ(3u, getSLEB128Size(0xfc000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
200 EXPECT_EQ(3u, getSLEB128Size(0xfffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
201 EXPECT_EQ(4u, getSLEB128Size(0x100000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
202
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
203 EXPECT_EQ(4u, getSLEB128Size(0x1fffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
204 EXPECT_EQ(4u, getSLEB128Size(0x200000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
205 EXPECT_EQ(4u, getSLEB128Size(0x7e00000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
206 EXPECT_EQ(4u, getSLEB128Size(0x7ffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
207 EXPECT_EQ(5u, getSLEB128Size(0x8000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
208
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
209 EXPECT_EQ(5u, getSLEB128Size(0xfffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
210 EXPECT_EQ(5u, getSLEB128Size(0x10000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
211 EXPECT_EQ(5u, getSLEB128Size(0x3f0000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
212 EXPECT_EQ(5u, getSLEB128Size(0x3ffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
213 EXPECT_EQ(6u, getSLEB128Size(0x400000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
214
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
215 EXPECT_EQ(6u, getSLEB128Size(0x7ffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
216 EXPECT_EQ(6u, getSLEB128Size(0x800000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
217 EXPECT_EQ(6u, getSLEB128Size(0x1f800000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
218 EXPECT_EQ(6u, getSLEB128Size(0x1ffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
219 EXPECT_EQ(7u, getSLEB128Size(0x20000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
220
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
221 EXPECT_EQ(7u, getSLEB128Size(0x3ffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
222 EXPECT_EQ(7u, getSLEB128Size(0x40000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
223 EXPECT_EQ(7u, getSLEB128Size(0xfc0000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
224 EXPECT_EQ(7u, getSLEB128Size(0xffffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
225 EXPECT_EQ(8u, getSLEB128Size(0x1000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
226
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
227 EXPECT_EQ(8u, getSLEB128Size(0x1ffffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
228 EXPECT_EQ(8u, getSLEB128Size(0x2000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
229 EXPECT_EQ(8u, getSLEB128Size(0x7e000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
230 EXPECT_EQ(8u, getSLEB128Size(0x7fffffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
231 EXPECT_EQ(9u, getSLEB128Size(0x80000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
232
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
233 EXPECT_EQ(9u, getSLEB128Size(0xffffffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
234 EXPECT_EQ(9u, getSLEB128Size(0x100000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
235 EXPECT_EQ(9u, getSLEB128Size(0x3f00000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
236 EXPECT_EQ(9u, getSLEB128Size(0x3fffffffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
237 EXPECT_EQ(10u, getSLEB128Size(0x4000000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
238
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
239 EXPECT_EQ(10u, getSLEB128Size(0x7fffffffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
240 EXPECT_EQ(10u, getSLEB128Size(INT64_MAX));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
241
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
242 // Negative Value Testing Plan:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
243 // (1) - 128 ^ n - 1 ........ need (n+1) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
244 // (2) - 128 ^ n ............ need (n+1) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
245 // (3) - 128 ^ n * 63 ....... need (n+1) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
246 // (4) - 128 ^ n * 64 ....... need (n+1) bytes (different from positive one)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
247 // (5) - 128 ^ n * 65 - 1 ... need (n+2) bytes (if n > 0)
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
248 // (6) - 128 ^ n * 65 ....... need (n+2) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
249
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
250 EXPECT_EQ(1u, getSLEB128Size(0x0LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
251 EXPECT_EQ(1u, getSLEB128Size(-0x1LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
252 EXPECT_EQ(1u, getSLEB128Size(-0x3fLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
253 EXPECT_EQ(1u, getSLEB128Size(-0x40LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
254 EXPECT_EQ(1u, getSLEB128Size(-0x40LL)); // special case
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
255 EXPECT_EQ(2u, getSLEB128Size(-0x41LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
256
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
257 EXPECT_EQ(2u, getSLEB128Size(-0x7fLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
258 EXPECT_EQ(2u, getSLEB128Size(-0x80LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
259 EXPECT_EQ(2u, getSLEB128Size(-0x1f80LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
260 EXPECT_EQ(2u, getSLEB128Size(-0x2000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
261 EXPECT_EQ(3u, getSLEB128Size(-0x207fLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
262 EXPECT_EQ(3u, getSLEB128Size(-0x2080LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
263
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
264 EXPECT_EQ(3u, getSLEB128Size(-0x3fffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
265 EXPECT_EQ(3u, getSLEB128Size(-0x4000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
266 EXPECT_EQ(3u, getSLEB128Size(-0xfc000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
267 EXPECT_EQ(3u, getSLEB128Size(-0x100000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
268 EXPECT_EQ(4u, getSLEB128Size(-0x103fffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
269 EXPECT_EQ(4u, getSLEB128Size(-0x104000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
270
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
271 EXPECT_EQ(4u, getSLEB128Size(-0x1fffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
272 EXPECT_EQ(4u, getSLEB128Size(-0x200000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
273 EXPECT_EQ(4u, getSLEB128Size(-0x7e00000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
274 EXPECT_EQ(4u, getSLEB128Size(-0x8000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
275 EXPECT_EQ(5u, getSLEB128Size(-0x81fffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
276 EXPECT_EQ(5u, getSLEB128Size(-0x8200000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
277
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
278 EXPECT_EQ(5u, getSLEB128Size(-0xfffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
279 EXPECT_EQ(5u, getSLEB128Size(-0x10000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
280 EXPECT_EQ(5u, getSLEB128Size(-0x3f0000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
281 EXPECT_EQ(5u, getSLEB128Size(-0x400000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
282 EXPECT_EQ(6u, getSLEB128Size(-0x40fffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
283 EXPECT_EQ(6u, getSLEB128Size(-0x410000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
284
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
285 EXPECT_EQ(6u, getSLEB128Size(-0x7ffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
286 EXPECT_EQ(6u, getSLEB128Size(-0x800000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
287 EXPECT_EQ(6u, getSLEB128Size(-0x1f800000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
288 EXPECT_EQ(6u, getSLEB128Size(-0x20000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
289 EXPECT_EQ(7u, getSLEB128Size(-0x207ffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
290 EXPECT_EQ(7u, getSLEB128Size(-0x20800000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
291
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
292 EXPECT_EQ(7u, getSLEB128Size(-0x3ffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
293 EXPECT_EQ(7u, getSLEB128Size(-0x40000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
294 EXPECT_EQ(7u, getSLEB128Size(-0xfc0000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
295 EXPECT_EQ(7u, getSLEB128Size(-0x1000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
296 EXPECT_EQ(8u, getSLEB128Size(-0x103ffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
297 EXPECT_EQ(8u, getSLEB128Size(-0x1040000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
298
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
299 EXPECT_EQ(8u, getSLEB128Size(-0x1ffffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
300 EXPECT_EQ(8u, getSLEB128Size(-0x2000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
301 EXPECT_EQ(8u, getSLEB128Size(-0x7e000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
302 EXPECT_EQ(8u, getSLEB128Size(-0x80000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
303 EXPECT_EQ(9u, getSLEB128Size(-0x81ffffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
304 EXPECT_EQ(9u, getSLEB128Size(-0x82000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
305
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
306 EXPECT_EQ(9u, getSLEB128Size(-0xffffffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
307 EXPECT_EQ(9u, getSLEB128Size(-0x100000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
308 EXPECT_EQ(9u, getSLEB128Size(-0x3f00000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
309 EXPECT_EQ(9u, getSLEB128Size(-0x4000000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
310 EXPECT_EQ(10u, getSLEB128Size(-0x40ffffffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
311 EXPECT_EQ(10u, getSLEB128Size(-0x4100000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
312
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
313 EXPECT_EQ(10u, getSLEB128Size(-0x7fffffffffffffffLL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
314 EXPECT_EQ(10u, getSLEB128Size(-0x8000000000000000LL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
315 EXPECT_EQ(10u, getSLEB128Size(INT64_MIN));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
316 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
317
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
318 TEST(LEB128Test, ULEB128Size) {
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
319 // Testing Plan:
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
320 // (1) 128 ^ n ............ need (n+1) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
321 // (2) 128 ^ n * 64 ....... need (n+1) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
322 // (3) 128 ^ (n+1) - 1 .... need (n+1) bytes
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
323
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
324 EXPECT_EQ(1u, getULEB128Size(0)); // special case
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
325
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
326 EXPECT_EQ(1u, getULEB128Size(0x1ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
327 EXPECT_EQ(1u, getULEB128Size(0x40ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
328 EXPECT_EQ(1u, getULEB128Size(0x7fULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
329
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
330 EXPECT_EQ(2u, getULEB128Size(0x80ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
331 EXPECT_EQ(2u, getULEB128Size(0x2000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
332 EXPECT_EQ(2u, getULEB128Size(0x3fffULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
333
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
334 EXPECT_EQ(3u, getULEB128Size(0x4000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
335 EXPECT_EQ(3u, getULEB128Size(0x100000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
336 EXPECT_EQ(3u, getULEB128Size(0x1fffffULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
337
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
338 EXPECT_EQ(4u, getULEB128Size(0x200000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
339 EXPECT_EQ(4u, getULEB128Size(0x8000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
340 EXPECT_EQ(4u, getULEB128Size(0xfffffffULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
341
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
342 EXPECT_EQ(5u, getULEB128Size(0x10000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
343 EXPECT_EQ(5u, getULEB128Size(0x400000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
344 EXPECT_EQ(5u, getULEB128Size(0x7ffffffffULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
345
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
346 EXPECT_EQ(6u, getULEB128Size(0x800000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
347 EXPECT_EQ(6u, getULEB128Size(0x20000000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
348 EXPECT_EQ(6u, getULEB128Size(0x3ffffffffffULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
349
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
350 EXPECT_EQ(7u, getULEB128Size(0x40000000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
351 EXPECT_EQ(7u, getULEB128Size(0x1000000000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
352 EXPECT_EQ(7u, getULEB128Size(0x1ffffffffffffULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
353
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
354 EXPECT_EQ(8u, getULEB128Size(0x2000000000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
355 EXPECT_EQ(8u, getULEB128Size(0x80000000000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
356 EXPECT_EQ(8u, getULEB128Size(0xffffffffffffffULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
357
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
358 EXPECT_EQ(9u, getULEB128Size(0x100000000000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
359 EXPECT_EQ(9u, getULEB128Size(0x4000000000000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
360 EXPECT_EQ(9u, getULEB128Size(0x7fffffffffffffffULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
361
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
362 EXPECT_EQ(10u, getULEB128Size(0x8000000000000000ULL));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
363
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
364 EXPECT_EQ(10u, getULEB128Size(UINT64_MAX));
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
365 }
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
366
|
Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
367 } // anonymous namespace
|