null+****@clear*****
null+****@clear*****
2011年 1月 29日 (土) 21:47:49 JST
Kouhei Sutou 2011-01-29 12:47:49 +0000 (Sat, 29 Jan 2011)
New Revision: dab6069c7306e8e022d0c6a9f7f6bafee1236375
Log:
add a test for deleting breaks data. #844
Modified files:
test/unit/core/test-command-delete.c
Modified: test/unit/core/test-command-delete.c (+48 -1)
===================================================================
--- test/unit/core/test-command-delete.c 2011-01-28 03:23:17 +0000 (3e486b7)
+++ test/unit/core/test-command-delete.c 2011-01-29 12:47:49 +0000 (89e9088)
@@ -1,6 +1,6 @@
/* -*- c-basic-offset: 2; coding: utf-8 -*- */
/*
- Copyright (C) 2010 Kouhei Sutou <kou****@clear*****>
+ Copyright (C) 2010-2011 Kouhei Sutou <kou****@clear*****>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -30,6 +30,7 @@ void test_uint64(void);
void test_last_token(void);
void test_no_key_twice(void);
void test_no_key_by_id(void);
+void test_corrupt_jagged_array(void);
static gchar *tmp_directory;
@@ -234,3 +235,49 @@ test_no_key_by_id(void)
"[3,\"Cutter\"]]]",
send_command("select Sites"));
}
+
+void
+test_corrupt_jagged_array(void)
+{
+ const gchar *text_65bytes =
+ "65bytes text "
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
+ const gchar *text_129bytes =
+ "129bytes text "
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
+
+ assert_send_command("table_create Sites TABLE_NO_KEY");
+ assert_send_command("column_create Sites description COLUMN_SCALAR ShortText");
+ cut_assert_equal_string(
+ "1",
+ send_command(cut_take_printf("load --table Sites\n"
+ "[[\"description\"],\n"
+ "[\"%s\"]\n"
+ "]",
+ text_129bytes)));
+ assert_send_command("delete Sites --id 1");
+
+ cut_assert_equal_string(
+ "3",
+ send_command(cut_take_printf("load --table Sites\n"
+ "[[\"description\"],\n"
+ "[\"%s\"],\n"
+ "[\"%s\"],\n"
+ "[\"%s\"]"
+ "]",
+ text_65bytes,
+ text_65bytes,
+ text_129bytes)));
+ cut_assert_equal_string(
+ cut_take_printf("[[[3],"
+ "[[\"_id\",\"UInt32\"],"
+ "[\"description\",\"ShortText\"]],"
+ "[2,\"%s\"],"
+ "[3,\"%s\"],"
+ "[4,\"%s\"]]]",
+ text_65bytes,
+ text_65bytes,
+ text_129bytes),
+ send_command("select Sites"));
+}