[Groonga-commit] groonga/groonga at 9e2b98c [master] Add grn_id_is_builtin_type

Back to archive index

Kouhei Sutou null+****@clear*****
Fri Sep 23 17:41:02 JST 2016


Kouhei Sutou	2016-09-23 17:41:02 +0900 (Fri, 23 Sep 2016)

  New Revision: 9e2b98cd02d82ec6a0ce935a92dc8d36b9b86008
  https://github.com/groonga/groonga/commit/9e2b98cd02d82ec6a0ce935a92dc8d36b9b86008

  Message:
    Add grn_id_is_builtin_type

  Modified files:
    include/groonga/id.h
    lib/id.c
    test/unit/core/test-id.c

  Modified: include/groonga/id.h (+1 -0)
===================================================================
--- include/groonga/id.h    2016-09-23 17:02:48 +0900 (9ea4602)
+++ include/groonga/id.h    2016-09-23 17:41:02 +0900 (3284320)
@@ -24,6 +24,7 @@ extern "C" {
 #endif
 
 GRN_API grn_bool grn_id_is_builtin(grn_ctx *ctx, grn_id id);
+GRN_API grn_bool grn_id_is_builtin_type(grn_ctx *ctx, grn_id id);
 
 #ifdef __cplusplus
 }

  Modified: lib/id.c (+6 -0)
===================================================================
--- lib/id.c    2016-09-23 17:02:48 +0900 (a8de6f2)
+++ lib/id.c    2016-09-23 17:41:02 +0900 (ad7f4ed)
@@ -28,3 +28,9 @@ grn_id_is_builtin(grn_ctx *ctx, grn_id id)
     return id < GRN_N_RESERVED_TYPES;
   }
 }
+
+grn_bool
+grn_id_is_builtin_type(grn_ctx *ctx, grn_id id)
+{
+  return GRN_DB_BOOL <= id && id <= GRN_DB_WGS84_GEO_POINT;
+}

  Modified: test/unit/core/test-id.c (+46 -0)
===================================================================
--- test/unit/core/test-id.c    2016-09-23 17:02:48 +0900 (c14c59a)
+++ test/unit/core/test-id.c    2016-09-23 17:41:02 +0900 (5d818ee)
@@ -27,6 +27,8 @@
 
 void data_is_builtin(void);
 void test_is_builtin(gconstpointer data);
+void data_is_builtin_type(void);
+void test_is_builtin_type(gconstpointer data);
 
 static gchar *tmp_directory;
 static const gchar *database_path;
@@ -109,3 +111,47 @@ test_is_builtin(gconstpointer data)
     cut_assert_false(grn_id_is_builtin(context, id));
   }
 }
+
+void
+data_is_builtin_type(void)
+{
+#define ADD_DATUM(expected, id)                                         \
+  gcut_add_datum((expected ? "built-in - " #id : "custom - " #id),      \
+                 "expected", G_TYPE_BOOLEAN, expected,                  \
+                 "id", G_TYPE_UINT, id,                                 \
+                 NULL)
+
+  ADD_DATUM(FALSE, GRN_DB_OBJECT);
+  ADD_DATUM(TRUE, GRN_DB_BOOL);
+  ADD_DATUM(TRUE, GRN_DB_INT8);
+  ADD_DATUM(TRUE, GRN_DB_UINT8);
+  ADD_DATUM(TRUE, GRN_DB_INT16);
+  ADD_DATUM(TRUE, GRN_DB_UINT16);
+  ADD_DATUM(TRUE, GRN_DB_INT32);
+  ADD_DATUM(TRUE, GRN_DB_UINT32);
+  ADD_DATUM(TRUE, GRN_DB_INT64);
+  ADD_DATUM(TRUE, GRN_DB_UINT64);
+  ADD_DATUM(TRUE, GRN_DB_FLOAT);
+  ADD_DATUM(TRUE, GRN_DB_TIME);
+  ADD_DATUM(TRUE, GRN_DB_SHORT_TEXT);
+  ADD_DATUM(TRUE, GRN_DB_TEXT);
+  ADD_DATUM(TRUE, GRN_DB_LONG_TEXT);
+  ADD_DATUM(TRUE, GRN_DB_TOKYO_GEO_POINT);
+  ADD_DATUM(TRUE, GRN_DB_WGS84_GEO_POINT);
+  ADD_DATUM(FALSE, GRN_DB_MECAB);
+
+#undef ADD_DATUM
+}
+
+void
+test_is_builtin_type(gconstpointer data)
+{
+  grn_id id;
+
+  id = gcut_data_get_uint(data, "id");
+  if (gcut_data_get_string(data, "expected")) {
+    cut_assert_true(grn_id_is_builtin_type(context, id));
+  } else {
+    cut_assert_false(grn_id_is_builtin_type(context, id));
+  }
+}
-------------- next part --------------
HTML����������������������������...
下载 



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