diff options
| author | Jesper Jensen <jesper@jnsn.dev> | 2023-07-23 12:15:34 +0200 |
|---|---|---|
| committer | Jesper Jensen <jesper@jnsn.dev> | 2025-04-12 10:21:20 +0200 |
| commit | 47d4780eb448f839fc6b0644135395f879080ba4 (patch) | |
| tree | 2c9a84bf45a4b8af5411331db50173fc5a34f630 /test/query.c | |
| parent | 3515701479fe04f73e9194ee3074457bb85030f6 (diff) | |
I don't remember
Diffstat (limited to 'test/query.c')
| -rw-r--r-- | test/query.c | 84 |
1 files changed, 75 insertions, 9 deletions
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 <string.h> +#include <arpa/inet.h> + +#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); } |
