From 323fd33cbc57286fab51a4963cdf07909325f958 Mon Sep 17 00:00:00 2001 From: Alexander Zhylin Date: Mon, 29 Jun 2026 17:12:46 +0300 Subject: [PATCH] testing: augment of session_do_read --- test/file_p/file_upload.c | 2 -- test/session/CMakeLists.txt | 4 ++-- test/session/session_do_read.c | 27 +++++++++++++++++++++++---- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/test/file_p/file_upload.c b/test/file_p/file_upload.c index 61f55d5..8d77829 100644 --- a/test/file_p/file_upload.c +++ b/test/file_p/file_upload.c @@ -24,8 +24,6 @@ extern char *print_str; extern void *print_str_arr; char *str2snd; -/* TODO: complete tasks in function and write new tests for them */ - void __wrap_session_send_string(struct session *sess, const char *fmt, ...) { assert_string_equal(fmt, str2snd); } diff --git a/test/session/CMakeLists.txt b/test/session/CMakeLists.txt index 1833746..f268a15 100644 --- a/test/session/CMakeLists.txt +++ b/test/session/CMakeLists.txt @@ -12,7 +12,7 @@ target_link_libraries(session_do_read target_link_options(session_do_read PRIVATE -Wl,--wrap=read) -add_test(NAME session_test_1 COMMAND session_do_read) +add_test(NAME session_session_do_read_test_1 COMMAND session_do_read) # ---/ query_extract_from_buf /-------------------------------------- @@ -26,4 +26,4 @@ target_link_libraries(query_extract_from_buf main ) -add_test(NAME session_test_2 COMMAND query_extract_from_buf) \ No newline at end of file +add_test(NAME session_query_extract_from_buf_test_1 COMMAND query_extract_from_buf) \ No newline at end of file diff --git a/test/session/session_do_read.c b/test/session/session_do_read.c index 9f57380..a1cf2dd 100644 --- a/test/session/session_do_read.c +++ b/test/session/session_do_read.c @@ -16,26 +16,45 @@ #define TEST_BUF TEST_BUF_USED TEST_BUF_UNUSED int __wrap_read(int fd, void *buf, size_t nbytes) { - return sizeof TEST_BUF - 1; + return mock_type(int); } -void test_session_do_read(void **state) { +void test_session_do_read__regular(void **state) { session sess = { .buf = TEST_BUF, .buf_used = sizeof TEST_BUF, .sd = 2, }; char *line; - session_do_read(&sess, &line); + will_return(__wrap_read, sizeof TEST_BUF - 1); + int ret = session_do_read(&sess, &line); assert_memory_equal(line, TEST_BUF_USED, sizeof(TEST_BUF_USED)); + assert_int_equal(ret, 1); free(line); } +void test_session_do_read__no_read(void **state) { + session sess = { + .buf = TEST_BUF, + .buf_used = sizeof TEST_BUF, + .sd = 2, + .state = OP_WAIT, + }; + char *line; + will_return(__wrap_read, -1); + int ret = session_do_read(&sess, &line); + assert_int_equal(ret, 0); + assert_int_equal(sess.state, ERR); +} + int setup(void **state) { return 0; } int tear_down(void **state) { return 0; } int main(int argc, char **argv) { - const struct CMUnitTest tests[] = {cmocka_unit_test(test_session_do_read)}; + const struct CMUnitTest tests[] = { + cmocka_unit_test(test_session_do_read__regular), + cmocka_unit_test(test_session_do_read__no_read) + }; return cmocka_run_group_tests(tests, setup, tear_down); }