Browse Source

Fix Windows test failures: proper WSAPoll error handling and FD_SETSIZE check

nodeinfo-routing-update
jeka 2 months ago
parent
commit
78dfdde400
  1. 362
      build_win.log
  2. 24
      c_gen_filelist
  3. 6
      lib/u_async.c
  4. 53
      log
  5. 63
      run_tests.bat
  6. 9
      tests/test_config_debug.c

362
build_win.log

@ -2,364 +2,54 @@ make all-recursive
make[1]: Entering directory '/c/ARM/_uTun/utun2'
Making all in lib
make[2]: Entering directory '/c/ARM/_uTun/utun2/lib'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -D_ISOC99_SOURCE -DDEBUG_OUTPUT_STDERR -I../src -I../lib -g -O2 -MT libuasync_a-u_async.o -MD -MP -MF .deps/libuasync_a-u_async.Tpo -c -o libuasync_a-u_async.o `test -f 'u_async.c' || echo './'`u_async.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -D_ISOC99_SOURCE -DDEBUG_OUTPUT_STDERR -I../src -I../lib -g -O2 -MT libuasync_a-ll_queue.o -MD -MP -MF .deps/libuasync_a-ll_queue.Tpo -c -o libuasync_a-ll_queue.o `test -f 'll_queue.c' || echo './'`ll_queue.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -D_ISOC99_SOURCE -DDEBUG_OUTPUT_STDERR -I../src -I../lib -g -O2 -MT libuasync_a-debug_config.o -MD -MP -MF .deps/libuasync_a-debug_config.Tpo -c -o libuasync_a-debug_config.o `test -f 'debug_config.c' || echo './'`debug_config.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -D_ISOC99_SOURCE -DDEBUG_OUTPUT_STDERR -I../src -I../lib -g -O2 -MT libuasync_a-timeout_heap.o -MD -MP -MF .deps/libuasync_a-timeout_heap.Tpo -c -o libuasync_a-timeout_heap.o `test -f 'timeout_heap.c' || echo './'`timeout_heap.c
mv -f .deps/libuasync_a-timeout_heap.Tpo .deps/libuasync_a-timeout_heap.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -D_ISOC99_SOURCE -DDEBUG_OUTPUT_STDERR -I../src -I../lib -g -O2 -MT libuasync_a-memory_pool.o -MD -MP -MF .deps/libuasync_a-memory_pool.Tpo -c -o libuasync_a-memory_pool.o `test -f 'memory_pool.c' || echo './'`memory_pool.c
mv -f .deps/libuasync_a-debug_config.Tpo .deps/libuasync_a-debug_config.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -D_ISOC99_SOURCE -DDEBUG_OUTPUT_STDERR -I../src -I../lib -g -O2 -MT libuasync_a-sha256.o -MD -MP -MF .deps/libuasync_a-sha256.Tpo -c -o libuasync_a-sha256.o `test -f 'sha256.c' || echo './'`sha256.c
mv -f .deps/libuasync_a-ll_queue.Tpo .deps/libuasync_a-ll_queue.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -D_ISOC99_SOURCE -DDEBUG_OUTPUT_STDERR -I../src -I../lib -g -O2 -MT libuasync_a-socket_compat.o -MD -MP -MF .deps/libuasync_a-socket_compat.Tpo -c -o libuasync_a-socket_compat.o `test -f 'socket_compat.c' || echo './'`socket_compat.c
mv -f .deps/libuasync_a-u_async.Tpo .deps/libuasync_a-u_async.Po
mv -f .deps/libuasync_a-memory_pool.Tpo .deps/libuasync_a-memory_pool.Po
mv -f .deps/libuasync_a-sha256.Tpo .deps/libuasync_a-sha256.Po
mv -f .deps/libuasync_a-socket_compat.Tpo .deps/libuasync_a-socket_compat.Po
rm -f libuasync.a
ar cru libuasync.a libuasync_a-u_async.o libuasync_a-ll_queue.o libuasync_a-debug_config.o libuasync_a-timeout_heap.o libuasync_a-memory_pool.o libuasync_a-sha256.o libuasync_a-socket_compat.o
C:\msys64\ucrt64\bin\ar.exe: `u' modifier ignored since `D' is the default (see `U')
ranlib libuasync.a
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/c/ARM/_uTun/utun2/lib'
Making all in src
make[2]: Entering directory '/c/ARM/_uTun/utun2/src'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-utun.o -MD -MP -MF .deps/utun-utun.Tpo -c -o utun-utun.o `test -f 'utun.c' || echo './'`utun.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-utun_instance.o -MD -MP -MF .deps/utun-utun_instance.Tpo -c -o utun-utun_instance.o `test -f 'utun_instance.c' || echo './'`utun_instance.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-config_parser.o -MD -MP -MF .deps/utun-config_parser.Tpo -c -o utun-config_parser.o `test -f 'config_parser.c' || echo './'`config_parser.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-config_updater.o -MD -MP -MF .deps/utun-config_updater.Tpo -c -o utun-config_updater.o `test -f 'config_updater.c' || echo './'`config_updater.c
In file included from config_parser.c:8:
config_parser.c: In function 'parse_debug_categories':
../lib/debug_config.h:52:36: warning: conversion from 'long long unsigned int' to 'uint32_t' {aka 'unsigned int'} changes value from '18446744073709551615' to '4294967295' [-Woverflow]
52 | #define DEBUG_CATEGORY_ALL ((debug_category_t)0xFFFFFFFFFFFFFFFFULL)
| ^
config_parser.c:40:29: note: in expansion of macro 'DEBUG_CATEGORY_ALL'
40 | if (!value_copy) return DEBUG_CATEGORY_ALL; // Default to all on error
| ^~~~~~~~~~~~~~~~~~
../lib/debug_config.h:52:36: warning: conversion from 'long long unsigned int' to 'uint32_t' {aka 'unsigned int'} changes value from '18446744073709551615' to '4294967295' [-Woverflow]
52 | #define DEBUG_CATEGORY_ALL ((debug_category_t)0xFFFFFFFFFFFFFFFFULL)
| ^
config_parser.c:68:27: note: in expansion of macro 'DEBUG_CATEGORY_ALL'
68 | categories |= DEBUG_CATEGORY_ALL;
| ^~~~~~~~~~~~~~~~~~
mv -f .deps/utun-utun.Tpo .deps/utun-utun.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-route_lib.o -MD -MP -MF .deps/utun-route_lib.Tpo -c -o utun-route_lib.o `test -f 'route_lib.c' || echo './'`route_lib.c
mv -f .deps/utun-utun_instance.Tpo .deps/utun-utun_instance.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-route_bgp.o -MD -MP -MF .deps/utun-route_bgp.Tpo -c -o utun-route_bgp.o `test -f 'route_bgp.c' || echo './'`route_bgp.c
mv -f .deps/utun-config_updater.Tpo .deps/utun-config_updater.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-routing.o -MD -MP -MF .deps/utun-routing.Tpo -c -o utun-routing.o `test -f 'routing.c' || echo './'`routing.c
mv -f .deps/utun-config_parser.Tpo .deps/utun-config_parser.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-tun_if.o -MD -MP -MF .deps/utun-tun_if.Tpo -c -o utun-tun_if.o `test -f 'tun_if.c' || echo './'`tun_if.c
mv -f .deps/utun-tun_if.Tpo .deps/utun-tun_if.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-etcp.o -MD -MP -MF .deps/utun-etcp.Tpo -c -o utun-etcp.o `test -f 'etcp.c' || echo './'`etcp.c
mv -f .deps/utun-route_bgp.Tpo .deps/utun-route_bgp.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-etcp_connections.o -MD -MP -MF .deps/utun-etcp_connections.Tpo -c -o utun-etcp_connections.o `test -f 'etcp_connections.c' || echo './'`etcp_connections.c
mv -f .deps/utun-route_lib.Tpo .deps/utun-route_lib.Po
mv -f .deps/utun-routing.Tpo .deps/utun-routing.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-etcp_loadbalancer.o -MD -MP -MF .deps/utun-etcp_loadbalancer.Tpo -c -o utun-etcp_loadbalancer.o `test -f 'etcp_loadbalancer.c' || echo './'`etcp_loadbalancer.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-secure_channel.o -MD -MP -MF .deps/utun-secure_channel.Tpo -c -o utun-secure_channel.o `test -f 'secure_channel.c' || echo './'`secure_channel.c
etcp.c: In function 'etcp_connection_create':
etcp.c:112:22: warning: assignment to 'struct pn_pair *' from incompatible pointer type 'struct PKTNORM *' [-Wincompatible-pointer-types]
112 | etcp->normalizer = pn_init(etcp);
| ^
secure_channel.c: In function 'sc_generate_keypair':
secure_channel.c:134:5: warning: 'EC_KEY_new' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
134 | EC_KEY *key = EC_KEY_new();
| ^~~~~~
In file included from secure_channel.c:25:
C:/msys64/ucrt64/include/openssl/ec.h:971:31: note: declared here
971 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new(void);
| ^~~~~~~~~~
secure_channel.c:139:5: warning: 'EC_KEY_set_group' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
139 | if (EC_KEY_set_group(key, group) != 1) {
| ^~
C:/msys64/ucrt64/include/openssl/ec.h:1045:27: note: declared here
1045 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group);
| ^~~~~~~~~~~~~~~~
secure_channel.c:140:9: warning: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
140 | EC_KEY_free(key);
| ^~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1006:28: note: declared here
1006 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
secure_channel.c:145:5: warning: 'EC_KEY_generate_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
145 | if (EC_KEY_generate_key(key) != 1) {
| ^~
C:/msys64/ucrt64/include/openssl/ec.h:1104:27: note: declared here
1104 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_generate_key(EC_KEY *key);
| ^~~~~~~~~~~~~~~~~~~
secure_channel.c:146:9: warning: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
146 | EC_KEY_free(key);
| ^~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1006:28: note: declared here
1006 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
secure_channel.c:150:5: warning: 'EC_KEY_get0_private_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
150 | const BIGNUM *priv = EC_KEY_get0_private_key(key);
| ^~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1051:37: note: declared here
1051 | OSSL_DEPRECATEDIN_3_0 const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key);
| ^~~~~~~~~~~~~~~~~~~~~~~
secure_channel.c:152:9: warning: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
152 | EC_KEY_free(key);
| ^~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1006:28: note: declared here
1006 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
secure_channel.c:156:5: warning: 'EC_KEY_get0_public_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
156 | const EC_POINT *pub_point = EC_KEY_get0_public_key(key);
| ^~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1065:39: note: declared here
1065 | OSSL_DEPRECATEDIN_3_0 const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key);
| ^~~~~~~~~~~~~~~~~~~~~~
secure_channel.c:159:9: warning: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
159 | EC_KEY_free(key);
| ^~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1006:28: note: declared here
1006 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
secure_channel.c:164:5: warning: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
164 | EC_KEY_free(key);
| ^~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1006:28: note: declared here
1006 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
secure_channel.c: In function 'sc_set_peer_public_key':
secure_channel.c:220:5: warning: 'EC_KEY_new' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
220 | EC_KEY *my_key = EC_KEY_new();
| ^~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:971:31: note: declared here
971 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new(void);
| ^~~~~~~~~~
secure_channel.c:225:5: warning: 'EC_KEY_set_group' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
225 | if (EC_KEY_set_group(my_key, group) != 1) {
| ^~
C:/msys64/ucrt64/include/openssl/ec.h:1045:27: note: declared here
1045 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group);
| ^~~~~~~~~~~~~~~~
secure_channel.c:226:9: warning: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
226 | EC_KEY_free(my_key);
| ^~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1006:28: note: declared here
1006 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
secure_channel.c:231:5: warning: 'EC_KEY_set_private_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
231 | if (!my_priv || EC_KEY_set_private_key(my_key, my_priv) != 1) {
| ^~
C:/msys64/ucrt64/include/openssl/ec.h:1059:27: note: declared here
1059 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv);
| ^~~~~~~~~~~~~~~~~~~~~~
secure_channel.c:233:9: warning: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
233 | EC_KEY_free(my_key);
| ^~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1006:28: note: declared here
1006 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
secure_channel.c:240:9: warning: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
240 | EC_KEY_free(my_key);
| ^~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1006:28: note: declared here
1006 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
secure_channel.c:251:9: warning: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
251 | EC_KEY_free(my_key);
| ^~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1006:28: note: declared here
1006 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
secure_channel.c:256:5: warning: 'ECDH_compute_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
256 | int len = ECDH_compute_key(shared_secret, SC_SHARED_SECRET_SIZE, peer_point, my_key, NULL);
| ^~~
C:/msys64/ucrt64/include/openssl/ec.h:1299:27: note: declared here
1299 | OSSL_DEPRECATEDIN_3_0 int ECDH_compute_key(void *out, size_t outlen,
| ^~~~~~~~~~~~~~~~
secure_channel.c:263:9: warning: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
263 | EC_KEY_free(my_key);
| ^~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1006:28: note: declared here
1006 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
secure_channel.c:275:5: warning: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
275 | EC_KEY_free(my_key);
| ^~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/ec.h:1006:28: note: declared here
1006 | OSSL_DEPRECATEDIN_3_0 void EC_KEY_free(EC_KEY *key);
| ^~~~~~~~~~~
secure_channel.c: In function 'sc_build_nonce':
secure_channel.c:306:5: warning: 'SHA256_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
306 | SHA256_Init(&sha_ctx);
| ^~~~~~~~~~~
In file included from secure_channel.c:27:
C:/msys64/ucrt64/include/openssl/sha.h:73:27: note: declared here
73 | OSSL_DEPRECATEDIN_3_0 int SHA256_Init(SHA256_CTX *c);
| ^~~~~~~~~~~
secure_channel.c:307:5: warning: 'SHA256_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
307 | SHA256_Update(&sha_ctx, data, 24);
| ^~~~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/sha.h:74:27: note: declared here
74 | OSSL_DEPRECATEDIN_3_0 int SHA256_Update(SHA256_CTX *c,
| ^~~~~~~~~~~~~
secure_channel.c:308:5: warning: 'SHA256_Final' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
308 | SHA256_Final(hash, &sha_ctx);
| ^~~~~~~~~~~~
C:/msys64/ucrt64/include/openssl/sha.h:76:27: note: declared here
76 | OSSL_DEPRECATEDIN_3_0 int SHA256_Final(unsigned char *md, SHA256_CTX *c);
| ^~~~~~~~~~~~
mv -f .deps/utun-etcp_loadbalancer.Tpo .deps/utun-etcp_loadbalancer.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-crc32.o -MD -MP -MF .deps/utun-crc32.Tpo -c -o utun-crc32.o `test -f 'crc32.c' || echo './'`crc32.c
mv -f .deps/utun-etcp.Tpo .deps/utun-etcp.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-pkt_normalizer.o -MD -MP -MF .deps/utun-pkt_normalizer.Tpo -c -o utun-pkt_normalizer.o `test -f 'pkt_normalizer.c' || echo './'`pkt_normalizer.c
mv -f .deps/utun-etcp_connections.Tpo .deps/utun-etcp_connections.Po
mv -f .deps/utun-secure_channel.Tpo .deps/utun-secure_channel.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-etcp_api.o -MD -MP -MF .deps/utun-etcp_api.Tpo -c -o utun-etcp_api.o `test -f 'etcp_api.c' || echo './'`etcp_api.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT utun-tun_windows.o -MD -MP -MF .deps/utun-tun_windows.Tpo -c -o utun-tun_windows.o `test -f 'tun_windows.c' || echo './'`tun_windows.c
mv -f .deps/utun-crc32.Tpo .deps/utun-crc32.Po
etcp_api.c: In function 'etcp_send':
etcp_api.c:82:26: warning: initialization of 'struct PKTNORM *' from incompatible pointer type 'struct pn_pair *' [-Wincompatible-pointer-types]
82 | struct PKTNORM* pn = conn->normalizer;
| ^~~~
mv -f .deps/utun-etcp_api.Tpo .deps/utun-etcp_api.Po
mv -f .deps/utun-pkt_normalizer.Tpo .deps/utun-pkt_normalizer.Po
mv -f .deps/utun-tun_windows.Tpo .deps/utun-tun_windows.Po
x86_64-w64-mingw32-gcc -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -o utun.exe utun-utun.o utun-utun_instance.o utun-config_parser.o utun-config_updater.o utun-route_lib.o utun-route_bgp.o utun-routing.o utun-tun_if.o utun-etcp.o utun-etcp_connections.o utun-etcp_loadbalancer.o utun-secure_channel.o utun-crc32.o utun-pkt_normalizer.o utun-etcp_api.o utun-tun_windows.o ../lib/libuasync.a -lpthread -lm -lcrypto -liphlpapi -lws2_32 -ladvapi32 -lcrypto
make[2]: Leaving directory '/c/ARM/_uTun/utun2/src'
Making all in tests
make[2]: Entering directory '/c/ARM/_uTun/utun2/tests'
make all-am
make[3]: Entering directory '/c/ARM/_uTun/utun2/tests'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT test_etcp_crypto-test_etcp_crypto.o -MD -MP -MF .deps/test_etcp_crypto-test_etcp_crypto.Tpo -c -o test_etcp_crypto-test_etcp_crypto.o `test -f 'test_etcp_crypto.c' || echo './'`test_etcp_crypto.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../tinycrypt/lib/include -I../tinycrypt/lib/source -I../lib -g -O2 -MT test_crypto-test_crypto.o -MD -MP -MF .deps/test_crypto-test_crypto.Tpo -c -o test_crypto-test_crypto.o `test -f 'test_crypto.c' || echo './'`test_crypto.c
make[4]: Entering directory '/c/ARM/_uTun/utun2/src'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-aes_encrypt.o ../tinycrypt/lib/source/aes_encrypt.c
make[4]: Entering directory '/c/ARM/_uTun/utun2/src'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-aes_encrypt.o ../tinycrypt/lib/source/aes_encrypt.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-aes_decrypt.o ../tinycrypt/lib/source/aes_decrypt.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-aes_decrypt.o ../tinycrypt/lib/source/aes_decrypt.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ccm_mode.o ../tinycrypt/lib/source/ccm_mode.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ccm_mode.o ../tinycrypt/lib/source/ccm_mode.c
mv -f .deps/test_crypto-test_crypto.Tpo .deps/test_crypto-test_crypto.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-cmac_mode.o ../tinycrypt/lib/source/cmac_mode.c
mv -f .deps/test_etcp_crypto-test_etcp_crypto.Tpo .deps/test_etcp_crypto-test_etcp_crypto.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ctr_mode.o ../tinycrypt/lib/source/ctr_mode.c
make[4]: Entering directory '/c/ARM/_uTun/utun2/src'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-cmac_mode.o ../tinycrypt/lib/source/cmac_mode.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-cmac_mode.o ../tinycrypt/lib/source/cmac_mode.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ctr_mode.o ../tinycrypt/lib/source/ctr_mode.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc.o ../tinycrypt/lib/source/ecc.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ctr_mode.o ../tinycrypt/lib/source/ctr_mode.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc.o ../tinycrypt/lib/source/ecc.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc.o ../tinycrypt/lib/source/ecc.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_dh.o ../tinycrypt/lib/source/ecc_dh.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_dh.o ../tinycrypt/lib/source/ecc_dh.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_dh.o ../tinycrypt/lib/source/ecc_dh.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_dsa.o ../tinycrypt/lib/source/ecc_dsa.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_dsa.o ../tinycrypt/lib/source/ecc_dsa.c
make[4]: Entering directory '/c/ARM/_uTun/utun2/src'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_dsa.o ../tinycrypt/lib/source/ecc_dsa.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_dsa.o ../tinycrypt/lib/source/ecc_dsa.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-sha256.o ../tinycrypt/lib/source/sha256.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-sha256.o ../tinycrypt/lib/source/sha256.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-sha256.o ../tinycrypt/lib/source/sha256.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-sha256.o ../tinycrypt/lib/source/sha256.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_platform_specific.o ../tinycrypt/lib/source/ecc_platform_specific.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_platform_specific.o ../tinycrypt/lib/source/ecc_platform_specific.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_platform_specific.o ../tinycrypt/lib/source/ecc_platform_specific.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_platform_specific.o ../tinycrypt/lib/source/ecc_platform_specific.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-utils.o ../tinycrypt/lib/source/utils.c
make[4]: Leaving directory '/c/ARM/_uTun/utun2/src'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-utils.o ../tinycrypt/lib/source/utils.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-utils.o ../tinycrypt/lib/source/utils.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-utils.o ../tinycrypt/lib/source/utils.c
make[4]: Entering directory '/c/ARM/_uTun/utun2/src'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I../tinycrypt/lib/include -I../tinycrypt/lib/source -c -o utun-ecc_platform_specific.o ../tinycrypt/lib/source/ecc_platform_specific.c
make[4]: Leaving directory '/c/ARM/_uTun/utun2/src'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT test_etcp_two_instances-test_etcp_two_instances.o -MD -MP -MF .deps/test_etcp_two_instances-test_etcp_two_instances.Tpo -c -o test_etcp_two_instances-test_etcp_two_instances.o `test -f 'test_etcp_two_instances.c' || echo './'`test_etcp_two_instances.c
make[4]: Leaving directory '/c/ARM/_uTun/utun2/src'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT test_etcp_simple_traffic-test_etcp_simple_traffic.o -MD -MP -MF .deps/test_etcp_simple_traffic-test_etcp_simple_traffic.Tpo -c -o test_etcp_simple_traffic-test_etcp_simple_traffic.o `test -f 'test_etcp_simple_traffic.c' || echo './'`test_etcp_simple_traffic.c
make[4]: Leaving directory '/c/ARM/_uTun/utun2/src'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT test_etcp_minimal-test_etcp_minimal.o -MD -MP -MF .deps/test_etcp_minimal-test_etcp_minimal.Tpo -c -o test_etcp_minimal-test_etcp_minimal.o `test -f 'test_etcp_minimal.c' || echo './'`test_etcp_minimal.c
make[4]: Leaving directory '/c/ARM/_uTun/utun2/src'
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT test_etcp_100_packets-test_etcp_100_packets.o -MD -MP -MF .deps/test_etcp_100_packets-test_etcp_100_packets.Tpo -c -o test_etcp_100_packets-test_etcp_100_packets.o `test -f 'test_etcp_100_packets.c' || echo './'`test_etcp_100_packets.c
mv -f .deps/test_etcp_two_instances-test_etcp_two_instances.Tpo .deps/test_etcp_two_instances-test_etcp_two_instances.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT test_pkt_normalizer_etcp-test_pkt_normalizer_etcp.o -MD -MP -MF .deps/test_pkt_normalizer_etcp-test_pkt_normalizer_etcp.Tpo -c -o test_pkt_normalizer_etcp-test_pkt_normalizer_etcp.o `test -f 'test_pkt_normalizer_etcp.c' || echo './'`test_pkt_normalizer_etcp.c
mv -f .deps/test_etcp_minimal-test_etcp_minimal.Tpo .deps/test_etcp_minimal-test_etcp_minimal.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT test_pkt_normalizer_standalone-test_pkt_normalizer_standalone.o -MD -MP -MF .deps/test_pkt_normalizer_standalone-test_pkt_normalizer_standalone.Tpo -c -o test_pkt_normalizer_standalone-test_pkt_normalizer_standalone.o `test -f 'test_pkt_normalizer_standalone.c' || echo './'`test_pkt_normalizer_standalone.c
mv -f .deps/test_etcp_simple_traffic-test_etcp_simple_traffic.Tpo .deps/test_etcp_simple_traffic-test_etcp_simple_traffic.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT test_etcp_api-test_etcp_api.o -MD -MP -MF .deps/test_etcp_api-test_etcp_api.Tpo -c -o test_etcp_api-test_etcp_api.o `test -f 'test_etcp_api.c' || echo './'`test_etcp_api.c
mv -f .deps/test_etcp_100_packets-test_etcp_100_packets.Tpo .deps/test_etcp_100_packets-test_etcp_100_packets.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_ll_queue-test_ll_queue.o -MD -MP -MF .deps/test_ll_queue-test_ll_queue.Tpo -c -o test_ll_queue-test_ll_queue.o `test -f 'test_ll_queue.c' || echo './'`test_ll_queue.c
mv -f .deps/test_pkt_normalizer_standalone-test_pkt_normalizer_standalone.Tpo .deps/test_pkt_normalizer_standalone-test_pkt_normalizer_standalone.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../tinycrypt/lib/include -I../tinycrypt/lib/source -I../lib -g -O2 -MT test_ecc_encrypt-test_ecc_encrypt.o -MD -MP -MF .deps/test_ecc_encrypt-test_ecc_encrypt.Tpo -c -o test_ecc_encrypt-test_ecc_encrypt.o `test -f 'test_ecc_encrypt.c' || echo './'`test_ecc_encrypt.c
mv -f .deps/test_etcp_api-test_etcp_api.Tpo .deps/test_etcp_api-test_etcp_api.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_intensive_memory_pool-test_intensive_memory_pool.o -MD -MP -MF .deps/test_intensive_memory_pool-test_intensive_memory_pool.Tpo -c -o test_intensive_memory_pool-test_intensive_memory_pool.o `test -f 'test_intensive_memory_pool.c' || echo './'`test_intensive_memory_pool.c
mv -f .deps/test_pkt_normalizer_etcp-test_pkt_normalizer_etcp.Tpo .deps/test_pkt_normalizer_etcp-test_pkt_normalizer_etcp.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_memory_pool_and_config-test_memory_pool_and_config.o -MD -MP -MF .deps/test_memory_pool_and_config-test_memory_pool_and_config.Tpo -c -o test_memory_pool_and_config-test_memory_pool_and_config.o `test -f 'test_memory_pool_and_config.c' || echo './'`test_memory_pool_and_config.c
mv -f .deps/test_ll_queue-test_ll_queue.Tpo .deps/test_ll_queue-test_ll_queue.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_packet_dump-test_packet_dump.o -MD -MP -MF .deps/test_packet_dump-test_packet_dump.Tpo -c -o test_packet_dump-test_packet_dump.o `test -f 'test_packet_dump.c' || echo './'`test_packet_dump.c
mv -f .deps/test_ecc_encrypt-test_ecc_encrypt.Tpo .deps/test_ecc_encrypt-test_ecc_encrypt.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_u_async_comprehensive-test_u_async_comprehensive.o -MD -MP -MF .deps/test_u_async_comprehensive-test_u_async_comprehensive.Tpo -c -o test_u_async_comprehensive-test_u_async_comprehensive.o `test -f 'test_u_async_comprehensive.c' || echo './'`test_u_async_comprehensive.c
mv -f .deps/test_intensive_memory_pool-test_intensive_memory_pool.Tpo .deps/test_intensive_memory_pool-test_intensive_memory_pool.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_u_async_performance-test_u_async_performance.o -MD -MP -MF .deps/test_u_async_performance-test_u_async_performance.Tpo -c -o test_u_async_performance-test_u_async_performance.o `test -f 'test_u_async_performance.c' || echo './'`test_u_async_performance.c
mv -f .deps/test_memory_pool_and_config-test_memory_pool_and_config.Tpo .deps/test_memory_pool_and_config-test_memory_pool_and_config.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_debug_categories-test_debug_categories.o -MD -MP -MF .deps/test_debug_categories-test_debug_categories.Tpo -c -o test_debug_categories-test_debug_categories.o `test -f 'test_debug_categories.c' || echo './'`test_debug_categories.c
mv -f .deps/test_packet_dump-test_packet_dump.Tpo .deps/test_packet_dump-test_packet_dump.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_config_debug-test_config_debug.o -MD -MP -MF .deps/test_config_debug-test_config_debug.Tpo -c -o test_config_debug-test_config_debug.o `test -f 'test_config_debug.c' || echo './'`test_config_debug.c
mv -f .deps/test_u_async_comprehensive-test_u_async_comprehensive.Tpo .deps/test_u_async_comprehensive-test_u_async_comprehensive.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_route_lib-test_route_lib.o -MD -MP -MF .deps/test_route_lib-test_route_lib.Tpo -c -o test_route_lib-test_route_lib.o `test -f 'test_route_lib.c' || echo './'`test_route_lib.c
mv -f .deps/test_u_async_performance-test_u_async_performance.Tpo .deps/test_u_async_performance-test_u_async_performance.Po
mv -f .deps/test_debug_categories-test_debug_categories.Tpo .deps/test_debug_categories-test_debug_categories.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -MT test_bgp_route_exchange-test_bgp_route_exchange.o -MD -MP -MF .deps/test_bgp_route_exchange-test_bgp_route_exchange.Tpo -c -o test_bgp_route_exchange-test_bgp_route_exchange.o `test -f 'test_bgp_route_exchange.c' || echo './'`test_bgp_route_exchange.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -g -O2 -MT bench_timeout_heap-bench_timeout_heap.o -MD -MP -MF .deps/bench_timeout_heap-bench_timeout_heap.Tpo -c -o bench_timeout_heap-bench_timeout_heap.o `test -f 'bench_timeout_heap.c' || echo './'`bench_timeout_heap.c
mv -f .deps/test_config_debug-test_config_debug.Tpo .deps/test_config_debug-test_config_debug.Po
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -g -O2 -MT bench_uasync_timeouts-bench_uasync_timeouts.o -MD -MP -MF .deps/bench_uasync_timeouts-bench_uasync_timeouts.Tpo -c -o bench_uasync_timeouts-bench_uasync_timeouts.o `test -f 'bench_uasync_timeouts.c' || echo './'`bench_uasync_timeouts.c
mv -f .deps/test_route_lib-test_route_lib.Tpo .deps/test_route_lib-test_route_lib.Po
mv -f .deps/bench_timeout_heap-bench_timeout_heap.Tpo .deps/bench_timeout_heap-bench_timeout_heap.Po
x86_64-w64-mingw32-gcc -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -o test_etcp_crypto.exe test_etcp_crypto-test_etcp_crypto.o ../src/utun-secure_channel.o ../src/utun-crc32.o -lcrypto ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../tinycrypt/lib/include -I../tinycrypt/lib/source -I../lib -g -O2 -o test_crypto.exe test_crypto-test_crypto.o ../src/utun-aes_encrypt.o ../src/utun-aes_decrypt.o ../src/utun-ccm_mode.o ../src/utun-cmac_mode.o ../src/utun-ctr_mode.o ../src/utun-ecc.o ../src/utun-ecc_dh.o ../src/utun-ecc_dsa.o ../src/utun-sha256.o ../src/utun-ecc_platform_specific.o ../src/utun-utils.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -o test_etcp_two_instances.exe test_etcp_two_instances-test_etcp_two_instances.o ../src/utun-config_parser.o ../src/utun-config_updater.o ../src/utun-route_lib.o ../src/utun-route_bgp.o ../src/utun-routing.o ../src/utun-tun_if.o ../src/utun-tun_windows.o ../src/utun-utun_instance.o ../src/utun-etcp.o ../src/utun-etcp_connections.o ../src/utun-etcp_loadbalancer.o ../src/utun-pkt_normalizer.o ../src/utun-etcp_api.o ../src/utun-secure_channel.o ../src/utun-crc32.o -lcrypto ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -o test_etcp_simple_traffic.exe test_etcp_simple_traffic-test_etcp_simple_traffic.o ../src/utun-config_parser.o ../src/utun-config_updater.o ../src/utun-route_lib.o ../src/utun-route_bgp.o ../src/utun-routing.o ../src/utun-tun_if.o ../src/utun-tun_windows.o ../src/utun-utun_instance.o ../src/utun-etcp.o ../src/utun-etcp_connections.o ../src/utun-etcp_loadbalancer.o ../src/utun-pkt_normalizer.o ../src/utun-etcp_api.o ../src/utun-secure_channel.o ../src/utun-crc32.o -lcrypto ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -o test_etcp_minimal.exe test_etcp_minimal-test_etcp_minimal.o ../src/utun-config_parser.o ../src/utun-config_updater.o ../src/utun-route_lib.o ../src/utun-route_bgp.o ../src/utun-routing.o ../src/utun-tun_if.o ../src/utun-tun_windows.o ../src/utun-utun_instance.o ../src/utun-etcp.o ../src/utun-etcp_connections.o ../src/utun-etcp_loadbalancer.o ../src/utun-pkt_normalizer.o ../src/utun-etcp_api.o ../src/utun-secure_channel.o ../src/utun-crc32.o -lcrypto ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -o test_etcp_100_packets.exe test_etcp_100_packets-test_etcp_100_packets.o ../src/utun-config_parser.o ../src/utun-config_updater.o ../src/utun-route_lib.o ../src/utun-route_bgp.o ../src/utun-routing.o ../src/utun-tun_if.o ../src/utun-tun_windows.o ../src/utun-utun_instance.o ../src/utun-etcp.o ../src/utun-etcp_connections.o ../src/utun-etcp_loadbalancer.o ../src/utun-pkt_normalizer.o ../src/utun-etcp_api.o ../src/utun-secure_channel.o ../src/utun-crc32.o -lcrypto ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
mv -f .deps/bench_uasync_timeouts-bench_uasync_timeouts.Tpo .deps/bench_uasync_timeouts-bench_uasync_timeouts.Po
x86_64-w64-mingw32-gcc -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -o test_pkt_normalizer_etcp.exe test_pkt_normalizer_etcp-test_pkt_normalizer_etcp.o ../src/utun-config_parser.o ../src/utun-config_updater.o ../src/utun-route_lib.o ../src/utun-route_bgp.o ../src/utun-routing.o ../src/utun-tun_if.o ../src/utun-tun_windows.o ../src/utun-utun_instance.o ../src/utun-etcp.o ../src/utun-etcp_connections.o ../src/utun-etcp_loadbalancer.o ../src/utun-pkt_normalizer.o ../src/utun-etcp_api.o ../src/utun-secure_channel.o ../src/utun-crc32.o -lcrypto ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
mv -f .deps/test_bgp_route_exchange-test_bgp_route_exchange.Tpo .deps/test_bgp_route_exchange-test_bgp_route_exchange.Po
x86_64-w64-mingw32-gcc -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -o test_pkt_normalizer_standalone.exe test_pkt_normalizer_standalone-test_pkt_normalizer_standalone.o ../src/utun-pkt_normalizer.o ../src/utun-route_lib.o ../src/utun-routing.o ../src/utun-etcp_api.o ../src/utun-aes_encrypt.o ../src/utun-aes_decrypt.o ../src/utun-ccm_mode.o ../src/utun-cmac_mode.o ../src/utun-ctr_mode.o ../src/utun-ecc.o ../src/utun-ecc_dh.o ../src/utun-ecc_dsa.o ../src/utun-sha256.o ../src/utun-ecc_platform_specific.o ../src/utun-utils.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -o test_etcp_api.exe test_etcp_api-test_etcp_api.o ../src/utun-config_parser.o ../src/utun-config_updater.o ../src/utun-route_lib.o ../src/utun-route_bgp.o ../src/utun-routing.o ../src/utun-tun_if.o ../src/utun-tun_windows.o ../src/utun-utun_instance.o ../src/utun-etcp.o ../src/utun-etcp_connections.o ../src/utun-etcp_loadbalancer.o ../src/utun-pkt_normalizer.o ../src/utun-etcp_api.o ../src/utun-secure_channel.o ../src/utun-crc32.o -lcrypto ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_ll_queue.exe test_ll_queue-test_ll_queue.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_ll_queue-test_ll_queue.o -MD -MP -MF .deps/test_ll_queue-test_ll_queue.Tpo -c -o test_ll_queue-test_ll_queue.o `test -f 'test_ll_queue.c' || echo './'`test_ll_queue.c
x86_64-w64-mingw32-gcc -I../tinycrypt/lib/include -I../tinycrypt/lib/source -I../lib -g -O2 -o test_ecc_encrypt.exe test_ecc_encrypt-test_ecc_encrypt.o ../src/utun-secure_channel.o ../src/utun-crc32.o ../src/utun-aes_encrypt.o ../src/utun-aes_decrypt.o ../src/utun-ccm_mode.o ../src/utun-cmac_mode.o ../src/utun-ctr_mode.o ../src/utun-ecc.o ../src/utun-ecc_dh.o ../src/utun-ecc_dsa.o ../src/utun-sha256.o ../src/utun-ecc_platform_specific.o ../src/utun-utils.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_intensive_memory_pool.exe test_intensive_memory_pool-test_intensive_memory_pool.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_memory_pool_and_config.exe test_memory_pool_and_config-test_memory_pool_and_config.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_packet_dump.exe test_packet_dump-test_packet_dump.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_u_async_comprehensive.exe test_u_async_comprehensive-test_u_async_comprehensive.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_u_async_performance.exe test_u_async_performance-test_u_async_performance.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_u_async_comprehensive-test_u_async_comprehensive.o -MD -MP -MF .deps/test_u_async_comprehensive-test_u_async_comprehensive.Tpo -c -o test_u_async_comprehensive-test_u_async_comprehensive.o `test -f 'test_u_async_comprehensive.c' || echo './'`test_u_async_comprehensive.c
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_u_async_performance-test_u_async_performance.o -MD -MP -MF .deps/test_u_async_performance-test_u_async_performance.Tpo -c -o test_u_async_performance-test_u_async_performance.o `test -f 'test_u_async_performance.c' || echo './'`test_u_async_performance.c
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_debug_categories.exe test_debug_categories-test_debug_categories.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_config_debug.exe test_config_debug-test_config_debug.o ../src/utun-config_parser.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_route_lib.exe test_route_lib-test_route_lib.o ../src/utun-route_lib.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -o test_bgp_route_exchange.exe test_bgp_route_exchange-test_bgp_route_exchange.o ../src/utun-config_parser.o ../src/utun-config_updater.o ../src/utun-route_lib.o ../src/utun-route_bgp.o ../src/utun-routing.o ../src/utun-tun_if.o ../src/utun-tun_windows.o ../src/utun-utun_instance.o ../src/utun-etcp.o ../src/utun-etcp_connections.o ../src/utun-etcp_loadbalancer.o ../src/utun-pkt_normalizer.o ../src/utun-etcp_api.o ../src/utun-secure_channel.o ../src/utun-crc32.o -lcrypto ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../lib -g -O2 -o bench_timeout_heap.exe bench_timeout_heap-bench_timeout_heap.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../lib -g -O2 -o bench_uasync_timeouts.exe bench_uasync_timeouts-bench_uasync_timeouts.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../lib -g -O2 -MT test_config_debug-test_config_debug.o -MD -MP -MF .deps/test_config_debug-test_config_debug.Tpo -c -o test_config_debug-test_config_debug.o `test -f 'test_config_debug.c' || echo './'`test_config_debug.c
In file included from ../lib/u_async.h:8,
from test_ll_queue.c:14:
../lib/platform_compat.h:49:23: error: static declaration of 'gettimeofday' follows non-static declaration
49 | static inline int gettimeofday(struct timeval *tv, void *tz) {
| ^~~~~~~~~~~~
In file included from test_ll_queue.c:11:
C:/msys64/ucrt64/include/sys/time.h:42:13: note: previous declaration of 'gettimeofday' with type 'int(struct timeval * restrict, void * restrict)'
42 | int __cdecl gettimeofday(struct timeval *__restrict__,
| ^~~~~~~~~~~~
make[3]: *** [Makefile:1235: test_ll_queue-test_ll_queue.o] Error 1
make[3]: *** Waiting for unfinished jobs....
mv -f .deps/test_u_async_comprehensive-test_u_async_comprehensive.Tpo .deps/test_u_async_comprehensive-test_u_async_comprehensive.Po
mv -f .deps/test_u_async_performance-test_u_async_performance.Tpo .deps/test_u_async_performance-test_u_async_performance.Po
mv -f .deps/test_config_debug-test_config_debug.Tpo .deps/test_config_debug-test_config_debug.Po
make[3]: Leaving directory '/c/ARM/_uTun/utun2/tests'
make[2]: *** [Makefile:857: all] Error 2
make[2]: Leaving directory '/c/ARM/_uTun/utun2/tests'
make[2]: Entering directory '/c/ARM/_uTun/utun2'
make[2]: Leaving directory '/c/ARM/_uTun/utun2'
make[1]: *** [Makefile:379: all-recursive] Error 1
make[1]: Leaving directory '/c/ARM/_uTun/utun2'
.o ../src/utun-ctr_mode.o ../src/utun-ecc.o ../src/utun-ecc_dh.o ../src/utun-ecc_dsa.o ../src/utun-sha256.o ../src/utun-ecc_platform_specific.o ../src/utun-utils.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_intensive_memory_pool.exe test_intensive_memory_pool-test_intensive_memory_pool.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_memory_pool_and_config.exe test_memory_pool_and_config-test_memory_pool_and_config.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_packet_dump.exe test_packet_dump-test_packet_dump.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_u_async_comprehensive.exe test_u_async_comprehensive-test_u_async_comprehensive.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_u_async_performance.exe test_u_async_performance-test_u_async_performance.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_debug_categories.exe test_debug_categories-test_debug_categories.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_config_debug.exe test_config_debug-test_config_debug.o ../src/utun-config_parser.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -g -O2 -o test_route_lib.exe test_route_lib-test_route_lib.o ../src/utun-route_lib.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../src -I../lib -I../tinycrypt/lib/include -I../tinycrypt/lib/source -g -O2 -o test_bgp_route_exchange.exe test_bgp_route_exchange-test_bgp_route_exchange.o ../src/utun-config_parser.o ../src/utun-config_updater.o ../src/utun-route_lib.o ../src/utun-route_bgp.o ../src/utun-routing.o ../src/utun-tun_if.o ../src/utun-tun_windows.o ../src/utun-utun_instance.o ../src/utun-etcp.o ../src/utun-etcp_connections.o ../src/utun-etcp_loadbalancer.o ../src/utun-pkt_normalizer.o ../src/utun-etcp_api.o ../src/utun-secure_channel.o ../src/utun-crc32.o -lcrypto ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../lib -g -O2 -o bench_timeout_heap.exe bench_timeout_heap-bench_timeout_heap.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
x86_64-w64-mingw32-gcc -I../lib -g -O2 -o bench_uasync_timeouts.exe bench_uasync_timeouts-bench_uasync_timeouts.o ../lib/libuasync.a -lpthread -lws2_32 -liphlpapi -ladvapi32 -lcrypto
make[3]: Leaving directory '/c/ARM/_uTun/utun2/tests'
make[2]: Leaving directory '/c/ARM/_uTun/utun2/tests'
make[2]: Entering directory '/c/ARM/_uTun/utun2'
make[2]: Leaving directory '/c/ARM/_uTun/utun2'
make: *** [Makefile:320: all] Error 2
make[1]: Leaving directory '/c/ARM/_uTun/utun2'
make: *** [Makefile:320: all] Error 2
Build completed successfully!
Binary: src/utun.exe
Make sure wintun.dll is in the same directory as utun.exe
ERROR: Build failed!
Check build_win.log (Windows) or build_linux.log (Linux) for details

24
c_gen_filelist

@ -1,24 +0,0 @@
#!/usr/bin/python3
import os
import sys
def find_c_h_files(dirs):
files = []
for d in dirs:
for root, _, filenames in os.walk(d):
for fname in filenames:
if fname.endswith('.c') or fname.endswith('.h'):
files.append(os.path.join(root, fname))
return sorted(files)
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python gen_filelist.py <dir1> [dir2] ...")
sys.exit(1)
dirs = sys.argv[1:]
files = find_c_h_files(dirs)
with open('filelist.txt', 'w') as f:
for file in files:
f.write(file + '\n')
print(f"Generated filelist.txt with {len(files)} files.")

6
lib/u_async.c

@ -438,7 +438,11 @@ err_t uasync_cancel_timeout(struct UASYNC* ua, void* t_id) {
// Instance version
void* uasync_add_socket(struct UASYNC* ua, int fd, socket_callback_t read_cbk, socket_callback_t write_cbk, socket_callback_t except_cbk, void* user_data) {
if (!ua || fd < 0 || fd >= FD_SETSIZE) return NULL; // Bounds check
if (!ua || fd < 0) return NULL;
// FD_SETSIZE check only for POSIX systems - Windows sockets can have any value
#ifndef _WIN32
if (fd >= FD_SETSIZE) return NULL;
#endif
int index = socket_array_add(ua->sockets, fd, read_cbk, write_cbk, except_cbk, user_data);
if (index < 0) return NULL;

53
log

@ -1,53 +0,0 @@
ar: модификатор «u» игнорируется, так как по умолчанию используется «D» (смотрите «U»)
utun_instance.c: In function ‘utun_instance_destroy’:
utun_instance.c:98:17: warning: implicit declaration of function ‘conn_destroy’; did you mean ‘uasync_destroy’? [-Wimplicit-function-declaration]
98 | conn_destroy(instance->connections[i]);
| ^~~~~~~~~~~~
| uasync_destroy
utun_instance.c: In function ‘tun_read_callback’:
utun_instance.c:237:21: warning: implicit declaration of function ‘conn_send’ [-Wimplicit-function-declaration]
237 | if (conn_send(route.next_hop, buffer, nread) < 0) {
| ^~~~~~~~~
utun_instance.c: In function ‘utun_instance_unregister_sockets’:
utun_instance.c:276:57: warning: passing argument 2 of ‘uasync_remove_socket’ makes pointer from integer without a cast [-Wint-conversion]
276 | uasync_remove_socket(instance->ua, instance->tun.fd);
| ~~~~~~~~~~~~~^~~
| |
| int
In file included from utun_instance.c:8:
../lib/u_async.h:35:48: note: expected ‘void *’ but argument is of type ‘int’
35 | err_t uasync_remove_socket(uasync_t* ua, void* s_id);
| ~~~~~~^~~~
etcp_connections.c: In function ‘etcp_link_send_init’:
etcp_connections.c:223:5: warning: implicit declaration of function ‘sc_get_public_key’; did you mean ‘sc_set_peer_public_key’? [-Wimplicit-function-declaration]
223 | sc_get_public_key(sc, pubkey);
| ^~~~~~~~~~~~~~~~~
| sc_set_peer_public_key
etcp_connections.c: In function ‘init_connections’:
etcp_connections.c:432:29: warning: initialization of ‘struct config *’ from incompatible pointer type ‘struct utun_config *’ [-Wincompatible-pointer-types]
432 | struct config* config = instance->config;
| ^~~~~~~~
etcp_connections.c:433:42: error: invalid use of undefined type ‘struct config’
433 | instance->connections = calloc(config->server_count, sizeof(conn_handle_t*));
| ^~
etcp_connections.c:438:31: error: invalid use of undefined type ‘struct config’
438 | for (int i = 0; i < config->server_count; i++) {
| ^~
etcp_connections.c:439:47: error: invalid use of undefined type ‘struct config’
439 | struct server_config* server = &config->servers[i];
| ^~
etcp_connections.c:442:30: warning: implicit declaration of function ‘parse_ip_port’ [-Wimplicit-function-declaration]
442 | uint16_t bind_port = parse_ip_port(server->addr, bind_ip_str, sizeof(bind_ip_str));
| ^~~~~~~~~~~~~
etcp_connections.c:485:43: warning: assignment to ‘struct ETCP_SOCKET *’ from incompatible pointer type ‘struct ETCP_CONNECTIONS *’ [-Wincompatible-pointer-types]
485 | instance->first_listen_socket = conns;
| ^
etcp_connections.c:489:35: error: invalid use of undefined type ‘struct config’
489 | for (int j = 0; j < config->client_count; j++) {
| ^~
etcp_connections.c:490:51: error: invalid use of undefined type ‘struct config’
490 | struct client_config* client = &config->clients[j];
| ^~
make[2]: *** [Makefile:626: utun-etcp_connections.o] Ошибка 1
make[1]: *** [Makefile:433: all-recursive] Ошибка 1
make: *** [Makefile:353: all] Ошибка 2

63
run_tests.bat

@ -0,0 +1,63 @@
@echo off
setlocal enabledelayedexpansion
echo Running all tests...
echo.
set passed=0
set failed=0
set skipped=0
set total=0
for %%t in (
test_etcp_crypto
test_crypto
test_etcp_two_instances
test_etcp_simple_traffic
test_etcp_minimal
test_etcp_100_packets
test_pkt_normalizer_etcp
test_pkt_normalizer_standalone
test_etcp_api
test_ll_queue
test_ecc_encrypt
test_intensive_memory_pool
test_memory_pool_and_config
test_packet_dump
test_u_async_comprehensive
test_u_async_performance
test_debug_categories
test_config_debug
test_route_lib
test_bgp_route_exchange
test_routing_mesh
bench_timeout_heap
bench_uasync_timeouts
) do (
set /a total+=1
if exist "tests\%%t.exe" (
echo [RUN] %%t
tests\%%t.exe > tests\%%t.log 2>&1
if !errorlevel! equ 0 (
echo [PASS] %%t
set /a passed+=1
) else (
echo [FAIL] %%t
set /a failed+=1
echo Failed test log for %%t:
type tests\%%t.log
echo.
)
) else (
echo [SKIP] %%t (not built)
set /a skipped+=1
)
)
echo.
echo ==========================================
echo Test Results: %passed% passed, %failed% failed, %skipped% skipped (%total% total)
echo ==========================================
if %failed% gtr 0 exit /b 1
exit /b 0

9
tests/test_config_debug.c

@ -15,6 +15,7 @@
#endif
#include <sys/stat.h>
#include "../lib/debug_config.h"
#include "../lib/socket_compat.h"
#include "../src/config_parser.h"
// Temp config file path
@ -69,9 +70,16 @@ static void cleanup_temp_config(void) {
}
int main() {
// Initialize socket platform (required for getaddrinfo on Windows)
if (socket_platform_init() != 0) {
fprintf(stderr, "Failed to initialize socket platform\n");
return 1;
}
// Create temp config file first
if (create_temp_config() != 0) {
fprintf(stderr, "Failed to create temporary config file\n");
socket_platform_cleanup();
return 1;
}
@ -124,5 +132,6 @@ int main() {
DEBUG_ERROR(DEBUG_CATEGORY_CONFIG, "=== Тест завершен ===");
DEBUG_ERROR(DEBUG_CATEGORY_CONFIG, "Проверьте файл /tmp/utun_debug.log для записанных сообщений");
socket_platform_cleanup();
return 0;
}
Loading…
Cancel
Save