summaryrefslogtreecommitdiff
path: root/auto_tests
diff options
context:
space:
mode:
authorhugbubby <hugbubby@protonmail.com>2018-06-20 00:33:19 -0700
committeriphydf <iphydf@users.noreply.github.com>2018-06-20 22:11:08 +0000
commit820e45dece09f210c141c336eb9e4bf2743b223b (patch)
tree1e4cc8a1397280d887dec06d97c5c24d61a9a070 /auto_tests
parent2296d07e0963bcf4e0a13db51c6d11b294f941ab (diff)
Better TCP testing (beginnings)
Tests all ports instead of just one, also adds some comments/changes error messages to be more descriptive
Diffstat (limited to 'auto_tests')
-rw-r--r--auto_tests/TCP_test.c31
1 files changed, 21 insertions, 10 deletions
diff --git a/auto_tests/TCP_test.c b/auto_tests/TCP_test.c
index 8b61c4b1..61a187d1 100644
--- a/auto_tests/TCP_test.c
+++ b/auto_tests/TCP_test.c
@@ -49,20 +49,31 @@ static uint16_t ports[NUM_PORTS] = {1234, 33445, 25643};
49 49
50START_TEST(test_basic) 50START_TEST(test_basic)
51{ 51{
52 // Attempt to create a new TCP_Server instance.
52 uint8_t self_public_key[CRYPTO_PUBLIC_KEY_SIZE]; 53 uint8_t self_public_key[CRYPTO_PUBLIC_KEY_SIZE];
53 uint8_t self_secret_key[CRYPTO_SECRET_KEY_SIZE]; 54 uint8_t self_secret_key[CRYPTO_SECRET_KEY_SIZE];
54 crypto_new_keypair(self_public_key, self_secret_key); 55 crypto_new_keypair(self_public_key, self_secret_key);
55 TCP_Server *tcp_s = new_TCP_server(USE_IPV6, NUM_PORTS, ports, self_secret_key, nullptr); 56 TCP_Server *tcp_s = new_TCP_server(USE_IPV6, NUM_PORTS, ports, self_secret_key, nullptr);
56 ck_assert_msg(tcp_s != nullptr, "Failed to create TCP relay server"); 57 ck_assert_msg(tcp_s != nullptr, "Failed to create a TCP relay server");
57 ck_assert_msg(tcp_server_listen_count(tcp_s) == NUM_PORTS, "Failed to bind to all ports"); 58 ck_assert_msg(tcp_server_listen_count(tcp_s) == NUM_PORTS,
59 "Failed to bind a TCP relay server to all %d attempted ports", NUM_PORTS);
58 60
59 Socket sock = net_socket(net_family_ipv6, TOX_SOCK_STREAM, TOX_PROTO_TCP); 61 Socket sock;
60 IP_Port ip_port_loopback;
61 ip_port_loopback.ip = get_loopback();
62 ip_port_loopback.port = net_htons(ports[random_u32() % NUM_PORTS]);
63 62
64 int ret = net_connect(sock, ip_port_loopback); 63 // Check all opened ports for connectivity.
65 ck_assert_msg(ret == 0, "Failed to connect to TCP relay server"); 64 for (uint8_t i = 0; i < NUM_PORTS; i++) {
65 sock = net_socket(net_family_ipv6, TOX_SOCK_STREAM, TOX_PROTO_TCP);
66 IP_Port ip_port_loopback;
67 ip_port_loopback.ip = get_loopback();
68 ip_port_loopback.port = net_htons(ports[i]);
69 int ret = net_connect(sock, ip_port_loopback);
70 ck_assert_msg(ret == 0, "Failed to connect to created TCP relay server on port %d", ports[i]);
71
72 // Leave open one connection for the next test.
73 if (i + 1 < NUM_PORTS) {
74 kill_sock(sock);
75 }
76 }
66 77
67 uint8_t f_public_key[CRYPTO_PUBLIC_KEY_SIZE]; 78 uint8_t f_public_key[CRYPTO_PUBLIC_KEY_SIZE];
68 uint8_t f_secret_key[CRYPTO_SECRET_KEY_SIZE]; 79 uint8_t f_secret_key[CRYPTO_SECRET_KEY_SIZE];
@@ -78,8 +89,8 @@ START_TEST(test_basic)
78 memcpy(handshake, f_public_key, CRYPTO_PUBLIC_KEY_SIZE); 89 memcpy(handshake, f_public_key, CRYPTO_PUBLIC_KEY_SIZE);
79 random_nonce(handshake + CRYPTO_PUBLIC_KEY_SIZE); 90 random_nonce(handshake + CRYPTO_PUBLIC_KEY_SIZE);
80 91
81 ret = encrypt_data(self_public_key, f_secret_key, handshake + CRYPTO_PUBLIC_KEY_SIZE, handshake_plain, 92 int ret = encrypt_data(self_public_key, f_secret_key, handshake + CRYPTO_PUBLIC_KEY_SIZE, handshake_plain,
82 TCP_HANDSHAKE_PLAIN_SIZE, handshake + CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE); 93 TCP_HANDSHAKE_PLAIN_SIZE, handshake + CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE);
83 ck_assert_msg(ret == TCP_CLIENT_HANDSHAKE_SIZE - (CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE), 94 ck_assert_msg(ret == TCP_CLIENT_HANDSHAKE_SIZE - (CRYPTO_PUBLIC_KEY_SIZE + CRYPTO_NONCE_SIZE),
84 "Encrypt failed."); 95 "Encrypt failed.");
85 ck_assert_msg(net_send(sock, handshake, TCP_CLIENT_HANDSHAKE_SIZE - 1) == TCP_CLIENT_HANDSHAKE_SIZE - 1, 96 ck_assert_msg(net_send(sock, handshake, TCP_CLIENT_HANDSHAKE_SIZE - 1) == TCP_CLIENT_HANDSHAKE_SIZE - 1,