diff options
author | Andrejs Kozlovs <andrejs.kozlovs@zabbix.com> | 2021-04-30 14:58:26 +0300 |
---|---|---|
committer | Andrejs Kozlovs <andrejs.kozlovs@zabbix.com> | 2021-04-30 14:58:26 +0300 |
commit | 05f78006432b742954d8da3390952075fc8aecfa (patch) | |
tree | 385c176f0d02ec6801fe87b77dd7c093349e6f38 /tests/libs | |
parent | 1ddb169fc9599b18043321f3c866ed8b4245f034 (diff) |
........S. [ZBXNEXT-114] added different mapping type control for different input types
Diffstat (limited to 'tests/libs')
-rw-r--r-- | tests/libs/zbxserver/valuemaps.c | 4 | ||||
-rw-r--r-- | tests/libs/zbxserver/valuemaps.yaml | 89 | ||||
-rw-r--r-- | tests/libs/zbxserver/valuemaps_test.c | 5 | ||||
-rw-r--r-- | tests/libs/zbxserver/valuemaps_test.h | 3 |
4 files changed, 97 insertions, 4 deletions
diff --git a/tests/libs/zbxserver/valuemaps.c b/tests/libs/zbxserver/valuemaps.c index eca5f6ca832..383b9c92ad4 100644 --- a/tests/libs/zbxserver/valuemaps.c +++ b/tests/libs/zbxserver/valuemaps.c @@ -51,6 +51,7 @@ void zbx_mock_test_entry(void **state) { int ret, expected_ret; char value[ZBX_VALUEMAP_STRING_LEN], *newvalue; + unsigned char value_type; zbx_vector_valuemaps_ptr_t valuemaps; zbx_valuemaps_t *valuemap; zbx_mock_handle_t hvaluemaps, handle; @@ -78,10 +79,11 @@ void zbx_mock_test_entry(void **state) } zbx_snprintf(value, ZBX_VALUEMAP_STRING_LEN, "%s", zbx_mock_get_parameter_string("in.value")); + value_type = (unsigned char)zbx_mock_get_parameter_uint64("in.type"); newvalue = (char *)zbx_mock_get_parameter_string("out.value"); expected_ret = zbx_mock_str_to_return_code(zbx_mock_get_parameter_string("out.return")); - ret = evaluate_value_by_map_test(value, sizeof(value), &valuemaps); + ret = evaluate_value_by_map_test(value, sizeof(value), &valuemaps, value_type); zbx_mock_assert_int_eq("valuemaps return value", expected_ret, ret); zbx_mock_assert_str_eq("new value", newvalue, value); diff --git a/tests/libs/zbxserver/valuemaps.yaml b/tests/libs/zbxserver/valuemaps.yaml index cd4708a4c2f..d23c46a232e 100644 --- a/tests/libs/zbxserver/valuemaps.yaml +++ b/tests/libs/zbxserver/valuemaps.yaml @@ -2,6 +2,7 @@ test case: exact match in: value: 0 + type: 3 # ITEM_VALUE_TYPE_UINT64 valuemaps: - type: 0 value: 0 @@ -16,9 +17,67 @@ out: return: SUCCEED value: "Value 0 (0)" --- +test case: exact match with conversion +in: + value: 0.1024 + type: 0 # ITEM_VALUE_TYPE_FLOAT + valuemaps: + - type: 0 + value: "1e-4K" + newvalue: "Value 0.1K" + - type: 4 + value: "^1$" + newvalue: "Regex 1" + - type: 2 + value: "3" + newvalue: "Value <= 3" +out: + return: SUCCEED + value: "Value 0.1K (0.1024)" +--- +test case: exact match string +in: + value: "String 0" + type: 1 # ITEM_VALUE_TYPE_STR + valuemaps: + - type: 0 + value: "String 0" + newvalue: "Value 0" + - type: 0 + value: "String 1" + newvalue: "Value 1" + - type: 4 + value: "^1$" + newvalue: "Regex 1" + - type: 2 + value: "3" + newvalue: "Value <= 3" +out: + return: SUCCEED + value: "Value 0 (String 0)" +--- +test case: regexp ignored +in: + value: 1 + type: 3 # ITEM_VALUE_TYPE_UINT64 + valuemaps: + - type: 0 + value: 0 + newvalue: "Value 0" + - type: 4 + value: "^1$" + newvalue: "Regex 1" + - type: 2 + value: "3" + newvalue: "Value <= 3" +out: + return: SUCCEED + value: "Value <= 3 (1)" +--- test case: regexp in: value: 1 + type: 1 # ITEM_VALUE_TYPE_STR valuemaps: - type: 0 value: 0 @@ -36,6 +95,7 @@ out: test case: range <= 3 in: value: 2 + type: 3 # ITEM_VALUE_TYPE_UINT64 valuemaps: - type: 0 value: 0 @@ -53,6 +113,7 @@ out: test case: range 5-7 in: value: 6 + type: 3 # ITEM_VALUE_TYPE_UINT64 valuemaps: - type: 0 value: 0 @@ -70,9 +131,31 @@ out: return: SUCCEED value: "Value 5-7 (6)" --- +test case: range 5-7 ignored +in: + value: 6 + type: 1 # ITEM_VALUE_TYPE_STR + valuemaps: + - type: 0 + value: 0 + newvalue: "Value 0" + - type: 4 + value: "^1$" + newvalue: "Regex 1" + - type: 2 + value: "3" + newvalue: "Value <= 3" + - type: 3 + value: "5-7" + newvalue: "Value 5-7" +out: + return: FAIL + value: 6 +--- test case: range > 10 in: value: 15 + type: 3 # ITEM_VALUE_TYPE_UINT64 valuemaps: - type: 0 value: 0 @@ -96,6 +179,7 @@ out: test case: default in: value: 4 + type: 3 # ITEM_VALUE_TYPE_UINT64 valuemaps: - type: 0 value: 0 @@ -122,6 +206,7 @@ out: test case: no mapping in: value: 4 + type: 3 # ITEM_VALUE_TYPE_UINT64 valuemaps: - type: 0 value: 0 @@ -145,6 +230,7 @@ out: test case: order in: value: 1 + type: 3 # ITEM_VALUE_TYPE_UINT64 valuemaps: - type: 2 value: 3 @@ -162,6 +248,7 @@ out: test case: complex range in: value: 4 + type: 3 # ITEM_VALUE_TYPE_UINT64 valuemaps: - type: 3 value: "-10--5,-3-5,32,44,4- 6, 10.5 -12.5, 133.1, 8" @@ -173,6 +260,7 @@ out: test case: complex range2 in: value: 4 + type: 3 # ITEM_VALUE_TYPE_UINT64 valuemaps: - type: 3 value: "-10--5,-3-1,32,44,9.0e-1- 6.0e0, 10.5 -12.5, 133.1, 8" @@ -184,6 +272,7 @@ out: test case: range with suffix in: value: -400 + type: 0 # ITEM_VALUE_TYPE_FLOAT valuemaps: - type: 3 value: "-10--5,-3-1,32,44,9.0e-1- 6.0e0, -5e-1K - -3e2" diff --git a/tests/libs/zbxserver/valuemaps_test.c b/tests/libs/zbxserver/valuemaps_test.c index 4971c23545d..34559b45cab 100644 --- a/tests/libs/zbxserver/valuemaps_test.c +++ b/tests/libs/zbxserver/valuemaps_test.c @@ -19,8 +19,9 @@ #include "valuemaps_test.h" -int evaluate_value_by_map_test(char *value, size_t max_len, zbx_vector_valuemaps_ptr_t *valuemaps) +int evaluate_value_by_map_test(char *value, size_t max_len, zbx_vector_valuemaps_ptr_t *valuemaps, + unsigned char value_type) { - return evaluate_value_by_map(value, max_len, valuemaps); + return evaluate_value_by_map(value, max_len, valuemaps, value_type); } diff --git a/tests/libs/zbxserver/valuemaps_test.h b/tests/libs/zbxserver/valuemaps_test.h index ac60c7ca5a8..8ad43bfe5d7 100644 --- a/tests/libs/zbxserver/valuemaps_test.h +++ b/tests/libs/zbxserver/valuemaps_test.h @@ -20,6 +20,7 @@ #ifndef VALUEMAPS_TEST_H #define VALUEMAPS_TEST_H -int evaluate_value_by_map_test(char *value, size_t max_len, zbx_vector_valuemaps_ptr_t *valuemaps); +int evaluate_value_by_map_test(char *value, size_t max_len, zbx_vector_valuemaps_ptr_t *valuemaps, + unsigned char value_type); #endif |