return _kds_s2000w_option_descriptor_validate();
}
-SANE_Status _kds_s2000w_option_descriptors_init_min_profile()
-{
- descriptor_fn fn[] = {
- _kds_s2000w_option_descriptor_num_options,
- _kds_s2000w_option_descriptor_standard_group,
- _kds_s2000w_option_descriptor_color_mode,
- _kds_s2000w_option_descriptor_dpi,
- _kds_s2000w_option_descriptor_scanside,
- _kds_s2000w_option_descriptor_boldness_color_group,
- _kds_s2000w_option_descriptor_color_drop,
- _kds_s2000w_option_descriptor_config_reset,
- _kds_s2000w_option_descriptor_image_processing_group,
- _kds_s2000w_option_descriptor_skip_blank_pages,
- _kds_s2000w_option_descriptor_feeder_group,
- _kds_s2000w_option_descriptor_autostart
- };
-
- size_t size = sizeof(fn) / sizeof(descriptor_fn);
- return _kds_s2000w_option_descriptor_init_profile(fn, size);
-}
-
-SANE_Status _kds_s2000w_option_descriptors_init_230802_v1_0_36_profile()
-{
- descriptor_fn fn[] = {
- _kds_s2000w_option_descriptor_num_options,
- _kds_s2000w_option_descriptor_standard_group,
- _kds_s2000w_option_descriptor_scan_source,
- _kds_s2000w_option_descriptor_color_mode,
- _kds_s2000w_option_descriptor_dpi,
- _kds_s2000w_option_descriptor_scanside,
- _kds_s2000w_option_descriptor_boldness_smoothing_group,
- _kds_s2000w_option_descriptor_foreground_boldness_mode,
- _kds_s2000w_option_descriptor_foreground_boldness_aggressiveness,
- _kds_s2000w_option_descriptor_background_smoothing_mode,
- _kds_s2000w_option_descriptor_background_smoothing_aggressiveness,
- _kds_s2000w_option_descriptor_boldness_color_group,
- _kds_s2000w_option_descriptor_color_drop,
- _kds_s2000w_option_descriptor_color_drop_out_aggressiveness,
- _kds_s2000w_option_descriptor_color_auto_brightness_mode,
- _kds_s2000w_option_descriptor_color_balance_mode,
- _kds_s2000w_option_descriptor_color_balance_agressiveness,
- _kds_s2000w_option_descriptor_color_balance_red,
- _kds_s2000w_option_descriptor_color_balance_green,
- _kds_s2000w_option_descriptor_color_balance_blue,
- _kds_s2000w_option_descriptor_binarization_contrast,
- _kds_s2000w_option_descriptor_config_reset,
- _kds_s2000w_option_descriptor_image_processing_group,
- _kds_s2000w_option_descriptor_skip_blank_pages,
- _kds_s2000w_option_descriptor_feeder_group,
- _kds_s2000w_option_descriptor_autostart
- };
-
- size_t size = sizeof(fn) / sizeof(descriptor_fn);
- return _kds_s2000w_option_descriptor_init_profile(fn, size);
-}
-
-SANE_Status _kds_s2000w_option_descriptors_init_full_profile()
+/*******************************************************************************
+ * public methods
+ ******************************************************************************/
+SANE_Status kds_s2000w_option_descriptors_init(mask_option_t* mask)
{
descriptor_fn fn[] = {
_kds_s2000w_option_descriptor_num_options,
return _kds_s2000w_option_descriptor_init_profile(fn, size);
}
-/*******************************************************************************
- * public methods
- ******************************************************************************/
-SANE_Status kds_s2000w_option_descriptors_init(profile_t profile)
-{
- switch (profile) {
- case PROFILE_FULL:
- return _kds_s2000w_option_descriptors_init_full_profile();
- break;
- case PROFILE_230802_V1_0_36:
- return _kds_s2000w_option_descriptors_init_230802_v1_0_36_profile();
- break;
- default:
- return _kds_s2000w_option_descriptors_init_min_profile();
- break;
- }
-
- return SANE_STATUS_INVAL;
-}
-
void kds_s2000w_option_descriptors_free()
{
if (kds_s2000w_option_descriptors == NULL)
#include <setjmp.h>
#include <cmocka.h>
#include <stdlib.h>
+#include <string.h>
#include <sane/saneopts.h>
#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);
+ set_no_mem_counter(no_mem_count);
- assert_int_equal(status, SANE_STATUS_NO_MEM);
-}
+ mask_option_t* mask = malloc(sizeof(mask_option_t));
+ if (mask == NULL)
+ return;
-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);
+ memset(mask, 1, sizeof(mask_option_t));
+ SANE_Status status = kds_s2000w_option_descriptors_init(mask);
+ free(mask);
+ mask = NULL;
- assert_int_equal(status, SANE_STATUS_NO_MEM);
+ assert_int_equal(status, SANE_STATUS_NO_MEM);
}
-void _kds_s2000w_option_init_descriptor_min_profile_no_mem(int16_t no_mem_count)
+int setup(void** state)
{
- set_no_mem_counter(no_mem_count);
- SANE_Status status = kds_s2000w_option_descriptors_init(PROFILE_MIN);
+ mask_option_t* mask = malloc(sizeof(mask_option_t));
+ if (mask == NULL)
+ return 1;
- assert_int_equal(status, SANE_STATUS_NO_MEM);
-}
+ memset(mask, 1, sizeof(mask_option_t));
+ SANE_Status status = kds_s2000w_option_descriptors_init(mask);
+ free(mask);
+ mask = NULL;
-int setup(void** state)
-{
- return kds_s2000w_option_descriptors_init(PROFILE_FULL);
+ return status;
}
int teardown(void **state)
}
}
-void kds_s2000w_option_init_descriptor_min_profile_no_mem_test()
-{
- kds_s2000w_option_descriptors_free();
-
- 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);
- }
-}
-
int main()
{
const struct CMUnitTest option_descriptor_tests[] = {
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_min_profile_no_mem_test),
- cmocka_unit_test(kds_s2000w_option_init_descriptor_profile_v1_0_36_no_mem_test)
-
+ cmocka_unit_test(kds_s2000w_option_init_descriptor_no_mem_test)
};
return cmocka_run_group_tests(option_descriptor_tests, setup, teardown);