diff options
Diffstat (limited to 'tests/unittests/torture_channel.c')
-rw-r--r-- | tests/unittests/torture_channel.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/unittests/torture_channel.c b/tests/unittests/torture_channel.c new file mode 100644 index 0000000..5bf34fd --- /dev/null +++ b/tests/unittests/torture_channel.c @@ -0,0 +1,48 @@ +#define LIBSSH_STATIC +#include <libssh/priv.h> + +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> + +#include "torture.h" +#include "channels.c" + +static void torture_channel_select(void **state) +{ + fd_set readfds; + int fd; + int rc; + int i; + + (void)state; /* unused */ + + fd = open("/dev/null", 0); + assert_true(fd > 2); + + FD_SET(fd, &readfds); + + for (i = 0; i < 10; i++) { + ssh_channel cin[1] = { NULL, }; + ssh_channel cout[1] = { NULL, }; + struct timeval tv = { .tv_sec = 0, .tv_usec = 1000 }; + + rc = ssh_select(cin, cout, fd + 1, &readfds, &tv); + assert_int_equal(rc, SSH_OK); + } + + close(fd); +} + +int torture_run_tests(void) { + int rc; + const UnitTest tests[] = { + unit_test(torture_channel_select), + }; + + ssh_init(); + rc = run_tests(tests); + ssh_finalize(); + + return rc; +} |