[Groonga-mysql-commit] mroonga/mroonga [fix-for-visual-studio] add mrn_close function and test code.

Back to archive index

Tetsuro IKEDA null+****@clear*****
Thu Oct 4 10:19:11 JST 2012


Tetsuro IKEDA	2009-06-30 17:19:52 +0900 (Tue, 30 Jun 2009)

  New Revision: cf552e5e996242d840ce76bb88b90b51f652dadb
  https://github.com/mroonga/mroonga/commit/cf552e5e996242d840ce76bb88b90b51f652dadb

  Log:
    add mrn_close function and test code.

  Modified files:
    src/driver.c
    test/unit/test-driver.c

  Modified: src/driver.c (+13 -0)
===================================================================
--- src/driver.c    2009-06-30 17:09:06 +0900 (4b87e5a)
+++ src/driver.c    2009-06-30 17:19:52 +0900 (c046abf)
@@ -382,3 +382,16 @@ auto_close:
   info->table->obj = NULL;
   return -1;
 }
+
+int mrn_close(grn_ctx *ctx, mrn_obj_info *info)
+{
+  int i;
+  for (i=0; i < info->n_columns; i++)
+  {
+    grn_obj_close(ctx, info->columns[i]->obj);
+    info->columns[i]->obj = NULL;
+  }
+  grn_obj_close(ctx, info->table->obj);
+  info->table->obj = NULL;
+  return 0;
+}

  Modified: test/unit/test-driver.c (+39 -0)
===================================================================
--- test/unit/test-driver.c    2009-06-30 17:09:06 +0900 (5923a29)
+++ test/unit/test-driver.c    2009-06-30 17:19:52 +0900 (523bb4b)
@@ -229,3 +229,42 @@ void test_mrn_open()
   grn_obj_remove(ctx, info->table->obj);
   mrn_deinit_obj_info(ctx, info);
 }
+
+void test_mrn_close()
+{
+  TEST_ENTER;
+  grn_obj *obj,*obj2;
+
+  mrn_obj_info *info = mrn_init_obj_info(ctx, 2);
+
+  info->table->name = "test/t1";
+  info->table->name_size = strlen("test/t1");
+  info->table->flags |= GRN_OBJ_TABLE_NO_KEY;
+
+  info->columns[0]->name = "c1";
+  info->columns[0]->name_size = strlen("c1");
+  info->columns[0]->flags |= GRN_OBJ_COLUMN_SCALAR;
+  info->columns[0]->type = grn_ctx_at(ctx, GRN_DB_INT32);
+
+  info->columns[1]->name = "c2";
+  info->columns[1]->name_size = strlen("c2");
+  info->columns[1]->flags |= GRN_OBJ_COLUMN_SCALAR;
+  info->columns[1]->type = grn_ctx_at(ctx, GRN_DB_TEXT);
+
+  cut_assert_equal_int(0, mrn_create(ctx, info));
+  cut_assert_equal_int(0, mrn_open(ctx, info));
+  cut_assert_not_null(info->table->obj);
+  cut_assert_not_null(info->columns[0]->obj);
+  cut_assert_not_null(info->columns[1]->obj);
+
+  cut_assert_equal_int(0, mrn_close(ctx, info));
+  cut_assert_null(info->table->obj);
+  cut_assert_null(info->columns[0]->obj);
+  cut_assert_null(info->columns[1]->obj);
+
+  cut_assert_equal_int(0, mrn_open(ctx, info));
+  grn_obj_remove(ctx, info->columns[1]->obj);
+  grn_obj_remove(ctx, info->columns[0]->obj);
+  grn_obj_remove(ctx, info->table->obj);
+  mrn_deinit_obj_info(ctx, info);
+}
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-mysql-commit mailing list
Back to archive index