--- a/test/string_tests.c Mon Feb 20 17:28:58 2017 +0100 +++ b/test/string_tests.c Thu Feb 23 14:30:12 2017 +0100 @@ -81,6 +81,34 @@ UCX_TEST(test_sstrstr) { sstr_t str = ST("find the match in this string"); + sstr_t longstr = ST( + "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl" + "mnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx" + "yzabcdeababababnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghij" + "klmnopqrstuvwxyzaababababababababrstuvwxyzabcdefghijklmnopqrstuv" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "wxyz1234567890"); + sstr_t longstrpattern = ST( + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + ); + sstr_t longstrresult = ST( + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "abababababababababababababababababababababababababababababababab" + "wxyz1234567890" + ); UCX_TEST_BEGIN sstr_t notfound = sstrstr(str, S("no match")); @@ -97,6 +125,12 @@ UCX_TEST_ASSERT(!strcmp(str.ptr, result.ptr), "sstrstr with empty match string did not return the original string"); + result = sstrstr(longstr, longstrpattern); + UCX_TEST_ASSERT(result.length == longstrresult.length, + "long string result length incorrect"); + UCX_TEST_ASSERT(!strcmp(result.ptr, longstrresult.ptr), + "long string result content incorrect"); + UCX_TEST_END }