From f8cadfebeef1cdbb8871a406a386006f4785cf35 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Mon, 14 May 2012 20:08:11 -0700 Subject: [PATCH] test suite for the crazy stuff that umlaut.c does. --- src/tests.c | 4 +++- src/util.vcxproj | 1 + src/util.vcxproj.filters | 3 +++ src/util/functions_test.c | 8 +++---- src/util/umlaut.c | 4 ++-- src/util/umlaut_test.c | 46 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 src/util/umlaut_test.c diff --git a/src/tests.c b/src/tests.c index fb736c744..914e23512 100644 --- a/src/tests.c +++ b/src/tests.c @@ -5,8 +5,9 @@ #include "tests.h" #include -#include #include +#include +#include #include #include #include @@ -38,6 +39,7 @@ int RunAllTests(void) CuSuiteAddSuite(suite, get_base36_suite()); CuSuiteAddSuite(suite, get_quicklist_suite()); CuSuiteAddSuite(suite, get_functions_suite()); + CuSuiteAddSuite(suite, get_umlaut_suite()); CuSuiteAddSuite(suite, get_curse_suite()); CuSuiteAddSuite(suite, get_market_suite()); CuSuiteAddSuite(suite, get_move_suite()); diff --git a/src/util.vcxproj b/src/util.vcxproj index f0b67638d..d1695aeac 100644 --- a/src/util.vcxproj +++ b/src/util.vcxproj @@ -151,6 +151,7 @@ + diff --git a/src/util.vcxproj.filters b/src/util.vcxproj.filters index 5f24407e5..e47bd8168 100644 --- a/src/util.vcxproj.filters +++ b/src/util.vcxproj.filters @@ -205,5 +205,8 @@ Source Files + + Source Files + \ No newline at end of file diff --git a/src/util/functions_test.c b/src/util/functions_test.c index c4c203385..1392662ed 100644 --- a/src/util/functions_test.c +++ b/src/util/functions_test.c @@ -4,20 +4,20 @@ #include "functions.h" -static void test_all(CuTest * tc) +static void test_functions(CuTest * tc) { pf_generic fun; fun = get_function("herpderp"); CuAssertTrue(tc, !fun); - register_function((pf_generic)test_all, "herpderp"); + register_function((pf_generic)test_functions, "herpderp"); fun = get_function("herpderp"); - CuAssertTrue(tc, fun==(pf_generic)test_all); + CuAssertTrue(tc, fun==(pf_generic)test_functions); } CuSuite *get_functions_suite(void) { CuSuite *suite = CuSuiteNew(); - SUITE_ADD_TEST(suite, test_all); + SUITE_ADD_TEST(suite, test_functions); return suite; } diff --git a/src/util/umlaut.c b/src/util/umlaut.c index 6904e91b5..484ef12a6 100644 --- a/src/util/umlaut.c +++ b/src/util/umlaut.c @@ -88,7 +88,7 @@ void addtoken(tnode * root, const char *str, variant id) next = next->nexthash; if (!next) { tref *ref; - tnode *node = calloc(1, sizeof(tnode)); + tnode *node = (tnode *)calloc(1, sizeof(tnode)); if (ucs < 'a' || ucs > 'z') { lcs = towlower((wint_t) ucs); @@ -97,7 +97,7 @@ void addtoken(tnode * root, const char *str, variant id) ucs = towupper((wint_t) ucs); } - ref = malloc(sizeof(tref)); + ref = (tref *)malloc(sizeof(tref)); ref->ucs = ucs; ref->node = node; ref->nexthash = root->next[index]; diff --git a/src/util/umlaut_test.c b/src/util/umlaut_test.c new file mode 100644 index 000000000..c137a7ab7 --- /dev/null +++ b/src/util/umlaut_test.c @@ -0,0 +1,46 @@ +#include +#include +#include +#include "umlaut.h" + + +static void test_umlaut(CuTest * tc) +{ + char umlauts[] = { 0xc3, 0xa4, 0xc3, 0xb6, 0xc3, 0xbc, 0xc3, 0x9f, 0 }; /* auml ouml uuml szlig nul */ + tnode tokens = { 0 }; + variant id; + int result; + + id.i = 1; + addtoken(&tokens, "herp", id); + id.i = 2; + addtoken(&tokens, "derp", id); + id.i = 3; + addtoken(&tokens, umlauts, id); + + result = findtoken(&tokens, "herp", &id); + CuAssertIntEquals(tc, E_TOK_SUCCESS, result); + CuAssertIntEquals(tc, 1, id.i); + + result = findtoken(&tokens, "derp", &id); + CuAssertIntEquals(tc, E_TOK_SUCCESS, result); + CuAssertIntEquals(tc, 2, id.i); + + result = findtoken(&tokens, umlauts, &id); + CuAssertIntEquals(tc, E_TOK_SUCCESS, result); + CuAssertIntEquals(tc, 3, id.i); + + result = findtoken(&tokens, "AEoeUEss", &id); + CuAssertIntEquals(tc, E_TOK_SUCCESS, result); + CuAssertIntEquals(tc, 3, id.i); + + result = findtoken(&tokens, "herpderp", &id); + CuAssertIntEquals(tc, E_TOK_NOMATCH, result); +} + +CuSuite *get_umlaut_suite(void) +{ + CuSuite *suite = CuSuiteNew(); + SUITE_ADD_TEST(suite, test_umlaut); + return suite; +}