From e1556eb8c4f5b1578db119d5b7e4cec9d3cd87f3 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 26 Jan 2026 18:14:04 +0300 Subject: [PATCH] Replace printf with DEBUG_ macros in 4 test files and partial in test_etcp_two_instances.c --- test_debug | Bin 0 -> 74224 bytes tests/Makefile.am | 6 ++--- tests/test_crypto | Bin 65936 -> 86640 bytes tests/test_crypto.c | 27 ++++++++++++--------- tests/test_debug.c | 13 +++++++---- tests/test_ecc_encrypt | Bin 208968 -> 225056 bytes tests/test_ecc_encrypt.c | 40 +++++++++++++++++++++----------- tests/test_etcp_crypto | Bin 200640 -> 220864 bytes tests/test_etcp_crypto.c | 21 ++++++++++------- tests/test_etcp_two_instances.c | 25 ++++++++++++-------- 10 files changed, 83 insertions(+), 49 deletions(-) create mode 100755 test_debug diff --git a/test_debug b/test_debug new file mode 100755 index 0000000000000000000000000000000000000000..e456bdf3b3c5402f1764ccdbe1e084bb81f67097 GIT binary patch literal 74224 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 literal 0 HcmV?d00001 diff --git a/tests/Makefile.am b/tests/Makefile.am index fd0caa3..fd7d47d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -38,8 +38,8 @@ test_etcp_minimal_LDADD = $(top_builddir)/src/utun-etcp.o $(top_builddir)/src/ut # Basic crypto test test_crypto_SOURCES = test_crypto.c -test_crypto_CFLAGS = -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source -test_crypto_LDADD = $(top_builddir)/tinycrypt/lib/source/utun-aes_encrypt.o $(top_builddir)/tinycrypt/lib/source/utun-aes_decrypt.o $(top_builddir)/tinycrypt/lib/source/utun-ccm_mode.o $(top_builddir)/tinycrypt/lib/source/utun-cmac_mode.o $(top_builddir)/tinycrypt/lib/source/utun-ctr_mode.o $(top_builddir)/tinycrypt/lib/source/utun-sha256.o $(top_builddir)/tinycrypt/lib/source/utun-utils.o -lpthread -lcrypto +test_crypto_CFLAGS = -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source -I$(top_srcdir)/lib +test_crypto_LDADD = $(top_builddir)/tinycrypt/lib/source/utun-aes_encrypt.o $(top_builddir)/tinycrypt/lib/source/utun-aes_decrypt.o $(top_builddir)/tinycrypt/lib/source/utun-ccm_mode.o $(top_builddir)/tinycrypt/lib/source/utun-cmac_mode.o $(top_builddir)/tinycrypt/lib/source/utun-ctr_mode.o $(top_builddir)/tinycrypt/lib/source/utun-sha256.o $(top_builddir)/tinycrypt/lib/source/utun-utils.o $(top_builddir)/lib/libuasync.a -lpthread -lcrypto # New comprehensive ll_queue test with current API test_ll_queue_SOURCES = test_ll_queue.c @@ -48,7 +48,7 @@ test_ll_queue_LDADD = $(top_builddir)/lib/libuasync.a -lpthread -lcrypto # ECC encryption test test_ecc_encrypt_SOURCES = test_ecc_encrypt.c -test_ecc_encrypt_CFLAGS = -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source +test_ecc_encrypt_CFLAGS = -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source -I$(top_srcdir)/lib test_ecc_encrypt_LDADD = $(top_builddir)/src/utun-secure_channel.o $(top_builddir)/src/utun-crc32.o $(top_builddir)/tinycrypt/lib/source/utun-aes_encrypt.o $(top_builddir)/tinycrypt/lib/source/utun-aes_decrypt.o $(top_builddir)/tinycrypt/lib/source/utun-ccm_mode.o $(top_builddir)/tinycrypt/lib/source/utun-cmac_mode.o $(top_builddir)/tinycrypt/lib/source/utun-ctr_mode.o $(top_builddir)/tinycrypt/lib/source/utun-ecc.o $(top_builddir)/tinycrypt/lib/source/utun-ecc_dh.o $(top_builddir)/tinycrypt/lib/source/utun-ecc_dsa.o $(top_builddir)/tinycrypt/lib/source/utun-sha256.o $(top_builddir)/tinycrypt/lib/source/utun-ecc_platform_specific.o $(top_builddir)/tinycrypt/lib/source/utun-utils.o $(top_builddir)/lib/libuasync.a -lpthread -lcrypto # Intensive memory pool test diff --git a/tests/test_crypto b/tests/test_crypto index 21c7bbc0cdc396833daad92a701a2f80ba1b60a5..083adb632fcc4a3e046582e5ac0e5f5db98779da 100755 GIT binary patch delta 36513 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 YA{@?Z&QIg #include #include +#include "../lib/debug_config.h" #define SC_TAG_SIZE 8 #define SC_SESSION_KEY_SIZE 16 int main() { - printf("=== Basic Crypto Test ===\n"); + debug_config_init(); + debug_set_level(DEBUG_LEVEL_TRACE); + debug_set_categories(DEBUG_CATEGORY_ALL); + + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "=== Basic Crypto Test ==="); struct tc_aes_key_sched_struct sched; uint8_t test_key[SC_SESSION_KEY_SIZE] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10}; if (tc_aes128_set_encrypt_key(&sched, test_key) != TC_CRYPTO_SUCCESS) { - printf("❌ AES key setup failed\n"); + DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, "AES key setup failed"); return 1; } - printf("✅ AES key setup successful\n"); + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "AES key setup successful"); struct tc_ccm_mode_struct ccm_state; TCCcmMode_t c = &ccm_state; uint8_t nonce[13] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD}; if (tc_ccm_config(c, &sched, nonce, 13, SC_TAG_SIZE) != TC_CRYPTO_SUCCESS) { - printf("❌ CCM config failed\n"); + DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, "CCM config failed"); return 1; } - printf("✅ CCM config successful\n"); + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "CCM config successful"); uint8_t plaintext[] = "Hello, World!"; uint8_t ciphertext[64]; @@ -38,25 +43,25 @@ int main() { size_t ciphertext_len = plaintext_len + SC_TAG_SIZE; if (tc_ccm_generation_encryption(ciphertext, ciphertext_len, NULL, 0, plaintext, plaintext_len, c) != TC_CRYPTO_SUCCESS) { - printf("❌ Encryption failed\n"); + DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, "Encryption failed"); return 1; } - printf("✅ Encryption successful\n"); + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Encryption successful"); uint8_t decrypted[64]; if (tc_ccm_decryption_verification(decrypted, plaintext_len, NULL, 0, ciphertext, ciphertext_len, c) != TC_CRYPTO_SUCCESS) { - printf("❌ Decryption failed\n"); + DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, "Decryption failed"); return 1; } - printf("✅ Decryption successful\n"); + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Decryption successful"); if (memcmp(plaintext, decrypted, plaintext_len) == 0) { - printf("✅ Crypto test PASSED\n"); + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Crypto test PASSED"); return 0; } else { - printf("❌ Data mismatch\n"); + DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, "Data mismatch"); return 1; } } diff --git a/tests/test_debug.c b/tests/test_debug.c index 4ba0d85..5d8c48d 100644 --- a/tests/test_debug.c +++ b/tests/test_debug.c @@ -1,5 +1,6 @@ #include "u_async.h" #include +#include "../lib/debug_config.h" /* Test statistics */ static struct { @@ -25,11 +26,15 @@ static struct { /* Timer callback for testing */ static void test_timer_callback(void* arg) { test_stats.timer_callbacks++; - printf("Timer callback fired. Total callbacks: %d\n", test_stats.timer_callbacks); + DEBUG_INFO(DEBUG_CATEGORY_UASYNC, "Timer callback fired. Total callbacks: %d", test_stats.timer_callbacks); } int main() { - printf("Before any tests: immediate_timeouts = %d\n", test_stats.immediate_timeouts); + debug_config_init(); + debug_set_level(DEBUG_LEVEL_TRACE); + debug_set_categories(DEBUG_CATEGORY_ALL); + + DEBUG_INFO(DEBUG_CATEGORY_UASYNC, "Before any tests: immediate_timeouts = %d", test_stats.immediate_timeouts); uasync_t* ua = uasync_create(); @@ -38,11 +43,11 @@ int main() { void* timer = uasync_set_timeout(ua, 0, NULL, test_timer_callback); } - printf("After setting 5 immediate timeouts, before poll: immediate_timeouts = %d\n", test_stats.immediate_timeouts); + DEBUG_INFO(DEBUG_CATEGORY_UASYNC, "After setting 5 immediate timeouts, before poll: immediate_timeouts = %d", test_stats.immediate_timeouts); uasync_poll(ua, 1); - printf("After poll: immediate_timeouts = %d\n", test_stats.immediate_timeouts); + DEBUG_INFO(DEBUG_CATEGORY_UASYNC, "After poll: immediate_timeouts = %d", test_stats.immediate_timeouts); uasync_destroy(ua, 0); return 0; diff --git a/tests/test_ecc_encrypt b/tests/test_ecc_encrypt index 99ac109a19e854524af00065605cf7e92bc7f74e..43f89b10f4cb678b33d151fda3e49fc5d4aea88d 100755 GIT binary patch delta 83648 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 W8L>IdjjDwzV9I@sTw1eb)%!oN1~z&C diff --git a/tests/test_ecc_encrypt.c b/tests/test_ecc_encrypt.c index 1b09870..b7f2087 100644 --- a/tests/test_ecc_encrypt.c +++ b/tests/test_ecc_encrypt.c @@ -41,24 +41,34 @@ #include #include #include +#include "../lib/debug_config.h" #define TC_PASS 0 #define TC_FAIL 1 -#define TC_PRINT printf -#define TC_ERROR(...) do { printf("ERROR: " __VA_ARGS__); } while(0) -#define TC_START(name) printf("Starting test: %s\n", name) -#define TC_END_RESULT(result) printf("Result: %s\n", (result) == TC_PASS ? "PASS" : "FAIL") -#define TC_END_REPORT(result) printf("Test %s\n", (result) == TC_PASS ? "SUCCESSFUL" : "FAILED") +#define TC_PRINT(...) DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, __VA_ARGS__) +#define TC_ERROR(...) DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, __VA_ARGS__) +#define TC_START(name) DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Starting test: %s", name) +#define TC_END_RESULT(result) DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Result: %s", (result) == TC_PASS ? "PASS" : "FAIL") +#define TC_END_REPORT(result) DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Test %s", (result) == TC_PASS ? "SUCCESSFUL" : "FAILED") static void show_str(const char *label, const uint8_t *s, size_t len) { - unsigned int i; - printf("%s = ", label); - for (i = 0; i < (unsigned int) len; ++i) { - printf("%02x", s[i]); + char hex_buf[256]; + char *ptr = hex_buf; + int remaining = sizeof(hex_buf); + int written = snprintf(ptr, remaining, "%s = ", label); + if (written < 0 || written >= remaining) return; + ptr += written; + remaining -= written; + + for (unsigned int i = 0; i < len && remaining > 2; ++i) { + written = snprintf(ptr, remaining, "%02x", s[i]); + if (written < 0 || written >= remaining) break; + ptr += written; + remaining -= written; } - printf("\n"); + DEBUG_DEBUG(DEBUG_CATEGORY_CRYPTO, "%s", hex_buf); } static int test_key_exchange_and_encrypt(void) @@ -163,17 +173,21 @@ static int test_key_exchange_and_encrypt(void) int main(void) { + debug_config_init(); + debug_set_level(DEBUG_LEVEL_TRACE); + debug_set_categories(DEBUG_CATEGORY_ALL); + unsigned int result = TC_PASS; - TC_START("Performing client-server key exchange and encryption test:"); + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Performing client-server key exchange and encryption test:"); /* Setup cryptographically secure PRNG */ uECC_set_rng(&default_CSPRNG); result = test_key_exchange_and_encrypt(); - TC_END_RESULT(result); - TC_END_REPORT(result); + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Result: %s", result == TC_PASS ? "PASS" : "FAIL"); + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Test %s", result == TC_PASS ? "SUCCESSFUL" : "FAILED"); return result; } \ No newline at end of file diff --git a/tests/test_etcp_crypto b/tests/test_etcp_crypto index f38c07c2d3570219a876529afb6c11460a279715..4c705a6e5334d44d76df57c78641e4059c790d2d 100755 GIT binary patch delta 77789 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 Kn$x5^RLQ?)Jag&* delta 61544 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%0AwJ3G^ZG6Oh@n z<6Qn^6TRQ?OIx^%VzG;n*X4(-#_NuCMq$GkR{<-k65cUG@S{49J|7AuP_u5%)K@aGcq|C?YxNdm zJm2G+G&2pq(C}+a33_8V-j0E}E)SUKF%_=-aHGZ@>*?Kru`VOe@LzSk_`r+Ck~{-H zt6=!l@Ed>b@`K^mEpp|acTZR^9|$i(EuhZSYD~ka4!H5148LlaOZPGbf1TlHPjva| zFwZc~lQ)GB@3O6YPyR-ivE9huE__Sh&<{gPwd>0cBYVmem}%qIlb#Jz@Losbb6EO* zd5CMfqe=4(!*9G(#P7jpBWv8$&$;pmc&g}H7-S4x7QcFgqfD4iT^pC5Xrh}Keq5Ey zSZBII7WmTXy7V*>jlatn41TNF5i@; zwbbyZX_s%rt$U1}#v40o!{5-NB7A24}*&d8r}E899?x?@|TaEp?=no;ThEct zvKs!nk;pK4nQAmI8vcP)moeV(|7rMR%3MaYson^^aUhywQ(P<9{^N}Nw??g_;Wyp` zq>tfmFs-GJkso6CImTn-zm;eB877BjsIX?ad?am}%SXo0ZQ@s#6^LgqYJAbyVC*&C ze|5L0`Hvu4x@YJEBUn@68vfAO|H|;IDqRNWUkv_mQxFqedXC{I8UD0#mw(PZS=okP zWd<~F;Ogh{JN@cy+#8HS_5jzyY}07@4N)uU29sG;HVnm?G|VaFCAHjTOh+?kSY!Bc z-Cg?skTnK=hRr&)3?HO~=YepVkW=TuV=4fpbk$|n_;EzlFjI79V| zW1LJ`RuTIF?5jJlpg?yS>vYz)k9Cgdam!$6`Z#Ar0+vq-%gXB0gY&hSH#=w4ixZq_ z%FeO%j9Z*e@fiWPyu9;Rz55oYb9@=9i@`f*>vOj_*>Q&ZggKY$%!y9th*VS9sX;wy zqSG^Bj;R#yT&48G6P+b^P`EqSX{mE^ow$f>bD_3L4CcynR#E-+O=JtNQQ)ZCj}duL8%>%+!p6Lnpl6PGY;hs*QM zQStgbv?IKm#nSyceUj5N!n@mCv|mpm?cKgq?bi>G_Gb7wPw6wDiI-NO* z`Je2>hu0Z54(LgfonGFJP3i%cU8Q$Vc6zG=`pjf!K+rI2bmkPNSLCP9xiZHtS^8Wn zw3x+HoMw?V54(N(omPf>l-&6zTy8x6lP)?hr`?Jf9(dTY;dL?InX@tz&xh?$crmvambc~$#zi!kU;YNS) QROn~np&o-~n``<10M+Qj;Q#;t diff --git a/tests/test_etcp_crypto.c b/tests/test_etcp_crypto.c index a870f0d..6e5d425 100644 --- a/tests/test_etcp_crypto.c +++ b/tests/test_etcp_crypto.c @@ -4,12 +4,17 @@ #include #include #include +#include "../lib/debug_config.h" #define TEST_DATA "Hello, ETCP encrypted world!" #define TEST_DATA_LEN 28 int main() { - printf("=== ETCP Crypto Test ===\n"); + debug_config_init(); + debug_set_level(DEBUG_LEVEL_TRACE); + debug_set_categories(DEBUG_CATEGORY_ALL); + + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "=== ETCP Crypto Test ==="); // Create test keys struct SC_MYKEYS server_keys, client_keys; @@ -27,7 +32,7 @@ int main() { // Initialize contexts sc_context_t server_ctx, client_ctx; if (sc_init_ctx(&server_ctx, &server_keys) != SC_OK || sc_init_ctx(&client_ctx, &client_keys) != SC_OK) { - printf("❌ Failed to initialize crypto contexts\n"); + DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, "Failed to initialize crypto contexts"); return 1; } @@ -46,7 +51,7 @@ int main() { memcpy(client_ctx.session_key, test_session_key, SC_SESSION_KEY_SIZE); memcpy(server_ctx.session_key, test_session_key, SC_SESSION_KEY_SIZE); - printf("✅ Crypto contexts initialized\n"); + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Crypto contexts initialized"); // Test encryption/decryption uint8_t plaintext[] = TEST_DATA; @@ -55,21 +60,21 @@ int main() { // Client -> Server if (sc_encrypt(&client_ctx, plaintext, TEST_DATA_LEN, ciphertext, &ciphertext_len) != SC_OK) { - printf("❌ Encryption failed\n"); + DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, "Encryption failed"); return 1; } if (sc_decrypt(&server_ctx, ciphertext, ciphertext_len, decrypted, &decrypted_len) != SC_OK) { - printf("❌ Decryption failed\n"); + DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, "Decryption failed"); return 1; } if (decrypted_len != TEST_DATA_LEN || memcmp(plaintext, decrypted, TEST_DATA_LEN) != 0) { - printf("❌ Data mismatch\n"); + DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, "Data mismatch"); return 1; } - printf("✅ Client->Server encryption/decryption: PASSED\n"); - printf("✅ ETCP crypto test PASSED\n"); + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Client->Server encryption/decryption: PASSED"); + DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "ETCP crypto test PASSED"); return 0; } diff --git a/tests/test_etcp_two_instances.c b/tests/test_etcp_two_instances.c index da29295..1d0d588 100644 --- a/tests/test_etcp_two_instances.c +++ b/tests/test_etcp_two_instances.c @@ -12,6 +12,7 @@ #include "../src/tun_if.h" #include "../src/secure_channel.h" #include "../lib/u_async.h" +#include "../lib/debug_config.h" #define TEST_TIMEOUT_MS 3000 // Reduced to 3 seconds for faster testing @@ -117,47 +118,51 @@ static void test_timeout(void* arg) { } int main() { - printf("=== ETCP Two-Instance Connection Test ===\n\n"); + debug_config_init(); + debug_set_level(DEBUG_LEVEL_TRACE); + debug_set_categories(DEBUG_CATEGORY_ALL); + + DEBUG_INFO(DEBUG_CATEGORY_ETCP, "=== ETCP Two-Instance Connection Test ==="); // Explicitly disable TUN initialization for this test utun_instance_set_tun_init_enabled(0); // Create server instance - printf("Creating server instance...\n"); + DEBUG_INFO(DEBUG_CATEGORY_ETCP, "Creating server instance..."); struct UASYNC* server_ua = uasync_create(); server_instance = utun_instance_create(server_ua, "test_server.conf"); if (!server_instance) { - printf("Failed to create server instance\n"); + DEBUG_ERROR(DEBUG_CATEGORY_ETCP, "Failed to create server instance"); return 1; } // Check if TUN is disabled and handle accordingly if (server_instance->tun.fd < 0) { - printf("ℹ️ Server TUN disabled - skipping full initialization\n"); - printf("✅ Server instance created successfully (node_id=%llx)\n", (unsigned long long)server_instance->node_id); + DEBUG_INFO(DEBUG_CATEGORY_TUN, "Server TUN disabled - skipping full initialization"); + DEBUG_INFO(DEBUG_CATEGORY_ETCP, "Server instance created successfully (node_id=%llx)", (unsigned long long)server_instance->node_id); // Skip to client creation } else { // Normal initialization for TUN-enabled mode if (utun_instance_init(server_instance) < 0) { - printf("Failed to initialize server instance\n"); + DEBUG_ERROR(DEBUG_CATEGORY_ETCP, "Failed to initialize server instance"); utun_instance_destroy(server_instance); return 1; } if (utun_instance_register_sockets(server_instance) < 0) { - printf("Failed to register server sockets\n"); + DEBUG_ERROR(DEBUG_CATEGORY_ETCP, "Failed to register server sockets"); utun_instance_destroy(server_instance); return 1; } } - printf("Server instance ready (node_id=%llx)\n\n", (unsigned long long)server_instance->node_id); + DEBUG_INFO(DEBUG_CATEGORY_ETCP, "Server instance ready (node_id=%llx)", (unsigned long long)server_instance->node_id); // Create client instance - printf("Creating client instance...\n"); + DEBUG_INFO(DEBUG_CATEGORY_ETCP, "Creating client instance..."); struct UASYNC* client_ua = uasync_create(); client_instance = utun_instance_create(client_ua, "test_client.conf"); if (!client_instance) { - printf("Failed to create client instance\n"); + DEBUG_ERROR(DEBUG_CATEGORY_ETCP, "Failed to create client instance"); utun_instance_destroy(server_instance); return 1; }