From: Bastian Dehn Date: Sat, 17 Feb 2024 06:48:44 +0000 (+0100) Subject: structure test suite X-Git-Tag: v1.0.0^2~265 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=45447585974f9ce0e26b91fb153d04544186b09f;p=sane-kds-s2000w-net.git structure test suite --- diff --git a/tests/kds_s2000w_net_read_tests.c b/tests/kds_s2000w_net_read_tests.c new file mode 100644 index 0000000..9640664 --- /dev/null +++ b/tests/kds_s2000w_net_read_tests.c @@ -0,0 +1,148 @@ +#include +#include +#include +#include "../src/kds_s2000w_handler.h" +#define kds_s2000w_handler_stop_scan void_mock +#define kds_s2000w_handler_close void_mock +#define kds_s2000w_handler_open state_mock +current_state* state_mock() { return NULL; } +void void_mock() {} +#include "../src/kds_s2000w_net.c" +#undef kds_s2000w_handler_stop_scan +#undef kds_s2000w_handler_close +#undef kds_s2000w_handler_open + +START_TEST(sane_kds_s2000w_net_find_first_data_byte_test) +{ + char data[] = { + 0x50, 0x36, 0x0a, 0x31, + 0x31, 0x35, 0x39, 0x20, + 0x38, 0x32, 0x39, 0x0a, + 0x32, 0x35, 0x35, 0x0a + }; + + int header_bytes = _sane_kds_s2000w_net_find_first_data_byte(data); + + ck_assert_int_eq(header_bytes, 16); +} +END_TEST + +START_TEST(sane_kds_s2000w_net_read_cancel_test) +{ + readinfo* read_info = get_read_info(); + read_info->cancel = 1; + int* length = malloc(sizeof(int)); + *length = 0; + + SANE_Status status = _sane_kds_s2000w_net_read(NULL, NULL, 0, length); + + ck_assert_int_eq(status, SANE_STATUS_CANCELLED); + + free(length); + length = NULL; +} +END_TEST + +START_TEST(sane_kds_s2000w_net_read_all_lines_test) +{ + readinfo* read_info = get_read_info(); + read_info->cancel = 0; + read_info->read_size = 0; + char* image = malloc(sizeof(char) * 53); + for (int i = 0; i < 3; i++) { + image[i] = 0x0a; + } + image[3] = 0xff; + read_info->current_metadata.format = 0; + read_info->current_metadata.image = image; + read_info->current_metadata.bytes_per_line = 10; + read_info->current_metadata.lines = 5; + + int* length = malloc(sizeof(int)); + *length = 0; + + SANE_Int maxlen = 65536; + char* dataptr = malloc(sizeof(char) * maxlen); + + SANE_Status status = 0; + for (int i = 0; i < 6; i++) { + status = _sane_kds_s2000w_net_read(NULL, dataptr, 65535, length); + } + + ck_assert_int_eq(status, SANE_STATUS_EOF); + ck_assert_int_eq(read_info->read_size, 53); + + free(dataptr); + dataptr = NULL; + free(length); + length = NULL; + free(image); + image = NULL; +} +END_TEST + +START_TEST(sane_kds_s2000w_net_read_test) +{ + readinfo* read_info = get_read_info(); + read_info->read_size = 0; + read_info->current_metadata.format = 0; + read_info->current_metadata.lines = 1; + read_info->current_metadata.bytes_per_line = 65536; + char* image = malloc(sizeof(char) * 65539); + for (int i = 0; i < 3; i++) { + image[i] = 0x0a; + } + image[3] = 0xff; + read_info->current_metadata.image = image; + + SANE_Int maxlen = 65536; + char* dataptr = malloc(sizeof(char) * maxlen); + SANE_Int* length = malloc(sizeof(SANE_Int)); + + _sane_kds_s2000w_net_read(NULL, (void*) dataptr, maxlen, length); + + ck_assert_int_eq(*length, 65536); + ck_assert_mem_eq(dataptr, image + 3, 65536); + ck_assert_int_eq(read_info->read_size, 65539); + + free(dataptr); + dataptr = NULL; + free(length); + length = NULL; + free(image); + image = NULL; +} +END_TEST + + +START_TEST(sane_kds_s2000w_net_read_bytes_per_line_bigger_test) +{ + readinfo* read_info = get_read_info(); + read_info->read_size = 0; + read_info->current_metadata.format = 0; + read_info->current_metadata.lines = 1; + read_info->current_metadata.bytes_per_line = 95000; + char* image = malloc(sizeof(char) * 95003); + for (int i = 0; i < 3; i++) { + image[i] = 0x0a; + } + image[3] = 0xff; + read_info->current_metadata.image = image; + + SANE_Int maxlen = 65536; + char* dataptr = malloc(sizeof(char) * maxlen); + SANE_Int* length = malloc(sizeof(SANE_Int)); + + _sane_kds_s2000w_net_read(NULL, (void*) dataptr, maxlen, length); + _sane_kds_s2000w_net_read(NULL, (void*) dataptr, maxlen, length); + + ck_assert_int_eq(read_info->read_size, 95003); + + free(dataptr); + dataptr = NULL; + free(length); + length = NULL; + free(image); + image = NULL; +} +END_TEST \ No newline at end of file diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c deleted file mode 100644 index 9640664..0000000 --- a/tests/kds_s2000w_net_tests.c +++ /dev/null @@ -1,148 +0,0 @@ -#include -#include -#include -#include "../src/kds_s2000w_handler.h" -#define kds_s2000w_handler_stop_scan void_mock -#define kds_s2000w_handler_close void_mock -#define kds_s2000w_handler_open state_mock -current_state* state_mock() { return NULL; } -void void_mock() {} -#include "../src/kds_s2000w_net.c" -#undef kds_s2000w_handler_stop_scan -#undef kds_s2000w_handler_close -#undef kds_s2000w_handler_open - -START_TEST(sane_kds_s2000w_net_find_first_data_byte_test) -{ - char data[] = { - 0x50, 0x36, 0x0a, 0x31, - 0x31, 0x35, 0x39, 0x20, - 0x38, 0x32, 0x39, 0x0a, - 0x32, 0x35, 0x35, 0x0a - }; - - int header_bytes = _sane_kds_s2000w_net_find_first_data_byte(data); - - ck_assert_int_eq(header_bytes, 16); -} -END_TEST - -START_TEST(sane_kds_s2000w_net_read_cancel_test) -{ - readinfo* read_info = get_read_info(); - read_info->cancel = 1; - int* length = malloc(sizeof(int)); - *length = 0; - - SANE_Status status = _sane_kds_s2000w_net_read(NULL, NULL, 0, length); - - ck_assert_int_eq(status, SANE_STATUS_CANCELLED); - - free(length); - length = NULL; -} -END_TEST - -START_TEST(sane_kds_s2000w_net_read_all_lines_test) -{ - readinfo* read_info = get_read_info(); - read_info->cancel = 0; - read_info->read_size = 0; - char* image = malloc(sizeof(char) * 53); - for (int i = 0; i < 3; i++) { - image[i] = 0x0a; - } - image[3] = 0xff; - read_info->current_metadata.format = 0; - read_info->current_metadata.image = image; - read_info->current_metadata.bytes_per_line = 10; - read_info->current_metadata.lines = 5; - - int* length = malloc(sizeof(int)); - *length = 0; - - SANE_Int maxlen = 65536; - char* dataptr = malloc(sizeof(char) * maxlen); - - SANE_Status status = 0; - for (int i = 0; i < 6; i++) { - status = _sane_kds_s2000w_net_read(NULL, dataptr, 65535, length); - } - - ck_assert_int_eq(status, SANE_STATUS_EOF); - ck_assert_int_eq(read_info->read_size, 53); - - free(dataptr); - dataptr = NULL; - free(length); - length = NULL; - free(image); - image = NULL; -} -END_TEST - -START_TEST(sane_kds_s2000w_net_read_test) -{ - readinfo* read_info = get_read_info(); - read_info->read_size = 0; - read_info->current_metadata.format = 0; - read_info->current_metadata.lines = 1; - read_info->current_metadata.bytes_per_line = 65536; - char* image = malloc(sizeof(char) * 65539); - for (int i = 0; i < 3; i++) { - image[i] = 0x0a; - } - image[3] = 0xff; - read_info->current_metadata.image = image; - - SANE_Int maxlen = 65536; - char* dataptr = malloc(sizeof(char) * maxlen); - SANE_Int* length = malloc(sizeof(SANE_Int)); - - _sane_kds_s2000w_net_read(NULL, (void*) dataptr, maxlen, length); - - ck_assert_int_eq(*length, 65536); - ck_assert_mem_eq(dataptr, image + 3, 65536); - ck_assert_int_eq(read_info->read_size, 65539); - - free(dataptr); - dataptr = NULL; - free(length); - length = NULL; - free(image); - image = NULL; -} -END_TEST - - -START_TEST(sane_kds_s2000w_net_read_bytes_per_line_bigger_test) -{ - readinfo* read_info = get_read_info(); - read_info->read_size = 0; - read_info->current_metadata.format = 0; - read_info->current_metadata.lines = 1; - read_info->current_metadata.bytes_per_line = 95000; - char* image = malloc(sizeof(char) * 95003); - for (int i = 0; i < 3; i++) { - image[i] = 0x0a; - } - image[3] = 0xff; - read_info->current_metadata.image = image; - - SANE_Int maxlen = 65536; - char* dataptr = malloc(sizeof(char) * maxlen); - SANE_Int* length = malloc(sizeof(SANE_Int)); - - _sane_kds_s2000w_net_read(NULL, (void*) dataptr, maxlen, length); - _sane_kds_s2000w_net_read(NULL, (void*) dataptr, maxlen, length); - - ck_assert_int_eq(read_info->read_size, 95003); - - free(dataptr); - dataptr = NULL; - free(length); - length = NULL; - free(image); - image = NULL; -} -END_TEST \ No newline at end of file diff --git a/tests/runtests.c b/tests/runtests.c index ca24e29..182d68f 100644 --- a/tests/runtests.c +++ b/tests/runtests.c @@ -1,30 +1,27 @@ #include -#include "kds_s2000w_net_tests.c" +#include "kds_s2000w_net_read_tests.c" -Suite* first_tests() +Suite* net_read() { - Suite* suite = NULL; - TCase* tc_core = NULL; + Suite* kds_s2000w_net = suite_create("kds_s2000w_net"); - suite = suite_create("first tests"); + TCase* net_read = tcase_create("read"); + tcase_add_test(net_read, sane_kds_s2000w_net_find_first_data_byte_test); + tcase_add_test(net_read, sane_kds_s2000w_net_read_cancel_test); + tcase_add_test(net_read, sane_kds_s2000w_net_read_all_lines_test); + tcase_add_test(net_read, sane_kds_s2000w_net_read_test); + tcase_add_test(net_read, sane_kds_s2000w_net_read_bytes_per_line_bigger_test); + suite_add_tcase(kds_s2000w_net, net_read); - tc_core = tcase_create("core"); - tcase_add_test(tc_core, sane_kds_s2000w_net_find_first_data_byte_test); - tcase_add_test(tc_core, sane_kds_s2000w_net_read_cancel_test); - tcase_add_test(tc_core, sane_kds_s2000w_net_read_all_lines_test); - tcase_add_test(tc_core, sane_kds_s2000w_net_read_test); - tcase_add_test(tc_core, sane_kds_s2000w_net_read_bytes_per_line_bigger_test); - - suite_add_tcase(suite, tc_core); - - return suite; + return kds_s2000w_net; } int main() { int failed = 0; - Suite* suite = first_tests(); - SRunner* runner = srunner_create(suite); + Suite* kds_s2000w_net = suite_create("kds_s2000w_net"); + SRunner* runner = srunner_create(kds_s2000w_net); + srunner_add_suite(runner, net_read()); srunner_run_all(runner, CK_NORMAL); failed = srunner_ntests_failed(runner);