X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Ftests%2Ftest_silcstrutil.c;h=a728dfd5f16c5f2606cf61357417c81e09835835;hb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;hp=0673199e3d328ae73af37d86f4c9325976872176;hpb=8fd8212bcd16f2b53fbedff2a9b9a4e8c15b9695;p=silc.git diff --git a/lib/silcutil/tests/test_silcstrutil.c b/lib/silcutil/tests/test_silcstrutil.c index 0673199e..a728dfd5 100644 --- a/lib/silcutil/tests/test_silcstrutil.c +++ b/lib/silcutil/tests/test_silcstrutil.c @@ -49,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"); @@ -72,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); @@ -162,6 +171,21 @@ int main(int argc, char **argv) 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: