X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-common%2Fstrlst-test.c;h=3cdcb126ed9e9cc5f4e90adbf85b2475acd20b7c;hb=e3f2e517162b80d256c966fa925c8e76e5691d6d;hp=12aa62304b7e32e541866fcd3dd7a0f1428ecf74;hpb=e63a65b3955b173a3e8d6b78c6377a518a9922d6;p=catta diff --git a/avahi-common/strlst-test.c b/avahi-common/strlst-test.c index 12aa623..3cdcb12 100644 --- a/avahi-common/strlst-test.c +++ b/avahi-common/strlst-test.c @@ -29,26 +29,34 @@ #include "strlst.h" #include "malloc.h" -int main(int argc, char *argv[]) { - char *t; +int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) { + char *t, *v; uint8_t data[1024]; - AvahiStringList *a = NULL, *b; + 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, "quux"); 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); 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); @@ -61,7 +69,7 @@ int main(int argc, char *argv[]) { printf("\n"); - b = avahi_string_list_parse(data, size); + assert(avahi_string_list_parse(data, size, &b) == 0); assert(avahi_string_list_equal(a, b)); @@ -78,9 +86,41 @@ int main(int argc, char *argv[]) { t = avahi_string_list_to_string(b); printf("--%s--\n", 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; }