diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2015-09-11 16:08:35 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2016-01-14 08:04:49 +0100 |
commit | 4bc6af6c1756c347f46b8a3374d66eb632fad9b7 (patch) | |
tree | aa6717ed1ae9f4174a7c519f7752a4b021c9f12e /tests/client | |
parent | 27834cce2c8e7188165e0aa7014cec12e34cae0f (diff) | |
download | libssh-4bc6af6c1756c347f46b8a3374d66eb632fad9b7.tar.gz libssh-4bc6af6c1756c347f46b8a3374d66eb632fad9b7.tar.xz libssh-4bc6af6c1756c347f46b8a3374d66eb632fad9b7.zip |
tests: Migrate torture_request_env to cwrap test
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'tests/client')
-rw-r--r-- | tests/client/CMakeLists.txt | 4 | ||||
-rw-r--r-- | tests/client/torture_request_env.c | 65 |
2 files changed, 40 insertions, 29 deletions
diff --git a/tests/client/CMakeLists.txt b/tests/client/CMakeLists.txt index cd683d45..e4289d1f 100644 --- a/tests/client/CMakeLists.txt +++ b/tests/client/CMakeLists.txt @@ -2,7 +2,6 @@ project(clienttests C) find_package(socket_wrapper) -add_cmocka_test(torture_request_env torture_request_env.c ${TORTURE_LIBRARY}) if (WITH_SFTP) add_cmocka_test(torture_sftp_static torture_sftp_static.c ${TORTURE_LIBRARY}) add_cmocka_test(torture_sftp_dir torture_sftp_dir.c ${TORTURE_LIBRARY}) @@ -16,7 +15,8 @@ set(LIBSSH_CLIENT_TESTS torture_forward torture_knownhosts torture_proxycommand - torture_session) + torture_session + torture_request_env) foreach(_CLI_TEST ${LIBSSH_CLIENT_TESTS}) add_cmocka_test(${_CLI_TEST} ${_CLI_TEST}.c ${TORTURE_LIBRARY}) diff --git a/tests/client/torture_request_env.c b/tests/client/torture_request_env.c index 345426c6..7e3f632e 100644 --- a/tests/client/torture_request_env.c +++ b/tests/client/torture_request_env.c @@ -24,46 +24,54 @@ #include "torture.h" #include <libssh/libssh.h> -static int setup(void **state) -{ - ssh_session session; - const char *host; - const char *user; - const char *password; - - host = getenv("TORTURE_HOST"); - if (host == NULL) { - host = "localhost"; - } +#include <sys/types.h> +#include <pwd.h> - user = getenv("TORTURE_USER"); - password = getenv("TORTURE_PASSWORD"); +static int sshd_setup(void **state) +{ + torture_setup_sshd_server(state); - session = torture_ssh_session(host, NULL, user, password); + return 0; +} - assert_false(session == NULL); - *state = session; +static int sshd_teardown(void **state) { + torture_teardown_sshd_server(state); return 0; } -static int teardown(void **state) +static int session_setup(void **state) { - ssh_session session = *state; + struct torture_state *s = *state; + struct passwd *pwd; - assert_false(session == NULL); + pwd = getpwnam("bob"); + assert_non_null(pwd); + setuid(pwd->pw_uid); - if (ssh_is_connected(session)) { - ssh_disconnect(session); - } - ssh_free(session); + s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER, + NULL, + TORTURE_SSH_USER_ALICE, + NULL); + assert_non_null(s->ssh.session); + + return 0; +} + +static int session_teardown(void **state) +{ + struct torture_state *s = *state; + + ssh_disconnect(s->ssh.session); + ssh_free(s->ssh.session); return 0; } static void torture_request_env(void **state) { - ssh_session session = *state; + struct torture_state *s = *state; + ssh_session session = s->ssh.session; ssh_channel c; char buffer[4096] = {0}; int nbytes; @@ -83,8 +91,9 @@ static void torture_request_env(void **state) assert_int_equal(rc, SSH_OK); nbytes = ssh_channel_read(c, buffer, sizeof(buffer) - 1, 0); + printf("nbytes=%d\n", nbytes); while (nbytes > 0) { -#if 0 +#if 1 rc = fwrite(buffer, 1, nbytes, stdout); assert_int_equal(rc, nbytes); #endif @@ -105,13 +114,15 @@ int torture_run_tests(void) { int rc; struct CMUnitTest tests[] = { - cmocka_unit_test_setup_teardown(torture_request_env, setup, teardown), + cmocka_unit_test_setup_teardown(torture_request_env, + session_setup, + session_teardown), }; ssh_init(); torture_filter_tests(tests); - rc = cmocka_run_group_tests(tests, NULL, NULL); + rc = cmocka_run_group_tests(tests, sshd_setup, sshd_teardown); ssh_finalize(); return rc; |