Skip to content

Commit 6d5b9e3

Browse files
update test cases
1 parent e917343 commit 6d5b9e3

File tree

2 files changed

+599
-13
lines changed

2 files changed

+599
-13
lines changed

code/tests/cases/test_network.c

Lines changed: 199 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,15 @@ FOSSIL_TEST_CASE(c_test_network_init) {
5151

5252
FOSSIL_TEST_CASE(c_test_network_create_socket) {
5353
fossil_io_network_create();
54-
fossil_io_socket_t sock = fossil_io_network_create_socket();
54+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_TCP);
5555
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
5656
fossil_io_network_close(sock);
5757
fossil_io_network_destroy();
5858
}
5959

6060
FOSSIL_TEST_CASE(c_test_network_bind) {
6161
fossil_io_network_create();
62-
fossil_io_socket_t sock = fossil_io_network_create_socket();
62+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_TCP);
6363
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
6464
int result = fossil_io_network_bind(sock, "127.0.0.1", 8080);
6565
ASSUME_ITS_EQUAL_I32(0, result);
@@ -69,7 +69,7 @@ FOSSIL_TEST_CASE(c_test_network_bind) {
6969

7070
FOSSIL_TEST_CASE(c_test_network_listen) {
7171
fossil_io_network_create();
72-
fossil_io_socket_t sock = fossil_io_network_create_socket();
72+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_TCP);
7373
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
7474
fossil_io_network_bind(sock, "127.0.0.1", 8080);
7575
int result = fossil_io_network_listen(sock, 5);
@@ -80,13 +80,192 @@ FOSSIL_TEST_CASE(c_test_network_listen) {
8080

8181
FOSSIL_TEST_CASE(c_test_network_close) {
8282
fossil_io_network_create();
83-
fossil_io_socket_t sock = fossil_io_network_create_socket();
83+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_TCP);
8484
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
8585
fossil_io_network_close(sock);
8686
// No direct way to test close, but we assume no errors if it reaches here
8787
fossil_io_network_destroy();
8888
}
8989

90+
FOSSIL_TEST_CASE(c_test_network_create_udp_socket) {
91+
fossil_io_network_create();
92+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_UDP);
93+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
94+
fossil_io_network_close(sock);
95+
fossil_io_network_destroy();
96+
}
97+
98+
FOSSIL_TEST_CASE(c_test_network_bind_udp) {
99+
fossil_io_network_create();
100+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_UDP);
101+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
102+
int result = fossil_io_network_bind(sock, "127.0.0.1", 8081);
103+
ASSUME_ITS_EQUAL_I32(0, result);
104+
fossil_io_network_close(sock);
105+
fossil_io_network_destroy();
106+
}
107+
108+
FOSSIL_TEST_CASE(c_test_network_sendto_udp) {
109+
fossil_io_network_create();
110+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_UDP);
111+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
112+
const char *message = "Hello, UDP!";
113+
int bytes_sent = fossil_io_network_sendto(sock, message, strlen(message), "127.0.0.1", 8081);
114+
ASSUME_ITS_EQUAL_I32((int)strlen(message), bytes_sent);
115+
fossil_io_network_close(sock);
116+
fossil_io_network_destroy();
117+
}
118+
119+
FOSSIL_TEST_CASE(c_test_network_recvfrom_udp) {
120+
fossil_io_network_create();
121+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_UDP);
122+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
123+
fossil_io_network_bind(sock, "127.0.0.1", 8081);
124+
125+
char buffer[256];
126+
char sender_ip[INET_ADDRSTRLEN];
127+
uint16_t sender_port;
128+
int bytes_received = fossil_io_network_recvfrom(sock, buffer, sizeof(buffer), sender_ip, &sender_port);
129+
ASSUME_ITS_MORE_THAN_I32(0, bytes_received);
130+
131+
fossil_io_network_close(sock);
132+
fossil_io_network_destroy();
133+
}
134+
135+
FOSSIL_TEST_CASE(c_test_network_create_raw_socket) {
136+
fossil_io_network_create();
137+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_RAW);
138+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
139+
fossil_io_network_close(sock);
140+
fossil_io_network_destroy();
141+
}
142+
143+
FOSSIL_TEST_CASE(c_test_network_create_rdm_socket) {
144+
fossil_io_network_create();
145+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_RDM);
146+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
147+
fossil_io_network_close(sock);
148+
fossil_io_network_destroy();
149+
}
150+
151+
FOSSIL_TEST_CASE(c_test_network_create_seqpacket_socket) {
152+
fossil_io_network_create();
153+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_SEQPACKET);
154+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
155+
fossil_io_network_close(sock);
156+
fossil_io_network_destroy();
157+
}
158+
159+
FOSSIL_TEST_CASE(c_test_network_bind_raw) {
160+
fossil_io_network_create();
161+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_RAW);
162+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
163+
int result = fossil_io_network_bind(sock, "127.0.0.1", 8082);
164+
ASSUME_ITS_EQUAL_I32(0, result);
165+
fossil_io_network_close(sock);
166+
fossil_io_network_destroy();
167+
}
168+
169+
FOSSIL_TEST_CASE(c_test_network_bind_rdm) {
170+
fossil_io_network_create();
171+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_RDM);
172+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
173+
int result = fossil_io_network_bind(sock, "127.0.0.1", 8083);
174+
ASSUME_ITS_EQUAL_I32(0, result);
175+
fossil_io_network_close(sock);
176+
fossil_io_network_destroy();
177+
}
178+
179+
FOSSIL_TEST_CASE(c_test_network_bind_seqpacket) {
180+
fossil_io_network_create();
181+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_SEQPACKET);
182+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
183+
int result = fossil_io_network_bind(sock, "127.0.0.1", 8084);
184+
ASSUME_ITS_EQUAL_I32(0, result);
185+
fossil_io_network_close(sock);
186+
fossil_io_network_destroy();
187+
}
188+
189+
FOSSIL_TEST_CASE(c_test_network_sendto_raw) {
190+
fossil_io_network_create();
191+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_RAW);
192+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
193+
const char *message = "Hello, RAW!";
194+
int bytes_sent = fossil_io_network_sendto(sock, message, strlen(message), "127.0.0.1", 8082);
195+
ASSUME_ITS_EQUAL_I32((int)strlen(message), bytes_sent);
196+
fossil_io_network_close(sock);
197+
fossil_io_network_destroy();
198+
}
199+
200+
FOSSIL_TEST_CASE(c_test_network_sendto_rdm) {
201+
fossil_io_network_create();
202+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_RDM);
203+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
204+
const char *message = "Hello, RDM!";
205+
int bytes_sent = fossil_io_network_sendto(sock, message, strlen(message), "127.0.0.1", 8083);
206+
ASSUME_ITS_EQUAL_I32((int)strlen(message), bytes_sent);
207+
fossil_io_network_close(sock);
208+
fossil_io_network_destroy();
209+
}
210+
211+
FOSSIL_TEST_CASE(c_test_network_sendto_seqpacket) {
212+
fossil_io_network_create();
213+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_SEQPACKET);
214+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
215+
const char *message = "Hello, SEQPACKET!";
216+
int bytes_sent = fossil_io_network_sendto(sock, message, strlen(message), "127.0.0.1", 8084);
217+
ASSUME_ITS_EQUAL_I32((int)strlen(message), bytes_sent);
218+
fossil_io_network_close(sock);
219+
fossil_io_network_destroy();
220+
}
221+
222+
FOSSIL_TEST_CASE(c_test_network_recvfrom_raw) {
223+
fossil_io_network_create();
224+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_RAW);
225+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
226+
fossil_io_network_bind(sock, "127.0.0.1", 8082);
227+
228+
char buffer[256];
229+
char sender_ip[INET_ADDRSTRLEN];
230+
uint16_t sender_port;
231+
int bytes_received = fossil_io_network_recvfrom(sock, buffer, sizeof(buffer), sender_ip, &sender_port);
232+
ASSUME_ITS_MORE_THAN_I32(0, bytes_received);
233+
234+
fossil_io_network_close(sock);
235+
fossil_io_network_destroy();
236+
}
237+
238+
FOSSIL_TEST_CASE(c_test_network_recvfrom_rdm) {
239+
fossil_io_network_create();
240+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_RDM);
241+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
242+
fossil_io_network_bind(sock, "127.0.0.1", 8083);
243+
244+
char buffer[256];
245+
char sender_ip[INET_ADDRSTRLEN];
246+
uint16_t sender_port;
247+
int bytes_received = fossil_io_network_recvfrom(sock, buffer, sizeof(buffer), sender_ip, &sender_port);
248+
ASSUME_ITS_MORE_THAN_I32(0, bytes_received);
249+
250+
fossil_io_network_close(sock);
251+
fossil_io_network_destroy();
252+
}
253+
254+
FOSSIL_TEST_CASE(c_test_network_recvfrom_seqpacket) {
255+
fossil_io_network_create();
256+
fossil_io_socket_t sock = fossil_io_network_create_socket(FOSSIL_IO_SOCKET_TYPE_SEQPACKET);
257+
ASSUME_NOT_EQUAL_I32(FOSSIL_IO_INVALID_SOCKET, sock);
258+
fossil_io_network_bind(sock, "127.0.0.1", 8084);
259+
260+
char buffer[256];
261+
char sender_ip[INET_ADDRSTRLEN];
262+
uint16_t sender_port;
263+
int bytes_received = fossil_io_network_recvfrom(sock, buffer, sizeof(buffer), sender_ip, &sender_port);
264+
ASSUME_ITS_MORE_THAN_I32(0, bytes_received);
265+
266+
fossil_io_network_close(sock);
267+
fossil_io_network_destroy();
268+
}
90269

91270
// * * * * * * * * * * * * * * * * * * * * * * * *
92271
// * Fossil Logic Test Pool
@@ -98,6 +277,22 @@ FOSSIL_TEST_GROUP(c_network_tests) {
98277
FOSSIL_TEST_ADD(c_network_suite, c_test_network_bind);
99278
FOSSIL_TEST_ADD(c_network_suite, c_test_network_listen);
100279
FOSSIL_TEST_ADD(c_network_suite, c_test_network_close);
280+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_create_udp_socket);
281+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_bind_udp);
282+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_sendto_udp);
283+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_recvfrom_udp);
284+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_create_raw_socket);
285+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_create_rdm_socket);
286+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_create_seqpacket_socket);
287+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_bind_raw);
288+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_bind_rdm);
289+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_bind_seqpacket);
290+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_sendto_raw);
291+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_sendto_rdm);
292+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_sendto_seqpacket);
293+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_recvfrom_raw);
294+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_recvfrom_rdm);
295+
FOSSIL_TEST_ADD(c_network_suite, c_test_network_recvfrom_seqpacket);
101296

102297
FOSSIL_TEST_REGISTER(c_network_suite);
103298
}

0 commit comments

Comments
 (0)