]>
git.ipfire.org Git - thirdparty/strongswan.git/blob - Source/testing/socket_test.c
4 * @brief Tests for the socket_t class.
9 * Copyright (C) 2005 Jan Hutter, Martin Willi
10 * Hochschule fuer Technik Rapperswil
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License as published by the
14 * Free Software Foundation; either version 2 of the License, or (at your
15 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
19 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
26 #include "socket_test.h"
28 #include <network/socket.h>
29 #include <utils/logger.h>
32 * Description in header file
34 void test_socket(protected_tester_t
*tester
)
36 int packet_count
= 10;
38 socket_t
*skt
= socket_create(500);
39 packet_t
*pkt
= packet_create(AF_INET
);
41 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, /* spi */
42 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05, /* spi */
43 0x05, /* next payload */
44 0x20, /* IKE version */
45 0x00, /* exchange type */
47 0x00,0x00,0x00,0x01, /* message id */
48 0x00,0x00,0x00,0x24, /* length */
49 0x12,0x34,0x56,0x67, /* some data */
52 chunk_t data
= chunk_from_buf(test_data
);
55 /* send to previously bound socket */
56 pkt
->set_destination(pkt
, host_create(AF_INET
, "127.0.0.1", 500));
57 pkt
->set_source(pkt
, host_create(AF_INET
, "127.0.0.1", 500));
58 pkt
->set_data(pkt
, chunk_clone(data
));
60 /* send packet_count packets */
61 for (current
= 0; current
< packet_count
; current
++)
63 if (skt
->send(skt
, pkt
) == FAILED
)
65 tester
->assert_true(tester
, 0, "packet send");
71 /* receive packet_count packets */
72 for (current
= 0; current
< packet_count
; current
++)
74 skt
->receive(skt
, &pkt
);
75 received
= pkt
->get_data(pkt
);
76 tester
->assert_false(tester
, memcmp(received
.ptr
, data
.ptr
, max(received
.len
, data
.len
)), "packet exchange");