From 47d4780eb448f839fc6b0644135395f879080ba4 Mon Sep 17 00:00:00 2001 From: Jesper Jensen Date: Sun, 23 Jul 2023 12:15:34 +0200 Subject: I don't remember --- test/query.c | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 75 insertions(+), 9 deletions(-) (limited to 'test/query.c') diff --git a/test/query.c b/test/query.c index 5744fba..a3d3bb9 100644 --- a/test/query.c +++ b/test/query.c @@ -3,8 +3,18 @@ #include "query.h" #include +#include + +#define IP(a, b, c, d) htonl(a << 24 | b << 16 | c << 8 | d) void test_malformed_empty() { + + struct sockaddr_in src = { + .sin_family = AF_INET, + .sin_addr.s_addr = IP(255, 0, 0, 1), + .sin_port = 6881, + }; + struct nodeid self = {.inner={0x0034048f, 0x08000020, 0x00888880, 0x02008460, 0x0ab00521}}; char* packet = ""; size_t packet_len = 0; @@ -13,12 +23,19 @@ void test_malformed_empty() { char* response_cursor = response; char* response_end = response + sizeof(response); - int rc = handle_request(&self, "ping", packet, packet_len, &response_cursor, response_end-response_cursor); + int rc = handle_request(&self, "ping", (struct sockaddr*)&src, sizeof(src), packet, packet_len, &response_cursor, response_end-response_cursor); TEST_ASSERT_EQUAL(QUERY_EBADQ, rc); } void test_malformed_only_dict_start() { + + struct sockaddr_in src = { + .sin_family = AF_INET, + .sin_addr.s_addr = IP(255, 0, 0, 1), + .sin_port = 6881, + }; + struct nodeid self = {.inner={0x0034048f, 0x08000020, 0x00888880, 0x02008460, 0x0ab00521}}; char* packet = "d"; size_t packet_len = 1; @@ -27,12 +44,19 @@ void test_malformed_only_dict_start() { char* response_cursor = response; char* response_end = response + sizeof(response); - int rc = handle_request(&self, "ping", packet, packet_len, &response_cursor, response_end-response_cursor); + int rc = handle_request(&self, "ping", (struct sockaddr*)&src, sizeof(src), packet, packet_len, &response_cursor, response_end-response_cursor); TEST_ASSERT_EQUAL(QUERY_EBADQ, rc); } void test_malformed_empty_args_key() { + + struct sockaddr_in src = { + .sin_family = AF_INET, + .sin_addr.s_addr = IP(255, 0, 0, 1), + .sin_port = 6881, + }; + struct nodeid self = {.inner={0x0034048f, 0x08000020, 0x00888880, 0x02008460, 0x0ab00521}}; char* packet = "d1:ae"; size_t packet_len = strlen(packet); @@ -41,12 +65,19 @@ void test_malformed_empty_args_key() { char* response_cursor = response; char* response_end = response + sizeof(response); - int rc = handle_request(&self, "ping", packet, packet_len, &response_cursor, response_end-response_cursor); + int rc = handle_request(&self, "ping", (struct sockaddr*)&src, sizeof(src), packet, packet_len, &response_cursor, response_end-response_cursor); TEST_ASSERT_EQUAL(QUERY_EBADQ, rc); } void test_malformed_wrong_args_type() { + + struct sockaddr_in src = { + .sin_family = AF_INET, + .sin_addr.s_addr = IP(255, 0, 0, 1), + .sin_port = 6881, + }; + struct nodeid self = {.inner={0x0034048f, 0x08000020, 0x00888880, 0x02008460, 0x0ab00521}}; char* packet = "d1:a1:re"; size_t packet_len = strlen(packet); @@ -55,12 +86,19 @@ void test_malformed_wrong_args_type() { char* response_cursor = response; char* response_end = response + sizeof(response); - int rc = handle_request(&self, "ping", packet, packet_len, &response_cursor, response_end-response_cursor); + int rc = handle_request(&self, "ping", (struct sockaddr*)&src, sizeof(src), packet, packet_len, &response_cursor, response_end-response_cursor); TEST_ASSERT_EQUAL(QUERY_EBADQ, rc); } void test_malformed_empty_args() { + + struct sockaddr_in src = { + .sin_family = AF_INET, + .sin_addr.s_addr = IP(255, 0, 0, 1), + .sin_port = 6881, + }; + struct nodeid self = {.inner={0x0034048f, 0x08000020, 0x00888880, 0x02008460, 0x0ab00521}}; char* packet = "d1:adee"; size_t packet_len = strlen(packet); @@ -69,12 +107,19 @@ void test_malformed_empty_args() { char* response_cursor = response; char* response_end = response + sizeof(response); - int rc = handle_request(&self, "ping", packet, packet_len, &response_cursor, response_end-response_cursor); + int rc = handle_request(&self, "ping", (struct sockaddr*)&src, sizeof(src), packet, packet_len, &response_cursor, response_end-response_cursor); TEST_ASSERT_EQUAL(QUERY_EBADQ, rc); } void test_malformed_wrong_id_arg_type() { + + struct sockaddr_in src = { + .sin_family = AF_INET, + .sin_addr.s_addr = IP(255, 0, 0, 1), + .sin_port = 6881, + }; + struct nodeid self = {.inner={0x0034048f, 0x08000020, 0x00888880, 0x02008460, 0x0ab00521}}; char* packet = "d1:ad2:idi1eee"; size_t packet_len = strlen(packet); @@ -83,12 +128,19 @@ void test_malformed_wrong_id_arg_type() { char* response_cursor = response; char* response_end = response + sizeof(response); - int rc = handle_request(&self, "ping", packet, packet_len, &response_cursor, response_end-response_cursor); + int rc = handle_request(&self, "ping", (struct sockaddr*)&src, sizeof(src), packet, packet_len, &response_cursor, response_end-response_cursor); TEST_ASSERT_EQUAL(QUERY_EBADQ, rc); } void test_malformed_wrong_id_length() { + + struct sockaddr_in src = { + .sin_family = AF_INET, + .sin_addr.s_addr = IP(255, 0, 0, 1), + .sin_port = 6881, + }; + struct nodeid self = {.inner={0x0034048f, 0x08000020, 0x00888880, 0x02008460, 0x0ab00521}}; char* packet = "d1:ad2:id19:aaaaaaaaaaaaaaaaaaaee"; size_t packet_len = strlen(packet); @@ -97,12 +149,19 @@ void test_malformed_wrong_id_length() { char* response_cursor = response; char* response_end = response + sizeof(response); - int rc = handle_request(&self, "ping", packet, packet_len, &response_cursor, response_end-response_cursor); + int rc = handle_request(&self, "ping", (struct sockaddr*)&src, sizeof(src), packet, packet_len, &response_cursor, response_end-response_cursor); TEST_ASSERT_EQUAL(QUERY_EBADQ, rc); } void test_ping() { + + struct sockaddr_in src = { + .sin_family = AF_INET, + .sin_addr.s_addr = IP(255, 0, 0, 1), + .sin_port = 6881, + }; + struct nodeid self = {.inner_b={"aaaaaaaaaaaaaaaaaaab"}}; char* packet = "d1:ad2:id20:aaaaaaaaaaaaaaaaaaaaee"; size_t packet_len = strlen(packet); @@ -111,7 +170,7 @@ void test_ping() { char* response_cursor = response; char* response_end = response + sizeof(response); - int rc = handle_request(&self, "ping", packet, packet_len, &response_cursor, response_end-response_cursor); + int rc = handle_request(&self, "ping", (struct sockaddr*)&src, sizeof(src), packet, packet_len, &response_cursor, response_end-response_cursor); TEST_ASSERT_EQUAL(0, rc); TEST_ASSERT_EQUAL(29, response_cursor - response); @@ -119,6 +178,13 @@ void test_ping() { } void test_bad_method() { + + struct sockaddr_in src = { + .sin_family = AF_INET, + .sin_addr.s_addr = IP(255, 0, 0, 1), + .sin_port = 6881, + }; + struct nodeid self = {.inner_b={"aaaaaaaaaaaaaaaaaaab"}}; char* packet = "de"; size_t packet_len = strlen(packet); @@ -127,7 +193,7 @@ void test_bad_method() { char* response_cursor = response; char* response_end = response + sizeof(response); - int rc = handle_request(&self, "someWrongMethod", packet, packet_len, &response_cursor, response_end-response_cursor); + int rc = handle_request(&self, "someWrongMethod", (struct sockaddr*)&src, sizeof(src), packet, packet_len, &response_cursor, response_end-response_cursor); TEST_ASSERT_EQUAL(QUERY_EUNK, rc); } -- cgit v1.2.3