annotate C++/Tests/Pack/main.cpp @ 295:345aaeb5e0ba

Pack: fix constexpr can't be used on void return types
author David Demelier <markand@malikania.fr>
date Thu, 13 Nov 2014 21:07:48 +0100
parents 7433ebe6a8b0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * TestPack.cpp -- test the pack serializer
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013, 2014 David Demelier <markand@malikania.fr>
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
19 #include <sstream>
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
20 #include <vector>
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
21
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
22 #include <gtest/gtest.h>
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 #include <Pack.h>
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
26 struct Point
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
27 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
28 uint32_t width{};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
29 uint32_t height{};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
30
295
345aaeb5e0ba Pack: fix constexpr can't be used on void return types
David Demelier <markand@malikania.fr>
parents: 290
diff changeset
31 Point() = default;
345aaeb5e0ba Pack: fix constexpr can't be used on void return types
David Demelier <markand@malikania.fr>
parents: 290
diff changeset
32
345aaeb5e0ba Pack: fix constexpr can't be used on void return types
David Demelier <markand@malikania.fr>
parents: 290
diff changeset
33 Point(uint32_t width, uint32_t height)
345aaeb5e0ba Pack: fix constexpr can't be used on void return types
David Demelier <markand@malikania.fr>
parents: 290
diff changeset
34 : width(width)
345aaeb5e0ba Pack: fix constexpr can't be used on void return types
David Demelier <markand@malikania.fr>
parents: 290
diff changeset
35 , height(height)
345aaeb5e0ba Pack: fix constexpr can't be used on void return types
David Demelier <markand@malikania.fr>
parents: 290
diff changeset
36 {
345aaeb5e0ba Pack: fix constexpr can't be used on void return types
David Demelier <markand@malikania.fr>
parents: 290
diff changeset
37 }
345aaeb5e0ba Pack: fix constexpr can't be used on void return types
David Demelier <markand@malikania.fr>
parents: 290
diff changeset
38
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
39 inline bool operator==(const Point &other) const
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
40 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
41 return width == other.width && height == other.height;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
42 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
43 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
44
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
45 template <>
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
46 struct Pack::TypeInfo<Point> : public Pack::Serializable
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
47 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
48 static void serialize(PackWriter &writer, const Point &point)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
49 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
50 writer << point.width << point.height;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
51 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
52
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
53 static void unserialize(PackReader &reader, Point &point)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
54 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
55 reader >> point.width >> point.height;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
56 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
57 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
58
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
59 TEST(File, simpleLittleEndian)
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
60 {
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
61 uint8_t u8(1), r8;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
62 uint16_t u16(2), r16;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
63 uint32_t u32(3), r32;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
64 uint64_t u64(4), r64;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
65
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
66 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
67
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
68 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
69 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
70 PackFileWriter writer{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
71 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
72 }
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
73
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
74 PackFileReader reader{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
75 reader >> r8 >> r16 >> r32 >> r64;
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
76
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
77 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
78 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
79 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
80 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
81 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
82 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
83 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
84 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
85
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
86 TEST(File, simpleBigEndian)
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
87 {
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
88 uint8_t u8(1), r8;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
89 uint16_t u16(2), r16;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
90 uint32_t u32(3), r32;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
91 uint64_t u64(4), r64;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
92
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
93 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
94
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
95 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
96 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
97 PackFileWriter writer{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
98 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
99 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
100
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
101 PackFileReader reader{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
102 reader >> r8 >> r16 >> r32 >> r64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
103
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
104 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
105 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
106 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
107 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
108 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
109 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
110 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
111 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
112
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
113 TEST(File, arrayLittleEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
114 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
115 std::vector<uint8_t> u8 { 1, 2, 3, 4, 5, 6, 7, 8 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
116 std::vector<uint16_t> u16 { 10, 20, 30, 40, 50, 60, 70, 80 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
117 std::vector<uint32_t> u32 { 100, 200, 300, 400, 500, 600, 700, 800 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
118 std::vector<uint64_t> u64 { 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
119
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
120 std::vector<uint8_t> r8(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
121 std::vector<uint16_t> r16(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
122 std::vector<uint32_t> r32(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
123 std::vector<uint64_t> r64(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
124
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
125 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
126
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
127 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
128 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
129 PackFileWriter writer{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
130
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
131 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
132 }
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
133
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
134 PackFileReader reader{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
135
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
136 reader >> r8 >> r16 >> r32 >> r64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
137
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
138 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
139 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
140 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
141 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
142 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
143 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
144 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
145 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
146
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
147 TEST(File, arrayBigEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
148 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
149 std::vector<uint8_t> u8 { 1, 2, 3, 4, 5, 6, 7, 8 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
150 std::vector<uint16_t> u16 { 10, 20, 30, 40, 50, 60, 70, 80 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
151 std::vector<uint32_t> u32 { 100, 200, 300, 400, 500, 600, 700, 800 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
152 std::vector<uint64_t> u64 { 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
153
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
154 std::vector<uint8_t> r8(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
155 std::vector<uint16_t> r16(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
156 std::vector<uint32_t> r32(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
157 std::vector<uint64_t> r64(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
158
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
159 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
160
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
161 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
162 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
163 PackFileWriter writer{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
164
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
165 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
166 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
167
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
168 PackFileReader reader{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
169
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
170 reader >> r8 >> r16 >> r32 >> r64;
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
171
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
172 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
173 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
174 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
175 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
176 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
177 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
178 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
179 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
180
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
181 TEST(File, serializeSimpleLittleEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
182 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
183 Point point{200, 400};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
184 Point result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
185
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
186 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
187
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
188 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
189 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
190 PackFileWriter writer{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
191
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
192 writer << point;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
193 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
194
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
195 PackFileReader reader{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
196
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
197 reader >> result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
198
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
199 ASSERT_EQ(point, result);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
200 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
201 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
202 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
203 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
204
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
205 TEST(File, serializeSimpleBigEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
206 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
207 Point point{200, 400};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
208 Point result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
209
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
210 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
211
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
212 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
213 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
214 PackFileWriter writer{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
215
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
216 writer << point;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
217 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
218
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
219 PackFileReader reader{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
220
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
221 reader >> result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
222
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
223 ASSERT_EQ(point, result);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
224 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
225 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
226 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
227 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
228
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
229 TEST(File, serializeArrayLittleEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
230 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
231 std::vector<Point> points{{10, 20}, {30, 40}};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
232 std::vector<Point> rpoints(2);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
233
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
234 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
235
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
236 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
237 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
238 PackFileWriter writer{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
239
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
240 writer << points;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
241 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
242
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
243 PackFileReader reader{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
244
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
245 reader >> rpoints;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
246
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
247 ASSERT_EQ(points, rpoints);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
248 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
249 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
250 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
251 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
252
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
253 TEST(File, serializeArrayBigEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
254 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
255 std::vector<Point> points{{10, 20}, {30, 40}};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
256 std::vector<Point> rpoints(2);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
257
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
258 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
259
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
260 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
261 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
262 PackFileWriter writer{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
263
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
264 writer << points;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
265 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
266
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
267 PackFileReader reader{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
268
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
269 reader >> rpoints;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
270
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
271 ASSERT_EQ(points, rpoints);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
272 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
273 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
274 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
275 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
276
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
277 TEST(String, simpleLittleEndian)
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
278 {
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
279 uint8_t u8(1), r8;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
280 uint16_t u16(2), r16;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
281 uint32_t u32(3), r32;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
282 uint64_t u64(4), r64;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
283
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
285 std::string input;
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
286
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
287 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
288 PackStringWriter writer{Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
289 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
290 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
291 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
292
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
293 PackStringReader reader{std::move(input), Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
294 reader >> r8 >> r16 >> r32 >> r64;
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
295
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
296 ASSERT_EQ(u8, r8);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
297 ASSERT_EQ(u16, r16);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
298 ASSERT_EQ(u32, r32);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
299 ASSERT_EQ(u64, r64);
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
300 } catch (const std::exception &error) {
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
301 FAIL() << error.what();
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
302 }
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
303 }
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
304
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
305 TEST(String, simpleBigEndian)
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
306 {
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
307 uint8_t u8(1), r8;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
308 uint16_t u16(2), r16;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
309 uint32_t u32(3), r32;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
310 uint64_t u64(4), r64;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
311
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
312 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
313 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
314
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
315 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
316 PackStringWriter writer{Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
317 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
318 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
319 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
320
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
321 PackStringReader reader{std::move(input), Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
322 reader >> r8 >> r16 >> r32 >> r64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
323
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
324 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
325 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
326 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
327 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
328 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
329 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
330 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
331 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
332
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
333 TEST(String, arrayLittleEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
334 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
335 std::vector<uint8_t> u8 { 1, 2, 3, 4, 5, 6, 7, 8 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
336 std::vector<uint16_t> u16 { 10, 20, 30, 40, 50, 60, 70, 80 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
337 std::vector<uint32_t> u32 { 100, 200, 300, 400, 500, 600, 700, 800 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
338 std::vector<uint64_t> u64 { 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
339
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
340 std::vector<uint8_t> r8(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
341 std::vector<uint16_t> r16(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
342 std::vector<uint32_t> r32(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
343 std::vector<uint64_t> r64(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
344
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
345 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
346 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
347
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
348 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
349 PackStringWriter writer{Pack::Little};
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
350
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
351 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
352 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
353 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
354
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
355 PackStringReader reader{std::move(input), Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
356
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
357 reader >> r8 >> r16 >> r32 >> r64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
358
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
359 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
360 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
361 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
362 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
363 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
364 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
365 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
366 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
367
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
368 TEST(String, arrayBigEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
369 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
370 std::vector<uint8_t> u8 { 1, 2, 3, 4, 5, 6, 7, 8 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
371 std::vector<uint16_t> u16 { 10, 20, 30, 40, 50, 60, 70, 80 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
372 std::vector<uint32_t> u32 { 100, 200, 300, 400, 500, 600, 700, 800 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
373 std::vector<uint64_t> u64 { 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
374
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
375 std::vector<uint8_t> r8(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
376 std::vector<uint16_t> r16(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
377 std::vector<uint32_t> r32(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
378 std::vector<uint64_t> r64(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
379
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
380 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
381 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
382
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
383 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
384 PackStringWriter writer{Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
385
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
386 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
387 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
388 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
389
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
390 PackStringReader reader{std::move(input), Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
391
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
392 reader >> r8 >> r16 >> r32 >> r64;
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
393
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
394 ASSERT_EQ(u8, r8);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
395 ASSERT_EQ(u16, r16);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
396 ASSERT_EQ(u32, r32);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
397 ASSERT_EQ(u64, r64);
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
398 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
399 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
400 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
401 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
402
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
403 TEST(String, serializeSimpleLittleEndian)
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
404 {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
405 Point point{200, 400};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
406 Point result;
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
407
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
408 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
409 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
410
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
411 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
412 PackStringWriter writer{Pack::Little};
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
413
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
414 writer << point;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
415 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
416 }
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
417
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
418 PackStringReader reader{std::move(input), Pack::Little};
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
419
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
420 reader >> result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
421
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
422 ASSERT_EQ(point, result);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
423 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
424 std::cerr << "warning: " << ex.what() << std::endl;
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
425 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
426 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
427
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
428 TEST(String, serializeSimpleBigEndian)
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
429 {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
430 Point point{200, 400};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
431 Point result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
432
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
433 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
434 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
435
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
436 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
437 PackStringWriter writer{Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
438
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
439 writer << point;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
440 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
441 }
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
442
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
443 PackStringReader reader{std::move(input), Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
444
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
445 reader >> result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
446
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
447 ASSERT_EQ(point, result);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
448 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
449 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
450 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
451 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
452
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
453 TEST(String, serializeArrayLittleEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
454 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
455 std::vector<Point> points{{10, 20}, {30, 40}};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
456 std::vector<Point> rpoints(2);
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
457
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
458 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
459 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
460
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
461 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
462 PackStringWriter writer{Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
463
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
464 writer << points;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
465 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
466 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
467
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
468 PackStringReader reader{std::move(input), Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
469
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
470 reader >> rpoints;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
471
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
472 ASSERT_EQ(points, rpoints);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
473 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
474 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
475 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
476 }
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
477
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
478 TEST(String, serializeArrayBigEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
479 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
480 std::vector<Point> points{{10, 20}, {30, 40}};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
481 std::vector<Point> rpoints(2);
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
482
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
483 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
484 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
485
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
486 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
487 PackStringWriter writer{Pack::Big};
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
488
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
489 writer << points;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
490 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
491 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
492
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
493 PackStringReader reader{std::move(input), Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
494
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
495 reader >> rpoints;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
496
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
497 ASSERT_EQ(points, rpoints);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
498 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
499 std::cerr << "warning: " << ex.what() << std::endl;
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
500 }
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
501 }
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
502
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
503 int main(int argc, char **argv)
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
504 {
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
505 testing::InitGoogleTest(&argc, argv);
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
506
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
507 return RUN_ALL_TESTS();
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
508 }