Add test cases for adding hexadecimal unsigned integer value API. Signed-off-by: Huisong Li <lihuis...@huawei.com> Acked-by: Morten Brørup <m...@smartsharesystems.com> Acked-by: Chengwen Feng <fengcheng...@huawei.com> --- app/test/test_telemetry_data.c | 158 +++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+)
diff --git a/app/test/test_telemetry_data.c b/app/test/test_telemetry_data.c index d92667a527..1fd79d66e2 100644 --- a/app/test/test_telemetry_data.c +++ b/app/test/test_telemetry_data.c @@ -209,6 +209,39 @@ test_case_add_dict_string(void) return CHECK_OUTPUT("{\"dict_0\":\"aaaa\",\"dict_1\":\"bbbb\",\"dict_2\":\"cccc\",\"dict_3\":\"dddd\"}"); } +static int +test_case_add_dict_uint_hex_padding(void) +{ + rte_tel_data_start_dict(&response_data); + + rte_tel_data_add_dict_uint_hex(&response_data, "dict_0", + (uint8_t)0x8, RTE_TEL_U8_BITS); + rte_tel_data_add_dict_uint_hex(&response_data, "dict_1", + (uint16_t)0x88, RTE_TEL_U16_BITS); + rte_tel_data_add_dict_uint_hex(&response_data, "dict_2", + (uint32_t)0x888, RTE_TEL_U32_BITS); + rte_tel_data_add_dict_uint_hex(&response_data, "dict_3", + (uint64_t)0x8888, RTE_TEL_U64_BITS); + + return CHECK_OUTPUT("{\"dict_0\":\"0x08\",\"dict_1\":\"0x0088\",\"dict_2\":\"0x00000888\",\"dict_3\":\"0x0000000000008888\"}"); +} + +static int +test_case_add_dict_uint_hex_nopadding(void) +{ + rte_tel_data_start_dict(&response_data); + + rte_tel_data_add_dict_uint_hex(&response_data, "dict_0", + (uint8_t)0x8, 0); + rte_tel_data_add_dict_uint_hex(&response_data, "dict_1", + (uint16_t)0x88, 0); + rte_tel_data_add_dict_uint_hex(&response_data, "dict_2", + (uint32_t)0x888, 0); + rte_tel_data_add_dict_uint_hex(&response_data, "dict_3", + (uint64_t)0x8888, 0); + + return CHECK_OUTPUT("{\"dict_0\":\"0x8\",\"dict_1\":\"0x88\",\"dict_2\":\"0x888\",\"dict_3\":\"0x8888\"}"); +} static int test_dict_with_array_string_values(void) @@ -232,6 +265,52 @@ test_dict_with_array_string_values(void) return CHECK_OUTPUT("{\"dict_0\":[\"aaaa\"],\"dict_1\":[\"bbbb\"]}"); } +static int +test_dict_with_array_uint_hex_values_padding(void) +{ + struct rte_tel_data *child_data = rte_tel_data_alloc(); + rte_tel_data_start_array(child_data, RTE_TEL_STRING_VAL); + + struct rte_tel_data *child_data2 = rte_tel_data_alloc(); + rte_tel_data_start_array(child_data2, RTE_TEL_STRING_VAL); + + rte_tel_data_start_dict(&response_data); + + rte_tel_data_add_array_uint_hex(child_data, + (uint32_t)0x888, RTE_TEL_U32_BITS); + rte_tel_data_add_array_uint_hex(child_data2, + (uint64_t)0x8888, RTE_TEL_U64_BITS); + + rte_tel_data_add_dict_container(&response_data, "dict_0", + child_data, 0); + rte_tel_data_add_dict_container(&response_data, "dict_1", + child_data2, 0); + + return CHECK_OUTPUT("{\"dict_0\":[\"0x00000888\"],\"dict_1\":[\"0x0000000000008888\"]}"); +} + +static int +test_dict_with_array_uint_hex_values_nopadding(void) +{ + struct rte_tel_data *child_data = rte_tel_data_alloc(); + rte_tel_data_start_array(child_data, RTE_TEL_STRING_VAL); + + struct rte_tel_data *child_data2 = rte_tel_data_alloc(); + rte_tel_data_start_array(child_data2, RTE_TEL_STRING_VAL); + + rte_tel_data_start_dict(&response_data); + + rte_tel_data_add_array_uint_hex(child_data, (uint32_t)0x888, 0); + rte_tel_data_add_array_uint_hex(child_data2, (uint64_t)0x8888, 0); + + rte_tel_data_add_dict_container(&response_data, "dict_0", + child_data, 0); + rte_tel_data_add_dict_container(&response_data, "dict_1", + child_data2, 0); + + return CHECK_OUTPUT("{\"dict_0\":[\"0x888\"],\"dict_1\":[\"0x8888\"]}"); +} + static int test_dict_with_dict_values(void) { @@ -278,6 +357,49 @@ test_array_with_array_string_values(void) return CHECK_OUTPUT("[[\"aaaa\"],[\"bbbb\"]]"); } +static int +test_array_with_array_uint_hex_values_padding(void) +{ + struct rte_tel_data *child_data = rte_tel_data_alloc(); + rte_tel_data_start_array(child_data, RTE_TEL_STRING_VAL); + + struct rte_tel_data *child_data2 = rte_tel_data_alloc(); + rte_tel_data_start_array(child_data2, RTE_TEL_STRING_VAL); + + rte_tel_data_start_array(&response_data, RTE_TEL_CONTAINER); + + rte_tel_data_add_array_uint_hex(child_data, (uint32_t)0x888, + RTE_TEL_U32_BITS); + rte_tel_data_add_array_uint_hex(child_data2, (uint64_t)0x8888, + RTE_TEL_U64_BITS); + + rte_tel_data_add_array_container(&response_data, child_data, 0); + rte_tel_data_add_array_container(&response_data, child_data2, 0); + + return CHECK_OUTPUT("[[\"0x00000888\"],[\"0x0000000000008888\"]]"); +} + + +static int +test_array_with_array_uint_hex_values_nopadding(void) +{ + struct rte_tel_data *child_data = rte_tel_data_alloc(); + rte_tel_data_start_array(child_data, RTE_TEL_STRING_VAL); + + struct rte_tel_data *child_data2 = rte_tel_data_alloc(); + rte_tel_data_start_array(child_data2, RTE_TEL_STRING_VAL); + + rte_tel_data_start_array(&response_data, RTE_TEL_CONTAINER); + + rte_tel_data_add_array_uint_hex(child_data, (uint32_t)0x888, 0); + rte_tel_data_add_array_uint_hex(child_data2, (uint64_t)0x8888, 0); + + rte_tel_data_add_array_container(&response_data, child_data, 0); + rte_tel_data_add_array_container(&response_data, child_data2, 0); + + return CHECK_OUTPUT("[[\"0x888\"],[\"0x8888\"]]"); +} + static int test_case_array_u64(void) { @@ -289,6 +411,34 @@ test_case_array_u64(void) return CHECK_OUTPUT("[0,1,2,3,4]"); } +static int +test_case_array_uint_hex_padding(void) +{ + rte_tel_data_start_array(&response_data, RTE_TEL_STRING_VAL); + rte_tel_data_add_array_uint_hex(&response_data, (uint8_t)0x8, + RTE_TEL_U8_BITS); + rte_tel_data_add_array_uint_hex(&response_data, (uint16_t)0x88, + RTE_TEL_U16_BITS); + rte_tel_data_add_array_uint_hex(&response_data, (uint32_t)0x888, + RTE_TEL_U32_BITS); + rte_tel_data_add_array_uint_hex(&response_data, (uint64_t)0x8888, + RTE_TEL_U64_BITS); + + return CHECK_OUTPUT("[\"0x08\",\"0x0088\",\"0x00000888\",\"0x0000000000008888\"]"); +} + +static int +test_case_array_uint_hex_nopadding(void) +{ + rte_tel_data_start_array(&response_data, RTE_TEL_STRING_VAL); + rte_tel_data_add_array_uint_hex(&response_data, (uint8_t)0x8, 0); + rte_tel_data_add_array_uint_hex(&response_data, (uint16_t)0x88, 0); + rte_tel_data_add_array_uint_hex(&response_data, (uint32_t)0x888, 0); + rte_tel_data_add_array_uint_hex(&response_data, (uint64_t)0x8888, 0); + + return CHECK_OUTPUT("[\"0x8\",\"0x88\",\"0x888\",\"0x8888\"]"); +} + static int test_case_add_dict_u64(void) { @@ -429,15 +579,23 @@ telemetry_data_autotest(void) test_simple_string, test_case_array_string, test_case_array_int, test_case_array_u64, + test_case_array_uint_hex_padding, + test_case_array_uint_hex_nopadding, test_case_add_dict_int, test_case_add_dict_u64, test_case_add_dict_string, + test_case_add_dict_uint_hex_padding, + test_case_add_dict_uint_hex_nopadding, test_dict_with_array_int_values, test_dict_with_array_u64_values, test_dict_with_array_string_values, + test_dict_with_array_uint_hex_values_padding, + test_dict_with_array_uint_hex_values_nopadding, test_dict_with_dict_values, test_array_with_array_int_values, test_array_with_array_u64_values, test_array_with_array_string_values, + test_array_with_array_uint_hex_values_padding, + test_array_with_array_uint_hex_values_nopadding, test_string_char_escaping, test_array_char_escaping, test_dict_char_escaping, -- 2.33.0