Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAndrejs Kozlovs <andrejs.kozlovs@zabbix.com>2021-04-30 14:58:26 +0300
committerAndrejs Kozlovs <andrejs.kozlovs@zabbix.com>2021-04-30 14:58:26 +0300
commit05f78006432b742954d8da3390952075fc8aecfa (patch)
tree385c176f0d02ec6801fe87b77dd7c093349e6f38 /tests
parent1ddb169fc9599b18043321f3c866ed8b4245f034 (diff)
........S. [ZBXNEXT-114] added different mapping type control for different input types
Diffstat (limited to 'tests')
-rw-r--r--tests/libs/zbxserver/valuemaps.c4
-rw-r--r--tests/libs/zbxserver/valuemaps.yaml89
-rw-r--r--tests/libs/zbxserver/valuemaps_test.c5
-rw-r--r--tests/libs/zbxserver/valuemaps_test.h3
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