From 82e907aef06b7717acd81f2d8617672c49f1bec4 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Fri, 31 Oct 2025 17:03:18 +0100 Subject: [PATCH] add descriptor no mem test first two --- src/kds_s2000w_option_descriptors.c | 4 ++++ tests/kds_s2000w_option_descriptor_tests.c | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/kds_s2000w_option_descriptors.c b/src/kds_s2000w_option_descriptors.c index b4cc3e2..d98ade3 100644 --- a/src/kds_s2000w_option_descriptors.c +++ b/src/kds_s2000w_option_descriptors.c @@ -1641,6 +1641,10 @@ SANE_Status _kds_s2000w_option_descriptors_init_full_profile() if (descriptors == NULL) return SANE_STATUS_NO_MEM; + for (int i = 0; i < max_option_count; i++) { + descriptors[i] = NULL; + } + for (int i = 0; i < max_option_count; i++) { descriptors[i] = malloc(sizeof(option_descriptor_t)); if (descriptors[i] == NULL) { diff --git a/tests/kds_s2000w_option_descriptor_tests.c b/tests/kds_s2000w_option_descriptor_tests.c index 5723386..55d4954 100644 --- a/tests/kds_s2000w_option_descriptor_tests.c +++ b/tests/kds_s2000w_option_descriptor_tests.c @@ -867,6 +867,22 @@ void kds_s2000w_option_full_get_descriptor_over_max_options_test() assert_null(option); } +void Kds_s2000w_option_init_descriptor_no_mem() +{ + kds_s2000w_option_descriptors_free(); + + set_no_mem_counter(0); + SANE_Status status = kds_s2000w_option_descriptors_init(PROFILE_FULL); + + assert_int_equal(status, SANE_STATUS_NO_MEM); + + status = 0; + set_no_mem_counter(1); + status = kds_s2000w_option_descriptors_init(PROFILE_FULL); + + assert_int_equal(status, SANE_STATUS_NO_MEM); +} + int main() { const struct CMUnitTest option_descriptor_tests[] = { @@ -922,6 +938,7 @@ int main() cmocka_unit_test(kds_s2000w_option_get_descriptor_over_max_options_test), cmocka_unit_test(kds_s2000w_option_full_get_descriptor_by_number), cmocka_unit_test(kds_s2000w_option_full_get_descriptor_over_max_options_test), + cmocka_unit_test(Kds_s2000w_option_init_descriptor_no_mem) }; return cmocka_run_group_tests(option_descriptor_tests, setup, teardown); -- 2.47.3