diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2014-12-08 17:39:57 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2015-01-15 10:33:01 +0100 |
commit | f3d91181d4ee9da3f8bbf4ddf8782951c0ae46c1 (patch) | |
tree | bac7a56e6bf8d336437396d937f01ed1d04ebd11 /src/tests | |
parent | 0e8a48e38e467b05951d2719956f8c0d5aed76b3 (diff) | |
download | sssd-f3d91181d4ee9da3f8bbf4ddf8782951c0ae46c1.tar.gz sssd-f3d91181d4ee9da3f8bbf4ddf8782951c0ae46c1.tar.xz sssd-f3d91181d4ee9da3f8bbf4ddf8782951c0ae46c1.zip |
UTIL: Unify the fd_nonblocking implementation
The responder and child_common modules each had their own
implementation. Unify it instead and add a unit test.
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Diffstat (limited to 'src/tests')
-rw-r--r-- | src/tests/cmocka/test_child_common.c | 4 | ||||
-rw-r--r-- | src/tests/util-tests.c | 21 |
2 files changed, 23 insertions, 2 deletions
diff --git a/src/tests/cmocka/test_child_common.c b/src/tests/cmocka/test_child_common.c index 7c36abdb5..11e383e52 100644 --- a/src/tests/cmocka/test_child_common.c +++ b/src/tests/cmocka/test_child_common.c @@ -293,8 +293,8 @@ void test_exec_child_echo(void **state) io_fds->write_to_child_fd = child_tctx->pipefd_to_child[1]; close(child_tctx->pipefd_to_child[0]); - fd_nonblocking(io_fds->write_to_child_fd); - fd_nonblocking(io_fds->read_from_child_fd); + sss_fd_nonblocking(io_fds->write_to_child_fd); + sss_fd_nonblocking(io_fds->read_from_child_fd); ret = child_handler_setup(child_tctx->test_ctx->ev, child_pid, NULL, NULL, NULL); diff --git a/src/tests/util-tests.c b/src/tests/util-tests.c index 08e8b8d26..94015d8e1 100644 --- a/src/tests/util-tests.c +++ b/src/tests/util-tests.c @@ -407,6 +407,26 @@ START_TEST(test_sss_filter_sanitize) } END_TEST +START_TEST(test_fd_nonblocking) +{ + int fd; + int flags; + errno_t ret; + + fd = open("/dev/null", O_RDONLY); + fail_unless(fd > 0); + + flags = fcntl(fd, F_GETFL, 0); + fail_if(flags & O_NONBLOCK); + + ret = sss_fd_nonblocking(fd); + fail_unless(ret == EOK); + flags = fcntl(fd, F_GETFL, 0); + fail_unless(flags & O_NONBLOCK); + close(fd); +} +END_TEST + START_TEST(test_size_t_overflow) { fail_unless(!SIZE_T_OVERFLOW(1, 1), "unexpected overflow"); @@ -1020,6 +1040,7 @@ Suite *util_suite(void) tcase_add_test (tc_util, test_check_ipv6_addr); tcase_add_test (tc_util, test_is_host_in_domain); tcase_add_test (tc_util, test_known_service); + tcase_add_test (tc_util, test_fd_nonblocking); tcase_set_timeout(tc_util, 60); TCase *tc_utf8 = tcase_create("utf8"); |