summaryrefslogtreecommitdiff
path: root/ccan/strgrp/test/helpers.c
diff options
context:
space:
mode:
authorAndrew Jeffery <andrew@aj.id.au>2015-08-20 15:46:31 +0930
committerRusty Russell <rusty@rustcorp.com.au>2015-09-09 04:31:39 +0930
commit7c7ad8cc84eb75d83222fb269d9c117c12c8e75c (patch)
tree0aacd9aa6abf762496fe29d2bb1b3462f3ce6ba7 /ccan/strgrp/test/helpers.c
parent4ad5144790a12523f8a7c24c469a34907b6942a6 (diff)
strgrp: new module
Diffstat (limited to 'ccan/strgrp/test/helpers.c')
-rw-r--r--ccan/strgrp/test/helpers.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/ccan/strgrp/test/helpers.c b/ccan/strgrp/test/helpers.c
new file mode 100644
index 00000000..24b5dfd0
--- /dev/null
+++ b/ccan/strgrp/test/helpers.c
@@ -0,0 +1,67 @@
+//#include "../test/helpers.h"
+#include "helpers.h"
+
+int
+one_group_from_two(struct strgrp *ctx,
+ const char *const k1, void *v1,
+ const char *const k2, void *v2) {
+ const struct strgrp_grp *grp1, *grp2;
+ struct strgrp_grp_iter *iter;
+ const struct strgrp_item *item;
+
+ plan_tests(10);
+ grp1 = strgrp_add(ctx, k1, v1);
+ ok1(grp1);
+ grp2 = strgrp_add(ctx, k2, v2);
+ ok1(grp2);
+ ok1(grp1 == grp2);
+ iter = strgrp_grp_iter_new(grp1);
+ item = strgrp_grp_iter_next(iter);
+ ok1(item);
+ ok1(streq(k1, strgrp_item_key(item)));
+ ok1(v1 == strgrp_item_value(item));
+ item = strgrp_grp_iter_next(iter);
+ ok1(item);
+ ok1(streq(k2, strgrp_item_key(item)));
+ ok1(v2 == strgrp_item_value(item));
+ ok1(!strgrp_grp_iter_next(iter));
+ strgrp_grp_iter_free(iter);
+ strgrp_free(ctx);
+ return exit_status();
+}
+
+int
+two_groups_from_two(struct strgrp *ctx,
+ const char *const k1, void *v1,
+ const char *const k2, void *v2) {
+ const struct strgrp_grp *grp1, *grp2;
+ struct strgrp_grp_iter *iter;
+ const struct strgrp_item *item;
+
+ plan_tests(11);
+ grp1 = strgrp_add(ctx, k1, v1);
+ ok1(grp1);
+ grp2 = strgrp_add(ctx, k2, v2);
+ ok1(grp2);
+ ok1(grp1 != grp2);
+ {
+ iter = strgrp_grp_iter_new(grp1);
+ item = strgrp_grp_iter_next(iter);
+ ok1(item);
+ ok1(streq(k1, strgrp_item_key(item)));
+ ok1(v1 == strgrp_item_value(item));
+ ok1(!strgrp_grp_iter_next(iter));
+ strgrp_grp_iter_free(iter);
+ }
+ {
+ iter = strgrp_grp_iter_new(grp2);
+ item = strgrp_grp_iter_next(iter);
+ ok1(item);
+ ok1(streq(k2, strgrp_item_key(item)));
+ ok1(v2 == strgrp_item_value(item));
+ ok1(!strgrp_grp_iter_next(iter));
+ strgrp_grp_iter_free(iter);
+ }
+ strgrp_free(ctx);
+ return exit_status();
+}