X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-common%2Fstrlst-test.c;h=71f748d4a40e36999f0980d32a33c7df27757857;hb=c9acf48b993f5d49e57da1fda301350146acc630;hp=afc13b18e4bd47e36f22653975fb3868bfb5a307;hpb=c5544522f6409095627dc3d1129560195ab4ec40;p=catta diff --git a/avahi-common/strlst-test.c b/avahi-common/strlst-test.c index afc13b1..71f748d 100644 --- a/avahi-common/strlst-test.c +++ b/avahi-common/strlst-test.c @@ -23,35 +23,47 @@ #include #endif -#include #include +#include #include "strlst.h" +#include "malloc.h" -int main(int argc, char *argv[]) { - gchar *t; - guint8 data[1024]; - AvahiStringList *a = NULL, *b; - guint size, n; +int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) { + char *t, *v; + uint8_t data[1024]; + AvahiStringList *a = NULL, *b, *p; + size_t size, n; + int r; a = avahi_string_list_new("prefix", "a", "b", NULL); a = avahi_string_list_add(a, "start"); - a = avahi_string_list_add(a, "foo"); + a = avahi_string_list_add(a, "foo=99"); a = avahi_string_list_add(a, "bar"); + a = avahi_string_list_add(a, ""); + a = avahi_string_list_add(a, ""); a = avahi_string_list_add(a, "quux"); - a = avahi_string_list_add_arbitrary(a, (guint8*) "null\0null", 9); + a = avahi_string_list_add(a, ""); + a = avahi_string_list_add_arbitrary(a, (const uint8_t*) "null\0null", 9); + a = avahi_string_list_add_printf(a, "seven=%i %c", 7, 'x'); + a = avahi_string_list_add_pair(a, "blubb", "blaa"); + a = avahi_string_list_add_pair(a, "uxknurz", NULL); + a = avahi_string_list_add_pair_arbitrary(a, "uxknurz2", (const uint8_t*) "blafasel\0oerks", 14); + a = avahi_string_list_add(a, "end"); t = avahi_string_list_to_string(a); printf("--%s--\n", t); - g_free(t); - + avahi_free(t); + + n = avahi_string_list_serialize(a, NULL, 0); size = avahi_string_list_serialize(a, data, sizeof(data)); + assert(size == n); printf("%u\n", size); - for (t = (gchar*) data, n = 0; n < size; n++, t++) { + for (t = (char*) data, n = 0; n < size; n++, t++) { if (*t <= 32) printf("(%u)", *t); else @@ -60,26 +72,58 @@ int main(int argc, char *argv[]) { printf("\n"); - b = avahi_string_list_parse(data, size); + assert(avahi_string_list_parse(data, size, &b) == 0); - g_assert(avahi_string_list_equal(a, b)); + printf("equal: %i\n", avahi_string_list_equal(a, b)); t = avahi_string_list_to_string(b); printf("--%s--\n", t); - g_free(t); + avahi_free(t); avahi_string_list_free(b); b = avahi_string_list_copy(a); - g_assert(avahi_string_list_equal(a, b)); + assert(avahi_string_list_equal(a, b)); t = avahi_string_list_to_string(b); printf("--%s--\n", t); - g_free(t); + avahi_free(t); + + p = avahi_string_list_find(a, "seven"); + assert(p); + + r = avahi_string_list_get_pair(p, &t, &v, NULL); + assert(r >= 0); + assert(t); + assert(v); + + printf("<%s>=<%s>\n", t, v); + avahi_free(t); + avahi_free(v); + + p = avahi_string_list_find(a, "quux"); + assert(p); + + r = avahi_string_list_get_pair(p, &t, &v, NULL); + assert(r >= 0); + assert(t); + assert(!v); + + printf("<%s>=<%s>\n", t, v); + avahi_free(t); + avahi_free(v); avahi_string_list_free(a); avahi_string_list_free(b); + + n = avahi_string_list_serialize(NULL, NULL, 0); + size = avahi_string_list_serialize(NULL, data, sizeof(data)); + assert(size == 1); + assert(size == n); + + assert(avahi_string_list_parse(data, size, &a) == 0); + assert(!a); return 0; }