From 051eb1d5a78ac196362fde9b917641ddb4e59c4f Mon Sep 17 00:00:00 2001 From: hugbubby Date: Wed, 25 Jul 2018 16:19:05 -0700 Subject: auto_test fixture and filenames Renamed a poorly named test, fixed up a few printf statements, substituted some unsigned integers with fixed size counterparts, and implemmented the auto_run_test.h fixture for the lossy and lossless packet tests. --- auto_tests/lossless_packet_test.c | 84 ++++++++++----------------------------- 1 file changed, 22 insertions(+), 62 deletions(-) (limited to 'auto_tests/lossless_packet_test.c') diff --git a/auto_tests/lossless_packet_test.c b/auto_tests/lossless_packet_test.c index dfe713a8..dc4dc0b5 100644 --- a/auto_tests/lossless_packet_test.c +++ b/auto_tests/lossless_packet_test.c @@ -16,92 +16,52 @@ #include "../toxcore/util.h" #include "check_compat.h" +typedef struct State { + uint32_t index; + bool custom_packet_received; +} State; + +#include "run_auto_test.h" + #define LOSSLESS_PACKET_FILLER 160 static void handle_lossless_packet(Tox *tox, uint32_t friend_number, const uint8_t *data, size_t length, void *user_data) { + State *state = (State *)user_data; + uint8_t cmp_packet[TOX_MAX_CUSTOM_PACKET_SIZE]; memset(cmp_packet, LOSSLESS_PACKET_FILLER, sizeof(cmp_packet)); if (length == TOX_MAX_CUSTOM_PACKET_SIZE && memcmp(data, cmp_packet, sizeof(cmp_packet)) == 0) { - bool *custom_packet_received = (bool *)user_data; - *custom_packet_received = true; + state->custom_packet_received = true; } } -static void test_lossless_packet(void) +static void test_lossless_packet(Tox **toxes, State *state) { - printf("initialising 2 toxes\n"); - uint32_t index[] = { 1, 2 }; - const time_t cur_time = time(nullptr); - Tox *const tox1 = tox_new_log(nullptr, nullptr, &index[0]); - Tox *const tox2 = tox_new_log(nullptr, nullptr, &index[1]); - - ck_assert_msg(tox1 && tox2, "failed to create 2 tox instances"); - - printf("tox1 adds tox2 as friend, tox2 adds tox1\n"); - uint8_t public_key[TOX_PUBLIC_KEY_SIZE]; - tox_self_get_public_key(tox2, public_key); - tox_friend_add_norequest(tox1, public_key, nullptr); - tox_self_get_public_key(tox1, public_key); - tox_friend_add_norequest(tox2, public_key, nullptr); - - printf("bootstrapping tox2 off tox1\n"); - uint8_t dht_key[TOX_PUBLIC_KEY_SIZE]; - tox_self_get_dht_id(tox1, dht_key); - const uint16_t dht_port = tox_self_get_udp_port(tox1, nullptr); - - tox_bootstrap(tox2, "localhost", dht_port, dht_key, nullptr); - - while (tox_self_get_connection_status(tox1) == TOX_CONNECTION_NONE || - tox_self_get_connection_status(tox2) == TOX_CONNECTION_NONE) { - tox_iterate(tox1, nullptr); - tox_iterate(tox2, nullptr); - - c_sleep(200); - } - - printf("toxes are online, took %ld seconds\n", time(nullptr) - cur_time); - const time_t con_time = time(nullptr); - - while (tox_friend_get_connection_status(tox1, 0, nullptr) != TOX_CONNECTION_UDP || - tox_friend_get_connection_status(tox2, 0, nullptr) != TOX_CONNECTION_UDP) { - tox_iterate(tox1, nullptr); - tox_iterate(tox2, nullptr); - - c_sleep(200); - } - - printf("tox clients connected took %ld seconds\n", time(nullptr) - con_time); - - tox_callback_friend_lossless_packet(tox2, &handle_lossless_packet); + tox_callback_friend_lossless_packet(toxes[1], &handle_lossless_packet); uint8_t packet[TOX_MAX_CUSTOM_PACKET_SIZE + 1]; memset(packet, LOSSLESS_PACKET_FILLER, sizeof(packet)); - bool ret = tox_friend_send_lossless_packet(tox1, 0, packet, sizeof(packet), nullptr); - ck_assert_msg(ret == false, "tox_friend_send_lossless_packet bigger fail %i", ret); - ret = tox_friend_send_lossless_packet(tox1, 0, packet, TOX_MAX_CUSTOM_PACKET_SIZE, nullptr); - ck_assert_msg(ret == true, "tox_friend_send_lossless_packet fail %i", ret); - - bool received_lossless_packet = false; - while (!received_lossless_packet) { - tox_iterate(tox1, nullptr); - tox_iterate(tox2, &received_lossless_packet); + bool ret = tox_friend_send_lossless_packet(toxes[0], 0, packet, sizeof(packet), nullptr); + ck_assert_msg(ret == false, "should not be able to send custom packets this big %i", ret); - c_sleep(200); - } + ret = tox_friend_send_lossless_packet(toxes[0], 0, packet, TOX_MAX_CUSTOM_PACKET_SIZE, nullptr); + ck_assert_msg(ret == true, "tox_friend_send_lossless_packet fail %i", ret); - printf("test_lossless_packet succeeded, took %ld seconds\n", time(nullptr) - cur_time); + while (!state[1].custom_packet_received) { + tox_iterate(toxes[0], nullptr); + tox_iterate(toxes[1], &state[1]); - tox_kill(tox1); - tox_kill(tox2); + c_sleep(ITERATION_INTERVAL); + } } int main(void) { setvbuf(stdout, nullptr, _IONBF, 0); - test_lossless_packet(); + run_auto_test(2, test_lossless_packet); return 0; } -- cgit v1.2.3