3 #include "opensync/group/opensync_group_internals.h"
4 #include "opensync/engine/opensync_engine_internals.h"
6 /* Regression test for Ticket #988 */
7 START_TEST (single_init_error_noerror
)
9 char *testbed
= setup_testbed("sync");
10 char *formatdir
= g_strdup_printf("%s/formats", testbed
);
11 char *plugindir
= g_strdup_printf("%s/plugins", testbed
);
13 g_setenv("INIT_NULL_NOERROR", "2", TRUE
);
15 OSyncError
*error
= NULL
;
16 OSyncGroup
*group
= osync_group_new(&error
);
17 fail_unless(group
!= NULL
, NULL
);
18 fail_unless(error
== NULL
, NULL
);
20 osync_group_set_schemadir(group
, testbed
);
21 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
22 fail_unless(error
== NULL
, NULL
);
24 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
25 fail_unless(engine
!= NULL
, NULL
);
26 fail_unless(error
== NULL
, NULL
);
27 osync_group_unref(group
);
29 osync_engine_set_schemadir(engine
, testbed
);
30 osync_engine_set_plugindir(engine
, plugindir
);
31 osync_engine_set_formatdir(engine
, formatdir
);
33 osync_engine_set_memberstatus_callback(engine
, member_status
, GINT_TO_POINTER(1));
35 fail_unless(!osync_engine_initialize(engine
, &error
), NULL
);
36 fail_unless(error
!= NULL
, NULL
);
38 osync_engine_unref(engine
);
42 destroy_testbed(testbed
);
46 START_TEST (single_init_error
)
48 char *testbed
= setup_testbed("multisync_easy_new");
50 g_setenv("INIT_NULL", "2", TRUE
);
52 OSyncError
*error
= NULL
;
53 OSyncGroup
*group
= osync_group_new(&error
);
54 fail_unless(group
!= NULL
, NULL
);
55 fail_unless(error
== NULL
, NULL
);
57 osync_group_set_schemadir(group
, testbed
);
58 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
59 fail_unless(error
== NULL
, NULL
);
61 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
62 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
63 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
64 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
65 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
67 /* this is a bug - please see sml_fail_unless for details */
68 fail_unless(osync_engine_initialize(engine
, &error
), osync_error_print(&error
));
69 fail_unless(!synchronize_once(engine
, &error
), NULL
);
70 fail_unless(osync_error_is_set(&error
), NULL
);
72 osync_error_unref(&error
);
73 osync_engine_finalize(engine
, &error
);
74 osync_engine_unref(engine
);
76 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
78 destroy_testbed(testbed
);
82 START_TEST (dual_connect_error
)
84 char *testbed
= setup_testbed("sync_easy_new");
86 g_setenv("CONNECT_ERROR", "3", TRUE
);
88 OSyncError
*error
= NULL
;
89 OSyncGroup
*group
= osync_group_new(&error
);
90 fail_unless(group
!= NULL
, NULL
);
91 fail_unless(error
== NULL
, NULL
);
93 osync_group_set_schemadir(group
, testbed
);
94 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
95 fail_unless(error
== NULL
, NULL
);
97 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
98 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
99 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
100 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
101 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
102 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
104 fail_unless(!synchronize_once(engine
, &error
), NULL
);
105 fail_unless(osync_error_is_set(&error
), NULL
);
107 fail_unless(num_client_errors
== 2, NULL
);
108 fail_unless(num_client_connected
== 0, NULL
);
109 fail_unless(num_client_disconnected
== 0, NULL
);
110 fail_unless(num_engine_errors
== 1, NULL
);
112 osync_error_unref(&error
);
113 osync_engine_finalize(engine
, &error
);
114 osync_engine_unref(engine
);
116 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
118 destroy_testbed(testbed
);
122 START_TEST (one_of_two_connect_error
)
124 char *testbed
= setup_testbed("sync_easy_new");
126 g_setenv("CONNECT_ERROR", "1", TRUE
);
128 OSyncError
*error
= NULL
;
129 OSyncGroup
*group
= osync_group_new(&error
);
130 fail_unless(group
!= NULL
, NULL
);
131 fail_unless(error
== NULL
, NULL
);
133 osync_group_set_schemadir(group
, testbed
);
134 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
135 fail_unless(error
== NULL
, NULL
);
137 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
138 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
139 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
140 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
141 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
142 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
144 fail_unless(!synchronize_once(engine
, &error
), NULL
);
145 fail_unless(osync_error_is_set(&error
), NULL
);
147 fail_unless(num_client_errors
== 1, NULL
);
148 fail_unless(num_client_connected
== 1, NULL
);
149 fail_unless(num_client_disconnected
== 1, NULL
);
150 //fail_unless(num_member_sent_changes == 0, NULL);
151 fail_unless(num_engine_errors
== 1, NULL
);
153 osync_error_unref(&error
);
154 osync_engine_finalize(engine
, &error
);
155 osync_engine_unref(engine
);
157 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
159 destroy_testbed(testbed
);
163 START_TEST (two_of_three_connect_error
)
165 char *testbed
= setup_testbed("multisync_easy_new");
167 g_setenv("CONNECT_ERROR", "5", TRUE
);
169 OSyncError
*error
= NULL
;
170 OSyncGroup
*group
= osync_group_new(&error
);
171 fail_unless(group
!= NULL
, NULL
);
172 fail_unless(error
== NULL
, NULL
);
174 osync_group_set_schemadir(group
, testbed
);
175 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
176 fail_unless(error
== NULL
, NULL
);
178 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
179 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
180 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
181 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
182 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
183 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
185 fail_unless(!synchronize_once(engine
, &error
), NULL
);
186 fail_unless(osync_error_is_set(&error
), NULL
);
188 fail_unless(num_client_errors
== 2, NULL
);
189 fail_unless(num_client_connected
== 1, NULL
);
190 fail_unless(num_client_disconnected
== 1, NULL
);
191 //fail_unless(num_member_sent_changes == 0, NULL);
192 fail_unless(num_engine_errors
== 1, NULL
);
194 osync_error_unref(&error
);
195 osync_engine_finalize(engine
, &error
);
196 osync_engine_unref(engine
);
198 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
200 destroy_testbed(testbed
);
204 START_TEST (two_of_three_connect_error2
)
206 char *testbed
= setup_testbed("multisync_easy_new");
208 g_setenv("CONNECT_ERROR", "6", TRUE
);
210 OSyncError
*error
= NULL
;
211 OSyncGroup
*group
= osync_group_new(&error
);
212 fail_unless(group
!= NULL
, NULL
);
213 fail_unless(error
== NULL
, NULL
);
215 osync_group_set_schemadir(group
, testbed
);
216 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
217 fail_unless(error
== NULL
, NULL
);
219 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
220 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
221 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
222 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
223 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
224 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
226 fail_unless(!synchronize_once(engine
, &error
), NULL
);
227 fail_unless(osync_error_is_set(&error
), NULL
);
229 fail_unless(num_client_errors
== 2, NULL
);
230 fail_unless(num_client_connected
== 1, NULL
);
231 fail_unless(num_client_disconnected
== 1, NULL
);
232 //fail_unless(num_member_sent_changes == 0, NULL);
233 fail_unless(num_engine_errors
== 1, NULL
);
235 osync_error_unref(&error
);
236 osync_engine_finalize(engine
, &error
);
237 osync_engine_unref(engine
);
239 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
241 destroy_testbed(testbed
);
245 START_TEST (three_of_three_connect_error
)
247 char *testbed
= setup_testbed("multisync_easy_new");
249 g_setenv("CONNECT_ERROR", "7", TRUE
);
251 OSyncError
*error
= NULL
;
252 OSyncGroup
*group
= osync_group_new(&error
);
253 fail_unless(group
!= NULL
, NULL
);
254 fail_unless(error
== NULL
, NULL
);
256 osync_group_set_schemadir(group
, testbed
);
257 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
258 fail_unless(error
== NULL
, NULL
);
260 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
261 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
262 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
263 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
264 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
265 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
267 fail_unless(!synchronize_once(engine
, &error
), NULL
);
268 fail_unless(osync_error_is_set(&error
), NULL
);
270 fail_unless(num_client_errors
== 3, NULL
);
271 fail_unless(num_client_connected
== 0, NULL
);
272 fail_unless(num_client_disconnected
== 0, NULL
);
273 //fail_unless(num_member_sent_changes == 0, NULL);
274 fail_unless(num_engine_errors
== 1, NULL
);
276 osync_error_unref(&error
);
277 osync_engine_finalize(engine
, &error
);
278 osync_engine_unref(engine
);
280 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
282 destroy_testbed(testbed
);
286 START_TEST (one_of_three_connect_error
)
288 char *testbed
= setup_testbed("multisync_easy_new");
290 g_setenv("CONNECT_ERROR", "2", TRUE
);
292 OSyncError
*error
= NULL
;
293 OSyncGroup
*group
= osync_group_new(&error
);
294 fail_unless(group
!= NULL
, NULL
);
295 fail_unless(error
== NULL
, NULL
);
297 osync_group_set_schemadir(group
, testbed
);
298 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
299 fail_unless(error
== NULL
, NULL
);
301 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
302 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
303 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
304 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
305 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
306 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
308 fail_unless(!synchronize_once(engine
, &error
), NULL
);
309 fail_unless(osync_error_is_set(&error
), NULL
);
311 fail_unless(num_client_errors
== 1, NULL
);
312 fail_unless(num_client_connected
== 2, NULL
);
313 fail_unless(num_client_disconnected
== 2, NULL
);
314 //fail_unless(num_member_sent_changes == 0, NULL);
315 fail_unless(num_engine_errors
== 1, NULL
);
317 osync_error_unref(&error
);
318 osync_engine_finalize(engine
, &error
);
319 osync_engine_unref(engine
);
321 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
323 destroy_testbed(testbed
);
327 START_TEST (no_connect_error
)
329 char *testbed
= setup_testbed("multisync_easy_new");
331 g_setenv("CONNECT_ERROR", "0", TRUE
);
333 OSyncError
*error
= NULL
;
334 OSyncGroup
*group
= osync_group_new(&error
);
335 fail_unless(group
!= NULL
, NULL
);
336 fail_unless(error
== NULL
, NULL
);
338 osync_group_set_schemadir(group
, testbed
);
339 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
340 fail_unless(error
== NULL
, NULL
);
342 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
343 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
344 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
345 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
346 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
347 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
349 fail_unless(synchronize_once(engine
, &error
), NULL
);
350 fail_unless(!osync_error_is_set(&error
), NULL
);
352 fail_unless(num_client_errors
== 0, NULL
);
353 fail_unless(num_client_connected
== 3, NULL
);
354 fail_unless(num_client_disconnected
== 3, NULL
);
355 //fail_unless(num_member_sent_changes == 3, NULL);
356 fail_unless(num_engine_errors
== 0, NULL
);
357 fail_unless(num_engine_successful
== 1, NULL
);
359 osync_engine_finalize(engine
, &error
);
360 osync_engine_unref(engine
);
362 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
363 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
365 destroy_testbed(testbed
);
369 START_TEST (single_connect_timeout
)
371 char *testbed
= setup_testbed("sync_easy_new");
373 g_setenv("CONNECT_TIMEOUT", "2", TRUE
);
375 OSyncError
*error
= NULL
;
376 OSyncGroup
*group
= osync_group_new(&error
);
377 fail_unless(group
!= NULL
, NULL
);
378 fail_unless(error
== NULL
, NULL
);
380 osync_group_set_schemadir(group
, testbed
);
381 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
382 fail_unless(error
== NULL
, NULL
);
384 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
385 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
386 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
387 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
388 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
389 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
391 fail_unless(!synchronize_once(engine
, &error
), NULL
);
392 fail_unless(osync_error_is_set(&error
), NULL
);
394 fail_unless(num_client_errors
== 1, NULL
);
395 fail_unless(num_client_connected
== 1, NULL
);
396 fail_unless(num_client_disconnected
== 1, NULL
);
397 //fail_unless(num_member_sent_changes == 0, NULL);
398 fail_unless(num_engine_errors
== 1, NULL
);
399 fail_unless(num_engine_successful
== 0, NULL
);
401 osync_error_unref(&error
);
402 osync_engine_finalize(engine
, &error
);
403 osync_engine_unref(engine
);
405 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
407 destroy_testbed(testbed
);
411 START_TEST (dual_connect_timeout
)
413 char *testbed
= setup_testbed("sync_easy_new");
415 g_setenv("CONNECT_TIMEOUT", "3", TRUE
);
417 OSyncError
*error
= NULL
;
418 OSyncGroup
*group
= osync_group_new(&error
);
419 fail_unless(group
!= NULL
, NULL
);
420 fail_unless(error
== NULL
, NULL
);
422 osync_group_set_schemadir(group
, testbed
);
423 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
424 fail_unless(error
== NULL
, NULL
);
426 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
427 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
428 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
429 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
430 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
431 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
433 fail_unless(!synchronize_once(engine
, &error
), NULL
);
434 fail_unless(osync_error_is_set(&error
), NULL
);
436 fail_unless(num_client_errors
== 2, NULL
);
437 fail_unless(num_client_connected
== 0, NULL
);
438 fail_unless(num_client_disconnected
== 0, NULL
);
439 //fail_unless(num_member_sent_changes == 0, NULL);
440 fail_unless(num_engine_errors
== 1, NULL
);
441 fail_unless(num_engine_successful
== 0, NULL
);
443 osync_error_unref(&error
);
444 osync_engine_finalize(engine
, &error
);
445 osync_engine_unref(engine
);
447 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
449 destroy_testbed(testbed
);
453 START_TEST (one_of_three_timeout
)
455 char *testbed
= setup_testbed("multisync_easy_new");
457 g_setenv("CONNECT_TIMEOUT", "2", TRUE
);
459 OSyncError
*error
= NULL
;
460 OSyncGroup
*group
= osync_group_new(&error
);
461 fail_unless(group
!= NULL
, NULL
);
462 fail_unless(error
== NULL
, NULL
);
464 osync_group_set_schemadir(group
, testbed
);
465 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
466 fail_unless(error
== NULL
, NULL
);
468 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
469 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
470 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
471 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
472 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
473 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
475 fail_unless(!synchronize_once(engine
, &error
), NULL
);
476 fail_unless(osync_error_is_set(&error
), NULL
);
478 fail_unless(num_client_errors
== 1, NULL
);
479 fail_unless(num_client_connected
== 2, NULL
);
480 fail_unless(num_client_disconnected
== 2, NULL
);
481 //fail_unless(num_member_sent_changes == 0, NULL);
482 fail_unless(num_engine_errors
== 1, NULL
);
483 fail_unless(num_engine_successful
== 0, NULL
);
485 osync_error_unref(&error
);
486 osync_engine_finalize(engine
, &error
);
487 osync_engine_unref(engine
);
489 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
491 destroy_testbed(testbed
);
495 START_TEST (timeout_and_error
)
497 char *testbed
= setup_testbed("multisync_easy_new");
499 g_setenv("CONNECT_TIMEOUT", "2", TRUE
);
500 g_setenv("CONNECT_ERROR", "4", TRUE
);
502 OSyncError
*error
= NULL
;
503 OSyncGroup
*group
= osync_group_new(&error
);
504 fail_unless(group
!= NULL
, NULL
);
505 fail_unless(error
== NULL
, NULL
);
507 osync_group_set_schemadir(group
, testbed
);
508 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
509 fail_unless(error
== NULL
, NULL
);
511 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
512 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
513 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
514 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
515 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
516 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
518 fail_unless(!synchronize_once(engine
, &error
), NULL
);
519 fail_unless(osync_error_is_set(&error
), NULL
);
521 fail_unless(num_client_errors
== 2, NULL
);
522 fail_unless(num_client_connected
== 1, NULL
);
523 fail_unless(num_client_disconnected
== 1, NULL
);
524 //fail_unless(num_member_sent_changes == 0, NULL);
525 fail_unless(num_engine_errors
== 1, NULL
);
526 fail_unless(num_engine_successful
== 0, NULL
);
528 osync_error_unref(&error
);
529 osync_engine_finalize(engine
, &error
);
530 osync_engine_unref(engine
);
532 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
534 destroy_testbed(testbed
);
538 START_TEST (single_get_changes_error
)
540 char *testbed
= setup_testbed("sync_easy_conflict");
542 g_setenv("GET_CHANGES_ERROR", "2", TRUE
);
543 g_setenv("NO_COMMITTED_ALL_CHECK", "1", TRUE
);
545 OSyncError
*error
= NULL
;
546 OSyncGroup
*group
= osync_group_new(&error
);
547 fail_unless(group
!= NULL
, NULL
);
548 fail_unless(error
== NULL
, NULL
);
550 osync_group_set_schemadir(group
, testbed
);
551 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
552 fail_unless(error
== NULL
, NULL
);
554 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
555 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
556 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
557 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
558 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
559 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
561 fail_unless(!synchronize_once(engine
, &error
), NULL
);
562 fail_unless(osync_error_is_set(&error
), NULL
);
564 fail_unless(num_client_errors
== 0, NULL
);
565 fail_unless(num_client_connected
== 2, NULL
);
566 fail_unless(num_client_disconnected
== 2, NULL
);
567 //fail_unless(num_member_get_changes_errors == 1, NULL);
568 fail_unless(num_client_written
== 0, NULL
);
569 //fail_unless(num_conflicts == 0, NULL);
570 fail_unless(num_engine_errors
== 1, NULL
);
571 fail_unless(num_engine_successful
== 0, NULL
);
573 osync_error_unref(&error
);
574 osync_engine_finalize(engine
, &error
);
575 osync_engine_unref(engine
);
577 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
579 destroy_testbed(testbed
);
583 START_TEST (dual_get_changes_error
)
585 char *testbed
= setup_testbed("sync_easy_conflict");
587 g_setenv("GET_CHANGES_ERROR", "3", TRUE
);
589 OSyncError
*error
= NULL
;
590 OSyncGroup
*group
= osync_group_new(&error
);
591 fail_unless(group
!= NULL
, NULL
);
592 fail_unless(error
== NULL
, NULL
);
594 osync_group_set_schemadir(group
, testbed
);
595 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
596 fail_unless(error
== NULL
, NULL
);
598 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
599 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
600 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
601 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
602 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
603 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
605 fail_unless(!synchronize_once(engine
, &error
), NULL
);
606 fail_unless(osync_error_is_set(&error
), NULL
);
608 fail_unless(num_client_errors
== 0, NULL
);
609 fail_unless(num_client_connected
== 2, NULL
);
610 fail_unless(num_client_disconnected
== 2, NULL
);
611 //fail_unless(num_member_sent_changes == 0, NULL);
612 fail_unless(num_client_read
== 0, NULL
);
613 fail_unless(num_client_written
== 0, NULL
);
614 //fail_unless(num_conflicts == 0, NULL);
615 fail_unless(num_engine_errors
== 1, NULL
);
616 fail_unless(num_engine_successful
== 0, NULL
);
618 osync_error_unref(&error
);
619 osync_engine_finalize(engine
, &error
);
620 osync_engine_unref(engine
);
622 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
624 destroy_testbed(testbed
);
628 START_TEST (two_of_three_get_changes_error
)
630 char *testbed
= setup_testbed("multisync_conflict_data_choose2");
632 g_setenv("GET_CHANGES_ERROR", "5", TRUE
);
633 g_setenv("NO_COMMITTED_ALL_CHECK", "1", TRUE
);
635 OSyncError
*error
= NULL
;
636 OSyncGroup
*group
= osync_group_new(&error
);
637 fail_unless(group
!= NULL
, NULL
);
638 fail_unless(error
== NULL
, NULL
);
640 osync_group_set_schemadir(group
, testbed
);
641 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
642 fail_unless(error
== NULL
, NULL
);
644 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
645 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
646 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
647 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
648 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
649 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
651 fail_unless(!synchronize_once(engine
, &error
), NULL
);
652 fail_unless(osync_error_is_set(&error
), NULL
);
654 fail_unless(num_client_errors
== 0, NULL
);
655 fail_unless(num_client_connected
== 3, NULL
);
656 fail_unless(num_client_disconnected
== 3, NULL
);
657 fail_unless(num_client_written
== 0, NULL
);
658 //fail_unless(num_conflicts == 0, NULL);
659 fail_unless(num_engine_errors
== 1, NULL
);
660 fail_unless(num_engine_successful
== 0, NULL
);
662 osync_error_unref(&error
);
663 osync_engine_finalize(engine
, &error
);
664 osync_engine_unref(engine
);
666 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
668 destroy_testbed(testbed
);
672 START_TEST (one_of_three_get_changes_error
)
674 char *testbed
= setup_testbed("multisync_conflict_data_choose2");
676 g_setenv("GET_CHANGES_ERROR", "1", TRUE
);
677 g_setenv("NO_COMMITTED_ALL_CHECK", "1", TRUE
);
679 OSyncError
*error
= NULL
;
680 OSyncGroup
*group
= osync_group_new(&error
);
681 fail_unless(group
!= NULL
, NULL
);
682 fail_unless(error
== NULL
, NULL
);
684 osync_group_set_schemadir(group
, testbed
);
685 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
686 fail_unless(error
== NULL
, NULL
);
688 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
689 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
690 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
691 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
692 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
693 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
695 fail_unless(!synchronize_once(engine
, &error
), NULL
);
696 fail_unless(osync_error_is_set(&error
), NULL
);
698 fail_unless(num_client_errors
== 0, NULL
);
699 fail_unless(num_client_connected
== 3, NULL
);
700 fail_unless(num_client_disconnected
== 3, NULL
);
701 //fail_unless(num_member_get_changes_errors == 1, NULL);
702 fail_unless(num_client_written
== 0, NULL
);
703 //fail_unless(num_conflicts == 0, NULL);
704 fail_unless(num_engine_errors
== 1, NULL
);
705 fail_unless(num_engine_successful
== 0, NULL
);
707 osync_error_unref(&error
);
708 osync_engine_finalize(engine
, &error
);
709 osync_engine_unref(engine
);
711 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
713 destroy_testbed(testbed
);
717 START_TEST (one_of_three_get_changes_timeout
)
719 char *testbed
= setup_testbed("multisync_conflict_data_choose2");
721 g_setenv("GET_CHANGES_TIMEOUT", "1", TRUE
);
722 g_setenv("NO_COMMITTED_ALL_CHECK", "1", TRUE
);
724 OSyncError
*error
= NULL
;
725 OSyncGroup
*group
= osync_group_new(&error
);
726 fail_unless(group
!= NULL
, NULL
);
727 fail_unless(error
== NULL
, NULL
);
729 osync_group_set_schemadir(group
, testbed
);
730 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
731 fail_unless(error
== NULL
, NULL
);
733 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
734 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
735 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
736 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
737 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
738 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
740 fail_unless(!synchronize_once(engine
, &error
), NULL
);
741 fail_unless(osync_error_is_set(&error
), NULL
);
743 fail_unless(num_client_errors
== 0, NULL
);
744 fail_unless(num_client_connected
== 3, NULL
);
745 fail_unless(num_client_disconnected
== 3, NULL
);
746 //fail_unless(num_member_get_changes_errors == 1, NULL);
747 //fail_unless(num_member_sent_changes == 2, NULL);
748 fail_unless(num_client_read
== 2, NULL
);
749 fail_unless(num_client_written
== 0, NULL
);
750 //fail_unless(num_conflicts == 0, NULL);
751 fail_unless(num_engine_errors
== 1, NULL
);
752 fail_unless(num_engine_successful
== 0, NULL
);
754 osync_error_unref(&error
);
755 osync_engine_finalize(engine
, &error
);
756 osync_engine_unref(engine
);
758 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
760 destroy_testbed(testbed
);
764 START_TEST (get_changes_timeout_and_error
)
766 char *testbed
= setup_testbed("multisync_conflict_data_choose2");
768 g_setenv("GET_CHANGES_TIMEOUT", "3", TRUE
);
769 g_setenv("GET_CHANGES_ERROR", "4", TRUE
);
771 OSyncError
*error
= NULL
;
772 OSyncGroup
*group
= osync_group_new(&error
);
773 fail_unless(group
!= NULL
, NULL
);
774 fail_unless(error
== NULL
, NULL
);
776 osync_group_set_schemadir(group
, testbed
);
777 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
778 fail_unless(error
== NULL
, NULL
);
780 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
781 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
782 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
783 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
784 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
785 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
787 fail_unless(!synchronize_once(engine
, &error
), NULL
);
788 fail_unless(osync_error_is_set(&error
), NULL
);
790 fail_unless(num_client_errors
== 0, NULL
);
791 fail_unless(num_client_connected
== 3, NULL
);
792 fail_unless(num_client_disconnected
== 3, NULL
);
793 //fail_unless(num_member_sent_changes == 0, NULL);
794 fail_unless(num_client_read
== 0, NULL
);
795 fail_unless(num_client_written
== 0, NULL
);
796 //fail_unless(num_conflicts == 0, NULL);
797 fail_unless(num_engine_errors
== 1, NULL
);
798 fail_unless(num_engine_successful
== 0, NULL
);
800 osync_error_unref(&error
);
801 osync_engine_finalize(engine
, &error
);
802 osync_engine_unref(engine
);
804 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
806 destroy_testbed(testbed
);
810 START_TEST (get_changes_timeout_sleep
)
812 char *testbed
= setup_testbed("multisync_conflict_data_choose2");
814 g_setenv("GET_CHANGES_TIMEOUT2", "7", TRUE
);
815 g_setenv("NO_COMMITTED_ALL_CHECK", "1", TRUE
);
817 OSyncError
*error
= NULL
;
818 OSyncGroup
*group
= osync_group_new(&error
);
819 fail_unless(group
!= NULL
, NULL
);
820 fail_unless(error
== NULL
, NULL
);
822 osync_group_set_schemadir(group
, testbed
);
823 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
824 fail_unless(error
== NULL
, NULL
);
826 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
827 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
828 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
829 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
830 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
831 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
833 fail_unless(!synchronize_once(engine
, &error
), NULL
);
834 fail_unless(osync_error_is_set(&error
), NULL
);
837 osync_error_unref(&error
);
839 osync_engine_finalize(engine
, &error
);
841 osync_engine_unref(engine
);
843 fail_unless(num_client_errors
== 0, NULL
);
844 fail_unless(num_client_connected
== 3, NULL
);
845 fail_unless(num_client_disconnected
== 3, NULL
);
846 //fail_unless(num_member_sent_changes == 0, NULL);
847 fail_unless(num_client_read
== 0, NULL
);
848 fail_unless(num_client_written
== 0, NULL
);
849 //fail_unless(num_conflicts == 0, NULL);
850 fail_unless(num_engine_errors
== 1, NULL
);
851 fail_unless(num_engine_successful
== 0, NULL
);
853 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
855 destroy_testbed(testbed
);
859 START_TEST (single_commit_error
)
861 char *testbed
= setup_testbed("multisync_easy_new");
863 g_setenv("COMMIT_ERROR", "4", TRUE
);
865 OSyncError
*error
= NULL
;
866 OSyncGroup
*group
= osync_group_new(&error
);
867 fail_unless(group
!= NULL
, NULL
);
868 fail_unless(error
== NULL
, NULL
);
870 osync_group_set_schemadir(group
, testbed
);
871 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
872 fail_unless(error
== NULL
, NULL
);
874 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
875 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
876 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
877 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
878 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
879 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
880 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
882 fail_unless(!synchronize_once(engine
, &error
), NULL
);
883 fail_unless(osync_error_is_set(&error
), NULL
);
886 osync_error_unref(&error
);
888 osync_engine_finalize(engine
, &error
);
890 osync_engine_unref(engine
);
892 fail_unless(num_client_errors
== 0, NULL
);
893 fail_unless(num_client_connected
== 3, NULL
);
894 fail_unless(num_client_disconnected
== 3, NULL
);
895 //fail_unless(num_member_sent_changes == 3, NULL);
896 fail_unless(num_client_read
== 1, NULL
);
897 fail_unless(num_client_written
== 1, NULL
);
898 //fail_unless(num_written_errors == 1, NULL);
899 fail_unless(num_mapping_errors
== 1, NULL
);
900 //fail_unless(num_conflicts == 0, NULL);
901 fail_unless(num_engine_errors
== 1, NULL
);
902 fail_unless(num_engine_successful
== 0, NULL
);
904 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
905 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL
);
907 destroy_testbed(testbed
);
911 START_TEST (dual_commit_error
)
913 char *testbed
= setup_testbed("multisync_easy_new");
915 g_setenv("COMMIT_ERROR", "6", TRUE
);
917 OSyncError
*error
= NULL
;
918 OSyncGroup
*group
= osync_group_new(&error
);
919 fail_unless(group
!= NULL
, NULL
);
920 fail_unless(error
== NULL
, NULL
);
922 osync_group_set_schemadir(group
, testbed
);
923 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
924 fail_unless(error
== NULL
, NULL
);
926 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
927 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
928 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
929 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
930 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
931 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
932 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
934 fail_unless(!synchronize_once(engine
, &error
), NULL
);
935 fail_unless(osync_error_is_set(&error
), NULL
);
938 osync_error_unref(&error
);
940 osync_engine_finalize(engine
, &error
);
942 osync_engine_unref(engine
);
944 fail_unless(num_client_errors
== 0, NULL
);
945 fail_unless(num_client_connected
== 3, NULL
);
946 fail_unless(num_client_disconnected
== 3, NULL
);
947 //fail_unless(num_member_sent_changes == 3, NULL);
948 fail_unless(num_client_read
== 1, NULL
);
949 fail_unless(num_client_written
== 0, NULL
);
950 //fail_unless(num_written_errors == 2, NULL);
951 fail_unless(num_mapping_errors
== 2, NULL
);
952 //fail_unless(num_conflicts == 0, NULL);
953 fail_unless(num_engine_errors
== 1, NULL
);
954 fail_unless(num_engine_successful
== 0, NULL
);
956 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
957 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL
);
959 destroy_testbed(testbed
);
963 START_TEST (single_commit_timeout
)
965 char *testbed
= setup_testbed("multisync_easy_new");
967 g_setenv("COMMIT_TIMEOUT", "4", TRUE
);
969 OSyncError
*error
= NULL
;
970 OSyncGroup
*group
= osync_group_new(&error
);
971 fail_unless(group
!= NULL
, NULL
);
972 fail_unless(error
== NULL
, NULL
);
974 osync_group_set_schemadir(group
, testbed
);
975 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
976 fail_unless(error
== NULL
, NULL
);
978 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
979 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
980 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
981 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
982 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
983 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
984 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
986 fail_unless(!synchronize_once(engine
, &error
), NULL
);
987 fail_unless(osync_error_is_set(&error
), NULL
);
990 osync_error_unref(&error
);
992 osync_engine_finalize(engine
, &error
);
994 osync_engine_unref(engine
);
996 fail_unless(num_client_errors
== 0, NULL
);
997 fail_unless(num_client_connected
== 3, NULL
);
998 fail_unless(num_client_disconnected
== 3, NULL
);
999 //fail_unless(num_member_sent_changes == 3, NULL);
1000 fail_unless(num_client_read
== 1, NULL
);
1001 fail_unless(num_client_written
== 1, NULL
);
1002 //fail_unless(num_written_errors == 1, NULL);
1003 fail_unless(num_mapping_errors
== 1, NULL
);
1004 //fail_unless(num_conflicts == 0, NULL);
1005 fail_unless(num_engine_errors
== 1, NULL
);
1006 fail_unless(num_engine_successful
== 0, NULL
);
1008 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1009 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL
);
1011 destroy_testbed(testbed
);
1015 START_TEST (dual_commit_timeout
)
1017 char *testbed
= setup_testbed("multisync_easy_new");
1019 g_setenv("COMMIT_TIMEOUT", "6", TRUE
);
1021 OSyncError
*error
= NULL
;
1022 OSyncGroup
*group
= osync_group_new(&error
);
1023 fail_unless(group
!= NULL
, NULL
);
1024 fail_unless(error
== NULL
, NULL
);
1026 osync_group_set_schemadir(group
, testbed
);
1027 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1028 fail_unless(error
== NULL
, NULL
);
1030 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1031 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1032 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1033 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1034 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1035 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1036 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1038 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1039 fail_unless(osync_error_is_set(&error
), NULL
);
1042 osync_error_unref(&error
);
1044 osync_engine_finalize(engine
, &error
);
1046 osync_engine_unref(engine
);
1048 fail_unless(num_client_errors
== 0, NULL
);
1049 fail_unless(num_client_connected
== 3, NULL
);
1050 fail_unless(num_client_disconnected
== 3, NULL
);
1051 //fail_unless(num_member_sent_changes == 3, NULL);
1052 fail_unless(num_client_read
== 1, NULL
);
1053 fail_unless(num_client_written
== 0, NULL
);
1054 //fail_unless(num_written_errors == 2, NULL);
1055 fail_unless(num_mapping_errors
== 2, NULL
);
1056 //fail_unless(num_conflicts == 0, NULL);
1057 fail_unless(num_engine_errors
== 1, NULL
);
1058 fail_unless(num_engine_successful
== 0, NULL
);
1060 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
1061 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL
);
1063 destroy_testbed(testbed
);
1067 START_TEST (commit_timeout_and_error
)
1069 char *testbed
= setup_testbed("multisync_easy_new");
1071 g_setenv("COMMIT_TIMEOUT", "4", TRUE
);
1072 g_setenv("COMMIT_ERROR", "2", TRUE
);
1074 OSyncError
*error
= NULL
;
1075 OSyncGroup
*group
= osync_group_new(&error
);
1076 fail_unless(group
!= NULL
, NULL
);
1077 fail_unless(error
== NULL
, NULL
);
1079 osync_group_set_schemadir(group
, testbed
);
1080 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1081 fail_unless(error
== NULL
, NULL
);
1083 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1084 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1085 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1086 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1087 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1088 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1089 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1091 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1092 fail_unless(osync_error_is_set(&error
), NULL
);
1095 osync_error_unref(&error
);
1097 osync_engine_finalize(engine
, &error
);
1099 osync_engine_unref(engine
);
1101 fail_unless(num_client_errors
== 0, NULL
);
1102 fail_unless(num_client_connected
== 3, NULL
);
1103 fail_unless(num_client_disconnected
== 3, NULL
);
1104 //fail_unless(num_member_sent_changes == 3, NULL);
1105 fail_unless(num_client_read
== 1, NULL
);
1106 fail_unless(num_client_written
== 0, NULL
);
1107 //fail_unless(num_written_errors == 2, NULL);
1108 fail_unless(num_mapping_errors
== 2, NULL
);
1109 //fail_unless(num_conflicts == 0, NULL);
1110 fail_unless(num_engine_errors
== 1, NULL
);
1111 fail_unless(num_engine_successful
== 0, NULL
);
1113 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
1114 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL
);
1116 destroy_testbed(testbed
);
1120 START_TEST (commit_timeout_and_error2
)
1122 char *testbed
= setup_testbed("multisync_easy_new");
1124 g_setenv("COMMIT_TIMEOUT", "2", TRUE
);
1125 g_setenv("COMMIT_ERROR", "4", TRUE
);
1127 OSyncError
*error
= NULL
;
1128 OSyncGroup
*group
= osync_group_new(&error
);
1129 fail_unless(group
!= NULL
, NULL
);
1130 fail_unless(error
== NULL
, NULL
);
1132 osync_group_set_schemadir(group
, testbed
);
1133 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1134 fail_unless(error
== NULL
, NULL
);
1136 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1137 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1138 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1139 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1140 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1141 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1142 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1144 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1145 fail_unless(osync_error_is_set(&error
), NULL
);
1148 osync_error_unref(&error
);
1150 osync_engine_finalize(engine
, &error
);
1152 osync_engine_unref(engine
);
1154 fail_unless(num_client_errors
== 0, NULL
);
1155 fail_unless(num_client_connected
== 3, NULL
);
1156 fail_unless(num_client_disconnected
== 3, NULL
);
1157 //fail_unless(num_member_sent_changes == 3, NULL);
1158 fail_unless(num_client_read
== 1, NULL
);
1159 fail_unless(num_client_written
== 0, NULL
);
1160 //fail_unless(num_written_errors == 2, NULL);
1161 fail_unless(num_mapping_errors
== 2, NULL
);
1162 //fail_unless(num_conflicts == 0, NULL);
1163 fail_unless(num_engine_errors
== 1, NULL
);
1164 fail_unless(num_engine_successful
== 0, NULL
);
1166 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
1167 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL
);
1169 destroy_testbed(testbed
);
1173 START_TEST (commit_error_modify
)
1175 char *testbed
= setup_testbed("multisync_easy_new");
1177 OSyncError
*error
= NULL
;
1178 OSyncGroup
*group
= osync_group_new(&error
);
1179 fail_unless(group
!= NULL
, NULL
);
1180 fail_unless(error
== NULL
, NULL
);
1182 osync_group_set_schemadir(group
, testbed
);
1183 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1184 fail_unless(error
== NULL
, NULL
);
1186 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1187 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1188 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1189 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1190 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1191 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1192 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1194 fail_unless(synchronize_once(engine
, &error
), NULL
);
1195 fail_unless(!osync_error_is_set(&error
), NULL
);
1197 g_setenv("COMMIT_TIMEOUT", "2", TRUE
);
1198 g_setenv("COMMIT_ERROR", "4", TRUE
);
1200 g_usleep(2*G_USEC_PER_SEC
);
1202 osync_testing_system_abort("cp newdata2 data1/testdata");
1204 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1205 fail_unless(osync_error_is_set(&error
), NULL
);
1208 osync_error_unref(&error
);
1210 osync_engine_finalize(engine
, &error
);
1212 osync_engine_unref(engine
);
1214 fail_unless(num_client_errors
== 0, NULL
);
1215 fail_unless(num_client_connected
== 3, NULL
);
1216 fail_unless(num_client_disconnected
== 3, NULL
);
1217 //fail_unless(num_member_sent_changes == 3, NULL);
1218 fail_unless(num_client_read
== 1, NULL
);
1219 fail_unless(num_client_written
== 0, NULL
);
1220 //fail_unless(num_written_errors == 2, NULL);
1221 fail_unless(num_mapping_errors
== 2, NULL
);
1222 //fail_unless(num_conflicts == 0, NULL);
1223 fail_unless(num_engine_errors
== 1, NULL
);
1224 fail_unless(num_engine_successful
== 0, NULL
);
1226 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
1227 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL
);
1228 fail_unless(!system("test \"x$(diff -x \".*\" data2 data3)\" == \"x\""), NULL
);
1230 destroy_testbed(testbed
);
1234 START_TEST (commit_error_delete
)
1236 char *testbed
= setup_testbed("multisync_easy_new");
1238 OSyncError
*error
= NULL
;
1239 OSyncGroup
*group
= osync_group_new(&error
);
1240 fail_unless(group
!= NULL
, NULL
);
1241 fail_unless(error
== NULL
, NULL
);
1243 osync_group_set_schemadir(group
, testbed
);
1244 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1245 fail_unless(error
== NULL
, NULL
);
1247 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1248 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1249 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1250 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1251 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1252 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1253 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1255 fail_unless(synchronize_once(engine
, &error
), NULL
);
1256 fail_unless(!osync_error_is_set(&error
), NULL
);
1258 g_setenv("COMMIT_TIMEOUT", "2", TRUE
);
1259 g_setenv("COMMIT_ERROR", "4", TRUE
);
1261 g_usleep(2*G_USEC_PER_SEC
);
1263 osync_testing_system_abort("rm -f data1/testdata");
1265 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1266 fail_unless(osync_error_is_set(&error
), NULL
);
1269 osync_error_unref(&error
);
1271 osync_engine_finalize(engine
, &error
);
1273 osync_engine_unref(engine
);
1275 fail_unless(num_client_errors
== 0, NULL
);
1276 fail_unless(num_client_connected
== 3, NULL
);
1277 fail_unless(num_client_disconnected
== 3, NULL
);
1278 //fail_unless(num_member_sent_changes == 3, NULL);
1279 fail_unless(num_client_read
== 1, NULL
);
1280 fail_unless(num_client_written
== 0, NULL
);
1281 //fail_unless(num_written_errors == 2, NULL);
1282 fail_unless(num_mapping_errors
== 2, NULL
);
1283 //fail_unless(num_conflicts == 0, NULL);
1284 fail_unless(num_engine_errors
== 1, NULL
);
1285 fail_unless(num_engine_successful
== 0, NULL
);
1287 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
1288 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL
);
1289 fail_unless(!system("test \"x$(diff -x \".*\" data2 data3)\" == \"x\""), NULL
);
1291 destroy_testbed(testbed
);
1295 START_TEST (committed_all_error
)
1297 char *testbed
= setup_testbed("multisync_easy_new");
1299 g_setenv("COMMITTED_ALL_ERROR", "3", TRUE
);
1301 OSyncError
*error
= NULL
;
1302 OSyncGroup
*group
= osync_group_new(&error
);
1303 fail_unless(group
!= NULL
, NULL
);
1304 fail_unless(error
== NULL
, NULL
);
1306 osync_group_set_schemadir(group
, testbed
);
1307 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1308 fail_unless(error
== NULL
, NULL
);
1310 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1311 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1312 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1313 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1314 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1315 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1316 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1318 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1319 fail_unless(osync_error_is_set(&error
), NULL
);
1322 osync_error_unref(&error
);
1324 osync_engine_finalize(engine
, &error
);
1326 osync_engine_unref(engine
);
1328 fail_unless(num_client_errors
== 0, NULL
);
1329 fail_unless(num_client_connected
== 3, NULL
);
1330 fail_unless(num_client_disconnected
== 3, NULL
);
1331 //fail_unless(num_member_sent_changes == 3, NULL);
1332 fail_unless(num_client_read
== 1, NULL
);
1333 fail_unless(num_client_written
== 2, NULL
);
1334 //fail_unless(num_written_errors == 0, NULL);
1335 fail_unless(num_mapping_errors
== 0, NULL
);
1336 //fail_unless(num_conflicts == 0, NULL);
1337 fail_unless(num_engine_errors
== 1, NULL
);
1338 fail_unless(num_engine_successful
== 0, NULL
);
1340 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" = \"x\""), NULL
);
1341 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" = \"x\""), NULL
);
1343 destroy_testbed(testbed
);
1347 START_TEST (committed_all_batch_error
)
1349 char *testbed
= setup_testbed("multisync_easy_new");
1351 g_setenv("BATCH_COMMIT", "7", TRUE
);
1352 g_setenv("COMMITTED_ALL_ERROR", "3", TRUE
);
1354 OSyncError
*error
= NULL
;
1355 OSyncGroup
*group
= osync_group_new(&error
);
1356 fail_unless(group
!= NULL
, NULL
);
1357 fail_unless(error
== NULL
, NULL
);
1359 osync_group_set_schemadir(group
, testbed
);
1360 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1361 fail_unless(error
== NULL
, NULL
);
1363 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1364 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1365 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1366 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1367 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1368 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1369 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1371 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1372 fail_unless(osync_error_is_set(&error
), NULL
);
1375 osync_error_unref(&error
);
1377 osync_engine_finalize(engine
, &error
);
1379 osync_engine_unref(engine
);
1381 fail_unless(num_client_errors
== 0, NULL
);
1382 fail_unless(num_client_connected
== 3, NULL
);
1383 fail_unless(num_client_disconnected
== 3, NULL
);
1384 //fail_unless(num_member_sent_changes == 3, NULL);
1385 fail_unless(num_client_read
== 1, NULL
);
1386 fail_unless(num_client_written
== 2, NULL
);
1387 //fail_unless(num_written_errors == 0, NULL);
1388 fail_unless(num_mapping_errors
== 0, NULL
);
1389 //fail_unless(num_conflicts == 0, NULL);
1390 fail_unless(num_engine_errors
== 1, NULL
);
1391 fail_unless(num_engine_successful
== 0, NULL
);
1393 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" = \"x\""), NULL
);
1394 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" = \"x\""), NULL
);
1396 destroy_testbed(testbed
);
1400 START_TEST (single_sync_done_error
)
1402 char *testbed
= setup_testbed("multisync_easy_new");
1404 g_setenv("SYNC_DONE_ERROR", "4", TRUE
);
1406 OSyncError
*error
= NULL
;
1407 OSyncGroup
*group
= osync_group_new(&error
);
1408 fail_unless(group
!= NULL
, NULL
);
1409 fail_unless(error
== NULL
, NULL
);
1411 osync_group_set_schemadir(group
, testbed
);
1412 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1413 fail_unless(error
== NULL
, NULL
);
1415 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1416 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1417 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1418 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1419 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1420 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1421 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1423 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1424 fail_unless(osync_error_is_set(&error
), NULL
);
1427 osync_error_unref(&error
);
1429 osync_engine_finalize(engine
, &error
);
1431 osync_engine_unref(engine
);
1433 fail_unless(num_client_errors
== 0, NULL
);
1434 fail_unless(num_client_connected
== 3, NULL
);
1435 fail_unless(num_client_disconnected
== 3, NULL
);
1436 //fail_unless(num_member_sent_changes == 3, NULL);
1437 fail_unless(num_client_read
== 1, NULL
);
1438 fail_unless(num_client_written
== 2, NULL
);
1439 //fail_unless(num_written_errors == 0, NULL);
1440 fail_unless(num_mapping_errors
== 0, NULL
);
1441 //fail_unless(num_member_sync_done_errors == 1, NULL);
1442 //fail_unless(num_conflicts == 0, NULL);
1443 fail_unless(num_engine_errors
== 1, NULL
);
1444 fail_unless(num_engine_successful
== 0, NULL
);
1446 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1447 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
1449 destroy_testbed(testbed
);
1453 START_TEST (dual_sync_done_error
)
1455 char *testbed
= setup_testbed("multisync_easy_new");
1457 g_setenv("SYNC_DONE_ERROR", "6", TRUE
);
1459 OSyncError
*error
= NULL
;
1460 OSyncGroup
*group
= osync_group_new(&error
);
1461 fail_unless(group
!= NULL
, NULL
);
1462 fail_unless(error
== NULL
, NULL
);
1464 osync_group_set_schemadir(group
, testbed
);
1465 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1466 fail_unless(error
== NULL
, NULL
);
1468 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1469 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1470 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1471 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1472 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1473 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1474 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1476 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1477 fail_unless(osync_error_is_set(&error
), NULL
);
1480 osync_error_unref(&error
);
1482 osync_engine_finalize(engine
, &error
);
1484 osync_engine_unref(engine
);
1486 fail_unless(num_client_errors
== 0, NULL
);
1487 fail_unless(num_client_connected
== 3, NULL
);
1488 fail_unless(num_client_disconnected
== 3, NULL
);
1489 //fail_unless(num_member_sent_changes == 3, NULL);
1490 fail_unless(num_client_read
== 1, NULL
);
1491 fail_unless(num_client_written
== 2, NULL
);
1492 //fail_unless(num_written_errors == 0, NULL);
1493 fail_unless(num_mapping_errors
== 0, NULL
);
1494 //fail_unless(num_conflicts == 0, NULL);
1495 //fail_unless(num_member_sync_done_errors == 2, NULL);
1496 fail_unless(num_engine_errors
== 1, NULL
);
1497 fail_unless(num_engine_successful
== 0, NULL
);
1499 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1500 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
1502 destroy_testbed(testbed
);
1506 START_TEST (triple_sync_done_error
)
1508 char *testbed
= setup_testbed("multisync_easy_new");
1510 g_setenv("SYNC_DONE_ERROR", "7", TRUE
);
1512 OSyncError
*error
= NULL
;
1513 OSyncGroup
*group
= osync_group_new(&error
);
1514 fail_unless(group
!= NULL
, NULL
);
1515 fail_unless(error
== NULL
, NULL
);
1517 osync_group_set_schemadir(group
, testbed
);
1518 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1519 fail_unless(error
== NULL
, NULL
);
1521 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1522 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1523 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1524 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1525 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1526 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1527 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1529 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1530 fail_unless(osync_error_is_set(&error
), NULL
);
1533 osync_error_unref(&error
);
1535 osync_engine_finalize(engine
, &error
);
1537 osync_engine_unref(engine
);
1539 fail_unless(num_client_errors
== 0, NULL
);
1540 fail_unless(num_client_connected
== 3, NULL
);
1541 fail_unless(num_client_disconnected
== 3, NULL
);
1542 //fail_unless(num_member_sent_changes == 3, NULL);
1543 fail_unless(num_client_read
== 1, NULL
);
1544 fail_unless(num_client_written
== 2, NULL
);
1545 //fail_unless(num_written_errors == 0, NULL);
1546 fail_unless(num_mapping_errors
== 0, NULL
);
1547 //fail_unless(num_conflicts == 0, NULL);
1548 //fail_unless(num_member_sync_done_errors == 3, NULL);
1549 fail_unless(num_engine_errors
== 1, NULL
);
1550 fail_unless(num_engine_successful
== 0, NULL
);
1552 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1553 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
1555 destroy_testbed(testbed
);
1559 START_TEST (single_sync_done_timeout
)
1561 char *testbed
= setup_testbed("multisync_easy_new");
1563 g_setenv("SYNC_DONE_TIMEOUT", "4", TRUE
);
1565 OSyncError
*error
= NULL
;
1566 OSyncGroup
*group
= osync_group_new(&error
);
1567 fail_unless(group
!= NULL
, NULL
);
1568 fail_unless(error
== NULL
, NULL
);
1570 osync_group_set_schemadir(group
, testbed
);
1571 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1572 fail_unless(error
== NULL
, NULL
);
1574 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1575 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1576 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1577 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1578 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1579 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1580 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1582 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1583 fail_unless(osync_error_is_set(&error
), NULL
);
1586 osync_error_unref(&error
);
1588 osync_engine_finalize(engine
, &error
);
1590 osync_engine_unref(engine
);
1592 fail_unless(num_client_errors
== 0, NULL
);
1593 fail_unless(num_client_connected
== 3, NULL
);
1594 fail_unless(num_client_disconnected
== 3, NULL
);
1595 //fail_unless(num_member_sent_changes == 3, NULL);
1596 fail_unless(num_client_read
== 1, NULL
);
1597 fail_unless(num_client_written
== 2, NULL
);
1598 //fail_unless(num_written_errors == 0, NULL);
1599 fail_unless(num_mapping_errors
== 0, NULL
);
1600 //fail_unless(num_conflicts == 0, NULL);
1601 //fail_unless(num_member_sync_done_errors == 1, NULL);
1602 fail_unless(num_engine_errors
== 1, NULL
);
1603 fail_unless(num_engine_successful
== 0, NULL
);
1605 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1606 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
1608 destroy_testbed(testbed
);
1612 START_TEST (dual_sync_done_timeout
)
1614 char *testbed
= setup_testbed("multisync_easy_new");
1616 g_setenv("SYNC_DONE_TIMEOUT", "6", TRUE
);
1618 OSyncError
*error
= NULL
;
1619 OSyncGroup
*group
= osync_group_new(&error
);
1620 fail_unless(group
!= NULL
, NULL
);
1621 fail_unless(error
== NULL
, NULL
);
1623 osync_group_set_schemadir(group
, testbed
);
1624 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1625 fail_unless(error
== NULL
, NULL
);
1627 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1628 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1629 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1630 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1631 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1632 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1633 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1635 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1636 fail_unless(osync_error_is_set(&error
), NULL
);
1639 osync_error_unref(&error
);
1641 osync_engine_finalize(engine
, &error
);
1643 osync_engine_unref(engine
);
1645 fail_unless(num_client_errors
== 0, NULL
);
1646 fail_unless(num_client_connected
== 3, NULL
);
1647 fail_unless(num_client_disconnected
== 3, NULL
);
1648 //fail_unless(num_member_sent_changes == 3, NULL);
1649 fail_unless(num_client_read
== 1, NULL
);
1650 fail_unless(num_client_written
== 2, NULL
);
1651 //fail_unless(num_written_errors == 0, NULL);
1652 fail_unless(num_mapping_errors
== 0, NULL
);
1653 //fail_unless(num_conflicts == 0, NULL);
1654 //fail_unless(num_member_sync_done_errors == 2, NULL);
1655 fail_unless(num_engine_errors
== 1, NULL
);
1656 fail_unless(num_engine_successful
== 0, NULL
);
1658 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1659 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
1661 destroy_testbed(testbed
);
1665 START_TEST (sync_done_timeout_and_error
)
1667 char *testbed
= setup_testbed("multisync_easy_new");
1669 g_setenv("SYNC_DONE_TIMEOUT", "5", TRUE
);
1670 g_setenv("SYNC_DONE_ERROR", "2", TRUE
);
1672 OSyncError
*error
= NULL
;
1673 OSyncGroup
*group
= osync_group_new(&error
);
1674 fail_unless(group
!= NULL
, NULL
);
1675 fail_unless(error
== NULL
, NULL
);
1677 osync_group_set_schemadir(group
, testbed
);
1678 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1679 fail_unless(error
== NULL
, NULL
);
1681 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1682 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1683 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1684 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1685 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1686 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1687 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1689 fail_unless(!synchronize_once(engine
, &error
), NULL
);
1690 fail_unless(osync_error_is_set(&error
), NULL
);
1693 osync_error_unref(&error
);
1695 osync_engine_finalize(engine
, &error
);
1697 osync_engine_unref(engine
);
1699 fail_unless(num_client_errors
== 0, NULL
);
1700 fail_unless(num_client_connected
== 3, NULL
);
1701 fail_unless(num_client_disconnected
== 3, NULL
);
1702 //fail_unless(num_member_sent_changes == 3, NULL);
1703 fail_unless(num_client_read
== 1, NULL
);
1704 fail_unless(num_client_written
== 2, NULL
);
1705 //fail_unless(num_written_errors == 0, NULL);
1706 fail_unless(num_mapping_errors
== 0, NULL
);
1707 //fail_unless(num_conflicts == 0, NULL);
1708 //fail_unless(num_member_sync_done_errors == 3, NULL);
1709 fail_unless(num_engine_errors
== 1, NULL
);
1710 fail_unless(num_engine_successful
== 0, NULL
);
1712 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1713 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
1715 destroy_testbed(testbed
);
1719 START_TEST (single_disconnect_error
)
1721 char *testbed
= setup_testbed("multisync_easy_new");
1723 g_setenv("DISCONNECT_ERROR", "4", TRUE
);
1725 OSyncError
*error
= NULL
;
1726 OSyncGroup
*group
= osync_group_new(&error
);
1727 fail_unless(group
!= NULL
, NULL
);
1728 fail_unless(error
== NULL
, NULL
);
1730 osync_group_set_schemadir(group
, testbed
);
1731 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1732 fail_unless(error
== NULL
, NULL
);
1734 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1735 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1736 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1737 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1738 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1739 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1740 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1742 fail_unless(synchronize_once(engine
, &error
), NULL
);
1743 fail_unless(!osync_error_is_set(&error
), NULL
);
1746 osync_error_unref(&error
);
1748 osync_engine_finalize(engine
, &error
);
1750 osync_engine_unref(engine
);
1752 fail_unless(num_client_errors
== 1, NULL
);
1753 fail_unless(num_client_connected
== 3, NULL
);
1754 fail_unless(num_client_disconnected
== 2, NULL
);
1755 //fail_unless(num_member_sent_changes == 3, NULL);
1756 fail_unless(num_client_read
== 1, NULL
);
1757 fail_unless(num_client_written
== 2, NULL
);
1758 //fail_unless(num_written_errors == 0, NULL);
1759 fail_unless(num_mapping_errors
== 0, NULL
);
1760 //fail_unless(num_member_sync_done_errors == 0, NULL);
1761 //fail_unless(num_conflicts == 0, NULL);
1762 fail_unless(num_engine_errors
== 0, NULL
);
1763 fail_unless(num_engine_successful
== 1, NULL
);
1765 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1766 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
1768 destroy_testbed(testbed
);
1772 START_TEST (dual_disconnect_error
)
1774 char *testbed
= setup_testbed("multisync_easy_new");
1776 g_setenv("DISCONNECT_ERROR", "6", TRUE
);
1778 OSyncError
*error
= NULL
;
1779 OSyncGroup
*group
= osync_group_new(&error
);
1780 fail_unless(group
!= NULL
, NULL
);
1781 fail_unless(error
== NULL
, NULL
);
1783 osync_group_set_schemadir(group
, testbed
);
1784 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1785 fail_unless(error
== NULL
, NULL
);
1787 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1788 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1789 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1790 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1791 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1792 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1793 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1795 fail_unless(synchronize_once(engine
, &error
), NULL
);
1796 fail_unless(!osync_error_is_set(&error
), NULL
);
1799 osync_error_unref(&error
);
1801 osync_engine_finalize(engine
, &error
);
1803 osync_engine_unref(engine
);
1805 fail_unless(num_client_errors
== 2, NULL
);
1806 fail_unless(num_client_connected
== 3, NULL
);
1807 fail_unless(num_client_disconnected
== 1, NULL
);
1808 //fail_unless(num_member_sent_changes == 3, NULL);
1809 fail_unless(num_client_read
== 1, NULL
);
1810 fail_unless(num_client_written
== 2, NULL
);
1811 //fail_unless(num_written_errors == 0, NULL);
1812 fail_unless(num_mapping_errors
== 0, NULL
);
1813 //fail_unless(num_conflicts == 0, NULL);
1814 //fail_unless(num_member_sync_done_errors == 0, NULL);
1815 fail_unless(num_engine_errors
== 0, NULL
);
1816 fail_unless(num_engine_successful
== 1, NULL
);
1818 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1819 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
1821 destroy_testbed(testbed
);
1825 START_TEST (triple_disconnect_error
)
1827 char *testbed
= setup_testbed("multisync_easy_new");
1829 g_setenv("DISCONNECT_ERROR", "7", TRUE
);
1831 OSyncError
*error
= NULL
;
1832 OSyncGroup
*group
= osync_group_new(&error
);
1833 fail_unless(group
!= NULL
, NULL
);
1834 fail_unless(error
== NULL
, NULL
);
1836 osync_group_set_schemadir(group
, testbed
);
1837 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1838 fail_unless(error
== NULL
, NULL
);
1840 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1841 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1842 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1843 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1844 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1845 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1846 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1848 fail_unless(synchronize_once(engine
, &error
), NULL
);
1849 fail_unless(!osync_error_is_set(&error
), NULL
);
1852 osync_error_unref(&error
);
1854 osync_engine_finalize(engine
, &error
);
1856 osync_engine_unref(engine
);
1858 fail_unless(num_client_errors
== 3, NULL
);
1859 fail_unless(num_client_connected
== 3, NULL
);
1860 fail_unless(num_client_disconnected
== 0, NULL
);
1861 //fail_unless(num_member_sent_changes == 3, NULL);
1862 fail_unless(num_client_read
== 1, NULL
);
1863 fail_unless(num_client_written
== 2, NULL
);
1864 //fail_unless(num_written_errors == 0, NULL);
1865 fail_unless(num_mapping_errors
== 0, NULL
);
1866 //fail_unless(num_conflicts == 0, NULL);
1867 //fail_unless(num_member_sync_done_errors == 0, NULL);
1868 fail_unless(num_engine_errors
== 0, NULL
);
1869 fail_unless(num_engine_successful
== 1, NULL
);
1871 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1872 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
1874 destroy_testbed(testbed
);
1878 START_TEST (single_disconnect_timeout
)
1880 char *testbed
= setup_testbed("multisync_easy_new");
1882 g_setenv("DISCONNECT_TIMEOUT", "4", TRUE
);
1884 OSyncError
*error
= NULL
;
1885 OSyncGroup
*group
= osync_group_new(&error
);
1886 fail_unless(group
!= NULL
, NULL
);
1887 fail_unless(error
== NULL
, NULL
);
1889 osync_group_set_schemadir(group
, testbed
);
1890 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1891 fail_unless(error
== NULL
, NULL
);
1893 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1894 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1895 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1896 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1897 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1898 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1899 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1901 fail_unless(synchronize_once(engine
, &error
), NULL
);
1902 fail_unless(!osync_error_is_set(&error
), NULL
);
1905 osync_error_unref(&error
);
1907 osync_engine_finalize(engine
, &error
);
1909 osync_engine_unref(engine
);
1911 fail_unless(num_client_errors
== 1, NULL
);
1912 fail_unless(num_client_connected
== 3, NULL
);
1913 fail_unless(num_client_disconnected
== 2, NULL
);
1914 //fail_unless(num_member_sent_changes == 3, NULL);
1915 fail_unless(num_client_read
== 1, NULL
);
1916 fail_unless(num_client_written
== 2, NULL
);
1917 //fail_unless(num_written_errors == 0, NULL);
1918 fail_unless(num_mapping_errors
== 0, NULL
);
1919 //fail_unless(num_conflicts == 0, NULL);
1920 //fail_unless(num_member_sync_done_errors == 0, NULL);
1921 fail_unless(num_engine_errors
== 0, NULL
);
1922 fail_unless(num_engine_successful
== 1, NULL
);
1924 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1925 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
1927 destroy_testbed(testbed
);
1931 START_TEST (dual_disconnect_timeout
)
1933 char *testbed
= setup_testbed("multisync_easy_new");
1935 g_setenv("DISCONNECT_TIMEOUT", "6", TRUE
);
1937 OSyncError
*error
= NULL
;
1938 OSyncGroup
*group
= osync_group_new(&error
);
1939 fail_unless(group
!= NULL
, NULL
);
1940 fail_unless(error
== NULL
, NULL
);
1942 osync_group_set_schemadir(group
, testbed
);
1943 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1944 fail_unless(error
== NULL
, NULL
);
1946 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
1947 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
1948 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
1949 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
1950 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
1951 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
1952 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
1954 fail_unless(synchronize_once(engine
, &error
), NULL
);
1955 fail_unless(!osync_error_is_set(&error
), NULL
);
1958 osync_error_unref(&error
);
1960 osync_engine_finalize(engine
, &error
);
1962 osync_engine_unref(engine
);
1964 fail_unless(num_client_errors
== 2, NULL
);
1965 fail_unless(num_client_connected
== 3, NULL
);
1966 fail_unless(num_client_disconnected
== 1, NULL
);
1967 //fail_unless(num_member_sent_changes == 3, NULL);
1968 fail_unless(num_client_read
== 1, NULL
);
1969 fail_unless(num_client_written
== 2, NULL
);
1970 //fail_unless(num_written_errors == 0, NULL);
1971 fail_unless(num_mapping_errors
== 0, NULL
);
1972 //fail_unless(num_conflicts == 0, NULL);
1973 //fail_unless(num_member_sync_done_errors == 0, NULL);
1974 fail_unless(num_engine_errors
== 0, NULL
);
1975 fail_unless(num_engine_successful
== 1, NULL
);
1977 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
1978 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
1980 destroy_testbed(testbed
);
1984 START_TEST (disconnect_timeout_and_error
)
1986 char *testbed
= setup_testbed("multisync_easy_new");
1988 g_setenv("DISCONNECT_TIMEOUT", "5", TRUE
);
1989 g_setenv("DISCONNECT_ERROR", "2", TRUE
);
1991 OSyncError
*error
= NULL
;
1992 OSyncGroup
*group
= osync_group_new(&error
);
1993 fail_unless(group
!= NULL
, NULL
);
1994 fail_unless(error
== NULL
, NULL
);
1996 osync_group_set_schemadir(group
, testbed
);
1997 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
1998 fail_unless(error
== NULL
, NULL
);
2000 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
2001 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
2002 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
2003 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
2004 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
2005 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
2006 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
2008 fail_unless(synchronize_once(engine
, &error
), NULL
);
2009 fail_unless(!osync_error_is_set(&error
), NULL
);
2012 osync_error_unref(&error
);
2014 osync_engine_finalize(engine
, &error
);
2016 osync_engine_unref(engine
);
2018 fail_unless(num_client_errors
== 3, NULL
);
2019 fail_unless(num_client_connected
== 3, NULL
);
2020 fail_unless(num_client_disconnected
== 0, NULL
);
2021 //fail_unless(num_member_sent_changes == 3, NULL);
2022 fail_unless(num_client_read
== 1, NULL
);
2023 fail_unless(num_client_written
== 2, NULL
);
2024 //fail_unless(num_written_errors == 0, NULL);
2025 fail_unless(num_mapping_errors
== 0, NULL
);
2026 //fail_unless(num_conflicts == 0, NULL);
2027 //fail_unless(num_member_sync_done_errors == 0, NULL);
2028 fail_unless(num_engine_errors
== 0, NULL
);
2029 fail_unless(num_engine_successful
== 1, NULL
);
2031 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" == \"x\""), NULL
);
2032 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" == \"x\""), NULL
);
2034 destroy_testbed(testbed
);
2038 START_TEST (get_changes_disconnect_error
)
2040 char *testbed
= setup_testbed("multisync_easy_new");
2042 g_setenv("DISCONNECT_TIMEOUT", "1", TRUE
);
2043 g_setenv("DISCONNECT_ERROR", "2", TRUE
);
2044 g_setenv("GET_CHANGES_TIMEOUT", "6", TRUE
);
2045 g_setenv("NO_COMMITTED_ALL_CHECK", "1", TRUE
);
2047 OSyncError
*error
= NULL
;
2048 OSyncGroup
*group
= osync_group_new(&error
);
2049 fail_unless(group
!= NULL
, NULL
);
2050 fail_unless(error
== NULL
, NULL
);
2052 osync_group_set_schemadir(group
, testbed
);
2053 fail_unless(osync_group_load(group
, "configs/group", &error
), NULL
);
2054 fail_unless(error
== NULL
, NULL
);
2056 OSyncEngine
*engine
= osync_engine_new(group
, &error
);
2057 osync_engine_set_memberstatus_callback(engine
, member_status
, NULL
);
2058 osync_engine_set_enginestatus_callback(engine
, engine_status
, NULL
);
2059 osync_engine_set_changestatus_callback(engine
, entry_status
, NULL
);
2060 osync_engine_set_mappingstatus_callback(engine
, mapping_status
, NULL
);
2061 osync_engine_set_conflict_callback(engine
, conflict_handler_choose_modified
, GINT_TO_POINTER(3));
2062 fail_unless(osync_engine_initialize(engine
, &error
), NULL
);
2064 fail_unless(!synchronize_once(engine
, &error
), NULL
);
2065 fail_unless(osync_error_is_set(&error
), NULL
);
2067 fail_unless(num_client_errors
== 2, NULL
);
2068 fail_unless(num_client_connected
== 3, NULL
);
2069 fail_unless(num_client_disconnected
== 1, NULL
);
2070 //fail_unless(num_member_sent_changes == 1, NULL);
2071 fail_unless(num_client_read
== 1, NULL
);
2072 fail_unless(num_client_written
== 0, NULL
);
2073 //fail_unless(num_written_errors == 0, NULL);
2074 fail_unless(num_mapping_errors
== 0, NULL
);
2075 //fail_unless(num_conflicts == 0, NULL);
2076 //fail_unless(num_member_sync_done_errors == 0, NULL);
2077 fail_unless(num_engine_errors
== 1, NULL
);
2078 fail_unless(num_engine_successful
== 0, NULL
);
2081 osync_error_unref(&error
);
2083 osync_engine_finalize(engine
, &error
);
2085 osync_engine_unref(engine
);
2087 fail_unless(!system("test \"x$(diff -x \".*\" data1 data2)\" != \"x\""), NULL
);
2088 fail_unless(!system("test \"x$(diff -x \".*\" data1 data3)\" != \"x\""), NULL
);
2090 destroy_testbed(testbed
);
2095 Suite
*multisync_suite(void)
2097 Suite
*s
= suite_create("Error Codes");
2098 //Suite *s2 = suite_create("Error Codes");
2099 create_case(s
, "single_init_error_noerror", single_init_error_noerror
);
2101 /* Disabled as not ported see http://opensync.org/ticket/980
2103 create_case(s, "single_init_error", single_init_error);
2104 create_case(s, "dual_connect_error", dual_connect_error);
2105 create_case(s, "one_of_two_connect_error", one_of_two_connect_error);
2106 create_case(s, "two_of_three_connect_error", two_of_three_connect_error);
2107 create_case(s, "two_of_three_connect_error2", two_of_three_connect_error2);
2108 create_case(s, "three_of_three_connect_error", three_of_three_connect_error);
2109 create_case(s, "one_of_three_connect_error", one_of_three_connect_error);
2110 create_case(s, "no_connect_error", no_connect_error);
2111 create_case(s, "single_connect_timeout", single_connect_timeout);
2112 create_case(s, "dual_connect_timeout", dual_connect_timeout);
2113 create_case(s, "one_of_three_timeout", one_of_three_timeout);
2114 create_case(s, "timeout_and_error", timeout_and_error);
2115 create_case(s, "single_get_changes_error", single_get_changes_error);
2116 create_case(s, "dual_get_changes_error", dual_get_changes_error);
2117 create_case(s, "two_of_three_get_changes_error", two_of_three_get_changes_error);
2118 create_case(s, "one_of_three_get_changes_error", one_of_three_get_changes_error);
2119 create_case(s, "one_of_three_get_changes_timeout", one_of_three_get_changes_timeout);
2120 create_case(s, "get_changes_timeout_and_error", get_changes_timeout_and_error);
2121 create_case(s, "get_changes_timeout_sleep", get_changes_timeout_sleep);
2122 create_case(s, "single_commit_error", single_commit_error);
2123 create_case(s, "dual_commit_error", dual_commit_error);
2124 create_case(s, "single_commit_timeout", single_commit_timeout);
2125 create_case(s, "dual_commit_timeout", dual_commit_timeout);
2126 create_case(s, "commit_timeout_and_error", commit_timeout_and_error);
2127 create_case(s, "commit_timeout_and_error2", commit_timeout_and_error2);
2128 create_case(s, "commit_error_modify", commit_error_modify);
2129 create_case(s, "commit_error_delete", commit_error_delete);
2130 create_case(s, "committed_all_error", committed_all_error);
2131 create_case(s, "committed_all_batch_error", committed_all_batch_error);
2132 create_case(s, "single_sync_done_error", single_sync_done_error);
2133 create_case(s, "dual_sync_done_error", dual_sync_done_error);
2134 create_case(s, "triple_sync_done_error", triple_sync_done_error);
2135 create_case(s, "single_sync_done_timeout", single_sync_done_timeout);
2136 create_case(s, "dual_sync_done_timeout", dual_sync_done_timeout);
2137 create_case(s, "sync_done_timeout_and_error", sync_done_timeout_and_error);
2138 create_case(s, "single_disconnect_error", single_disconnect_error);
2139 create_case(s, "dual_disconnect_error", dual_disconnect_error);
2140 create_case(s, "triple_disconnect_error", triple_disconnect_error);
2141 create_case(s, "single_disconnect_timeout", single_disconnect_timeout);
2142 create_case(s, "dual_disconnect_timeout", dual_disconnect_timeout);
2143 create_case(s, "disconnect_timeout_and_error", disconnect_timeout_and_error);
2144 create_case(s, "get_changes_disconnect_error", get_changes_disconnect_error);
2155 Suite
*s
= multisync_suite();
2158 sr
= srunner_create(s
);
2159 srunner_run_all(sr
, CK_VERBOSE
);
2160 nf
= srunner_ntests_failed(sr
);
2162 return (nf
== 0) ? EXIT_SUCCESS
: EXIT_FAILURE
;