]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add invalid test for word list
authorBastian Dehn <hhaalo@arcor.de>
Sat, 25 Oct 2025 17:40:28 +0000 (19:40 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 25 Oct 2025 17:40:28 +0000 (19:40 +0200)
tests/kds_s2000w_net_set_opt_tests.c

index c3d898ad8acf954b320d3e8b19cb32b31b9f0ac1..550b59a8498f208d5283df234505ce3d9d583684 100644 (file)
@@ -267,6 +267,37 @@ void kds_s2000w_net_set_invalid_option_int(void** state)
        set_value = NULL;
 }
 
+void kds_s2000w_net_set_invalid_option_int_word_list(void** state)
+{
+       int32_t* set_value = malloc(sizeof(int32_t));
+       if (set_value == NULL)
+               return;
+
+       *set_value = 305;
+       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, 4, 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[] = {
@@ -274,7 +305,8 @@ int main()
                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_int, setup_default_option, teardown_default_option)
+               cmocka_unit_test_setup_teardown(kds_s2000w_net_set_invalid_option_int, setup_default_option, teardown_default_option),
+               cmocka_unit_test_setup_teardown(kds_s2000w_net_set_invalid_option_int_word_list, setup_default_option, teardown_default_option)
        };
 
        return cmocka_run_group_tests(net_tests, NULL, NULL);