From 510b686f41592fe5386580d574480f8a33e40d01 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 25 Oct 2025 19:38:27 +0200 Subject: [PATCH] add invalid int option test --- tests/kds_s2000w_net_set_opt_tests.c | 34 +++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/tests/kds_s2000w_net_set_opt_tests.c b/tests/kds_s2000w_net_set_opt_tests.c index 02367f2..c3d898a 100644 --- a/tests/kds_s2000w_net_set_opt_tests.c +++ b/tests/kds_s2000w_net_set_opt_tests.c @@ -236,13 +236,45 @@ void kds_s2000w_net_set_invalid_option_string(void** state) info = NULL; } +void kds_s2000w_net_set_invalid_option_int(void** state) +{ + int32_t* set_value = malloc(sizeof(int32_t)); + if (set_value == NULL) + return; + + *set_value = 12; + response_t* resp = (response_t*) *state; + handler_t* h = kds_s2000w_handler_init(); + response_t* set_opt_resp = kds_s2000w_client_response_init(); + set_opt_resp->code = 200; + + will_return(mock_response, resp); + will_return(__wrap_kds_s2000w_client_get_option, 0); + will_return(mock_response, set_opt_resp); + will_return(__wrap_kds_s2000w_client_set_option, 0); + expect_function_call(__wrap_kds_s2000w_client_get_option); + expect_function_call(__wrap_kds_s2000w_client_set_option); + + SANE_Status status = sane_kds_s2000w_net_control_option(h, 15, SANE_ACTION_SET_VALUE, set_value, NULL); + + assert_int_equal(status, SANE_STATUS_INVAL); + + kds_s2000w_client_response_free(set_opt_resp); + set_opt_resp = NULL; + kds_s2000w_handler_free(h); + h = NULL; + free(set_value); + set_value = NULL; +} + int main() { const struct CMUnitTest net_tests[] = { cmocka_unit_test_setup_teardown(kds_s2000w_net_set_option_string, setup_default_option, teardown_default_option), cmocka_unit_test_setup_teardown(kds_s2000w_net_set_option_int, setup_default_option, teardown_default_option), cmocka_unit_test_setup_teardown(kds_s2000w_net_set_option_int_word_list, setup_default_option, teardown_default_option), - cmocka_unit_test_setup_teardown(kds_s2000w_net_set_invalid_option_string, setup_default_option, teardown_default_option) + cmocka_unit_test_setup_teardown(kds_s2000w_net_set_invalid_option_string, setup_default_option, teardown_default_option), + cmocka_unit_test_setup_teardown(kds_s2000w_net_set_invalid_option_int, setup_default_option, teardown_default_option) }; return cmocka_run_group_tests(net_tests, NULL, NULL); -- 2.47.3