h = NULL;
}
-void* cancel_reset_handler(void* h)
-{
- handler* handle = (handler*) h;
- sleep(2);
- kds_s2000w_handler_recreate_session(handle);
- reset_handler(handle);
-
- return NULL;
-}
-
void reset_handler(handler* h)
{
#ifndef NODEBUG
handler* init_handler();
void free_handler(handler* h);
-void* cancel_reset_handler(void* h);
void reset_handler(handler* h);
void kds_s2000w_handler_recreate_session(handler* h);
void kds_s2000w_handler_open(const char* devicename, void** handle);
#include <string.h>
#include <unistd.h>
#include <math.h>
-#include <pthread.h>
#include "config.h"
#include "kds_s2000w_net.h"
#include "kds_s2000w_option_descriptors.h"
handler* h = (handler*) handle;
if (h->read_info->cancel) {
- pthread_t reset_thread;
- pthread_create(&reset_thread, NULL, cancel_reset_handler, handle);
+ reset_handler(h);
return SANE_STATUS_CANCELLED;
}
handler* h = (handler*) handle;
if (h->read_info->cancel) {
- pthread_t reset_thread;
- pthread_create(&reset_thread, NULL, cancel_reset_handler, handle);
+ reset_handler(h);
return SANE_STATUS_CANCELLED;
}
// cancel
if (h->read_info->cancel) {
- pthread_t reset_thread;
- pthread_create(&reset_thread, NULL, cancel_reset_handler, handle);
+ reset_handler(h);
*length = 0;
return SANE_STATUS_CANCELLED;
}
return;
}
+void sane_kds_s2000w_net_read_cancel_test()
+{
+ handler* h = init_handler();
+ h->read_info->scan_started = 1;
+ h->read_info->cancel = 1;
+ int* length = malloc(sizeof(int));
+ *length = 0;
+
+ SANE_Status status = _sane_kds_s2000w_net_read(h, NULL, 0, length);
+
+ assert_int_equal(h->read_info->cancel, 0);
+ assert_int_equal(h->read_info->scan_started, 0);
+ assert_int_equal(status, SANE_STATUS_CANCELLED);
+
+ free(length);
+ length = NULL;
+ free_handler(h);
+ h = NULL;
+}
+
void sane_kds_s2000w_net_read_without_data()
{
int length = 0;
#include <setjmp.h>
#include <cmocka.h>
+void sane_kds_s2000w_net_read_cancel_test();
void sane_kds_s2000w_net_read_without_data();
void sane_kds_s2000w_net_read_empty_image();
void sane_kds_s2000w_net_read_without_header_test();
int main()
{
const struct CMUnitTest net_read_tests[] = {
+ cmocka_unit_test(sane_kds_s2000w_net_read_cancel_test),
cmocka_unit_test(sane_kds_s2000w_net_read_without_data),
cmocka_unit_test(sane_kds_s2000w_net_read_empty_image),
cmocka_unit_test(sane_kds_s2000w_net_read_without_header_test),
assert_int_equal(result, SANE_STATUS_UNSUPPORTED);
}
+
+void sane_kds_s2000w_net_start_cancel()
+{
+ handler* h = init_handler();
+ h->read_info->cancel = 1;
+
+ SANE_Status status = _sane_kds_s2000w_net_start(h);
+
+ assert_int_equal(h->read_info->cancel, 0);
+ assert_int_equal(status, SANE_STATUS_CANCELLED);
+
+ free_handler(h);
+ h = NULL;
+}
+
void sane_kds_s2000w_net_start(void** state)
{
response** response_list = (response**) *state;
h = NULL;
}
+void sane_kds_s2000w_net_get_parameter_cancel()
+{
+ handler* h = init_handler();
+ h->read_info->cancel = 1;
+
+ SANE_Status status = _sane_kds_s2000w_net_get_parameters(h, NULL);
+
+ assert_int_equal(h->read_info->cancel, 0);
+ assert_int_equal(status, SANE_STATUS_CANCELLED);
+
+ free_handler(h);
+ h = NULL;
+}
+
void sane_kds_s2000w_net_cancel()
{
response* resp = kds_s2000w_client_response_init();
void kds_s2000w_net_get_devices_only_remote();
void kds_s2000w_net_set_io_mode();
void kds_s2000w_net_get_select_fd();
+void sane_kds_s2000w_net_start_cancel();
void sane_kds_s2000w_net_start(void** state);
void sane_kds_s2000w_net_start_one_page_per_flatscan(void** state);
void sane_kds_s2000w_net_start_one_page_per_feeder(void** state);
void sane_kds_s2000w_net_start_two_pages_per_feeder(void** state);
void sane_kds_s2000w_net_start_slow_two_pages_per_feeder(void** state);
+void sane_kds_s2000w_net_get_parameter_cancel();
void sane_kds_s2000w_net_cancel();
void sane_kds_s2000w_net_open();
void sane_kds_s2000w_net_open_busy_device();
cmocka_unit_test(kds_s2000w_net_get_devices_only_remote),
cmocka_unit_test(kds_s2000w_net_set_io_mode),
cmocka_unit_test(kds_s2000w_net_get_select_fd),
+ cmocka_unit_test(sane_kds_s2000w_net_start_cancel),
+ cmocka_unit_test(sane_kds_s2000w_net_get_parameter_cancel),
cmocka_unit_test(sane_kds_s2000w_net_cancel),
cmocka_unit_test(sane_kds_s2000w_net_open),
cmocka_unit_test(sane_kds_s2000w_net_open_busy_device),