summaryrefslogtreecommitdiff
path: root/auto_tests
diff options
context:
space:
mode:
authorzugz (tox) <mbays+tox@sdf.org>2018-09-09 23:21:20 +0200
committerzugz (tox) <mbays+tox@sdf.org>2018-10-20 11:03:10 +0200
commit744dc2f5da2c54ad1e4d7d6ce229bc1756d81263 (patch)
tree35f6590fe3150118bc6b1336fbb0a7db06543668 /auto_tests
parentaa5c7828802b3fcaedfd8d6fe9a08ca714b9aa2b (diff)
Make saving and loading the responsibility of Tox rather than Messenger
Diffstat (limited to 'auto_tests')
-rw-r--r--auto_tests/messenger_test.c43
1 files changed, 0 insertions, 43 deletions
diff --git a/auto_tests/messenger_test.c b/auto_tests/messenger_test.c
index dd644e50..e885e652 100644
--- a/auto_tests/messenger_test.c
+++ b/auto_tests/messenger_test.c
@@ -265,54 +265,11 @@ START_TEST(test_dht_state_saveloadsave)
265} 265}
266END_TEST 266END_TEST
267 267
268START_TEST(test_messenger_state_saveloadsave)
269{
270 /* validate that:
271 * a) saving stays within the confined space
272 * b) a save()d state can be load()ed back successfully
273 * c) a second save() is of equal size
274 * d) the second save() is of equal content */
275 const size_t extra = 64;
276 const size_t size = messenger_size(m);
277 VLA(uint8_t, buffer, size + 2 * extra);
278 memset(buffer, 0xCD, extra);
279 memset(buffer + extra + size, 0xCD, extra);
280 messenger_save(m, buffer + extra);
281
282 for (size_t i = 0; i < extra; i++) {
283 ck_assert_msg(buffer[i] == 0xCD, "Buffer underwritten from messenger_save() @%u", (unsigned)i);
284 ck_assert_msg(buffer[extra + size + i] == 0xCD, "Buffer overwritten from messenger_save() @%u", (unsigned)i);
285 }
286
287 const int res = messenger_load(m, buffer + extra, size);
288
289 if (res == -1) {
290 ck_assert_msg(res == 0, "Failed to load back stored buffer: res == -1");
291 } else {
292 const size_t offset = res >> 4;
293 const uint8_t *ptr = buffer + extra + offset;
294 ck_assert_msg(res == 0, "Failed to load back stored buffer: 0x%02x%02x%02x%02x%02x%02x%02x%02x @%u/%u, code %d",
295 ptr[-2], ptr[-1], ptr[0], ptr[1], ptr[2], ptr[3], ptr[4], ptr[5],
296 (unsigned)offset, (unsigned)size, res & 0x0F);
297 }
298
299 const size_t size2 = messenger_size(m);
300 ck_assert_msg(size == size2, "Messenger \"grew\" in size from a store/load cycle: %u -> %u",
301 (unsigned)size, (unsigned)size2);
302
303 VLA(uint8_t, buffer2, size2);
304 messenger_save(m, buffer2);
305
306 ck_assert_msg(!memcmp(buffer + extra, buffer2, size), "Messenger state changed by store/load/store cycle");
307}
308END_TEST
309
310static Suite *messenger_suite(void) 268static Suite *messenger_suite(void)
311{ 269{
312 Suite *s = suite_create("Messenger"); 270 Suite *s = suite_create("Messenger");
313 271
314 DEFTESTCASE(dht_state_saveloadsave); 272 DEFTESTCASE(dht_state_saveloadsave);
315 DEFTESTCASE(messenger_state_saveloadsave);
316 273
317 DEFTESTCASE(getself_name); 274 DEFTESTCASE(getself_name);
318 DEFTESTCASE(m_get_userstatus_size); 275 DEFTESTCASE(m_get_userstatus_size);