static void do_test_cstat_set_backup_list(enum protocol protocol) { struct cstat *cstat; cstat=setup_cstat(CNAME, protocol); ck_assert_str_eq(CLIENTCONFDIR "/" CNAME, cstat->conffile); cstat->permitted=1; fail_unless(recursive_delete(BASE)==0); build_storage_dirs((struct sdirs *)cstat->sdirs, sd123, ARR_LEN(sd123)); fail_unless(!cstat_set_backup_list(cstat)); fail_unless(cstat->bu!=NULL); fail_unless(recursive_delete(BASE)==0); build_storage_dirs((struct sdirs *)cstat->sdirs, sd13, ARR_LEN(sd13)); fail_unless(!cstat_set_backup_list(cstat)); fail_unless(cstat->bu!=NULL); fail_unless(recursive_delete(BASE)==0); build_storage_dirs((struct sdirs *)cstat->sdirs, sd12345, ARR_LEN(sd12345)); fail_unless(!cstat_set_backup_list(cstat)); fail_unless(cstat->bu!=NULL); cstat->permitted=0; fail_unless(!cstat_set_backup_list(cstat)); fail_unless(cstat->bu==NULL); tear_down(&cstat); }
END_TEST static struct cstat *set_run_status_setup(enum protocol protocol, int permitted) { struct cstat *cstat; cstat=setup_cstat(CNAME, protocol); fail_unless(cstat->run_status==RUN_STATUS_UNSET); cstat->permitted=permitted; return cstat; }
END_TEST static void do_test_cstat_reload_from_client_confs(enum protocol protocol) { struct cstat *c1; struct cstat *c2; struct cstat *clist=NULL; c1=setup_cstat("cli1", protocol); c2=setup_cstat("cli2", protocol); cstat_add_to_list(&clist, c1); cstat_add_to_list(&clist, c2); c1->permitted=1; // First time, nothing is reloaded. fail_unless(reload_from_clientdir(&clist)==0); fail_unless(c1->run_status==RUN_STATUS_IDLE); fail_unless(c2->run_status==RUN_STATUS_UNSET); fail_unless(c1->bu==NULL); fail_unless(c2->bu==NULL); // Add some storage dirs, and c1 is loaded. build_storage_dirs((struct sdirs *)c1->sdirs, sd123, ARR_LEN(sd123)); fail_unless(reload_from_clientdir(&clist)==1); fail_unless(c1->run_status==RUN_STATUS_IDLE); fail_unless(c2->run_status==RUN_STATUS_UNSET); fail_unless(c1->bu!=NULL); fail_unless(c2->bu==NULL); // Go again, nothing should be reloaded. fail_unless(reload_from_clientdir(&clist)==0); // Get a lock. lock_get_quick(((struct sdirs *)c1->sdirs)->lock); fail_unless(reload_from_clientdir(&clist)==1); sdirs_free((struct sdirs **)&c1->sdirs); sdirs_free((struct sdirs **)&c2->sdirs); cstat_list_free(&clist); clean(); alloc_check(); }
static void run_test(enum protocol protocol, int use_cache) { struct cstat *cstat; cstat=setup_cstat(CNAME, protocol); build_storage_dirs((struct sdirs *)cstat->sdirs, sd1, ARR_LEN(sd1)); cstat->permitted=1; fail_unless(!cstat_set_backup_list(cstat)); fail_unless(!browse_manifest( cstat, cstat->bu, NULL, // browse use_cache)); if(use_cache) cache_free(); tear_down(&cstat); }