#include "rename.h"
+char* strdup(const char* str)
+{
+ size_t len = strlen(str) + 1;
+ char* value = malloc(len);
+ if (value == NULL)
+ return NULL;
+
+ strncpy(value, str, len);
+
+ return value;
+}
+
char* replace(char** src, const char* pattern, const char* replace_str)
{
const size_t len = strlen(*src);
return output;
}
-void escape(const char* src, char* dst)
+char* escape(char** src)
{
- size_t len = strlen(src) + 1;
- char* out = malloc(len);
- if (out == NULL)
- return;
-
- memcpy(out, src, len);
-
- out = replace(&out, " ", "\\ ");
+ char* out = replace(src, " ", "\\ ");
out = replace(&out, "(", "\\(");
out = replace(&out, ")", "\\)");
out = replace(&out, "{", "\\{");
out = replace(&out, "[", "\\[");
out = replace(&out, "]", "\\]");
- memcpy(dst, out, strlen(out) + 1);
- free(out);
- out = NULL;
+ return out;
}
-void rename_point(const char* src, char* dst)
+char* rename_point(char** src)
{
- size_t len = strlen(src) + 1;
- char* out = malloc(len);
- if (out == NULL)
- return;
-
- memcpy(out, src, len);
-
- rename_string(src, out);
+ char* out = rename_string(src);
out = replace(&out, ".", "");
- memcpy(dst, out, strlen(out) + 1);
- free(out);
- out = NULL;
+ return out;
}
-void rename_lower(const char* src, char* dst)
+char* rename_lower(char** src)
{
- rename_string(src, dst);
- size_t length = strlen(dst);
+ char* out = rename_string(src);
+ size_t length = strlen(out);
for (size_t i = 0; i < length; i++) {
- if (dst[i] >= A && dst[i] <= Z)
- dst[i] += SPACE;
+ if (out[i] >= A && out[i] <= Z)
+ out[i] += SPACE;
}
+
+ return out;
}
-void rename_string(const char* src, char* dst)
+char* rename_string(char** src)
{
- size_t len = strlen(src) + 1;
- char* out = malloc(len);
- if (out == NULL)
- return;
-
- memcpy(out, src, len);
-
- out = replace(&out, " ", "_");
+ char* out = replace(src, " ", "_");
out = replace(&out, "ä", "ae");
out = replace(&out, "Ä", "Ae");
out = replace(&out, "ö", "oe");
out = replace(&out, "Ü", "Ue");
out = replace(&out, "ß", "ss");
- memcpy(dst, out, strlen(out) + 1);
- free(out);
- out = NULL;
+ return out;
}
-void rename_revert(const char* src, char* dst)
+char* rename_revert(char** src)
{
- size_t len = strlen(src) + 1;
- char* out = malloc(len);
- if (out == NULL)
- return;
-
- memcpy(out, src, len);
-
- out = replace(&out, "_", " ");
+ char* out = replace(src, "_", " ");
out = replace(&out, "ae", "ä");
out = replace(&out, "Ae", "Ä");
out = replace(&out, "oe", "ö");
out = replace(&out, "Ue", "Ü");
out = replace(&out, "ss", "ß");
- memcpy(dst, out, strlen(out) + 1);
- free(out);
- out = NULL;
+ return out;
}
#include <string.h>
#include "../src/rename.h"
-int setup_group(void** state)
+void str_dup()
{
- char* output = malloc(STR_MAX_LENGTH);
- if (output == NULL)
- return 1;
+ const char* str = "Der String";
- *state = output;
- return 0;
-}
+ char* out = strdup(str);
-int teardown_group(void** state)
-{
- free(*state);
- *state = NULL;
+ assert_string_equal(out, "Der String");
- return 0;
-}
-
-int setup(void** state)
-{
- memset(*state, 0, STR_MAX_LENGTH);
- return 0;
+ free(out);
+ out = NULL;
}
-void rename_spaces(void** state)
+void rename_spaces()
{
- char* output = (char*) *state;
- const char* input = "Dies ist ein Test Satz";
+ char* input = strdup("Dies ist ein Test Satz");
- rename_string(input, output);
+ char* output = rename_string(&input);
assert_string_equal(output, "Dies_ist_ein_Test_Satz");
+
+ free(output);
+ output = NULL;
}
-void rename_ae(void** state)
+void rename_ae()
{
- char* output = (char*) *state;
- const char* input = "wäre";
+ char* input = strdup("wäre");
- rename_string(input, output);
+ char* output = rename_string(&input);
assert_string_equal(output, "waere");
+
+ free(output);
+ output = NULL;
}
-void rename_Ae(void** state)
+void rename_Ae()
{
- char* output = (char*) *state;
- const char* input = "Ächtzen";
+ char* input = strdup("Ächtzen");
- rename_string(input, output);
+ char* output = rename_string(&input);
assert_string_equal(output, "Aechtzen");
+
+ free(output);
+ output = NULL;
}
-void rename_oe(void** state)
+void rename_oe()
{
- char* output = (char*) *state;
- const char* input = "König";
+ char* input = strdup("König");
- rename_string(input, output);
+ char* output = rename_string(&input);
assert_string_equal(output, "Koenig");
+
+ free(output);
+ output = NULL;
}
-void rename_Oe(void** state)
+void rename_Oe()
{
- char* output = (char*) *state;
- const char* input = "Ökosystem";
+ char* input = strdup("Ökosystem");
- rename_string(input, output);
+ char* output = rename_string(&input);
assert_string_equal(output, "Oekosystem");
+
+ free(output);
+ output = NULL;
}
-void rename_ue(void** state)
+void rename_ue()
{
- char* output = (char*) *state;
- const char* input = "brüllt";
+ char* input = strdup("brüllt");
- rename_string(input, output);
+ char* output = rename_string(&input);
assert_string_equal(output, "bruellt");
+
+ free(output);
+ output = NULL;
}
-void rename_Ue(void** state)
+void rename_Ue()
{
- char* output = (char*) *state;
- const char* input = "Überlastung";
+ char* input = strdup("Überlastung");
- rename_string(input, output);
+ char* output = rename_string(&input);
assert_string_equal(output, "Ueberlastung");
+
+ free(output);
+ output = NULL;
}
-void rename_scharfes_s(void** state)
+void rename_scharfes_s()
{
- char* output = (char*) *state;
- const char* input = "Gruß";
+ char* input = strdup("Gruß");
- rename_string(input, output);
+ char* output = rename_string(&input);
assert_string_equal(output, "Gruss");
+
+ free(output);
+ output = NULL;
}
-void none_replace_wide_char(void** state)
+void none_replace_wide_char()
{
- char* output = (char*) *state;
- const char* none_replace = "ō";
+ char* none_replace = strdup("ō");
- rename_string(none_replace, output);
+ char* output = rename_string(&none_replace);
- assert_string_equal(output, none_replace);
+ assert_string_equal(output, "ō");
+
+ free(output);
+ output = NULL;
}
-void rename_lower_case(void** state)
+void rename_lower_case()
{
- char* output = (char*) *state;
- const char* input = "Gruß Gott, hat der Biergarten offen?";
+ char* input = strdup("Gruß Gott, hat der Biergarten offen?");
- rename_lower(input, output);
+ char* output = rename_lower(&input);
assert_string_equal(output, "gruss_gott,_hat_der_biergarten_offen?");
+
+ free(output);
+ output = NULL;
}
-void rename_point_case(void** state)
+void rename_point_case()
{
- char* output = (char*) *state;
- const char* input = "Dies ist die Geschichte von...........";
+ char* input = strdup("Dies ist die Geschichte von...........");
- rename_point(input, output);
+ char* output = rename_point(&input);
assert_string_equal(output, "Dies_ist_die_Geschichte_von");
+
+ free(output);
+ output = NULL;
}
-void escape_test(void** state)
+void escape_test()
{
- char* output = (char*) *state;
- const char* input = "Dies ist [die] (Geschichte) {von}";
+ char* input = strdup("Dies ist [die] (Geschichte) {von}");
- escape(input, output);
+ char* output = escape(&input);
assert_string_equal(output, "Dies\\ ist\\ \\[die\\]\\ \\(Geschichte\\)\\ \\{von\\}");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_spaces(void** state)
+void rename_revert_spaces()
{
- char* output = (char*) *state;
- const char* input = "Dies_ist_ein_Test_Satz";
+ char* input = strdup("Dies_ist_ein_Test_Satz");
- rename_revert(input, output);
+ char* output = rename_revert(&input);
assert_string_equal(output, "Dies ist ein Test Satz");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_ae(void** state)
+void rename_revert_ae()
{
- char* output = (char*) *state;
- const char* input = "waere";
+ char* input = strdup("waere");
- rename_revert(input, output);
+ char* output = rename_revert(&input);
assert_string_equal(output, "wäre");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_Ae(void** state)
+void rename_revert_Ae()
{
- char* output = (char*) *state;
- const char* input = "Aechtzen";
+ char* input = strdup("Aechtzen");
- rename_revert(input, output);
+ char* output = rename_revert(&input);
assert_string_equal(output, "Ächtzen");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_oe(void** state)
+void rename_revert_oe()
{
- char* output = (char*) *state;
- const char* input = "Koenig";
+ char* input = strdup("Koenig");
- rename_revert(input, output);
+ char* output = rename_revert(&input);
assert_string_equal(output, "König");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_Oe(void** state)
+void rename_revert_Oe()
{
- char* output = (char*) *state;
- const char* input = "Oekosystem";
+ char* input = strdup("Oekosystem");
- rename_revert(input, output);
+ char* output = rename_revert(&input);
assert_string_equal(output, "Ökosystem");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_ue(void** state)
+void rename_revert_ue()
{
- char* output = (char*) *state;
- const char* input = "bruellt";
+ char* input = strdup("bruellt");
- rename_revert(input, output);
+ char* output = rename_revert(&input);
assert_string_equal(output, "brüllt");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_Ue(void** state)
+void rename_revert_Ue()
{
- char* output = (char*) *state;
- const char* input = "Ueberlastung";
+ char* input = strdup("Ueberlastung");
- rename_revert(input, output);
+ char* output = rename_revert(&input);
assert_string_equal(output, "Überlastung");
+
+ free(output);
+ output = NULL;
}
-void rename_revert_ss(void** state)
+void rename_revert_ss()
{
- char* output = (char*) *state;
- const char* input = "Gruss";
+ char* input = strdup("Gruss");
- rename_revert(input, output);
+ char* output = rename_revert(&input);
assert_string_equal(output, "Gruß");
+
+ free(output);
+ output = NULL;
}
void replace_string()
{
- char* input = malloc(sizeof(char) * 11);
- if (input == NULL)
- return;
- memcpy(input, "Hello Max!", 11);
+ char* input = strdup("Hello Max!");
char* output = replace(&input, "Max", "World");
int main()
{
const struct CMUnitTest tests[] = {
- cmocka_unit_test_setup(rename_spaces, setup),
- cmocka_unit_test_setup(rename_ae, setup),
- cmocka_unit_test_setup(rename_Ae, setup),
- cmocka_unit_test_setup(rename_oe, setup),
- cmocka_unit_test_setup(rename_Oe, setup),
- cmocka_unit_test_setup(rename_ue, setup),
- cmocka_unit_test_setup(rename_Ue, setup),
- cmocka_unit_test_setup(none_replace_wide_char, setup),
- cmocka_unit_test_setup(rename_scharfes_s, setup),
- cmocka_unit_test_setup(rename_lower_case, setup),
- cmocka_unit_test_setup(rename_point_case, setup),
- cmocka_unit_test_setup(escape_test, setup),
- cmocka_unit_test_setup(rename_revert_spaces, setup),
- cmocka_unit_test_setup(rename_revert_ae, setup),
- cmocka_unit_test_setup(rename_revert_Ae, setup),
- cmocka_unit_test_setup(rename_revert_oe, setup),
- cmocka_unit_test_setup(rename_revert_Oe, setup),
- cmocka_unit_test_setup(rename_revert_ue, setup),
- cmocka_unit_test_setup(rename_revert_Ue, setup),
- cmocka_unit_test_setup(rename_revert_ss, setup),
+ cmocka_unit_test(str_dup),
+ cmocka_unit_test(rename_spaces),
+ cmocka_unit_test(rename_ae),
+ cmocka_unit_test(rename_Ae),
+ cmocka_unit_test(rename_oe),
+ cmocka_unit_test(rename_Oe),
+ cmocka_unit_test(rename_ue),
+ cmocka_unit_test(rename_Ue),
+ cmocka_unit_test(rename_scharfes_s),
+ cmocka_unit_test(none_replace_wide_char),
+ cmocka_unit_test(rename_lower_case),
+ cmocka_unit_test(rename_point_case),
+ cmocka_unit_test(escape_test),
+ cmocka_unit_test(rename_revert_spaces),
+ cmocka_unit_test(rename_revert_ae),
+ cmocka_unit_test(rename_revert_Ae),
+ cmocka_unit_test(rename_revert_oe),
+ cmocka_unit_test(rename_revert_Oe),
+ cmocka_unit_test(rename_revert_ue),
+ cmocka_unit_test(rename_revert_Ue),
+ cmocka_unit_test(rename_revert_ss),
cmocka_unit_test(replace_string)
};
- return cmocka_run_group_tests(tests, setup_group, teardown_group);
+ return cmocka_run_group_tests(tests, NULL, NULL);
}
\ No newline at end of file