@@ -51,15 +51,15 @@ FOSSIL_TEST_CASE(c_test_network_init) {
5151
5252FOSSIL_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
6060FOSSIL_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
7070FOSSIL_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
8181FOSSIL_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