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;
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);
}
+2 -2
View File
@@ -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)
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
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);
}