diff options
Diffstat (limited to 'Source/testing/socket_test.c')
-rw-r--r-- | Source/testing/socket_test.c | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/Source/testing/socket_test.c b/Source/testing/socket_test.c index e3fbca452..9ae1b0fbc 100644 --- a/Source/testing/socket_test.c +++ b/Source/testing/socket_test.c @@ -26,44 +26,54 @@ #include "socket_test.h" #include <network/socket.h> +#include <utils/logger.h> /* * Description in header file */ void test_socket(protected_tester_t *tester) { - int packet_count = 5; + int packet_count = 10; int current; - socket_t *skt = socket_create(4500); + socket_t *skt = socket_create(500); packet_t *pkt = packet_create(AF_INET); - char *test_string = "Testing functionality of socket_t"; - chunk_t data; - - - data.ptr = malloc(strlen(test_string) + 1); - memcpy(data.ptr,test_string,strlen(test_string) + 1); - data.len = strlen(test_string) + 1; + char test_data[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, /* spi */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, /* spi */ + 0x05, /* next payload */ + 0x20, /* IKE version */ + 0x00, /* exchange type */ + 0x00, /* flags */ + 0x00,0x00,0x00,0x01, /* message id */ + 0x00,0x00,0x00,0x24, /* length */ + 0x12,0x34,0x56,0x67, /* some data */ + 0x12,0x34,0x56,0x67, + }; + chunk_t data = chunk_from_buf(test_data); + chunk_t received; /* send to previously bound socket */ - pkt->set_destination(pkt, host_create(AF_INET, "127.0.0.1", 4500)); - pkt->set_data(pkt, data); + pkt->set_destination(pkt, host_create(AF_INET, "127.0.0.1", 500)); + pkt->set_source(pkt, host_create(AF_INET, "127.0.0.1", 500)); + pkt->set_data(pkt, chunk_clone(data)); /* send packet_count packets */ for (current = 0; current < packet_count; current++) - { + { if (skt->send(skt, pkt) == FAILED) { tester->assert_true(tester, 0, "packet send"); } } pkt->destroy(pkt); + /* receive packet_count packets */ for (current = 0; current < packet_count; current++) { skt->receive(skt, &pkt); - data = pkt->get_data(pkt); - tester->assert_false(tester, strcmp(test_string, data.ptr), "packet exchange"); + received = pkt->get_data(pkt); + tester->assert_false(tester, memcmp(received.ptr, data.ptr, max(received.len, data.len)), "packet exchange"); pkt->destroy(pkt); } |