Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make example dot if graphviz is enable and if it is possible.
[simgrid.git] / src / swag_unit.c
1 /*******************************/
2 /* GENERATED FILE, DO NOT EDIT */
3 /*******************************/
4
5 #include <stdio.h>
6 #include "xbt.h"
7 /*******************************/
8 /* GENERATED FILE, DO NOT EDIT */
9 /*******************************/
10
11 #line 224 "xbt/swag.c" 
12
13
14 typedef struct {
15   s_xbt_swag_hookup_t setA;
16   s_xbt_swag_hookup_t setB;
17   const char *name;
18 } shmurtz, s_shmurtz_t, *shmurtz_t;
19
20
21 XBT_TEST_UNIT("basic", test_swag_basic, "Basic usage")
22 {
23   shmurtz_t obj1, obj2, obj;
24   xbt_swag_t setA, setB;
25
26   obj1 = xbt_new0(s_shmurtz_t, 1);
27   obj2 = xbt_new0(s_shmurtz_t, 1);
28
29   obj1->name = "Obj 1";
30   obj2->name = "Obj 2";
31
32   xbt_test_add0("Basic usage");
33   xbt_test_log3("%p %p %ld\n", obj1, &(obj1->setB),
34                 (long) ((char *) &(obj1->setB) - (char *) obj1));
35
36   setA = xbt_swag_new(xbt_swag_offset(*obj1, setA));
37   setB = xbt_swag_new(xbt_swag_offset(*obj1, setB));
38
39   xbt_swag_insert(obj1, setA);
40   xbt_swag_insert(obj1, setB);
41   xbt_swag_insert(obj2, setA);
42   xbt_swag_insert(obj2, setB);
43
44   xbt_swag_remove(obj1, setB);
45   /*  xbt_swag_remove(obj2, setB); */
46
47   xbt_test_add0("Traverse set A");
48   xbt_swag_foreach(obj, setA) {
49     xbt_test_log1("Saw: %s", obj->name);
50   }
51
52   xbt_test_add0("Traverse set B");
53   xbt_swag_foreach(obj, setB) {
54     xbt_test_log1("Saw: %s", obj->name);
55   }
56
57   xbt_test_add0("Ensure set content and length");
58   xbt_test_assert(xbt_swag_belongs(obj1, setA));
59   xbt_test_assert(xbt_swag_belongs(obj2, setA));
60
61   xbt_test_assert(!xbt_swag_belongs(obj1, setB));
62   xbt_test_assert(xbt_swag_belongs(obj2, setB));
63
64   xbt_test_assert(xbt_swag_size(setA) == 2);
65   xbt_test_assert(xbt_swag_size(setB) == 1);
66
67   xbt_swag_free(setA);
68   xbt_swag_free(setB);
69 }
70
71 /*******************************/
72 /* GENERATED FILE, DO NOT EDIT */
73 /*******************************/
74