]> git.ozlabs.org Git - ccan/blobdiff - ccan/tal/stack/test/run-stack.c
tal_stack
[ccan] / ccan / tal / stack / test / run-stack.c
diff --git a/ccan/tal/stack/test/run-stack.c b/ccan/tal/stack/test/run-stack.c
new file mode 100644 (file)
index 0000000..0e5093c
--- /dev/null
@@ -0,0 +1,35 @@
+#include <ccan/tal/stack/stack.h>
+#include <ccan/tal/stack/stack.c>
+#include <ccan/tap/tap.h>
+
+int main(void)
+{
+       tal_t *parent, *cur;
+
+       plan_tests(8);
+
+       /* initial frame is NULL */
+       ok1(tal_curframe() == NULL);
+
+       /* create new frame and make sure all is OK */
+       cur = tal_newframe();
+       ok1(tal_curframe() == cur);
+       ok1(tal_parent(cur) == NULL);
+
+       /* create another frame */
+       parent = cur;
+       cur = tal_newframe();
+       ok1(tal_curframe() == cur);
+       ok1(tal_parent(cur) == parent);
+
+       /* unwind */
+       tal_free(cur);
+       ok1(tal_curframe() == parent);
+       cur = tal_curframe();
+       ok1(tal_parent(cur) == NULL);
+       tal_free(cur);
+       ok1(tal_curframe() == NULL);
+
+       tal_cleanup();
+       return exit_status();
+}