annotate C++/Tests/Pack/main.cpp @ 290:7433ebe6a8b0

Pack: * Stateful classes * Use << and >> operators for more convenience, * Use PackFileWriter and PackFileReader to write/read a file, * Use PackStringWriter and PackStringReader to write/read a string, * Pack now supports object serialization through Pack::TypeInfo<T>::(un)serialize.
author David Demelier <markand@malikania.fr>
date Thu, 13 Nov 2014 13:08:49 +0100
parents b5d795389387
children 345aaeb5e0ba
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
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
31 inline bool operator==(const Point &other) const
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
32 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
33 return width == other.width && height == other.height;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
34 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
35 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
36
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
37 template <>
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
38 struct Pack::TypeInfo<Point> : public Pack::Serializable
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
39 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
40 static void serialize(PackWriter &writer, const Point &point)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
41 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
42 writer << point.width << point.height;
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 static void unserialize(PackReader &reader, Point &point)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
46 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
47 reader >> point.width >> point.height;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
48 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
49 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
50
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
51 TEST(File, simpleLittleEndian)
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
52 {
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
53 uint8_t u8(1), r8;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
54 uint16_t u16(2), r16;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
55 uint32_t u32(3), r32;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
56 uint64_t u64(4), r64;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
57
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
58 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
59
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
60 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
61 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
62 PackFileWriter writer{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
63 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
64 }
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
65
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
66 PackFileReader reader{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
67 reader >> r8 >> r16 >> r32 >> r64;
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
68
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
69 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
70 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
71 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
72 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
73 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
74 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
75 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
76 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
77
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
78 TEST(File, simpleBigEndian)
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
79 {
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
80 uint8_t u8(1), r8;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
81 uint16_t u16(2), r16;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
82 uint32_t u32(3), r32;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
83 uint64_t u64(4), r64;
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
84
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
85 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
86
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
87 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
88 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
89 PackFileWriter writer{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
90 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
91 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
92
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
93 PackFileReader reader{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
94 reader >> r8 >> r16 >> r32 >> r64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
95
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
96 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
97 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
98 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
99 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
100 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
101 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
102 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
103 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
104
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
105 TEST(File, arrayLittleEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
106 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
107 std::vector<uint8_t> u8 { 1, 2, 3, 4, 5, 6, 7, 8 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
108 std::vector<uint16_t> u16 { 10, 20, 30, 40, 50, 60, 70, 80 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
109 std::vector<uint32_t> u32 { 100, 200, 300, 400, 500, 600, 700, 800 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
110 std::vector<uint64_t> u64 { 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
111
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
112 std::vector<uint8_t> r8(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
113 std::vector<uint16_t> r16(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
114 std::vector<uint32_t> r32(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
115 std::vector<uint64_t> r64(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
116
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
117 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
118
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
119 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
120 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
121 PackFileWriter writer{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
122
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
123 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
124 }
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
125
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
126 PackFileReader reader{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
127
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
128 reader >> r8 >> r16 >> r32 >> r64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
129
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
130 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
131 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
132 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
133 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
134 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
135 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
136 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
137 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
138
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
139 TEST(File, arrayBigEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
140 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
141 std::vector<uint8_t> u8 { 1, 2, 3, 4, 5, 6, 7, 8 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
142 std::vector<uint16_t> u16 { 10, 20, 30, 40, 50, 60, 70, 80 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
143 std::vector<uint32_t> u32 { 100, 200, 300, 400, 500, 600, 700, 800 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
144 std::vector<uint64_t> u64 { 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
145
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
146 std::vector<uint8_t> r8(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
147 std::vector<uint16_t> r16(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
148 std::vector<uint32_t> r32(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
149 std::vector<uint64_t> r64(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
150
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
151 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
152
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
153 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
154 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
155 PackFileWriter writer{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
156
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
157 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
158 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
159
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
160 PackFileReader reader{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
161
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
162 reader >> r8 >> r16 >> r32 >> r64;
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
163
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
164 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
165 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
166 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
167 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
168 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
169 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
170 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
171 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
172
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
173 TEST(File, serializeSimpleLittleEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
174 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
175 Point point{200, 400};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
176 Point result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
177
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
178 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
179
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
180 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
181 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
182 PackFileWriter writer{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
183
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
184 writer << point;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
185 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
186
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
187 PackFileReader reader{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
188
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
189 reader >> result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
190
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
191 ASSERT_EQ(point, result);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
192 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
193 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
194 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
195 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
196
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
197 TEST(File, serializeSimpleBigEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
198 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
199 Point point{200, 400};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
200 Point result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
201
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
202 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
203
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
204 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
205 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
206 PackFileWriter writer{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
207
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
208 writer << point;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
209 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
210
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
211 PackFileReader reader{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
212
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
213 reader >> result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
214
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
215 ASSERT_EQ(point, result);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
216 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
217 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
218 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
219 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
220
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
221 TEST(File, serializeArrayLittleEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
222 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
223 std::vector<Point> points{{10, 20}, {30, 40}};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
224 std::vector<Point> rpoints(2);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
225
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
226 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
227
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
228 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
229 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
230 PackFileWriter writer{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
231
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
232 writer << points;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
233 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
234
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
235 PackFileReader reader{"output.bin", Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
236
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
237 reader >> rpoints;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
238
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
239 ASSERT_EQ(points, rpoints);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
240 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
241 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
242 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
243 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
244
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
245 TEST(File, serializeArrayBigEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
246 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
247 std::vector<Point> points{{10, 20}, {30, 40}};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
248 std::vector<Point> rpoints(2);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
249
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
250 remove("output.bin");
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
251
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
252 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
253 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
254 PackFileWriter writer{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
255
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
256 writer << points;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
257 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
258
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
259 PackFileReader reader{"output.bin", Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
260
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
261 reader >> rpoints;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
262
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
263 ASSERT_EQ(points, rpoints);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
264 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
265 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
266 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
267 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
268
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
269 TEST(String, simpleLittleEndian)
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
270 {
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
271 uint8_t u8(1), r8;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
272 uint16_t u16(2), r16;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
273 uint32_t u32(3), r32;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
274 uint64_t u64(4), r64;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
275
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
276 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
277 std::string input;
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
278
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
279 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
280 PackStringWriter writer{Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
281 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
282 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
283 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
284
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
285 PackStringReader reader{std::move(input), Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
286 reader >> r8 >> r16 >> r32 >> r64;
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
287
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
288 ASSERT_EQ(u8, r8);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
289 ASSERT_EQ(u16, r16);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
290 ASSERT_EQ(u32, r32);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
291 ASSERT_EQ(u64, r64);
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
292 } catch (const std::exception &error) {
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
293 FAIL() << error.what();
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
294 }
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
295 }
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
296
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
297 TEST(String, simpleBigEndian)
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
298 {
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
299 uint8_t u8(1), r8;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
300 uint16_t u16(2), r16;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
301 uint32_t u32(3), r32;
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
302 uint64_t u64(4), r64;
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 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
305 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
306
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
307 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
308 PackStringWriter writer{Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
309 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
310 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
311 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
312
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
313 PackStringReader reader{std::move(input), Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
314 reader >> r8 >> r16 >> r32 >> r64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
315
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
316 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
317 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
318 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
319 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
320 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
321 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
322 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
323 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
324
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
325 TEST(String, arrayLittleEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
326 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
327 std::vector<uint8_t> u8 { 1, 2, 3, 4, 5, 6, 7, 8 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
328 std::vector<uint16_t> u16 { 10, 20, 30, 40, 50, 60, 70, 80 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
329 std::vector<uint32_t> u32 { 100, 200, 300, 400, 500, 600, 700, 800 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
330 std::vector<uint64_t> u64 { 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
331
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
332 std::vector<uint8_t> r8(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
333 std::vector<uint16_t> r16(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
334 std::vector<uint32_t> r32(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
335 std::vector<uint64_t> r64(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
336
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
337 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
338 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
339
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
340 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
341 PackStringWriter writer{Pack::Little};
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
342
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
343 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
344 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
345 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
346
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
347 PackStringReader reader{std::move(input), Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
348
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
349 reader >> r8 >> r16 >> r32 >> r64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
350
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
351 ASSERT_EQ(u8, r8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
352 ASSERT_EQ(u16, r16);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
353 ASSERT_EQ(u32, r32);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
354 ASSERT_EQ(u64, r64);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
355 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
356 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
357 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
358 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
359
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
360 TEST(String, arrayBigEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
361 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
362 std::vector<uint8_t> u8 { 1, 2, 3, 4, 5, 6, 7, 8 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
363 std::vector<uint16_t> u16 { 10, 20, 30, 40, 50, 60, 70, 80 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
364 std::vector<uint32_t> u32 { 100, 200, 300, 400, 500, 600, 700, 800 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
365 std::vector<uint64_t> u64 { 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000 };
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
366
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
367 std::vector<uint8_t> r8(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
368 std::vector<uint16_t> r16(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
369 std::vector<uint32_t> r32(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
370 std::vector<uint64_t> r64(8);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
371
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
372 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
373 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
374
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
375 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
376 PackStringWriter writer{Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
377
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
378 writer << u8 << u16 << u32 << u64;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
379 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
380 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
381
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
382 PackStringReader reader{std::move(input), Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
383
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
384 reader >> r8 >> r16 >> r32 >> r64;
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
385
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
386 ASSERT_EQ(u8, r8);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
387 ASSERT_EQ(u16, r16);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
388 ASSERT_EQ(u32, r32);
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
389 ASSERT_EQ(u64, r64);
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
390 } catch (const std::exception &error) {
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
391 FAIL() << error.what();
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
392 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
393 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
394
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
395 TEST(String, serializeSimpleLittleEndian)
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
396 {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
397 Point point{200, 400};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
398 Point result;
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
399
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
400 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
401 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
402
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
403 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
404 PackStringWriter writer{Pack::Little};
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
405
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
406 writer << point;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
407 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
408 }
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
409
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
410 PackStringReader reader{std::move(input), Pack::Little};
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
411
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
412 reader >> result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
413
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
414 ASSERT_EQ(point, result);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
415 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
416 std::cerr << "warning: " << ex.what() << std::endl;
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
417 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
418 }
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
419
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
420 TEST(String, serializeSimpleBigEndian)
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
421 {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
422 Point point{200, 400};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
423 Point result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
424
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
425 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
426 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
427
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
428 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
429 PackStringWriter writer{Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
430
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
431 writer << point;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
432 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
433 }
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
434
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
435 PackStringReader reader{std::move(input), Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
436
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
437 reader >> result;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
438
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
439 ASSERT_EQ(point, result);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
440 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
441 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
442 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
443 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
444
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
445 TEST(String, serializeArrayLittleEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
446 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
447 std::vector<Point> points{{10, 20}, {30, 40}};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
448 std::vector<Point> rpoints(2);
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
449
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
450 try {
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
451 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
452
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
453 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
454 PackStringWriter writer{Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
455
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
456 writer << points;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
457 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
458 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
459
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
460 PackStringReader reader{std::move(input), Pack::Little};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
461
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
462 reader >> rpoints;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
463
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
464 ASSERT_EQ(points, rpoints);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
465 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
466 std::cerr << "warning: " << ex.what() << std::endl;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
467 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
468 }
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
469
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
470 TEST(String, serializeArrayBigEndian)
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
471 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
472 std::vector<Point> points{{10, 20}, {30, 40}};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
473 std::vector<Point> rpoints(2);
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
474
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
475 try {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
476 std::string input;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
477
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
478 {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
479 PackStringWriter writer{Pack::Big};
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
480
290
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
481 writer << points;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
482 input = writer.buffer();
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
483 }
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
484
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
485 PackStringReader reader{std::move(input), Pack::Big};
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
486
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
487 reader >> rpoints;
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
488
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
489 ASSERT_EQ(points, rpoints);
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
490 } catch (const std::exception &ex) {
David Demelier <markand@malikania.fr>
parents: 268
diff changeset
491 std::cerr << "warning: " << ex.what() << std::endl;
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
492 }
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
493 }
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
494
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
495 int main(int argc, char **argv)
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
496 {
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
497 testing::InitGoogleTest(&argc, argv);
223
c6513d9c696b Pack: add unit tests
David Demelier <markand@malikania.fr>
parents:
diff changeset
498
249
3b4ae8feca1c Switch to GoogleTest finished #285
David Demelier <markand@malikania.fr>
parents: 223
diff changeset
499 return RUN_ALL_TESTS();
268
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
500 }