check-qdict: Test termination of qdict_array_split()
qdict_array_split() should terminate if it encounters both an entry with a key of "%u" and entries with keys prefixed "%u." for the same index. This patch adds a test for this case. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
7841c76884
commit
64757582da
|
@ -389,6 +389,59 @@ static void qdict_array_split_test(void)
|
||||||
g_assert(qdict_size(test_dict) == 2);
|
g_assert(qdict_size(test_dict) == 2);
|
||||||
|
|
||||||
QDECREF(test_dict);
|
QDECREF(test_dict);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test the split of
|
||||||
|
*
|
||||||
|
* {
|
||||||
|
* "0": 42,
|
||||||
|
* "1": 23,
|
||||||
|
* "1.x": 84
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* to
|
||||||
|
*
|
||||||
|
* [
|
||||||
|
* 42
|
||||||
|
* ]
|
||||||
|
*
|
||||||
|
* and
|
||||||
|
*
|
||||||
|
* {
|
||||||
|
* "1": 23,
|
||||||
|
* "1.x": 84
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* That is, test whether splitting stops if there is both an entry with key
|
||||||
|
* of "%u" and other entries with keys prefixed "%u." for the same index.
|
||||||
|
*/
|
||||||
|
|
||||||
|
test_dict = qdict_new();
|
||||||
|
|
||||||
|
qdict_put(test_dict, "0", qint_from_int(42));
|
||||||
|
qdict_put(test_dict, "1", qint_from_int(23));
|
||||||
|
qdict_put(test_dict, "1.x", qint_from_int(84));
|
||||||
|
|
||||||
|
qdict_array_split(test_dict, &test_list);
|
||||||
|
|
||||||
|
int1 = qobject_to_qint(qlist_pop(test_list));
|
||||||
|
|
||||||
|
g_assert(int1);
|
||||||
|
g_assert(qlist_empty(test_list));
|
||||||
|
|
||||||
|
QDECREF(test_list);
|
||||||
|
|
||||||
|
g_assert(qint_get_int(int1) == 42);
|
||||||
|
|
||||||
|
QDECREF(int1);
|
||||||
|
|
||||||
|
g_assert(qdict_get_int(test_dict, "1") == 23);
|
||||||
|
g_assert(qdict_get_int(test_dict, "1.x") == 84);
|
||||||
|
|
||||||
|
g_assert(qdict_size(test_dict) == 2);
|
||||||
|
|
||||||
|
QDECREF(test_dict);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue