diff --git a/core/dap_strfuncs.c b/core/dap_strfuncs.c index 03700ebbe5a58701ff1c5de0cf7cdf9d96fe0b8f..cd07363a9b9545dd0913968f0fa5141616f3d95f 100755 --- a/core/dap_strfuncs.c +++ b/core/dap_strfuncs.c @@ -125,7 +125,7 @@ char* dap_strstr_len(const char *a_haystack, ssize_t a_haystack_len, const char else { const char *l_p = a_haystack; - size_t l_needle_len = strlen(a_needle); + ssize_t l_needle_len = (ssize_t)strlen(a_needle); const char *l_end; size_t l_i; diff --git a/test/core/dap_circular_test.c b/test/core/dap_circular_test.c index ed5cbe5230755225a757ee342064ceacd35b8bbf..2e3f108118b98362368134d302ae5cd35503f8ce 100644 --- a/test/core/dap_circular_test.c +++ b/test/core/dap_circular_test.c @@ -174,6 +174,7 @@ void dap_circular_load_test() count_writed_bytes = 4; char expectedBuffer[MAX_RESULT_BUF_LEN]; + memset(expectedBuffer, 0, MAX_RESULT_BUF_LEN); circular_buffer_read(cb, count_writed_bytes, expectedBuffer); int count_write_bytes = 4; diff --git a/test/core/dap_strfuncs_test.c b/test/core/dap_strfuncs_test.c new file mode 100644 index 0000000000000000000000000000000000000000..d114d07892416bb3f9e52c23d4c81ee0b67d7494 --- /dev/null +++ b/test/core/dap_strfuncs_test.c @@ -0,0 +1,90 @@ +#include "dap_common.h" +#include "dap_strfuncs_test.h" + +void dap_str_dup_test(void) +{ + int l_a = rand(), l_b = rand(); + const char *l_s = "test string"; + char l_str0[1024]; + sprintf(l_str0, "a=%d b=%d s=%s", l_a, l_b, l_s); + char *l_str1 = dap_strdup_printf("a=%d b=%d s=%s", l_a, l_b, l_s); + size_t str_size0 = strlen(l_str0); + size_t str_size1 = strlen(l_str1); + + char *l_str2 = DAP_NEW_SIZE(char, str_size1 + 1); + dap_stpcpy(l_str2, l_str1); + + size_t str_size2 = strlen(l_str2); + dap_assert_PIF(str_size0 == str_size1, "Strings sizes must be equal"); + dap_assert_PIF(str_size1 == str_size2, "Strings sizes must be equal"); + + dap_assert(!strcmp(l_str0, l_str1), "Test dap_strdup_printf()"); + dap_assert(!strcmp(l_str1, l_str2), "Test dap_stpcpy()"); + DAP_DELETE(l_str1); + DAP_DELETE(l_str2); +} + +void dap_str_modify_test(void) +{ + const char *l_s_in = "Test String"; + const char *l_s_up_check = "TEST STRING"; + const char *l_s_down_check = "test string"; + char *l_s_out; + + l_s_out = dap_strup(l_s_in, -1); + dap_assert(!strcmp(l_s_out, l_s_up_check), "Test dap_strup()"); + DAP_DELETE(l_s_out); + + l_s_out = dap_strdown(l_s_in, -1); + dap_assert(!strcmp(l_s_out, l_s_down_check), "Test dap_strdown()"); + DAP_DELETE(l_s_out); + + l_s_out = dap_strdup(l_s_in); + dap_strreverse(l_s_out); + dap_assert_PIF(strcmp(l_s_out, l_s_in), "String not modified"); + dap_strreverse(l_s_out); + dap_assert(!strcmp(l_s_out, l_s_in), "Test dap_strreverse()"); + DAP_DELETE(l_s_out); + + l_s_out = dap_strdup_printf(" %s ", l_s_in); + dap_strstrip(l_s_out); + dap_assert(!strcmp(l_s_out, l_s_in), "Test dap_strstrip()"); + DAP_DELETE(l_s_out); +} + +void dap_str_array_test(void) +{ + const char *l_s_in = "1:23:: Test: :\n:String:"; + char **l_s_array = dap_strsplit(l_s_in, ":", -1); + + int l_count = 1; + char *l_s_tmp = dap_strstr_len(l_s_in, -1, ":"); + while(l_s_tmp) { + l_s_tmp = dap_strstr_len(l_s_tmp + 1, -1, ":"); + l_count++; + } + + char **l_s_array_copy = dap_strdupv(l_s_array); + + dap_assert_PIF(dap_str_countv(l_s_array) == l_count, "String split"); + dap_assert_PIF(dap_str_countv(l_s_array_copy) == l_count, "String copy"); + char *l_s_out = dap_strjoinv(":", l_s_array); + dap_assert(!strcmp(l_s_out, l_s_in), "Test string array functions"); + + dap_strfreev(l_s_array); + dap_strfreev(l_s_array_copy); + DAP_DELETE(l_s_out); +} + +void dap_strfuncs_tests_run(void) +{ + dap_print_module_name("dap_strfuncs"); + + dap_str_dup_test(); + dap_str_modify_test(); + dap_str_array_test(); + + dap_usleep(0.5 * DAP_USEC_PER_SEC); + dap_assert(1, "Test dap_usleep(0.5 sec.)"); + +} diff --git a/test/core/dap_strfuncs_test.h b/test/core/dap_strfuncs_test.h new file mode 100644 index 0000000000000000000000000000000000000000..ef2e7963d900896e007b6cd96040f75e8e7ea122 --- /dev/null +++ b/test/core/dap_strfuncs_test.h @@ -0,0 +1,5 @@ +#pragma once +#include "dap_test.h" +#include "dap_strfuncs.h" + +extern void dap_strfuncs_tests_run(void); diff --git a/test/core/main.c b/test/core/main.c index 84291baf4fe4083f5b1728f2a44c791d731163ba..d4c1229dd4ba131c6be3b9f4d718b363a7ce6f98 100755 --- a/test/core/main.c +++ b/test/core/main.c @@ -1,12 +1,14 @@ #include "dap_config_test.h" #include "dap_common_test.h" #include "dap_network_monitor_test.h" +#include "dap_strfuncs_test.h" #include "dap_common.h" int main(void) { // switch off debug info from library set_log_level(L_CRITICAL); + dap_strfuncs_tests_run(); dap_config_tests_run(); dap_common_test_run(); #ifdef __unix__ diff --git a/test/libdap-test b/test/libdap-test index d2257789e0c796a5a3b637e14dcbaf8a8c7880cc..b76175acc517f085c319c8e66c62bd143f96bf94 160000 --- a/test/libdap-test +++ b/test/libdap-test @@ -1 +1 @@ -Subproject commit d2257789e0c796a5a3b637e14dcbaf8a8c7880cc +Subproject commit b76175acc517f085c319c8e66c62bd143f96bf94