static void check_list_storage(GConfEngine* conf) { GError* err = NULL; const gchar** keyp = NULL; guint i; GConfValueType list_types[] = { GCONF_VALUE_INT, GCONF_VALUE_INT, GCONF_VALUE_STRING, GCONF_VALUE_STRING, GCONF_VALUE_FLOAT, GCONF_VALUE_FLOAT, GCONF_VALUE_BOOL, GCONF_VALUE_BOOL }; GSList* lists[] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; const guint n_lists = sizeof(lists)/sizeof(lists[0]); /* List of integers */ lists[0] = list_of_ints(); /* empty list of integers */ lists[1] = NULL; /* lists of string */ lists[2] = list_of_strings(); lists[3] = NULL; /* of float */ lists[4] = list_of_floats(); lists[5] = NULL; /* of bool */ lists[6] = list_of_bools(); lists[7] = NULL; /* Loop over keys, storing all values at each then retrieving them */ keyp = keys; while (*keyp) { i = 0; while (i < n_lists) { GSList* gotten = NULL; if (!gconf_engine_set_list(conf, *keyp, list_types[i], lists[i], &err)) { fprintf(stderr, "Failed to set key `%s' to list: %s\n", *keyp, err->message); g_error_free(err); err = NULL; } else { sync_and_clear(conf); gotten = gconf_engine_get_list(conf, *keyp, list_types[i], &err); if (err != NULL) { check(gotten == NULL, "NULL not returned though there was an error"); fprintf(stderr, "Failed to get key `%s': %s\n", *keyp, err->message); g_error_free(err); err = NULL; } else { compare_lists(list_types[i], lists[i], gotten); } } ++i; } ++keyp; } i = 0; while (i < n_lists) { free_list(list_types[i], lists[i]); ++i; } check_unset(conf); }
static void check_string_storage(GConfEngine* conf) { GError* err = NULL; const gchar** keyp = NULL; const gchar** valp = NULL; /* Loop over keys, storing all strings at each key then immediately retrieving them */ keyp = keys; while (*keyp) { valp = some_strings; while (*valp) { gchar* gotten; if (!gconf_engine_set_string(conf, *keyp, *valp, &err)) { fprintf(stderr, "Failed to set key `%s' to `%s': %s\n", *keyp, *valp, err->message); g_error_free(err); err = NULL; } else { sync_and_clear(conf); gotten = gconf_engine_get_string(conf, *keyp, &err); if (err != NULL) { check(gotten == NULL, "string was returned though there was an error"); fprintf(stderr, "Failed to get key `%s': %s\n", *keyp, err->message); g_error_free(err); err = NULL; } else { check (strcmp(gotten, *valp) == 0, "string set/get pair: `%s' set, `%s' got", *valp, gotten); g_free(gotten); } } ++valp; } ++keyp; } /* Now invert the loop and see if that causes problems */ valp = some_strings; while (*valp) { keyp = keys; while (*keyp) { gchar* gotten; if (!gconf_engine_set_string(conf, *keyp, *valp, &err)) { fprintf(stderr, "Failed to set key `%s' to `%s': %s\n", *keyp, *valp, err->message); g_error_free(err); err = NULL; } sync_and_clear(conf); gotten = gconf_engine_get_string(conf, *keyp, &err); if (err != NULL) { check(gotten == NULL, "string was returned though there was an error"); fprintf(stderr, "Failed to get key `%s': %s\n", *keyp, err->message); g_error_free(err); err = NULL; } else if (gotten) { check (strcmp(gotten, *valp) == 0, "string set/get pair: `%s' set, `%s' got", *valp, null_safe(gotten)); g_free(gotten); } ++keyp; } ++valp; } check_unset(conf); }
void check_int_storage(GConfEngine* conf) { GError* err = NULL; const gchar** keyp = NULL; guint i; /* Loop over keys, storing all values at each then retrieving them */ keyp = keys; while (*keyp) { i = 0; while (i < n_ints) { gint gotten; if (!gconf_engine_set_int(conf, *keyp, ints[i], &err)) { fprintf(stderr, "Failed to set key `%s' to `%d': %s\n", *keyp, ints[i], err->message); g_error_free(err); err = NULL; } else { sync_and_clear(conf); gotten = gconf_engine_get_int(conf, *keyp, &err); if (err != NULL) { check(gotten == 0.0, "0.0 not returned though there was an error"); fprintf(stderr, "Failed to get key `%s': %s\n", *keyp, err->message); g_error_free(err); err = NULL; } else { check (ints[i] == gotten, "int set/get pair: `%d' set, `%d' got", ints[i], gotten); } } ++i; } ++keyp; } /* Now invert the loop and see if that causes problems */ i = 0; while (i < n_ints) { keyp = keys; while (*keyp) { gint gotten; if (!gconf_engine_set_int(conf, *keyp, ints[i], &err)) { fprintf(stderr, "Failed to set key `%s' to `%d': %s\n", *keyp, ints[i], err->message); g_error_free(err); err = NULL; } else { sync_and_clear(conf); gotten = gconf_engine_get_int(conf, *keyp, &err); if (err != NULL) { check(gotten == 0, "0 not returned though there was an error"); fprintf(stderr, "Failed to get key `%s': %s\n", *keyp, err->message); g_error_free(err); err = NULL; } else { check (ints[i] == gotten, "int set/get pair: `%d' set, `%d' got", ints[i], gotten); } } ++keyp; } ++i; } check_unset(conf); }
static void check_string_storage(MateConfEngine* conf) { GError* err = NULL; const gchar** keyp = NULL; const gchar** valp = NULL; MateConfChangeSet* cs; cs = mateconf_change_set_new(); keyp = keys; valp = some_strings; while (*keyp && *valp) { mateconf_change_set_set_string(cs, *keyp, *valp); ++valp; ++keyp; } mateconf_engine_commit_change_set(conf, cs, TRUE, &err); if (err != NULL) { fprintf(stderr, "set commit failed: %s\n", err->message); g_error_free(err); err = NULL; exit(1); } mateconf_change_set_unref(cs); keyp = keys; valp = some_strings; while (*keyp && *valp) { gchar* gotten; gotten = mateconf_engine_get_string(conf, *keyp, &err); if (err != NULL) { check(gotten == NULL, "string was returned though there was an error"); fprintf(stderr, "Failed to get key `%s': %s\n", *keyp, err->message); g_error_free(err); err = NULL; exit(1); } else { check (strcmp(gotten, *valp) == 0, "string set/get pair: `%s' set, `%s' got", *valp, gotten); g_free(gotten); } ++valp; ++keyp; } check_unset(conf); }