X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Ftests%2Ftest_silcregex.c;h=41c51ad3fc969a19d036f053b76b48b9946071a3;hb=8174e79f59a93437b0fe02378889e27df7bfc299;hp=87b7a5f40b2628e1ac0783f8efc55608d5c70774;hpb=89429cd0dc7e29b8284d5b6066f94719509ec885;p=crypto.git diff --git a/lib/silcutil/tests/test_silcregex.c b/lib/silcutil/tests/test_silcregex.c index 87b7a5f4..41c51ad3 100644 --- a/lib/silcutil/tests/test_silcregex.c +++ b/lib/silcutil/tests/test_silcregex.c @@ -9,6 +9,7 @@ int main(int argc, char **argv) SilcRegexMatchStruct match[10]; int i, num_match = 10; char *regex, *string, *sub; + SilcBufferStruct bmatch; if (argc > 1 && !strcmp(argv[1], "-d")) { silc_log_debug(TRUE); @@ -17,6 +18,188 @@ int main(int argc, char **argv) silc_log_set_debug_string("*regex*,*errno*"); } + regex = ".{5}"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "abcdefghijklmn"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "....."; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "abcdefghijklmn"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "^a{0}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = ""; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "^a{0,}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "bbbb"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "^a{0,}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "aaaaaaaaa"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "^a{0,0}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "a"; + SILC_LOG_DEBUG(("DO NOT Match %s", string)); + if (silc_regex(string, regex, &bmatch, NULL)) + goto err; + + regex = "^a{3}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "aaa"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "^a{3}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "aaaa"; + SILC_LOG_DEBUG(("DO NOT Match %s", string)); + if (silc_regex(string, regex, &bmatch, NULL)) + goto err; + + regex = "^a{3,5}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "aaa"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "^a{3,5}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "aaaa"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "^a{3,5}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "aaaaaa"; + SILC_LOG_DEBUG(("DO NOT Match %s", string)); + if (silc_regex(string, regex, &bmatch, NULL)) + goto err; + + regex = "^a{3,}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "aaa"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "^a{3,}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "aaaaaaaaaaaaa"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "^a{3,}$"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "aa"; + SILC_LOG_DEBUG(("DO NOT Match %s", string)); + if (silc_regex(string, regex, &bmatch, NULL)) + goto err; + + + regex = "a*b"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "b"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "a*b"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "ab"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "a*b"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "aaaab"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + + regex = "a+b"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "ab"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "a+b"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "aaaab"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "a+b"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "b"; + SILC_LOG_DEBUG(("DO NOT Match %s", string)); + if (silc_regex(string, regex, &bmatch, NULL)) + goto err; + + + regex = "ca?b"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "cb"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "ca?b"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "cab"; + SILC_LOG_DEBUG(("Match %s", string)); + if (!silc_regex(string, regex, &bmatch, NULL)) + goto err; + silc_buffer_printf(&bmatch, TRUE); + + regex = "ca?b"; + SILC_LOG_DEBUG(("Regex %s", regex)); + string = "caab"; + SILC_LOG_DEBUG(("DO NOT Match %s", string)); + if (silc_regex(string, regex, &bmatch, NULL)) + goto err; + + regex = "(H..).(o..)"; SILC_LOG_DEBUG(("Regex %s", regex)); if (!silc_regex_compile(®, regex, 0))