diff options
author | zugz (tox) <mbays+tox@sdf.org> | 2018-09-09 23:21:20 +0200 |
---|---|---|
committer | zugz (tox) <mbays+tox@sdf.org> | 2018-10-20 11:03:10 +0200 |
commit | 744dc2f5da2c54ad1e4d7d6ce229bc1756d81263 (patch) | |
tree | 35f6590fe3150118bc6b1336fbb0a7db06543668 /auto_tests | |
parent | aa5c7828802b3fcaedfd8d6fe9a08ca714b9aa2b (diff) |
Make saving and loading the responsibility of Tox rather than Messenger
Diffstat (limited to 'auto_tests')
-rw-r--r-- | auto_tests/messenger_test.c | 43 |
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 | } |
266 | END_TEST | 266 | END_TEST |
267 | 267 | ||
268 | START_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 | } | ||
308 | END_TEST | ||
309 | |||
310 | static Suite *messenger_suite(void) | 268 | static 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); |