Add operation function of NEU_DTYPE_ERRORCODE type

- Add test case
This commit is contained in:
gc87
2021-09-26 15:44:03 +08:00
committed by Parker Liu
parent 72a19cfeed
commit 335b355d52
3 changed files with 55 additions and 0 deletions
+3
View File
@@ -251,6 +251,7 @@ void neu_dvalue_init_int_val(neu_data_val_t *val, neu_int_val_t int_val);
void neu_dvalue_init_string_val(neu_data_val_t * val,
neu_string_val_t string_val);
void neu_dvalue_init_data_val(neu_data_val_t *val, void *data);
void neu_dvalue_init_errorcode_val(neu_data_val_t *val, int32_t i32);
/* The parameter cstr/bytes/array/vec is copy to neu_data_val_t
*/
@@ -295,6 +296,7 @@ int neu_dvalue_set_float(neu_data_val_t *val, float f32);
int neu_dvalue_set_double(neu_data_val_t *val, double f64);
int neu_dvalue_set_int_val(neu_data_val_t *val, neu_int_val_t int_val);
int neu_dvalue_set_string_val(neu_data_val_t *val, neu_string_val_t string_val);
int neu_dvalue_set_errorcode(neu_data_val_t *val, int32_t i32);
/* The parameter cstr/bytes/array/vec is copy to neu_data_val_t
*/
@@ -340,6 +342,7 @@ int neu_dvalue_get_int_val(neu_data_val_t *val, neu_int_val_t *p_int_val);
int neu_dvalue_get_string_val(neu_data_val_t * val,
neu_string_val_t *p_string_val);
int neu_dvalue_get_data_val(neu_data_val_t *val, void **p_data);
int neu_dvalue_get_errorcode(neu_data_val_t *val, int32_t *p_i32);
/* The parameter cstr/bytes/array/vec is copy from neu_data_val_t
*/
+28
View File
@@ -362,6 +362,12 @@ void neu_dvalue_init_data_val(neu_data_val_t *val, void *data)
val->val_data = data;
}
void neu_dvalue_init_errorcode_val(neu_data_val_t *val, int32_t i32)
{
val->type = NEU_DTYPE_ERRORCODE;
val->val_int32 = i32;
}
void neu_dvalue_init_copy_cstr(neu_data_val_t *val, char *cstr)
{
val->type = NEU_DTYPE_CSTR | NEU_DTYPE_PTR | NEU_DTYPE_EXTERN_PTR;
@@ -685,6 +691,17 @@ int neu_dvalue_set_string_val(neu_data_val_t *val, neu_string_val_t string_val)
}
}
int neu_dvalue_set_errorcode(neu_data_val_t *val, int32_t i32)
{
assert(val->type == NEU_DTYPE_ERRORCODE);
if (val->type == NEU_DTYPE_ERRORCODE) {
val->val_int32 = i32;
return 0;
} else {
return -1;
}
}
int neu_dvalue_set_cstr(neu_data_val_t *val, char *cstr)
{
neu_dtype_e type;
@@ -1178,6 +1195,17 @@ int neu_dvalue_get_data_val(neu_data_val_t *val, void **p_data)
}
}
int neu_dvalue_get_errorcode(neu_data_val_t *val, int32_t *p_i32)
{
assert(val->type == NEU_DTYPE_ERRORCODE);
if (val->type == NEU_DTYPE_ERRORCODE) {
*p_i32 = val->val_int32;
return 0;
} else {
return -1;
}
}
int neu_dvalue_get_cstr(neu_data_val_t *val, char **p_cstr)
{
neu_dtype_e val_type;
+24
View File
@@ -141,6 +141,30 @@ TEST(DataValueTest, neu_dvalue_init_set_get_prim_val)
EXPECT_EQ(0, neu_dvalue_get_double(val, &ret_double));
EXPECT_EQ(100010111010.010604, ret_double);
neu_dvalue_free(val);
/** test errorcode **/
int32_t ret_error = 0;
val = neu_dvalue_new(NEU_DTYPE_ERRORCODE);
neu_dvalue_init_errorcode_val(val, -1);
EXPECT_EQ(0, neu_dvalue_get_errorcode(val, &ret_error));
EXPECT_EQ(NEU_DTYPE_ERRORCODE, neu_dvalue_get_type(val));
EXPECT_EQ(-1, ret_error);
EXPECT_EQ(0, neu_dvalue_set_errorcode(val, 0));
EXPECT_EQ(0, neu_dvalue_get_errorcode(val, &ret_error));
EXPECT_EQ(0, ret_error);
EXPECT_EQ(0, neu_dvalue_set_errorcode(val, 1));
EXPECT_EQ(0, neu_dvalue_get_errorcode(val, &ret_error));
EXPECT_EQ(1, ret_error);
neu_dvalue_free(val);
val = neu_dvalue_new(NEU_DTYPE_ERRORCODE);
EXPECT_EQ(NEU_DTYPE_ERRORCODE, neu_dvalue_get_type(val));
EXPECT_EQ(0, neu_dvalue_set_errorcode(val, 2));
EXPECT_EQ(0, neu_dvalue_get_errorcode(val, &ret_error));
EXPECT_EQ(2, ret_error);
neu_dvalue_free(val);
}
#define INT_VAL_TEST_STR "hello int-val"