30 {
31 MallocWriteStream writer(1 * KB);
32 for (intptr_t i = kSignedStart; i <
kSignedEnd; i++) {
33 writer.Write(i);
34 }
36 writer.Write(all_ones);
39 writer.Write(half_min);
40 writer.Write(half_max);
41 ReadStream reader(writer.buffer(), writer.bytes_written());
42 for (intptr_t i = kSignedStart; i <
kSignedEnd; i++) {
43 const intptr_t r = reader.Read<intptr_t>();
44 EXPECT_EQ(i, r);
45 }
46 const intptr_t read_all_ones = reader.Read<intptr_t>();
47 EXPECT_EQ(all_ones, read_all_ones);
48 const intptr_t read_min = reader.Read<intptr_t>();
49 EXPECT_EQ(
min, read_min);
50 const intptr_t read_max = reader.Read<intptr_t>();
51 EXPECT_EQ(
max, read_max);
52 const intptr_t read_half_min = reader.Read<intptr_t>();
53 EXPECT_EQ(half_min, read_half_min);
54 const intptr_t read_half_max = reader.Read<intptr_t>();
55 EXPECT_EQ(half_max, read_half_max);
56}
57
59 MallocWriteStream writer(1 * KB);
61 writer.WriteUnsigned(i);
62 }
64 writer.WriteUnsigned(all_ones);
65 writer.WriteUnsigned(
min);
66 writer.WriteUnsigned(
max);
67 writer.WriteUnsigned(half_min);
68 writer.WriteUnsigned(half_max);
69 ReadStream reader(writer.buffer(), writer.bytes_written());
71 const uintptr_t r = reader.ReadUnsigned<uintptr_t>();
72 EXPECT_EQ(i, r);
73 }
74 const uintptr_t read_all_ones = reader.ReadUnsigned<uintptr_t>();
75 EXPECT_EQ(all_ones, read_all_ones);
76 const uintptr_t read_min = reader.ReadUnsigned<uintptr_t>();
77 EXPECT_EQ(
min, read_min);
78 const uintptr_t read_max = reader.ReadUnsigned<uintptr_t>();
79 EXPECT_EQ(
max, read_max);
80 const uintptr_t read_half_min = reader.ReadUnsigned<uintptr_t>();
81 EXPECT_EQ(half_min, read_half_min);
82 const uintptr_t read_half_max = reader.ReadUnsigned<uintptr_t>();
83 EXPECT_EQ(half_max, read_half_max);
84}
85
86template <typename T>
88 MallocWriteStream writer(1 * KB);
90 writer.Write(i);
91 }
93 writer.Write(all_ones);
96 writer.Write(half_min);
97 writer.Write(half_max);
98 ReadStream reader(writer.buffer(), writer.bytes_written());
99 using Raw = ReadStream::Raw<
sizeof(
T),
T>;
101 const T r = Raw::Read(&reader);
102 EXPECT_EQ(i, r);
103 }
104 const T read_all_ones = Raw::Read(&reader);
105 EXPECT_EQ(all_ones, read_all_ones);
106 const T read_min = Raw::Read(&reader);
107 EXPECT_EQ(
min, read_min);
108 const T read_max = Raw::Read(&reader);
109 EXPECT_EQ(
max, read_max);
110 const T read_half_min = Raw::Read(&reader);
111 EXPECT_EQ(half_min, read_half_min);
112 const T read_half_max = Raw::Read(&reader);
113 EXPECT_EQ(half_max, read_half_max);
114}
115
117 TestRaw<int16_t>();
118}
119
121 TestRaw<int32_t>();
122}
123
125 TestRaw<int64_t>();
126}
127
129 MallocWriteStream writer(1 * KB);
131 writer.WriteLEB128(i);
132 }
134 writer.WriteLEB128(all_ones);
135 writer.WriteLEB128(
min);
136 writer.WriteLEB128(
max);
137 writer.WriteLEB128(half_min);
138 writer.WriteLEB128(half_max);
139 ReadStream reader(writer.buffer(), writer.bytes_written());
141 const uintptr_t r = reader.ReadLEB128();
142 EXPECT_EQ(i, r);
143 }
144 const uintptr_t read_all_ones = reader.ReadLEB128();
145 EXPECT_EQ(all_ones, read_all_ones);
146 const uintptr_t read_min = reader.ReadLEB128();
147 EXPECT_EQ(
min, read_min);
148 const uintptr_t read_max = reader.ReadLEB128();
149 EXPECT_EQ(
max, read_max);
150 const uintptr_t read_half_min = reader.ReadLEB128();
151 EXPECT_EQ(half_min, read_half_min);
152 const uintptr_t read_half_max = reader.ReadLEB128();
153 EXPECT_EQ(half_max, read_half_max);
154}
155
157 MallocWriteStream writer(1 * KB);
158 for (intptr_t i = kSignedStart; i <
kSignedEnd; i++) {
159 writer.WriteSLEB128(i);
160 }
162 writer.WriteSLEB128(all_ones);
163 writer.WriteSLEB128(
min);
164 writer.WriteSLEB128(
max);
165 writer.WriteSLEB128(half_min);
166 writer.WriteSLEB128(half_max);
167 ReadStream reader(writer.buffer(), writer.bytes_written());
168 for (intptr_t i = kSignedStart; i <
kSignedEnd; i++) {
169 const intptr_t r = reader.ReadSLEB128();
170 EXPECT_EQ(i, r);
171 }
172 const intptr_t read_all_ones = reader.ReadSLEB128();
173 EXPECT_EQ(all_ones, read_all_ones);
174 const intptr_t read_min = reader.ReadSLEB128();
175 EXPECT_EQ(
min, read_min);
176 const intptr_t read_max = reader.ReadSLEB128();
177 EXPECT_EQ(
max, read_max);
178 const intptr_t read_half_min = reader.ReadSLEB128();
179 EXPECT_EQ(half_min, read_half_min);
180 const intptr_t read_half_max = reader.ReadSLEB128();
181 EXPECT_EQ(half_max, read_half_max);
182}
183
184}
#define DEFINE_LARGE_CONSTANTS(T)
static constexpr intptr_t kSignedEnd
static constexpr intptr_t kUnsignedEnd