testing: augment of session_do_read
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user