X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Ftests%2Ftest_silcstrutil.c;h=a728dfd5f16c5f2606cf61357417c81e09835835;hb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;hp=dd3354a64e5d5fad6dc2d9a5dd28031da0784ec7;hpb=c27a4ecc3e616e8a5ee09b8ca888ed6ff3e501f7;p=silc.git diff --git a/lib/silcutil/tests/test_silcstrutil.c b/lib/silcutil/tests/test_silcstrutil.c index dd3354a6..a728dfd5 100644 --- a/lib/silcutil/tests/test_silcstrutil.c +++ b/lib/silcutil/tests/test_silcstrutil.c @@ -1,6 +1,7 @@ /* UTF-8 decoding tests */ +/* Other string util tests too */ -#include "silcincludes.h" +#include "silc.h" #define utf8fail(n, data, len) \ const unsigned char u##n[] = (data); \ @@ -48,13 +49,22 @@ utf8fail(28, "\xfc\x20\xfd\x20", 4); utf8fail(29, "\xf8\xf9\xfa\xfb", 4); utf8fail(30, "\xf0\x20\xf9\x20\xfa\x20\xfb\x20", 8); +char *render(void *data) +{ + char *buf = data; + return strdup(buf); +} + int main(int argc, char **argv) { SilcBool success = FALSE; unsigned char *s1, *s2, *s3, *s4; - int l, opt; + unsigned char t[16]; + char h[32 + 1], str[40]; + int l, opt, i; + SilcUInt32 len; - while ((opt = getopt(argc, argv, "hVd")) != EOF) { + while ((opt = getopt(argc, argv, "hVd:")) != EOF) { switch(opt) { case 'h': printf("usage: test_silcstrutil\n"); @@ -71,7 +81,7 @@ int main(int argc, char **argv) if (optarg) silc_log_set_debug_string(optarg); else - silc_log_set_debug_string("*strutil*"); + silc_log_set_debug_string("*strutil*,*errno*"); break; default: exit(1); @@ -149,6 +159,33 @@ int main(int argc, char **argv) silc_free(s3); silc_free(s4); + /* Regex test */ + SILC_LOG_DEBUG(("Simple regex test")); + s1 = "foo,bar,silc,com"; + SILC_LOG_DEBUG(("Find 'silc' from %s", s1)); + if (!silc_string_match(s1, "silc")) + goto err; + SILC_LOG_DEBUG(("Regex match")); + SILC_LOG_DEBUG(("Find 'foobar' from %s", s1)); + if (silc_string_match(s1, "foobar")) + goto err; + SILC_LOG_DEBUG(("Regex not found (Ok)")); + + /* HEX to data, data to HEX tests */ + for (i = 0; i < sizeof(t); i++) + t[i] = i; + silc_data2hex(t, sizeof(t), h, sizeof(h)); + silc_hex2data(h, t, sizeof(t), &len); + silc_snprintf(h, sizeof(h), "010203ffabdef9ab"); + silc_hex2data(h, t, sizeof(t), &len); + silc_data2hex(t, sizeof(t), h, sizeof(h)); + + /* snprintf test */ + silc_snprintf(str, sizeof(str), "This is %@ rendered\n", + render, "automatically"); + SILC_LOG_DEBUG((str)); + SILC_LOG_DEBUG(("This too %@ rendered", render, "is automatically")); + success = TRUE; err: