]> git.ozlabs.org Git - ccan/blob - ccan/aga/test/api-concurrent.c
crypto/shachain/tools: update to new rbuf API.
[ccan] / ccan / aga / test / api-concurrent.c
1 #include "config.h"
2
3 #include <stddef.h>
4 #include <assert.h>
5
6 #include <ccan/aga/aga.h>
7
8 #include <ccan/tap/tap.h>
9
10 #include "simple-graph.h"
11
12
13 #define NUM_ALGOS       2
14
15 #define check_one_inner(algo) \
16         ok1(aga_##algo##_start(&tg.sg.g) == -1);
17
18 #define check_all_inner()                       \
19         do {                                    \
20                 check_one_inner(dfs);           \
21                 check_one_inner(bfs);           \
22         } while (0)
23
24 #define check_one_outer(algo)                                   \
25         do {                                                    \
26                 ok1(aga_##algo##_start(&tg.sg.g) == 0);         \
27                 check_all_inner();                              \
28                 aga_finish(&tg.sg.g);                           \
29         } while (0)
30
31 #define check_all_outer()                       \
32         do {                                    \
33                 check_one_outer(dfs);           \
34                 check_one_outer(bfs);           \
35         } while (0)
36
37 int main(void)
38 {
39         struct trivial_graph tg;
40
41         if (NUM_ALGOS)
42                 plan_tests(NUM_ALGOS + NUM_ALGOS * NUM_ALGOS);
43         else
44                 plan_skip_all("Nothing to test");
45
46         trivial_graph_init(&tg);
47
48         check_all_outer();
49
50         /* This exits depending on whether all tests passed */
51         return exit_status();
52 }