From cf1f5931520dc8aeac4fe5c3ba553478619be824 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 8 Nov 2025 09:39:49 +0100 Subject: [PATCH] add no mem test for profiles --- tests/kds_s2000w_option_descriptor_tests.c | 52 ++++++++++++++++++---- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/tests/kds_s2000w_option_descriptor_tests.c b/tests/kds_s2000w_option_descriptor_tests.c index 95170f8..d7a1b74 100644 --- a/tests/kds_s2000w_option_descriptor_tests.c +++ b/tests/kds_s2000w_option_descriptor_tests.c @@ -8,6 +8,30 @@ #include "kds_s2000w_client_mock.h" #include "../src/kds_s2000w_option_descriptors.h" +void _kds_s2000w_option_init_descriptor_no_mem(int16_t no_mem_count) +{ + set_no_mem_counter(no_mem_count); + SANE_Status status = kds_s2000w_option_descriptors_init(PROFILE_FULL); + + assert_int_equal(status, SANE_STATUS_NO_MEM); +} + +void _kds_s2000w_option_init_descriptor_profile_v1_0_36_no_mem(int16_t no_mem_count) +{ + set_no_mem_counter(no_mem_count); + SANE_Status status = kds_s2000w_option_descriptors_init(PROFILE_230802_V1_0_36); + + assert_int_equal(status, SANE_STATUS_NO_MEM); +} + +void _kds_s2000w_option_init_descriptor_min_profile_no_mem(int16_t no_mem_count) +{ + set_no_mem_counter(no_mem_count); + SANE_Status status = kds_s2000w_option_descriptors_init(PROFILE_MIN); + + assert_int_equal(status, SANE_STATUS_NO_MEM); +} + int setup(void** state) { return kds_s2000w_option_descriptors_init(PROFILE_FULL); @@ -874,20 +898,30 @@ void kds_s2000w_option_get_unknown_descriptor_test() assert_null(descriptor); } -void kds_s2000w_option_init_descriptor_no_mem(int16_t no_mem_count) +void kds_s2000w_option_init_descriptor_no_mem_test() { - set_no_mem_counter(no_mem_count); - SANE_Status status = kds_s2000w_option_descriptors_init(PROFILE_FULL); + kds_s2000w_option_descriptors_free(); - assert_int_equal(status, SANE_STATUS_NO_MEM); + for (uint32_t i = 0; i < 134; i++) { + _kds_s2000w_option_init_descriptor_no_mem(i); + } } -void kds_s2000w_option_init_descriptor_no_mem_test() +void kds_s2000w_option_init_descriptor_min_profile_no_mem_test() { kds_s2000w_option_descriptors_free(); - for (uint32_t i = 0; i < 134; i++) { - kds_s2000w_option_init_descriptor_no_mem(i); + for (uint32_t i = 0; i < 29; i++) { + _kds_s2000w_option_init_descriptor_min_profile_no_mem(i); + } +} + +void kds_s2000w_option_init_descriptor_profile_v1_0_36_no_mem_test() +{ + kds_s2000w_option_descriptors_free(); + + for (uint32_t i = 0; i < 70; i++) { + _kds_s2000w_option_init_descriptor_profile_v1_0_36_no_mem(i); } } @@ -947,7 +981,9 @@ int main() 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_get_unknown_descriptor_test), - cmocka_unit_test(kds_s2000w_option_init_descriptor_no_mem_test) + cmocka_unit_test(kds_s2000w_option_init_descriptor_no_mem_test), + cmocka_unit_test(kds_s2000w_option_init_descriptor_min_profile_no_mem_test), + cmocka_unit_test(kds_s2000w_option_init_descriptor_profile_v1_0_36_no_mem_test) }; -- 2.47.3