struct afb_api_itf api_itf_null = {
.call = NULL,
.service_start = NULL,
+#if WITH_AFB_HOOK
.update_hooks = NULL,
+#endif
.get_logmask = NULL,
.set_logmask = NULL,
.describe = NULL,
return set_last_api->mask;
}
-int set_cb_start(void *closure, int share_session, int onneed)
+int set_cb_start(void *closure)
{
set_cb0(closure);
ck_assert_int_eq(0, set_last_api->init);
struct afb_api_itf set_api_itf = {
.call = NULL,
.service_start = set_cb_start,
+#if WITH_AFB_HOOK
.update_hooks = set_cb0,
+#endif
.get_logmask = set_cb_getmask,
.set_logmask = set_cb_setmask,
.describe = NULL,
nn = i;
set_count = 0;
- afb_apiset_start_all_services(a, 1);
+ afb_apiset_start_all_services(a);
ck_assert_int_eq(nn, set_count);
+#if WITH_AFB_HOOK
set_count = 0;
afb_apiset_update_hooks(a, NULL);
ck_assert_int_eq(nn, set_count);
+#endif
for (mask = 1 ; !(mask >> 10) ; mask <<= 1) {
set_count = 0;
int clorder;
-int clacb_start(void *closure, int share_session, int onneed)
+int clacb_start(void *closure)
{
struct clapi *a = closure;
int i;
struct afb_api_itf clitf = {
.call = NULL,
.service_start = clacb_start,
+#if WITH_AFB_HOOK
.update_hooks = NULL,
+#endif
.get_logmask = NULL,
.set_logmask = NULL,
.describe = NULL,
}
/* start all */
- ck_assert_int_eq(0, afb_apiset_start_all_services(a, 0));
+ ck_assert_int_eq(0, afb_apiset_start_all_services(a));
+
+ afb_apiset_unref(a);
+}
+END_TEST
+
+/*********************************************************************/
+
+START_TEST (check_subset)
+{
+ int rc;
+ struct afb_apiset *a, *b, *c, *d;
+
+ a = afb_apiset_create_subset_first(NULL, "a", 0);
+ ck_assert_ptr_nonnull(a);
+ ck_assert_str_eq("a", afb_apiset_name(a));
+ ck_assert_ptr_null(afb_apiset_subset_get(a));
+
+ b = afb_apiset_create_subset_first(a, "b", 0);
+ ck_assert_ptr_nonnull(b);
+ ck_assert_str_eq("b", afb_apiset_name(b));
+ ck_assert_ptr_eq(b, afb_apiset_subset_get(a));
+ ck_assert_ptr_null(afb_apiset_subset_get(b));
+
+ c = afb_apiset_create_subset_first(a, "c", 0);
+ ck_assert_ptr_nonnull(c);
+ ck_assert_str_eq("c", afb_apiset_name(c));
+ ck_assert_ptr_eq(c, afb_apiset_subset_get(a));
+ ck_assert_ptr_eq(b, afb_apiset_subset_get(c));
+ ck_assert_ptr_null(afb_apiset_subset_get(b));
+
+ d = afb_apiset_create_subset_last(a, "d", 0);
+ ck_assert_ptr_nonnull(d);
+ ck_assert_str_eq("d", afb_apiset_name(d));
+ ck_assert_ptr_eq(c, afb_apiset_subset_get(a));
+ ck_assert_ptr_eq(b, afb_apiset_subset_get(c));
+ ck_assert_ptr_eq(d, afb_apiset_subset_get(b));
+ ck_assert_ptr_null(afb_apiset_subset_get(d));
+
+ rc = afb_apiset_subset_set(a, b);
+ ck_assert(rc == 0);
+ ck_assert_ptr_eq(b, afb_apiset_subset_get(a));
+ ck_assert_ptr_eq(d, afb_apiset_subset_get(b));
+ ck_assert_ptr_null(afb_apiset_subset_get(d));
afb_apiset_unref(a);
}
addtest(check_onlack);
addtest(check_settings);
addtest(check_classes);
+ addtest(check_subset);
return !!srun();
}