Wed, 07 Jan 2026 22:31:05 +0100
add test for util_path_isrelated
| test/base64.c | file | annotate | diff | comparison | revisions | |
| test/crypto.c | file | annotate | diff | comparison | revisions | |
| test/main.c | file | annotate | diff | comparison | revisions | |
| test/utils.c | file | annotate | diff | comparison | revisions | |
| test/utils.h | file | annotate | diff | comparison | revisions | |
| ucx/cx/test.h | file | annotate | diff | comparison | revisions |
--- a/test/base64.c Wed Jan 07 22:23:43 2026 +0100 +++ b/test/base64.c Wed Jan 07 22:31:05 2026 +0100 @@ -43,10 +43,10 @@ CX_TEST_DO { - CX_TEST_ASSERTMM(!strcmp(s1, "abc"), "s1 wrong"); - CX_TEST_ASSERTMM(!strcmp(s2, "hello world"), "s2 wrong"); - CX_TEST_ASSERTMM(!strcmp(s3, "0"), "s3 wrong"); - CX_TEST_ASSERTMM(!strcmp(s4, "0xx1"), "s4 wrong"); + CX_TEST_ASSERTM(!strcmp(s1, "abc"), "s1 wrong"); + CX_TEST_ASSERTM(!strcmp(s2, "hello world"), "s2 wrong"); + CX_TEST_ASSERTM(!strcmp(s3, "0"), "s3 wrong"); + CX_TEST_ASSERTM(!strcmp(s4, "0xx1"), "s4 wrong"); } @@ -67,23 +67,23 @@ CX_TEST_DO { - CX_TEST_ASSERTMM(!strcmp(s1, "hello"), "s1 wrong"); - CX_TEST_ASSERTMM(len1 == 5, "len1 wrong"); + CX_TEST_ASSERTM(!strcmp(s1, "hello"), "s1 wrong"); + CX_TEST_ASSERTM(len1 == 5, "len1 wrong"); - CX_TEST_ASSERTMM(!strcmp(s2, "012345678901234567890123456789"), "s2 wrong"); - CX_TEST_ASSERTMM(len2 == 30, "len2 wrong"); + CX_TEST_ASSERTM(!strcmp(s2, "012345678901234567890123456789"), "s2 wrong"); + CX_TEST_ASSERTM(len2 == 30, "len2 wrong"); - CX_TEST_ASSERTMM(!strcmp(s3, "."), "s3 wrong"); - CX_TEST_ASSERTMM(len3 == 1, "len3 wrong"); + CX_TEST_ASSERTM(!strcmp(s3, "."), "s3 wrong"); + CX_TEST_ASSERTM(len3 == 1, "len3 wrong"); - CX_TEST_ASSERTMM(!strcmp(s4, "lol"), "s4 wrong"); - CX_TEST_ASSERTMM(len4 == 3, "len4 wrong"); + CX_TEST_ASSERTM(!strcmp(s4, "lol"), "s4 wrong"); + CX_TEST_ASSERTM(len4 == 3, "len4 wrong"); - CX_TEST_ASSERTMM(!strcmp(s5, "abc------3x"), "s5 wrong"); - CX_TEST_ASSERTMM(len5 == 11, "len5 wrong"); + CX_TEST_ASSERTM(!strcmp(s5, "abc------3x"), "s5 wrong"); + CX_TEST_ASSERTM(len5 == 11, "len5 wrong"); - CX_TEST_ASSERTMM(!strcmp(s6, "abcdefg...;;0hello"), "s6 failed"); - CX_TEST_ASSERTMM(len6 == 18, "len6 wrong"); + CX_TEST_ASSERTM(!strcmp(s6, "abcdefg...;;0hello"), "s6 failed"); + CX_TEST_ASSERTM(len6 == 18, "len6 wrong"); } @@ -129,17 +129,17 @@ CX_TEST_DO { - CX_TEST_ASSERTMM(!strcmp(b1, "aGVsbG8gd29ybGQ="), "b1 failed"); - CX_TEST_ASSERTMM(!strcmp(b2, "dGVzdCBzdHJpbmc="), "b2 failed"); - CX_TEST_ASSERTMM(!strcmp(b3, "MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODk="), "b3 failed"); - CX_TEST_ASSERTMM(!strcmp(b4, "AAwDMgJuPwE="), "b4 failed"); + CX_TEST_ASSERTM(!strcmp(b1, "aGVsbG8gd29ybGQ="), "b1 failed"); + CX_TEST_ASSERTM(!strcmp(b2, "dGVzdCBzdHJpbmc="), "b2 failed"); + CX_TEST_ASSERTM(!strcmp(b3, "MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODk="), "b3 failed"); + CX_TEST_ASSERTM(!strcmp(b4, "AAwDMgJuPwE="), "b4 failed"); - CX_TEST_ASSERTMM(!strcmp(b5, "YQ=="), "b5 failed"); - CX_TEST_ASSERTMM(!strcmp(b6, "YWI="), "b6 failed"); - CX_TEST_ASSERTMM(!strcmp(b7, "YWJj"), "b7 failed"); - CX_TEST_ASSERTMM(!strcmp(b8, "YWJjZA=="), "b8 failed"); - CX_TEST_ASSERTMM(!strcmp(b9, "YWJjZGU="), "b9 failed"); - CX_TEST_ASSERTMM(!strcmp(b10, "YWJjZGVm"), "b10 failed"); + CX_TEST_ASSERTM(!strcmp(b5, "YQ=="), "b5 failed"); + CX_TEST_ASSERTM(!strcmp(b6, "YWI="), "b6 failed"); + CX_TEST_ASSERTM(!strcmp(b7, "YWJj"), "b7 failed"); + CX_TEST_ASSERTM(!strcmp(b8, "YWJjZA=="), "b8 failed"); + CX_TEST_ASSERTM(!strcmp(b9, "YWJjZGU="), "b9 failed"); + CX_TEST_ASSERTM(!strcmp(b10, "YWJjZGVm"), "b10 failed"); }
--- a/test/crypto.c Wed Jan 07 22:23:43 2026 +0100 +++ b/test/crypto.c Wed Jan 07 22:31:05 2026 +0100 @@ -214,8 +214,8 @@ char *s128 = util_decrypt_str_k(sn, c1, &keys128[k]); char *s256 = util_decrypt_str_k(sn, c2, &keys256[k]); - CX_TEST_ASSERTMM(!strcmp(s128, strings[i]), "s128 wrong"); - CX_TEST_ASSERTMM(!strcmp(s256, strings[i]), "s256 wrong"); + CX_TEST_ASSERTM(!strcmp(s128, strings[i]), "s128 wrong"); + CX_TEST_ASSERTM(!strcmp(s256, strings[i]), "s256 wrong"); } } @@ -238,8 +238,8 @@ char *dec1 = util_decrypt_str_k(sn, aes128, &keys128[k]); char *dec2 = util_decrypt_str_k(sn, aes256, &keys256[k]); - CX_TEST_ASSERTMM(!strcmp(dec1, strings[i]), "aes128 encrypt failed"); - CX_TEST_ASSERTMM(!strcmp(dec2, strings[i]), "aes256 encrypt failed"); + CX_TEST_ASSERTM(!strcmp(dec1, strings[i]), "aes128 encrypt failed"); + CX_TEST_ASSERTM(!strcmp(dec2, strings[i]), "aes256 encrypt failed"); } } @@ -258,20 +258,20 @@ content->pos = 0; CxBuffer *enc = aes_encrypt_buffer(content, key); - CX_TEST_ASSERTMM(enc->size >= content->size + 16, "aes_encrypt_buffer failed"); + CX_TEST_ASSERTM(enc->size >= content->size + 16, "aes_encrypt_buffer failed"); char *base64 = util_base64encode(enc->space, enc->size); size_t plainlen = 0; char *plain = aes_decrypt(base64, &plainlen, key); - CX_TEST_ASSERTMM(plain, "aes_decrypt failed"); - CX_TEST_ASSERTMM(plainlen == content->size, "aes_decrypt: wrong length"); - CX_TEST_ASSERTMM(!memcmp(plain, content->space, plainlen), "aes_decrypt: wrong content"); + CX_TEST_ASSERTM(plain, "aes_decrypt failed"); + CX_TEST_ASSERTM(plainlen == content->size, "aes_decrypt: wrong length"); + CX_TEST_ASSERTM(!memcmp(plain, content->space, plainlen), "aes_decrypt: wrong content"); CxBuffer *dec = aes_decrypt_buffer(enc, key); - CX_TEST_ASSERTMM(dec->size == content->size, "aes_decrypt_buffer failed"); + CX_TEST_ASSERTM(dec->size == content->size, "aes_decrypt_buffer failed"); - CX_TEST_ASSERTMM(!memcmp(content->space, dec->space, dec->size), "decrypted buffer has wrong content"); + CX_TEST_ASSERTM(!memcmp(content->space, dec->space, dec->size), "decrypted buffer has wrong content"); cxBufferFree(content); cxBufferFree(enc); @@ -318,15 +318,15 @@ aes_decrypter_shutdown(dec); aes_decrypter_close(dec); - CX_TEST_ASSERTMM(slen == pbuf->pos, "wrong length after enc-dec"); - CX_TEST_ASSERTMM(!memcmp(strings[j], pbuf->space, slen), "wrong content after enc-dec"); + CX_TEST_ASSERTM(slen == pbuf->pos, "wrong length after enc-dec"); + CX_TEST_ASSERTM(!memcmp(strings[j], pbuf->space, slen), "wrong content after enc-dec"); data->pos = 0; CxBuffer *enc2 = aes_encrypt_buffer(data, key); CxBuffer *dec2 = aes_decrypt_buffer(enc2, key); - CX_TEST_ASSERTMM(dec2->size == data->size, "dec2 has wrong size"); - CX_TEST_ASSERTMM(!memcmp(strings[j], dec2->space, dec2->size), "dec2 has wrong content"); + CX_TEST_ASSERTM(dec2->size == data->size, "dec2 has wrong size"); + CX_TEST_ASSERTM(!memcmp(strings[j], dec2->space, dec2->size), "dec2 has wrong content"); } } @@ -456,9 +456,9 @@ int index = 16*p + 4*s + i; int keylen = index % 2 == 0 ? 16 : 32; - CX_TEST_ASSERTMM(key, "no key"); - CX_TEST_ASSERTMM(keylen == key->length, "wrong key length"); - CX_TEST_ASSERTMM(!memcmp(key->data, pwgenkeys[index], keylen), "wrong key data"); + CX_TEST_ASSERTM(key, "no key"); + CX_TEST_ASSERTM(keylen == key->length, "wrong key length"); + CX_TEST_ASSERTM(!memcmp(key->data, pwgenkeys[index], keylen), "wrong key data"); } } }
--- a/test/main.c Wed Jan 07 22:23:43 2026 +0100 +++ b/test/main.c Wed Jan 07 22:31:05 2026 +0100 @@ -62,6 +62,7 @@ cx_test_register(suite, test_crypto_stream); cx_test_register(suite, test_dav_pw2key); cx_test_register(suite, test_util_parse_creationdate); + cx_test_register(suite, test_util_path_isrelated); cx_test_run_stdout(suite); cx_test_suite_free(suite);
--- a/test/utils.c Wed Jan 07 22:23:43 2026 +0100 +++ b/test/utils.c Wed Jan 07 22:31:05 2026 +0100 @@ -37,20 +37,41 @@ time_t t2 = util_parse_creationdate("2023-09-17T13:03:00+02:00"); struct tm *tm = gmtime(&t1); - CX_TEST_ASSERTMM(tm->tm_year == 112, "t1: wrong year"); - CX_TEST_ASSERTMM(tm->tm_mon == 10, "t1: wrong month"); - CX_TEST_ASSERTMM(tm->tm_mday == 29, "t1: wrong day"); - CX_TEST_ASSERTMM(tm->tm_hour == 21, "t1: wrong hour"); - CX_TEST_ASSERTMM(tm->tm_min == 35, "t1: wrong minute"); - CX_TEST_ASSERTMM(tm->tm_sec == 36, "t1: wrong second"); + CX_TEST_ASSERTM(tm->tm_year == 112, "t1: wrong year"); + CX_TEST_ASSERTM(tm->tm_mon == 10, "t1: wrong month"); + CX_TEST_ASSERTM(tm->tm_mday == 29, "t1: wrong day"); + CX_TEST_ASSERTM(tm->tm_hour == 21, "t1: wrong hour"); + CX_TEST_ASSERTM(tm->tm_min == 35, "t1: wrong minute"); + CX_TEST_ASSERTM(tm->tm_sec == 36, "t1: wrong second"); tm = gmtime(&t2); - CX_TEST_ASSERTMM(tm->tm_year == 123, "t2: wrong year"); - CX_TEST_ASSERTMM(tm->tm_mon == 8, "t2: wrong month"); - CX_TEST_ASSERTMM(tm->tm_mday == 17, "t2: wrong day"); - CX_TEST_ASSERTMM(tm->tm_hour == 11, "t2: wrong hour"); - CX_TEST_ASSERTMM(tm->tm_min == 03, "t2: wrong minute"); - CX_TEST_ASSERTMM(tm->tm_sec == 0, "t2: wrong second"); + CX_TEST_ASSERTM(tm->tm_year == 123, "t2: wrong year"); + CX_TEST_ASSERTM(tm->tm_mon == 8, "t2: wrong month"); + CX_TEST_ASSERTM(tm->tm_mday == 17, "t2: wrong day"); + CX_TEST_ASSERTM(tm->tm_hour == 11, "t2: wrong hour"); + CX_TEST_ASSERTM(tm->tm_min == 03, "t2: wrong minute"); + CX_TEST_ASSERTM(tm->tm_sec == 0, "t2: wrong second"); } } + +CX_TEST(test_util_path_isrelated) { + CX_TEST_DO { + CX_TEST_ASSERT(util_path_isrelated("/", "/")); + CX_TEST_ASSERT(util_path_isrelated("/", "/test")); + CX_TEST_ASSERT(util_path_isrelated("/", "/test/")); + CX_TEST_ASSERT(util_path_isrelated("/", "/test/sub")); + CX_TEST_ASSERT(util_path_isrelated("/", "/test/sub/")); + CX_TEST_ASSERT(util_path_isrelated("/dir1/", "/dir1")); + CX_TEST_ASSERT(util_path_isrelated("/dir1/", "/dir1/")); + CX_TEST_ASSERT(util_path_isrelated("/abc/test/123/", "/abc/test/123")); + CX_TEST_ASSERT(util_path_isrelated("/abc/test/123/", "/abc/test/123/test/sub/")); + + CX_TEST_ASSERT(!util_path_isrelated("/dir1/", "/dir2/")); + CX_TEST_ASSERT(!util_path_isrelated("/dir1/", "/dir2")); + CX_TEST_ASSERT(!util_path_isrelated("/dir1", "/dir2/")); + CX_TEST_ASSERT(!util_path_isrelated("/abc/123/test1", "/abc/123/xxx")); + CX_TEST_ASSERT(!util_path_isrelated("/abc/123/test1", "/abc/zzz/123/")); + CX_TEST_ASSERT(!util_path_isrelated("/dir1/", "/")); + } +}
--- a/test/utils.h Wed Jan 07 22:23:43 2026 +0100 +++ b/test/utils.h Wed Jan 07 22:31:05 2026 +0100 @@ -36,6 +36,7 @@ #endif CX_TEST(test_util_parse_creationdate); +CX_TEST(test_util_path_isrelated); #ifdef __cplusplus
--- a/ucx/cx/test.h Wed Jan 07 22:23:43 2026 +0100 +++ b/ucx/cx/test.h Wed Jan 07 22:31:05 2026 +0100 @@ -43,13 +43,13 @@ * **** IN SOURCE FILE: **** * <code> * CX_TEST_SUBROUTINE(subroutine_name, paramlist) { - * // tests with CX_TEST_ASSERTM() + * // tests with CX_TEST_ASSERT() * } * * CX_TEST(function_name) { * // memory allocation and other stuff here * #CX_TEST_DO { - * // tests with CX_TEST_ASSERTM() and/or + * // tests with CX_TEST_ASSERT() and/or * // calls with CX_TEST_CALL_SUBROUTINE() here * } * // cleanup of memory here @@ -57,7 +57,7 @@ * </code> * * @attention Do not call own functions within a test that use - * CX_TEST_ASSERTM() macros and are not defined by using CX_TEST_SUBROUTINE(). + * CX_TEST_ASSERT() macros and are not defined by using CX_TEST_SUBROUTINE(). * * @author Mike Becker * @author Olaf Wintermann @@ -255,7 +255,7 @@ * } * @endcode * - * @attention Any CX_TEST_ASSERTM() calls must be performed in the scope of + * @attention Any CX_TEST_ASSERT() calls must be performed in the scope of * #CX_TEST_DO. */ #define CX_TEST_DO _writefnc_("Running ", 1, 8, _output_);\ @@ -275,7 +275,7 @@ * @param condition (@c bool) the condition to check * @param message (@c char*) the message that shall be printed out on failure */ -#define CX_TEST_ASSERTMM(condition,message) if (!(condition)) { \ +#define CX_TEST_ASSERTM(condition,message) if (!(condition)) { \ const char *_assert_msg_ = message; \ _writefnc_(_assert_msg_, 1, strlen(_assert_msg_), _output_); \ _writefnc_(".\n", 1, 2, _output_); \ @@ -290,7 +290,7 @@ * written to the test suites output stream. * @param condition (@c bool) the condition to check */ -#define CX_TEST_ASSERTM(condition) CX_TEST_ASSERTMM(condition, #condition " failed") +#define CX_TEST_ASSERT(condition) CX_TEST_ASSERTM(condition, #condition " failed") /** * Macro for a test subroutine function header.