--- test case: Expression 'forty_two()' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP] expression: 'forty_two()' callbacks: - name: forty_two args_num: 0 error: 'forced function error' out: result: FAIL --- test case: Expression 'forty_two()' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP] expression: 'forty_two()' callbacks: - name: forty_two args_num: 0 retval: 42s out: result: SUCCEED value: 42 --- test case: Expression 'sum(hist(/host/key,1h))' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'sum(hist(/host/key,1h))' callbacks: - name: hist args_num: 2 retval: [1, 2, 3] out: result: SUCCEED value: 6 --- test case: Expression 'sum(hist(/host/key,1h),0)' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_ITEM_QUERY,ZBX_EVAL_PARSE_VAR] expression: 'sum(hist(/host/key,1h),0)' callbacks: - name: hist args_num: 2 retval: [1, 2, 3] out: result: FAIL --- test case: Expression 'min(err(), 1) or 1' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PROCESS_ERROR,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_LOGIC] expression: 'min(err(), 1) or 1' callbacks: - name: err args_num: 0 error: 'forced return error' out: result: SUCCEED value: 1 --- test case: Expression 'min(err(), 1) or 1' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_LOGIC] expression: 'min(err(), 1) or 1' callbacks: - name: err args_num: 0 error: 'forced return error' out: result: FAIL --- test case: Expression 'min(1, 2, err()) and 0' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PROCESS_ERROR,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_LOGIC] expression: 'min(1, 2, err()) and 0' callbacks: - name: err args_num: 0 error: 'forced return error' out: result: SUCCEED value: 0 --- test case: Expression 'min(1, 2, err()) and 0' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_LOGIC] expression: 'min(1, 2, err()) and 0' callbacks: - name: err args_num: 0 error: 'forced return error' out: result: FAIL --- test case: Expression 'sum(hist(/host/key,1h))' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'sum(hist(/host/key,1h))' callbacks: - name: hist args_num: 2 retval: [] out: result: FAIL --- test case: Expression 'sum(hist(/host/key,))' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'sum(hist(/host/key,))' callbacks: - name: hist args_num: 2 retval: [1, 2, 3] out: result: SUCCEED value: 6 --- test case: Expression 'count(last_foreach(/host/key,1h))' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/host/key,1h))' callbacks: - name: last_foreach args_num: 2 retval: [1, 2, 3] out: result: SUCCEED value: 3 --- test case: Expression 'count(last_foreach(/host/key,1h)) - no items' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/host/key,1h))' callbacks: - name: last_foreach args_num: 2 retval: [] out: result: SUCCEED value: 0 --- test case: Expression 'count(last_foreach(/*/key))' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/*/key))' callbacks: - name: last_foreach args_num: 1 retval: [1, 2] out: result: SUCCEED value: 2 --- test case: Expression 'count(last_foreach(/*/key),"gt",2)' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_VAR_STR,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/*/key),"gt",2)' callbacks: - name: last_foreach args_num: 1 retval: [1, 2, 3, 4] out: result: SUCCEED value: 2 --- test case: Expression 'count(last_foreach(/*/key),"gt",2)' - no data in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_VAR_STR,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/*/key),"gt",2)' callbacks: - name: last_foreach args_num: 1 retval: [] out: result: SUCCEED value: 0 --- test case: Expression 'count(last_foreach(/*/key),"eq","2")' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_VAR_STR,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/*/key),"eq","2")' callbacks: - name: last_foreach args_num: 1 retval: [1, 2, 3, 2] out: result: SUCCEED value: 2 --- test case: Expression 'count(last_foreach(/*/key),"eq")' - pattern not provided with operator in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_VAR_STR,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/*/key),"eq")' callbacks: - name: last_foreach args_num: 1 retval: [1, 2, 3, 4] out: result: FAIL --- test case: Expression 'count(last_foreach(/*/key),"eq","aa")' - DBG in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_VAR_STR,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/*/key),"eq","aa")' callbacks: - name: last_foreach args_num: 1 retval: ["aa", "bb", "cc"] out: result: SUCCEED value: 1 --- test case: Expression 'count(last_foreach(/*/key),"like","aa")' - DBG in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_VAR_STR,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/*/key),"like","aa")' callbacks: - name: last_foreach args_num: 1 retval: ["aa", "bb", "cc"] out: result: SUCCEED value: 1 --- test case: Expression 'count(last_foreach(/*/key),"regexp","aa.")' - DBG in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_VAR_STR,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/*/key),"regexp","aa.")' callbacks: - name: last_foreach args_num: 1 retval: ["aaa", "aab", "aca"] out: result: SUCCEED value: 2 --- test case: Expression 'count(last_foreach(/*/key),"like","2")' - operation incompatible with numeric values in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_VAR_STR,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/*/key),"like","2")' callbacks: - name: last_foreach args_num: 1 retval: [1, 2, 3, 4] out: result: FAIL --- test case: Expression 'count(last_foreach(/*/key),"x","2")' - unsupported operator in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_VAR_STR,ZBX_EVAL_PARSE_VAR,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/*/key),"x","2")' callbacks: - name: last_foreach args_num: 1 retval: [1, 2, 3, 4] out: result: FAIL --- test case: Expression 'count(last_foreach(/*/key)) - no items' in: rules: [ZBX_EVAL_PARSE_FUNCTION,ZBX_EVAL_PARSE_GROUP,ZBX_EVAL_PARSE_ITEM_QUERY] expression: 'count(last_foreach(/*/key))' callbacks: - name: last_foreach args_num: 1 retval: [] out: result: SUCCEED value: 0 ...