33 static GList *keys_and_values;
38 startup_hash_common();
44 shutdown_hash_common();
50 setup_hash_common(
"hash-cursor");
53 keys_and_values = NULL;
65 gcut_list_string_free(keys);
71 keys_and_values_free(
void)
73 if (keys_and_values) {
74 gcut_list_string_free(keys_and_values);
75 keys_and_values = NULL;
83 keys_and_values_free();
84 teardown_hash_common();
88 retrieve_all_keys(
void)
97 GString *null_terminated_key;
101 null_terminated_key = g_string_new_len(key, size);
102 keys = g_list_append(keys, g_string_free(null_terminated_key,
FALSE));
110 retrieve_all_keys_and_values(
void)
114 keys_and_values_free();
120 GString *null_terminated_key, *null_terminated_value;
123 null_terminated_key = g_string_new_len(key, length);
124 keys_and_values = g_list_append(keys_and_values,
125 g_string_free(null_terminated_key,
FALSE));
128 null_terminated_value = g_string_new_len(value, length);
129 keys_and_values = g_list_append(keys_and_values,
130 g_string_free(null_terminated_value,
FALSE));
135 return keys_and_values;
146 ...) G_GNUC_NULL_TERMINATED;
148 test_data_new(GList *expected_strings,
158 va_start(args, set_parameters);
160 while (set_parameters) {
177 node = g_list_next(node)) {
179 set_parameters_func();
204 add_next_with_no_entry_data(
const gchar *additional_label,
207 cut_add_data(cut_take_printf(
"ascending%s", additional_label),
208 test_data_new(NULL, set_ascending, set_parameters_funcs, NULL),
210 cut_take_printf(
"descending%s", additional_label),
211 test_data_new(NULL, set_descending, set_parameters_funcs, NULL),
218 add_next_with_no_entry_data(
"", NULL);
219 add_next_with_no_entry_data(
" - tiny", set_tiny_flags);
227 test_data_set_parameters(test_data);
231 gcut_assert_equal_list_string(NULL, retrieve_all_keys());
235 add_next_with_one_entry_data(
const gchar *additional_label,
238 cut_add_data(cut_take_printf(
"ascending%s", additional_label),
239 test_data_new(gcut_list_string_new(
"セナ", NULL),
240 set_ascending, set_parameters_funcs, NULL),
242 cut_take_printf(
"descending%s", additional_label),
243 test_data_new(gcut_list_string_new(
"セナ", NULL),
244 set_descending, set_parameters_funcs, NULL),
251 add_next_with_one_entry_data(
"", NULL);
252 add_next_with_one_entry_data(
" - tiny", set_tiny_flags);
259 const gchar key[] =
"セナ";
261 test_data_set_parameters(test_data);
269 retrieve_all_keys());
275 const gchar max[] =
"セナ + Ruby";
282 const gchar max[] =
"ナセナセ";
287 set_max_nonexistence(
void)
289 const gchar max[] =
"Hyper Estraier";
296 const gchar min[] =
"ナセナセ";
303 const gchar min[] =
"セナ + Ruby";
308 set_min_nonexistence(
void)
310 const gchar min[] =
"Hyper Estraier";
327 add_data_ascending(
const gchar *additional_label,
330 cut_add_data(cut_take_printf(
"ascending%s", additional_label),
331 test_data_new(gcut_list_string_new(
"セナ",
337 set_ascending, set_parameters_funcs, NULL),
340 cut_add_data(cut_take_printf(
"ascending - max%s", additional_label),
341 test_data_new(gcut_list_string_new(
"セナ",
346 set_ascending, set_max, set_parameters_funcs, NULL),
348 cut_take_printf(
"ascending - max - gt%s", additional_label),
349 test_data_new(gcut_list_string_new(
"セナ",
354 set_ascending, set_max, set_gt,
355 set_parameters_funcs, NULL),
357 cut_take_printf(
"ascending - max - lt%s", additional_label),
358 test_data_new(gcut_list_string_new(
"セナ",
362 set_ascending, set_max, set_lt,
363 set_parameters_funcs, NULL),
365 cut_take_printf(
"ascending - max - gt - lt%s", additional_label),
366 test_data_new(gcut_list_string_new(
"セナ",
370 set_ascending, set_max, set_gt, set_lt,
371 set_parameters_funcs, NULL),
374 cut_add_data(cut_take_printf(
"ascending - min%s", additional_label),
375 test_data_new(gcut_list_string_new(
"ナセナセ",
380 set_ascending, set_min,
381 set_parameters_funcs, NULL),
383 cut_take_printf(
"ascending - min - gt%s", additional_label),
384 test_data_new(gcut_list_string_new(
"Groonga",
388 set_ascending, set_min, set_gt,
389 set_parameters_funcs, NULL),
391 cut_take_printf(
"ascending - min - lt%s", additional_label),
392 test_data_new(gcut_list_string_new(
"ナセナセ",
397 set_ascending, set_min, set_lt,
398 set_parameters_funcs, NULL),
400 cut_take_printf(
"ascending - min - gt - lt%s", additional_label),
401 test_data_new(gcut_list_string_new(
"Groonga",
405 set_ascending, set_min, set_gt, set_lt,
406 set_parameters_funcs, NULL),
409 cut_add_data(cut_take_printf(
"ascending - max - min%s", additional_label),
410 test_data_new(gcut_list_string_new(
"ナセナセ",
414 set_ascending, set_max, set_min,
415 set_parameters_funcs, NULL),
417 cut_take_printf(
"ascending - max - min - gt%s", additional_label),
418 test_data_new(gcut_list_string_new(
"Groonga",
421 set_ascending, set_max, set_min, set_gt,
422 set_parameters_funcs, NULL),
424 cut_take_printf(
"ascending - max - min - lt%s", additional_label),
425 test_data_new(gcut_list_string_new(
"ナセナセ",
428 set_ascending, set_max, set_min, set_lt,
429 set_parameters_funcs, NULL),
431 cut_take_printf(
"ascending - max - min - gt - lt%s",
433 test_data_new(gcut_list_string_new(
"Groonga",
435 set_ascending, set_max, set_min, set_gt,
436 set_lt, set_parameters_funcs, NULL),
439 cut_add_data(cut_take_printf(
"ascending - high-min%s", additional_label),
440 test_data_new(gcut_list_string_new(
"セナ + Ruby",
443 set_ascending, set_min_high, set_parameters_funcs,
446 cut_take_printf(
"ascending - low-max%s", additional_label),
447 test_data_new(gcut_list_string_new(
"セナ",
450 set_ascending, set_max_low, set_parameters_funcs,
453 cut_take_printf(
"ascending - high-min - low-max%s",
456 set_ascending, set_min_high, set_max_low,
457 set_parameters_funcs, NULL),
460 cut_add_data(cut_take_printf(
"ascending - nonexistence-min%s",
463 set_ascending, set_min_nonexistence,
464 set_parameters_funcs, NULL),
466 cut_take_printf(
"ascending - nonexistence-max%s",
469 set_ascending, set_max_nonexistence,
470 set_parameters_funcs, NULL),
472 cut_take_printf(
"ascending - nonexistence-min - "
473 "nonexistence-max%s", additional_label),
475 set_ascending, set_min_nonexistence,
476 set_max_nonexistence, set_parameters_funcs, NULL),
481 add_data_descending(
const gchar *additional_label,
484 cut_add_data(cut_take_printf(
"descending%s", additional_label),
485 test_data_new(gcut_list_string_new(
"セナセナ",
491 set_descending, set_parameters_funcs, NULL),
494 cut_add_data(cut_take_printf(
"descending - max%s", additional_label),
495 test_data_new(gcut_list_string_new(
"セナ + Ruby",
500 set_descending, set_max, set_parameters_funcs,
503 cut_take_printf(
"descending - max - gt%s", additional_label),
504 test_data_new(gcut_list_string_new(
"セナ + Ruby",
509 set_descending, set_max, set_gt,
510 set_parameters_funcs, NULL),
512 cut_take_printf(
"descending - max - lt%s", additional_label),
513 test_data_new(gcut_list_string_new(
"Groonga",
517 set_descending, set_max, set_lt,
518 set_parameters_funcs, NULL),
520 cut_take_printf(
"descending - max - gt - lt%s", additional_label),
521 test_data_new(gcut_list_string_new(
"Groonga",
525 set_descending, set_max, set_gt, set_lt,
526 set_parameters_funcs, NULL),
529 cut_add_data(cut_take_printf(
"descending - min%s", additional_label),
530 test_data_new(gcut_list_string_new(
"セナセナ",
535 set_descending, set_min, set_parameters_funcs,
538 cut_take_printf(
"descending - min - gt%s", additional_label),
539 test_data_new(gcut_list_string_new(
"セナセナ",
543 set_descending, set_min, set_gt,
544 set_parameters_funcs, NULL),
546 cut_take_printf(
"descending - min - lt%s", additional_label),
547 test_data_new(gcut_list_string_new(
"セナセナ",
552 set_descending, set_min, set_lt,
553 set_parameters_funcs, NULL),
555 cut_take_printf(
"descending - min - gt - lt%s", additional_label),
556 test_data_new(gcut_list_string_new(
"セナセナ",
560 set_descending, set_min, set_gt, set_lt,
561 set_parameters_funcs, NULL),
564 cut_add_data(cut_take_printf(
"descending - max - min%s", additional_label),
565 test_data_new(gcut_list_string_new(
"セナ + Ruby",
569 set_descending, set_max, set_min,
570 set_parameters_funcs, NULL),
572 cut_take_printf(
"descending - max - min - gt%s",
574 test_data_new(gcut_list_string_new(
"セナ + Ruby",
577 set_descending, set_max, set_min, set_gt,
578 set_parameters_funcs, NULL),
580 cut_take_printf(
"descending - max - min - lt%s",
582 test_data_new(gcut_list_string_new(
"Groonga",
585 set_descending, set_max, set_min, set_lt,
586 set_parameters_funcs, NULL),
588 cut_take_printf(
"descending - max - min - gt - lt%s",
590 test_data_new(gcut_list_string_new(
"Groonga",
592 set_descending, set_max, set_min, set_gt,
593 set_lt, set_parameters_funcs, NULL),
596 cut_add_data(cut_take_printf(
"descending - high-min%s",
598 test_data_new(gcut_list_string_new(
"セナセナ",
601 set_descending, set_min_high,
602 set_parameters_funcs, NULL),
604 cut_take_printf(
"descending - low-max%s",
606 test_data_new(gcut_list_string_new(
"ナセナセ",
609 set_descending, set_max_low,
610 set_parameters_funcs, NULL),
612 cut_take_printf(
"descending - high-min - low-max%s",
615 set_descending, set_min_high, set_max_low,
616 set_parameters_funcs, NULL),
619 cut_add_data(cut_take_printf(
"descending - nonexistence-min%s",
622 set_descending, set_min_nonexistence,
623 set_parameters_funcs, NULL),
625 cut_take_printf(
"descending - nonexistence-max%s",
628 set_descending, set_max_nonexistence,
629 set_parameters_funcs, NULL),
631 cut_take_printf(
"descending - nonexistence-min - "
632 "nonexistence-max%s", additional_label),
634 set_descending, set_min_nonexistence,
635 set_max_nonexistence, set_parameters_funcs, NULL),
642 add_data_ascending(
"", NULL);
643 add_data_descending(
"", NULL);
645 add_data_ascending(
" - tiny", set_tiny_flags);
646 add_data_descending(
" - tiny", set_tiny_flags);
653 const gchar key1[] =
"セナ";
654 const gchar key2[] =
"ナセナセ";
655 const gchar key3[] =
"Groonga";
656 const gchar key4[] =
"セナ + Ruby";
657 const gchar key5[] =
"セナセナ";
659 test_data_set_parameters(test_data);
671 retrieve_all_keys());
681 add_value_data(
const gchar *additional_label,
684 cut_add_data(cut_take_printf(
"default%s", additional_label),
685 test_data_new(gcut_list_string_new(
"セナ",
697 set_ascending, set_value_size,
698 set_parameters_funcs, NULL),
705 add_value_data(
"", NULL);
706 add_value_data(
" - tiny", set_tiny_flags);
713 const gchar key1[] =
"セナ";
714 const gchar key2[] =
"ナセナセ";
715 const gchar key3[] =
"Groonga";
716 const gchar key4[] =
"セナ + Ruby";
717 const gchar key5[] =
"セナセナ";
718 gchar value2[] =
"VALUE2";
719 gchar value4_1[] =
"Groonga";
720 gchar value4_2[] =
"るびい";
721 gchar value5_1[] =
"上書きされる値 - overridden value";
722 gchar value5_2[] =
"上書きされた値 - override value";
724 test_data_set_parameters(test_data);
737 const gchar *null_terminated_key;
741 null_terminated_key = cut_take_strndup(key, size);
742 if (g_str_equal(null_terminated_key, key2)) {
744 }
else if (g_str_equal(null_terminated_key, key4)) {
747 }
else if (g_str_equal(null_terminated_key, key5)) {
755 retrieve_all_keys_and_values());
759 add_delete_data(
const gchar *additional_label,
762 cut_add_data(cut_take_printf(
"default%s", additional_label),
763 test_data_new(gcut_list_string_new(
"ナセナセ",
767 set_ascending, set_parameters_funcs, NULL),
774 add_delete_data(
"", NULL);
776 add_delete_data(
" - tiny", set_tiny_flags);
783 const gchar key1[] =
"セナ";
784 const gchar key2[] =
"ナセナセ";
785 const gchar key3[] =
"Groonga";
786 const gchar key4[] =
"セナ + Ruby";
787 const gchar key5[] =
"セナセナ";
789 test_data_set_parameters(test_data);
802 const gchar *null_terminated_key;
806 null_terminated_key = cut_take_strndup(key, size);
807 if (g_str_equal(null_terminated_key, key1) ||
808 g_str_equal(null_terminated_key, key5)) {
815 retrieve_all_keys());