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 +#include +#include +#include + +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; + struct passwd *pwd; - host = getenv("TORTURE_HOST"); - if (host == NULL) { - host = "localhost"; - } + pwd = getpwnam("bob"); + assert_non_null(pwd); + setuid(pwd->pw_uid); - user = getenv("TORTURE_USER"); - password = getenv("TORTURE_PASSWORD"); - - 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. */