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����������������������������...下载