-g \
-fsanitize=address \
-Wl,--wrap,kds_s2000w_client_get_option,\
+--wrap,kds_s2000w_client_start_scan,\
--wrap,kds_s2000w_client_stop_scan,\
--wrap,kds_s2000w_client_open_session,\
+--wrap,kds_s2000w_client_status_session,\
+--wrap,kds_s2000w_client_get_image,\
+--wrap,kds_s2000w_client_get_metadata,\
+--wrap,kds_s2000w_convert_jpg_to_pnm,\
+--wrap,kds_s2000w_client_delete_image,\
--wrap,load_config" CACHE STRING "test coverage compiler flags" FORCE)
ENDIF()
#include "../src/kds_s2000w_client.h"
#include "../src/kds_s2000w_handler.h"
#include "../src/kds_s2000w_net.h"
+#include "../src/kds_s2000w_image_converter.h"
int __wrap_kds_s2000w_client_open_session(response* response)
{
- return 0;
+ return mock_type(int);
}
void __wrap_load_config(program_config* config, const char* config_stream)
int __wrap_kds_s2000w_client_stop_scan(int64_t sessionid, response* response)
{
- return 0;
+ return mock_type(int);
}
int __wrap_kds_s2000w_client_get_option(int64_t sessionid, response* response)
{
- return 0;
+ return mock_type(int);
+}
+
+int __wrap_kds_s2000w_client_status_session(int64_t sessionid, response* response)
+{
+ return mock_type(int);
+}
+
+int __wrap_kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* response)
+{
+ return mock_type(int);
+}
+
+int __wrap_kds_s2000w_client_get_metadata(int64_t sessionid, int img_number, response* response)
+{
+ return mock_type(int);
+}
+
+void __wrap_kds_s2000w_convert_jpg_to_pnm(blobdata* in, blobdata* out)
+{
+ return;
+}
+
+int __wrap_kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response* response)
+{
+ return mock_type(int);
+}
+
+int __wrap_kds_s2000w_client_start_scan(int64_t sessionid, response* response)
+{
+ return mock_type(int);
}
void sane_kds_s2000w_net_read_cancel_test()
#include "../src/kds_s2000w_client.h"
#include "../src/kds_s2000w_net.h"
#include "../src/kds_s2000w_handler.h"
+#include "../src/kds_s2000w_image_converter.h"
void __wrap_load_config(program_config* config, const char* config_stream)
{
return mock_type(int);
}
+int __wrap_kds_s2000w_client_status_session(int64_t sessionid, response* response)
+{
+ response->data = realloc(response->data, 205);
+ const char* responsedata = "{ \
+ \"Status\": { \
+ \"NumImagesScanned\": 1, \
+ \"NumImagesStored\": 2, \
+ \"State\": \"Scanning\", \
+ \"ErrorNum\": 0, \
+ \"LastError\": \"Status: 200 Success\", \
+ \"PaperDetected\": \"0\", \
+ \"PercentAvailable\": 99 \
+ }}\0";
+
+ memcpy(response->data, responsedata, 205);
+
+ response->code = 200;
+ response->size = sizeof(response->data);
+
+ return mock_type(int);
+}
+
+int __wrap_kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* response)
+{
+ return mock_type(int);
+}
+
+int __wrap_kds_s2000w_client_get_metadata(int64_t sessionid, int img_number, response* response)
+{
+ response->data = realloc(response->data, 131);
+ const char* responsedata = "{\
+ \"Metadata\": {\
+ \"BitDepth\": 8, \
+ \"ImageSize\": 1, \
+ \"ImageWidth\": 1000, \
+ \"ImageHeight\": 1000, \
+ \"ImageHeight\": 1000, \
+ }\
+ }\0";
+ memcpy(response->data, responsedata, 131);
+
+ response->code = 200;
+ response->size = sizeof(response->data);
+
+ return mock_type(int);
+}
+
+void __wrap_kds_s2000w_convert_jpg_to_pnm(blobdata* in, blobdata* out)
+{
+ return;
+}
+
+int __wrap_kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response* response)
+{
+ return mock_type(int);
+}
+
+int __wrap_kds_s2000w_client_start_scan(int64_t sessionid, response* response)
+{
+ return mock_type(int);
+}
+
int __wrap_kds_s2000w_client_open_session(response* response)
{
response->data = realloc(response->data, 28);
h = NULL;
}
+void sane_kds_s2000w_net_start()
+{
+ will_return(__wrap_kds_s2000w_client_start_scan, 0);
+ will_return(__wrap_kds_s2000w_client_status_session, 0);
+ will_return(__wrap_kds_s2000w_client_get_image, 0);
+ will_return(__wrap_kds_s2000w_client_get_metadata, 0);
+ will_return(__wrap_kds_s2000w_client_delete_image, 0);
+ handler* h = init_handler();
+ const char* test_config = "{\"Configuration\": { \"ColorMode\": \"Color\" } }";
+ h->current_scanner_config = json_tokener_parse(test_config);
+
+ int result = _sane_kds_s2000w_net_start(h);
+
+ assert_int_equal(result, SANE_STATUS_GOOD);
+ assert_int_equal(h->current_metadata->depth, 8);
+ assert_int_equal(h->current_metadata->channels, 3);
+ assert_int_equal(h->current_metadata->format, 1);
+ assert_int_equal(h->current_metadata->pixels_per_line, 1000);
+ assert_int_equal(h->current_metadata->lines, 1000);
+ assert_int_equal(h->current_metadata->valid, 1);
+ assert_int_equal(h->current_metadata->is_last, 1);
+
+ json_object_put(h->current_scanner_config);
+ h->current_scanner_config = NULL;
+ free_handler(h);
+ h = NULL;
+}
+
void sane_kds_s2000w_net_get_parameter_cancel()
{
handler* h = init_handler();
void sane_kds_s2000w_net_control_get_option_twentyone();
void sane_kds_s2000w_net_control_get_option_twentytwo();
void sane_kds_s2000w_net_start_cancel();
+void sane_kds_s2000w_net_start();
void sane_kds_s2000w_net_get_parameter_cancel();
void sane_kds_s2000w_net_cancel();
void sane_kds_s2000w_net_open();
cmocka_unit_test(sane_kds_s2000w_net_control_get_option_twentyone),
cmocka_unit_test(sane_kds_s2000w_net_control_get_option_twentytwo),
cmocka_unit_test(sane_kds_s2000w_net_start_cancel),
+ cmocka_unit_test(sane_kds_s2000w_net_start),
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)
#include "kds_s2000w_read_config_tests.h"
#include "../src/kds_s2000w_client.h"
#include "../src/kds_s2000w_config.h"
+#include "../src/kds_s2000w_image_converter.h"
extern typeof (load_config) __real_load_config;
int __wrap_kds_s2000w_client_open_session(response* response)
{
- return 0;
+ return mock_type(int);
}
void __wrap_load_config(program_config* config, const char* config_stream)
int __wrap_kds_s2000w_client_stop_scan(int64_t sessionid, response* response)
{
- return 0;
+ return mock_type(int);
}
int __wrap_kds_s2000w_client_get_option(int64_t sessionid, response* response)
{
- return 0;
+ return mock_type(int);
+}
+
+int __wrap_kds_s2000w_client_status_session(int64_t sessionid, response* response)
+{
+ return mock_type(int);
+}
+
+int __wrap_kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* response)
+{
+ return mock_type(int);
+}
+
+int __wrap_kds_s2000w_client_get_metadata(int64_t sessionid, int img_number, response* response)
+{
+ return mock_type(int);
+}
+
+void __wrap_kds_s2000w_convert_jpg_to_pnm(blobdata* in, blobdata* out)
+{
+ return;
+}
+
+int __wrap_kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response* response)
+{
+ return mock_type(int);
+}
+
+int __wrap_kds_s2000w_client_start_scan(int64_t sessionid, response* response)
+{
+ return mock_type(int);
}
void kds_s2000w_config_read_parameter()