diff options
author | Jakub Jelen <jjelen@redhat.com> | 2018-10-02 16:26:39 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-10-05 12:09:45 +0200 |
commit | 3d70d4f08dffd8bcfd3848c897680c385f55c3d0 (patch) | |
tree | 208c9982e70e5860cce921d381d2abfb21eb5594 | |
parent | bade29d3d520849f1ba7522e0a86c8c62346494e (diff) | |
download | libssh-3d70d4f08dffd8bcfd3848c897680c385f55c3d0.tar.gz libssh-3d70d4f08dffd8bcfd3848c897680c385f55c3d0.tar.xz libssh-3d70d4f08dffd8bcfd3848c897680c385f55c3d0.zip |
Assorted changes to make torture_request_env pass
Cherry-picked from the following commit:
4bc6af6c1756c347f46b8a3374d66eb632fad9b7
-rw-r--r-- | tests/client/CMakeLists.txt | 4 | ||||
-rw-r--r-- | tests/client/torture_request_env.c | 39 | ||||
-rw-r--r-- | tests/torture.h | 2 |
3 files changed, 32 insertions, 13 deletions
diff --git a/tests/client/CMakeLists.txt b/tests/client/CMakeLists.txt index d1f895bc..c39adab5 100644 --- a/tests/client/CMakeLists.txt +++ b/tests/client/CMakeLists.txt @@ -5,7 +5,6 @@ add_cmocka_test(torture_connect torture_connect.c ${TORTURE_LIBRARY}) add_cmocka_test(torture_proxycommand torture_proxycommand.c ${TORTURE_LIBRARY}) add_cmocka_test(torture_session torture_session.c ${TORTURE_LIBRARY}) add_cmocka_test(torture_forward torture_forward.c ${TORTURE_LIBRARY}) -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}) @@ -14,7 +13,8 @@ endif (WITH_SFTP) set(LIBSSH_CLIENT_TESTS torture_algorithms - torture_knownhosts) + torture_knownhosts + 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 5296f7d2..11526cad 100644 --- a/tests/client/torture_request_env.c +++ b/tests/client/torture_request_env.c @@ -24,22 +24,36 @@ #include "torture.h" #include <libssh/libssh.h> +#include <errno.h> +#include <sys/types.h> +#include <pwd.h> + +static int sshd_setup(void **state) +{ + torture_setup_sshd_server(state); + + return 0; +} + +static int sshd_teardown(void **state) { + torture_teardown_sshd_server(state); + + return 0; +} + static void setup(void **state) { ssh_session session; - const char *host; - const char *user; - const char *password; - - host = getenv("TORTURE_HOST"); - if (host == NULL) { - host = "localhost"; - } + struct passwd *pwd; - user = getenv("TORTURE_USER"); - password = getenv("TORTURE_PASSWORD"); + pwd = getpwnam("bob"); + assert_non_null(pwd); + setuid(pwd->pw_uid); - session = torture_ssh_session(host, NULL, user, password); + session = torture_ssh_session(TORTURE_SSH_SERVER, + NULL, + TORTURE_SSH_USER_ALICE, + NULL); assert_false(session == NULL); *state = session; @@ -99,6 +113,7 @@ static void torture_request_env(void **state) int torture_run_tests(void) { int rc; + struct torture_state *s = NULL; UnitTest tests[] = { unit_test_setup_teardown(torture_request_env, setup, teardown), @@ -107,7 +122,9 @@ int torture_run_tests(void) { ssh_init(); torture_filter_tests(tests); + sshd_setup((void **)&s); rc = run_tests(tests); + sshd_teardown((void **)&s); ssh_finalize(); return rc; diff --git a/tests/torture.h b/tests/torture.h index 6d804afd..2dc3fb5c 100644 --- a/tests/torture.h +++ b/tests/torture.h @@ -48,6 +48,8 @@ #define TORTURE_SSH_SERVER "127.0.0.10" +#define TORTURE_SSH_USER_ALICE "alice" + #define TORTURE_TESTKEY_PASSWORD "libssh-rocks" /* Used by main to communicate with parse_opt. */ |