Kouhei Sutou
null+****@clear*****
Wed Feb 3 16:55:33 JST 2016
Kouhei Sutou 2016-02-03 16:55:33 +0900 (Wed, 03 Feb 2016) New Revision: 7bc071b5b88f0389de314322944e8677ef4fb607 https://github.com/groonga/groonga/commit/7bc071b5b88f0389de314322944e8677ef4fb607 Message: Add grn_obj_type_to_string() Modified files: include/groonga/obj.h lib/obj.c test/unit/core/test-object.c Modified: include/groonga/obj.h (+2 -0) =================================================================== --- include/groonga/obj.h 2016-02-03 15:58:39 +0900 (619c825) +++ include/groonga/obj.h 2016-02-03 16:55:33 +0900 (27de09b) @@ -51,6 +51,8 @@ GRN_API grn_rc grn_obj_cast(grn_ctx *ctx, GRN_API grn_rc grn_obj_reindex(grn_ctx *ctx, grn_obj *obj); +GRN_API const char *grn_obj_type_to_string(uint8_t type); + #ifdef __cplusplus } #endif Modified: lib/obj.c (+70 -1) =================================================================== --- lib/obj.c 2016-02-03 15:58:39 +0900 (580b9c7) +++ lib/obj.c 2016-02-03 16:55:33 +0900 (2072898) @@ -1,6 +1,6 @@ /* -*- c-basic-offset: 2 -*- */ /* - Copyright(C) 2015 Brazil + Copyright(C) 2015-2016 Brazil This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -382,3 +382,72 @@ grn_obj_reindex(grn_ctx *ctx, grn_obj *obj) GRN_API_RETURN(ctx->rc); } + +const char * +grn_obj_type_to_string(uint8_t type) +{ + switch (type) { + case GRN_VOID : + return "void"; + case GRN_BULK : + return "bulk"; + case GRN_PTR : + return "ptr"; + case GRN_UVECTOR : + return "uvector"; + case GRN_PVECTOR : + return "pvector"; + case GRN_VECTOR : + return "vector"; + case GRN_MSG : + return "msg"; + case GRN_QUERY : + return "query"; + case GRN_ACCESSOR : + return "accessor"; + case GRN_SNIP : + return "snip"; + case GRN_PATSNIP : + return "patsnip"; + case GRN_STRING : + return "string"; + case GRN_CURSOR_TABLE_HASH_KEY : + return "cursor:table:hash_key"; + case GRN_CURSOR_TABLE_PAT_KEY : + return "cursor:table:pat_key"; + case GRN_CURSOR_TABLE_DAT_KEY : + return "cursor:table:dat_key"; + case GRN_CURSOR_TABLE_NO_KEY : + return "cursor:table:no_key"; + case GRN_CURSOR_COLUMN_INDEX : + return "cursor:column:index"; + case GRN_CURSOR_COLUMN_GEO_INDEX : + return "cursor:column:geo_index"; + case GRN_CURSOR_CONFIG : + return "cursor:config"; + case GRN_TYPE : + return "type"; + case GRN_PROC : + return "proc"; + case GRN_EXPR : + return "expr"; + case GRN_TABLE_HASH_KEY : + return "table:hash_key"; + case GRN_TABLE_PAT_KEY : + return "table:pat_key"; + case GRN_TABLE_DAT_KEY : + return "table:dat_key"; + case GRN_TABLE_NO_KEY : + return "table:no_key"; + case GRN_DB : + return "db"; + case GRN_COLUMN_FIX_SIZE : + return "column:fix_size"; + case GRN_COLUMN_VAR_SIZE : + return "column:var_size"; + case GRN_COLUMN_INDEX : + return "column:index"; + default : + return "unknown"; + } +} Modified: test/unit/core/test-object.c (+57 -0) =================================================================== --- test/unit/core/test-object.c 2016-02-03 15:58:39 +0900 (b1f0d0c) +++ test/unit/core/test-object.c 2016-02-03 16:55:33 +0900 (9828271) @@ -49,6 +49,8 @@ void data_is_token_filter_proc(void); void test_is_token_filter_proc(gconstpointer data); void data_is_scorer_proc(void); void test_is_scorer_proc(gconstpointer data); +void data_type_to_string(void); +void test_type_to_string(gconstpointer data); static gchar *tmp_directory; static const gchar *database_path; @@ -509,3 +511,58 @@ test_is_scorer_proc(gconstpointer data) cut_assert_false(grn_obj_is_scorer_proc(context, object)); } } + +void +data_type_to_string(void) +{ +#define ADD_DATUM(expected, type) \ + gcut_add_datum(G_STRINGIFY(type), \ + "expected", G_TYPE_STRING, expected, \ + "type", G_TYPE_UINT, type, \ + NULL) + + ADD_DATUM("void", GRN_VOID); + ADD_DATUM("bulk", GRN_BULK); + ADD_DATUM("ptr", GRN_PTR); + ADD_DATUM("uvector", GRN_UVECTOR); + ADD_DATUM("pvector", GRN_PVECTOR); + ADD_DATUM("vector", GRN_VECTOR); + ADD_DATUM("msg", GRN_MSG); + ADD_DATUM("query", GRN_QUERY); + ADD_DATUM("accessor", GRN_ACCESSOR); + ADD_DATUM("snip", GRN_SNIP); + ADD_DATUM("patsnip", GRN_PATSNIP); + ADD_DATUM("string", GRN_STRING); + ADD_DATUM("cursor:table:hash_key", GRN_CURSOR_TABLE_HASH_KEY); + ADD_DATUM("cursor:table:pat_key", GRN_CURSOR_TABLE_PAT_KEY); + ADD_DATUM("cursor:table:dat_key", GRN_CURSOR_TABLE_DAT_KEY); + ADD_DATUM("cursor:table:no_key", GRN_CURSOR_TABLE_NO_KEY); + ADD_DATUM("cursor:column:index", GRN_CURSOR_COLUMN_INDEX); + ADD_DATUM("cursor:column:geo_index", GRN_CURSOR_COLUMN_GEO_INDEX); + ADD_DATUM("cursor:config", GRN_CURSOR_CONFIG); + ADD_DATUM("type", GRN_TYPE); + ADD_DATUM("proc", GRN_PROC); + ADD_DATUM("expr", GRN_EXPR); + ADD_DATUM("table:hash_key", GRN_TABLE_HASH_KEY); + ADD_DATUM("table:pat_key", GRN_TABLE_PAT_KEY); + ADD_DATUM("table:dat_key", GRN_TABLE_DAT_KEY); + ADD_DATUM("table:no_key", GRN_TABLE_NO_KEY); + ADD_DATUM("db", GRN_DB); + ADD_DATUM("column:fix_size", GRN_COLUMN_FIX_SIZE); + ADD_DATUM("column:var_size", GRN_COLUMN_VAR_SIZE); + ADD_DATUM("column:index", GRN_COLUMN_INDEX); + +#undef ADD_DATUM +} + +void +test_type_to_string(gconstpointer data) +{ + const gchar *expected; + guint type; + + expected = gcut_data_get_string(data, "expected"); + type = gcut_data_get_uint(data, "type"); + cut_assert_equal_string(expected, + grn_obj_type_to_string(type)); +} -------------- next part -------------- HTML����������������������������... Download