summaryrefslogtreecommitdiff
path: root/ccan/tal/stack/test/run-stack.c
blob: 0e5093c515f6654b9d7355bb7522480e42d1cb60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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();
}