1 #include <ccan/generator/generator.h>
2 #include <ccan/tap/tap.h>
3 #include <ccan/str/str.h>
5 #include "example-gens.h"
7 generator_def_static(genx, const char *)
9 generator_yield("one");
10 generator_yield("two");
11 generator_yield("three");
12 generator_yield("four");
15 static void test1(void)
17 generator_t(int) state1 = gen1();
20 ok1((ret = generator_next(state1)) != NULL);
22 ok1((ret = generator_next(state1)) != NULL);
24 ok1((ret = generator_next(state1)) != NULL);
26 ok1((ret = generator_next(state1)) == NULL);
28 /* Test that things don't go bad if we try to invoke an
29 * already completed generator */
30 ok1((ret = generator_next(state1)) == NULL);
32 generator_free(state1);
35 static void testx(void)
37 generator_t(const char *) statex = genx();
40 ok1(generator_next_val(val, statex));
41 ok1(streq(val, "one"));
42 ok1(generator_next_val(val, statex));
43 ok1(streq(val, "two"));
44 ok1(generator_next_val(val, statex));
45 ok1(streq(val, "three"));
46 ok1(generator_next_val(val, statex));
47 ok1(streq(val, "four"));
48 ok1(!generator_next_val(val, statex));
49 generator_free(statex);
54 /* This is how many tests you plan to run */
60 /* This exits depending on whether all tests passed */