void grn_collect_logger_print_messages(grn_logger_info *logger) { const GList *messages; for (messages = grn_collect_logger_get_messages(logger); messages; messages = g_list_next(messages)) { const gchar *message = messages->data; g_print("%s\n", message); } }
void test_invalid_column(void) { GList *log = NULL; assert_send_command("table_create Users TABLE_HASH_KEY ShortText"); assert_send_command("column_create Users desc COLUMN_SCALAR ShortText"); grn_collect_logger_clear_messages(logger); assert_send_command("load --table Users --input_type json\n" "{\"_key\": \"groonga\", \"info\" \"search engine\"}\n" ""); log = g_list_next(grn_collect_logger_get_messages(logger)); cut_assert_equal_string("invalid column('info')", g_list_nth_data(log, 0)); }
void test_duplicated_key(void) { GList *log = NULL; assert_send_command("table_create Users TABLE_HASH_KEY ShortText"); assert_send_command("column_create Users desc COLUMN_SCALAR ShortText"); grn_collect_logger_clear_messages(logger); assert_send_command("load --table Users --input_type json\n" "{\"_key\": \"groonga\", \"_id\": 1}\n" ""); log = g_list_next(grn_collect_logger_get_messages(logger)); cut_assert_equal_string("duplicated key columns: _key and _id", g_list_nth_data(log, 0)); }
void test_no_key(void) { GList *log = NULL; assert_send_command("table_create Users TABLE_HASH_KEY ShortText"); assert_send_command("column_create Users desc COLUMN_SCALAR ShortText"); grn_collect_logger_clear_messages(logger); assert_send_command("load --table Users --input_type json\n" "{\"info\" \"search engine\"}\n" ""); log = g_list_next(grn_collect_logger_get_messages(logger)); cut_assert_equal_string("neither _key nor _id is assigned", g_list_nth_data(log, 0)); }
void grn_test_assert_open_hash_helper(grn_hash **hash, GrnTestHashFactory *factory) { GError *error = NULL; grn_logger_info *logger; logger = grn_test_hash_factory_get_logger(factory); cut_assert_not_null(logger); grn_collect_logger_clear_messages(logger); *hash = grn_test_hash_factory_open(factory, &error); gcut_assert_error(error); cut_assert_not_null(*hash); gcut_assert_equal_list_string(NULL, grn_collect_logger_get_messages(logger)); }
void test_invalid_char(void) { GList *log = NULL; assert_send_command("table_create Users TABLE_HASH_KEY ShortText"); assert_send_command("column_create Users name COLUMN_SCALAR ShortText"); assert_send_command("column_create Users desc COLUMN_SCALAR ShortText"); grn_collect_logger_clear_messages(logger); assert_send_command("load --table Users --input_type json\n" "{\"name\": \"groonga\" @ \"desc\" \"search engine\"}\n" ""); log = g_list_next(grn_collect_logger_get_messages(logger)); cut_assert_equal_string("ignored invalid char('@') at", g_list_nth_data(log, 0)); cut_assert_equal_string("{\"name\": \"groonga\" @", g_list_nth_data(log, 1)); cut_assert_equal_string(" ^", g_list_nth_data(log, 2)); }
const gchar * grn_collect_logger_to_string(grn_logger_info *logger) { grn_logger_context *context = logger->func_arg; const GList *messages; if (context->collected_message) { return context->collected_message->str; } context->collected_message = g_string_new(NULL); for (messages = grn_collect_logger_get_messages(logger); messages; messages = g_list_next(messages)) { const gchar *message = messages->data; g_string_append_printf(context->collected_message, "%s\n", message); } return context->collected_message->str; }