mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2025-01-28 22:54:55 +01:00
Add tests for replace_substring
This commit is contained in:
parent
b47d55338c
commit
a45c58f0b5
2 changed files with 42 additions and 1 deletions
|
@ -25,6 +25,38 @@ START_TEST(test_file_valid_extension_null) {
|
||||||
fail_unless(file_valid_extension(NULL, "pdf") == false, NULL);
|
fail_unless(file_valid_extension(NULL, "pdf") == false, NULL);
|
||||||
} END_TEST
|
} END_TEST
|
||||||
|
|
||||||
|
START_TEST(test_strings_replace_substrings_invalid) {
|
||||||
|
fail_unless(replace_substring(NULL, NULL, NULL) == NULL);
|
||||||
|
fail_unless(replace_substring("", NULL, NULL) == NULL);
|
||||||
|
fail_unless(replace_substring("", "", NULL) == NULL);
|
||||||
|
} END_TEST
|
||||||
|
|
||||||
|
START_TEST(test_strings_replace_substrings_nothing_to_replace) {
|
||||||
|
fail_unless(replace_substring("test", "n", "y") == NULL);
|
||||||
|
} END_TEST
|
||||||
|
|
||||||
|
START_TEST(test_strings_replace_substrings_1) {
|
||||||
|
char* result = replace_substring("test", "e", "f");
|
||||||
|
fail_unless(result != NULL);
|
||||||
|
fail_unless(strncmp(result, "tfst", 5) == 0);
|
||||||
|
g_free(result);
|
||||||
|
} END_TEST
|
||||||
|
|
||||||
|
START_TEST(test_strings_replace_substrings_2) {
|
||||||
|
char* result = replace_substring("test", "es", "f");
|
||||||
|
fail_unless(result != NULL);
|
||||||
|
fail_unless(strncmp(result, "tft", 4) == 0);
|
||||||
|
g_free(result);
|
||||||
|
} END_TEST
|
||||||
|
|
||||||
|
START_TEST(test_strings_replace_substrings_3) {
|
||||||
|
char* result = replace_substring("test", "e", "fg");
|
||||||
|
fail_unless(result != NULL);
|
||||||
|
fail_unless(strncmp(result, "tfgst", 6) == 0);
|
||||||
|
g_free(result);
|
||||||
|
} END_TEST
|
||||||
|
|
||||||
|
|
||||||
Suite* suite_utils()
|
Suite* suite_utils()
|
||||||
{
|
{
|
||||||
TCase* tcase = NULL;
|
TCase* tcase = NULL;
|
||||||
|
@ -42,5 +74,14 @@ Suite* suite_utils()
|
||||||
tcase_add_test(tcase, test_file_valid_extension_null);
|
tcase_add_test(tcase, test_file_valid_extension_null);
|
||||||
suite_add_tcase(suite, tcase);
|
suite_add_tcase(suite, tcase);
|
||||||
|
|
||||||
|
/* strings */
|
||||||
|
tcase = tcase_create("strings");
|
||||||
|
tcase_add_test(tcase, test_strings_replace_substrings_invalid);
|
||||||
|
tcase_add_test(tcase, test_strings_replace_substrings_nothing_to_replace);
|
||||||
|
tcase_add_test(tcase, test_strings_replace_substrings_1);
|
||||||
|
tcase_add_test(tcase, test_strings_replace_substrings_2);
|
||||||
|
tcase_add_test(tcase, test_strings_replace_substrings_3);
|
||||||
|
suite_add_tcase(suite, tcase);
|
||||||
|
|
||||||
return suite;
|
return suite;
|
||||||
}
|
}
|
||||||
|
|
2
utils.c
2
utils.c
|
@ -461,7 +461,7 @@ replace_substring(const char* string, const char* old, const char* new)
|
||||||
/* replace */
|
/* replace */
|
||||||
while (*string != '\0') {
|
while (*string != '\0') {
|
||||||
if (strstr(string, old) == string) {
|
if (strstr(string, old) == string) {
|
||||||
strcpy(&ret[i], new);
|
strncpy(&ret[i], new, new_len);
|
||||||
i += new_len;
|
i += new_len;
|
||||||
string += old_len;
|
string += old_len;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue