20 #include <glib/gstdio.h>
22 #include "../lib/grn-assertions.h"
44 static gchar *tmp_directory;
60 g_free(tmp_directory);
64 remove_tmp_directory(
void)
66 cut_remove_path(tmp_directory, NULL);
75 "--default_tokenizer TokenBigram");
90 " [\"http://groonga.org/\", \"yu\"],\n"
91 " [\"http://cutter.sourceforge.net/\", \"tasukuchan\"]\n"
98 const gchar *database_path;
100 remove_tmp_directory();
101 g_mkdir_with_parents(tmp_directory, 0700);
106 database_path = cut_build_path(tmp_directory,
"database.groonga", NULL);
121 remove_tmp_directory();
128 cut_assert_equal_string(
"[[[3],"
129 "[[\"_key\",\"ShortText\"]],"
132 "[\"tasukuchan\"]]]",
134 "--output_columns _key"));
141 "\"_key == \\\"tapo\\\"\"");
142 cut_assert_equal_string(
"[[[3],"
143 "[[\"_key\",\"ShortText\"]],"
146 "[\"tasukuchan\"]]]",
148 "--output_columns _key"));
155 cut_assert_equal_string(
"[[[3],"
156 "[[\"_key\",\"ShortText\"]],"
159 "[\"tasukuchan\"]]]",
161 "--output_columns _key"));
174 cut_assert_equal_string(
"[[[1],"
175 "[[\"_key\",\"UInt64\"]],"
178 "--output_columns _key"));
184 cut_assert_equal_string(
"[[[2],"
185 "[[\"_key\",\"ShortText\"]],"
189 "--match_columns _key "
191 "--output_columns _key"));
193 cut_assert_equal_string(
"[[[1],"
194 "[[\"_key\",\"ShortText\"]],"
197 "--match_columns _key "
199 "--output_columns _key"));
209 cut_assert_equal_string(
"3",
212 "{\"title\": \"groonga\"},\n"
213 "{\"title\": \"Ruby\"},\n"
214 "{\"title\": \"Cutter\"}\n"
216 cut_assert_equal_string(
"[[[3],"
217 "[[\"_id\",\"UInt32\"],"
218 "[\"title\",\"ShortText\"]],"
230 cut_assert_equal_string(
"3",
233 "{\"title\": \"groonga\"},\n"
234 "{\"title\": \"Ruby\"},\n"
235 "{\"title\": \"Cutter\"}\n"
238 cut_assert_equal_string(
"[[[2],"
239 "[[\"_id\",\"UInt32\"],"
240 "[\"title\",\"ShortText\"]],"
249 const gchar *text_65bytes =
251 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
252 const gchar *text_129bytes =
254 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
255 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
259 cut_assert_equal_string(
262 "[[\"description\"],\n"
268 cut_assert_equal_string(
271 "[[\"description\"],\n"
279 cut_assert_equal_string(
280 cut_take_printf(
"[[[3],"
281 "[[\"_id\",\"UInt32\"],"
282 "[\"description\",\"ShortText\"]],"
298 "[table][record][delete] table name isn't specified",
308 "[table][record][delete] table doesn't exist: <nonexistent>",
309 "delete nonexistent");
318 "[table][record][delete] either key, id or filter must be specified: "
329 "[table][record][delete] "
330 "record selector must be one of key, id and filter: "
331 "table: <Users>, key: <mori>, id: <1>, filter: <true>",
332 "delete Users --key mori --id 1 --filter \"true\"");
341 "[table][record][delete] can't use both key and id: "
342 "table: <Users>, key: <mori>, id: <1>",
343 "delete Users --key mori --id 1");
352 "[table][record][delete] can't use both key and filter: "
353 "table: <Users>, key: <mori>, filter: <true>",
354 "delete Users --key mori --filter true");
363 "[table][record][delete] can't use both id and filter: "
364 "table: <Users>, id: <1>, filter: <true>",
365 "delete Users --id 1 --filter true");
374 "[table][record][delete] id should be number: "
375 "table: <Users>, id: <1x2>, detail: <1|x|2>",
376 "delete Users --id \"1x2\"");
385 "[table][record][delete] failed to parse filter: "
386 "table: <Users>, filter: <$>, detail: <Syntax error! ($)>",
387 "delete Users --filter \"$\"");