Improve test coverage of g_utf8_collate_key_for_filename

The existing tests were accidentally using the same test data
twice. Fix that, and add another set of tests that exercise
the filename collation special cases.
This commit is contained in:
Matthias Clasen 2013-12-30 09:48:56 -05:00
parent 32e0499c56
commit 9a2c8d89c7

View File

@ -188,13 +188,64 @@ const gchar *file_sorted1[] = {
NULL NULL
}; };
const gchar *input2[] = {
"file26",
"file100",
"file1",
"file:foo",
"a.a",
"file027",
"file10",
"aa.a",
"file5",
"file0027",
"a-.a",
"file0000",
"file000x",
NULL
};
const gchar *sorted2[] = {
"a-.a",
"a.a",
"aa.a",
"file0000",
"file000x",
"file0027",
"file027",
"file1",
"file10",
"file100",
"file26",
"file5",
"file:foo",
NULL
};
const gchar *file_sorted2[] = {
"a.a",
"a-.a",
"aa.a",
"file0000",
"file000x",
"file1",
"file5",
"file10",
"file26",
"file027",
"file0027",
"file100",
"file:foo",
NULL
};
int int
main (int argc, char *argv[]) main (int argc, char *argv[])
{ {
gchar *path; gchar *path;
gint i; gint i;
const gchar *locale; const gchar *locale;
CollateTest test[2]; CollateTest test[3];
g_test_init (&argc, &argv, NULL); g_test_init (&argc, &argv, NULL);
@ -212,6 +263,9 @@ main (int argc, char *argv[])
test[1].input = input1; test[1].input = input1;
test[1].sorted = sorted1; test[1].sorted = sorted1;
test[1].file_sorted = file_sorted1; test[1].file_sorted = file_sorted1;
test[2].input = input2;
test[2].sorted = sorted2;
test[2].file_sorted = file_sorted2;
for (i = 0; i < G_N_ELEMENTS (test); i++) for (i = 0; i < G_N_ELEMENTS (test); i++)
{ {
@ -219,10 +273,10 @@ main (int argc, char *argv[])
g_test_add_data_func (path, &test[i], test_collate); g_test_add_data_func (path, &test[i], test_collate);
g_free (path); g_free (path);
path = g_strdup_printf ("/unicode/collate-key/%d", i); path = g_strdup_printf ("/unicode/collate-key/%d", i);
g_test_add_data_func (path, test, test_collate_key); g_test_add_data_func (path, &test[i], test_collate_key);
g_free (path); g_free (path);
path = g_strdup_printf ("/unicode/collate-filename/%d", i); path = g_strdup_printf ("/unicode/collate-filename/%d", i);
g_test_add_data_func (path, test, test_collate_file); g_test_add_data_func (path, &test[i], test_collate_file);
g_free (path); g_free (path);
} }