testing: augment of session_do_read

This commit is contained in:
2026-06-29 17:12:46 +03:00
parent c4eeffd6a9
commit 323fd33cbc
3 changed files with 25 additions and 8 deletions
-2
View File
@@ -24,8 +24,6 @@ extern char *print_str;
extern void *print_str_arr; extern void *print_str_arr;
char *str2snd; char *str2snd;
/* TODO: complete tasks in function and write new tests for them */
void __wrap_session_send_string(struct session *sess, const char *fmt, ...) { void __wrap_session_send_string(struct session *sess, const char *fmt, ...) {
assert_string_equal(fmt, str2snd); assert_string_equal(fmt, str2snd);
} }
+2 -2
View File
@@ -12,7 +12,7 @@ target_link_libraries(session_do_read
target_link_options(session_do_read PRIVATE -Wl,--wrap=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 /-------------------------------------- # ---/ query_extract_from_buf /--------------------------------------
@@ -26,4 +26,4 @@ target_link_libraries(query_extract_from_buf
main main
) )
add_test(NAME session_test_2 COMMAND query_extract_from_buf) add_test(NAME session_query_extract_from_buf_test_1 COMMAND query_extract_from_buf)
+23 -4
View File
@@ -16,26 +16,45 @@
#define TEST_BUF TEST_BUF_USED TEST_BUF_UNUSED #define TEST_BUF TEST_BUF_USED TEST_BUF_UNUSED
int __wrap_read(int fd, void *buf, size_t nbytes) { 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 = { session sess = {
.buf = TEST_BUF, .buf = TEST_BUF,
.buf_used = sizeof TEST_BUF, .buf_used = sizeof TEST_BUF,
.sd = 2, .sd = 2,
}; };
char *line; 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_memory_equal(line, TEST_BUF_USED, sizeof(TEST_BUF_USED));
assert_int_equal(ret, 1);
free(line); 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 setup(void **state) { return 0; }
int tear_down(void **state) { return 0; } int tear_down(void **state) { return 0; }
int main(int argc, char **argv) { 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); return cmocka_run_group_tests(tests, setup, tear_down);
} }