void zbx_mock_test_entry(void **state)
zbx_mock_handle_t handle, parameters, parameter;
const char *cfg_file, *validation, *tmp, **multi_string, *string_list;
int strict = 42, exit_code, parameter_count = 0, i;
zbx_cfg_line_t *cfg = NULL;
void **expected_values = NULL;
if (ZBX_MOCK_SUCCESS != (error = zbx_mock_in_parameter("configuration file", &handle)) ||
ZBX_MOCK_SUCCESS != (error = zbx_mock_string(handle, &cfg_file)))
fail_msg("Cannot get configuration file from test case data: %s", zbx_mock_error_string(error));
if (ZBX_MOCK_SUCCESS != (error = zbx_mock_in_parameter("validation", &handle)) ||
ZBX_MOCK_SUCCESS != (error = zbx_mock_string(handle, &validation)))
fail_msg("Cannot get validation mode from test case data: %s", zbx_mock_error_string(error));
if (0 == strcmp(validation, "not strict"))
strict = ZBX_CFG_NOT_STRICT;
else if (0 == strcmp(validation, "strict"))
fail_msg("Invalid validation mode \"%s\".", validation);
if (ZBX_MOCK_SUCCESS != (error = zbx_mock_in_parameter("parameters", ¶meters)))
fail_msg("Cannot get description of parameters from test case data: %s", zbx_mock_error_string(error));
while (ZBX_MOCK_SUCCESS == (error = zbx_mock_vector_element(parameters, ¶meter)))
cfg = zbx_realloc(cfg, (parameter_count + 1) * sizeof(zbx_cfg_line_t));
expected_values = zbx_realloc(expected_values, (parameter_count + 1) * sizeof(void *));
if (ZBX_MOCK_SUCCESS != (error = zbx_mock_object_member(parameter, "name", &handle)) ||
ZBX_MOCK_SUCCESS != (error = zbx_mock_string(handle, &tmp)))
fail_msg("Cannot get name of parameter #%d: %s", parameter_count + 1,
zbx_mock_error_string(error));
cfg[parameter_count].parameter = tmp;
if (ZBX_MOCK_SUCCESS != (error = zbx_mock_object_member(parameter, "type", &handle)) ||
ZBX_MOCK_SUCCESS != (error = zbx_mock_string(handle, &tmp)))
fail_msg("Cannot get type of parameter #%d: %s", parameter_count + 1,
zbx_mock_error_string(error));
if (0 == strcmp(tmp, "numeric"))
if (ZBX_MOCK_NO_SUCH_MEMBER == (error = zbx_mock_object_member(parameter, "expect", &handle)))
expected_values[parameter_count] = NULL;
else if (ZBX_MOCK_SUCCESS == error && ZBX_MOCK_SUCCESS == (error = zbx_mock_string(handle,
expected_values[parameter_count] = zbx_malloc(NULL, sizeof(zbx_uint64_t));
if (SUCCEED != zbx_is_uint64(tmp, expected_values[parameter_count]))
fail_msg("Expected value \"%s\" of parameter #%d is not numeric.", tmp,