1 #include "../mc_private.h"
3 static void test1(void);
4 static void test2(void);
5 static void test2(void);
6 static void test4(void);
7 static void test5(void);
8 static void test6(void);
13 fprintf(stderr, "\n**************** TEST 1 ****************\nNo modification (successive snapshot)\n");
16 /* Save first snapshot */
17 mc_snapshot_t snapshot1 = xbt_new0(s_mc_snapshot_t, 1);
18 MC_take_snapshot_liveness(snapshot1);
20 /* Save second snapshot */
21 mc_snapshot_t snapshot2 = xbt_new0(s_mc_snapshot_t, 1);
22 MC_take_snapshot_liveness(snapshot2);
24 xbt_assert(snapshot_compare(snapshot1, snapshot2) == 0);
28 fprintf(stderr, "\n**************** END TEST 1 ****************\n");
32 MC_free_snapshot(snapshot1);
33 MC_free_snapshot(snapshot2);
41 fprintf(stderr, "\n**************** TEST 2 ****************\nMalloc after first snapshot\n");
45 /* Save first snapshot */
46 mc_snapshot_t snapshot1 = xbt_new0(s_mc_snapshot_t, 1);
47 MC_take_snapshot_liveness(snapshot1);
56 /* Save second snapshot */
57 mc_snapshot_t snapshot2 = xbt_new0(s_mc_snapshot_t, 1);
58 MC_take_snapshot_liveness(snapshot2);
60 xbt_assert(snapshot_compare(snapshot1, snapshot2) != 0);
64 fprintf(stderr, "\n**************** END TEST 2 ****************\n");
70 MC_free_snapshot(snapshot1);
71 MC_free_snapshot(snapshot2);
79 fprintf(stderr, "\n**************** TEST 3 ****************\nMalloc and free after first snapshot\n");
83 /* Save first snapshot */
84 mc_snapshot_t snapshot1 = xbt_new0(s_mc_snapshot_t, 1);
85 MC_take_snapshot_liveness(snapshot1);
95 /* Save second snapshot */
96 mc_snapshot_t snapshot2 = xbt_new0(s_mc_snapshot_t, 1);
97 MC_take_snapshot_liveness(snapshot2);
99 xbt_assert(snapshot_compare(snapshot1, snapshot2) == 0);
103 fprintf(stderr, "\n**************** END TEST 3 ****************\n");
107 MC_free_snapshot(snapshot1);
108 MC_free_snapshot(snapshot2);
116 fprintf(stderr, "\n**************** TEST 4 ****************\nMalloc before first snapshot and free after first snapshot\n");
123 /* Save first snapshot */
124 mc_snapshot_t snapshot1 = xbt_new0(s_mc_snapshot_t, 1);
125 MC_take_snapshot_liveness(snapshot1);
133 /* Save second snapshot */
134 mc_snapshot_t snapshot2 = xbt_new0(s_mc_snapshot_t, 1);
135 MC_take_snapshot_liveness(snapshot2);
137 xbt_assert(snapshot_compare(snapshot1, snapshot2) != 0);
141 fprintf(stderr, "\n**************** END TEST 4 ****************\n");
145 MC_free_snapshot(snapshot1);
146 MC_free_snapshot(snapshot2);
155 fprintf(stderr, "\n**************** TEST 5 ****************\nMalloc before first snapshot and increment pointer after first snapshot\n");
157 char *ptr1 = malloc(sizeof(char *));
161 /* Save first snapshot */
162 mc_snapshot_t snapshot1 = xbt_new0(s_mc_snapshot_t, 1);
163 MC_take_snapshot_liveness(snapshot1);
171 /* Save second snapshot */
172 mc_snapshot_t snapshot2 = xbt_new0(s_mc_snapshot_t, 1);
173 MC_take_snapshot_liveness(snapshot2);
175 xbt_assert(snapshot_compare(snapshot1, snapshot2) != 0);
179 fprintf(stderr, "\n**************** END TEST 5 ****************\n");
183 MC_free_snapshot(snapshot1);
184 MC_free_snapshot(snapshot2);
192 fprintf(stderr, "\n**************** TEST 6 ****************\nMalloc before first snapshot and increment then decrement pointer after first snapshot\n");
194 char *ptr1 = malloc(sizeof(char *));
198 /* Save first snapshot */
199 mc_snapshot_t snapshot1 = xbt_new0(s_mc_snapshot_t, 1);
200 MC_take_snapshot_liveness(snapshot1);
209 /* Save second snapshot */
210 mc_snapshot_t snapshot2 = xbt_new0(s_mc_snapshot_t, 1);
211 MC_take_snapshot_liveness(snapshot2);
213 xbt_assert(snapshot_compare(snapshot1, snapshot2) == 0);
217 fprintf(stderr, "\n**************** END TEST 6 ****************\n");
221 MC_free_snapshot(snapshot1);
222 MC_free_snapshot(snapshot2);
228 void MC_test_heap_comparison(){
234 mc_snapshot_t initial = xbt_new0(s_mc_snapshot_t, 1);
235 MC_take_snapshot_liveness(initial);
239 /* Get .plt section (start and end addresses) for data libsimgrid and data program comparison */
240 get_libsimgrid_plt_section();
241 get_binary_plt_section();
245 MC_restore_snapshot(initial);
250 MC_restore_snapshot(initial);
255 MC_restore_snapshot(initial);
260 MC_restore_snapshot(initial);
265 MC_restore_snapshot(initial);
270 MC_restore_snapshot(initial);