diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2013-02-12 13:18:00 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2013-03-08 22:19:26 +0100 |
commit | da33a9d7742d45975bd97d33dd8ad04a843e7656 (patch) | |
tree | 15658387462574430ab72281c0a0759ae1060e1c /src/tests/common_tev.c | |
parent | a5077712fc8c24e8cad08207b7b5a6603bde6a7c (diff) | |
download | sssd-da33a9d7742d45975bd97d33dd8ad04a843e7656.tar.gz sssd-da33a9d7742d45975bd97d33dd8ad04a843e7656.tar.xz sssd-da33a9d7742d45975bd97d33dd8ad04a843e7656.zip |
Add utility functions for tests that use sysdb or tevent.
There was shared code for several unit tests that connected to their own
sysdb instance. This patch adds common code to run a generic request to
completion or connect to a test sysdb.
Diffstat (limited to 'src/tests/common_tev.c')
-rw-r--r-- | src/tests/common_tev.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/tests/common_tev.c b/src/tests/common_tev.c new file mode 100644 index 000000000..83ba9fd75 --- /dev/null +++ b/src/tests/common_tev.c @@ -0,0 +1,60 @@ +/* + Authors: + Jakub Hrozek <jhrozek@redhat.com> + + Copyright (C) 2013 Red Hat + + SSSD tests: Common utilities for tests that exercise domains + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include <tevent.h> +#include <talloc.h> +#include <errno.h> + +#include "tests/common.h" + +struct tevent_req * +test_request_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, errno_t err) +{ + struct tevent_req *req; + int state; + + req = tevent_req_create(mem_ctx, &state, int); + if (!req) return NULL; + + if (err == EOK) { + tevent_req_done(req); + } else { + tevent_req_error(req, err); + } + tevent_req_post(req, ev); + return req; +} + +errno_t test_request_recv(struct tevent_req *req) +{ + TEVENT_REQ_RETURN_ON_ERROR(req); + + return EOK; +} + +int test_ev_loop(struct sss_test_ctx *tctx) +{ + while (!tctx->done) + tevent_loop_once(tctx->ev); + + return tctx->error; +} |