summaryrefslogtreecommitdiffstats
path: root/src/tests/cmocka/dummy_child.c
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2015-01-13 21:44:21 +0100
committerJakub Hrozek <jhrozek@redhat.com>2015-01-15 10:32:54 +0100
commit44703b84feaafa4f0a4f8df11c5a503dcf48616e (patch)
treeb88986fbedf4e2f1cf273c0917e84c3a5c2f376d /src/tests/cmocka/dummy_child.c
parentdc7d8ab0f796239338ea67cf6698e0bc6b619174 (diff)
downloadsssd-44703b84feaafa4f0a4f8df11c5a503dcf48616e.tar.gz
sssd-44703b84feaafa4f0a4f8df11c5a503dcf48616e.tar.xz
sssd-44703b84feaafa4f0a4f8df11c5a503dcf48616e.zip
TESTS: Cover child_common.c with unit tests
The module wasn't tested properly, which made it harder to patch it Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Diffstat (limited to 'src/tests/cmocka/dummy_child.c')
-rw-r--r--src/tests/cmocka/dummy_child.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/tests/cmocka/dummy_child.c b/src/tests/cmocka/dummy_child.c
index 057fa6450..3f79ca837 100644
--- a/src/tests/cmocka/dummy_child.c
+++ b/src/tests/cmocka/dummy_child.c
@@ -35,6 +35,10 @@ int main(int argc, const char *argv[])
int opt;
int debug_fd = -1;
poptContext pc;
+ ssize_t len;
+ ssize_t written;
+ errno_t ret;
+ uint8_t buf[IN_BUF_SIZE];
const char *action = NULL;
const char *guitar;
const char *drums;
@@ -80,6 +84,31 @@ int main(int argc, const char *argv[])
DEBUG(SSSDBG_CRIT_FAILURE, "This band sounds weird\n");
_exit(1);
}
+ } else if (strcasecmp(action, "echo") == 0) {
+ errno = 0;
+ len = sss_atomic_read_s(STDIN_FILENO, buf, IN_BUF_SIZE);
+ if (len == -1) {
+ ret = errno;
+ DEBUG(SSSDBG_CRIT_FAILURE, "read failed [%d][%s].\n", ret, strerror(ret));
+ _exit(1);
+ }
+ close(STDIN_FILENO);
+
+ errno = 0;
+ written = sss_atomic_write_s(3, buf, len);
+ if (written == -1) {
+ ret = errno;
+ DEBUG(SSSDBG_CRIT_FAILURE, "write failed [%d][%s].\n", ret,
+ strerror(ret));
+ _exit(1);
+ }
+ close(STDOUT_FILENO);
+
+ if (written != len) {
+ DEBUG(SSSDBG_CRIT_FAILURE, "Expected to write %zu bytes, wrote %zu\n",
+ len, written);
+ _exit(1);
+ }
}
}