diff options
author | Jakub Jelen <jjelen@redhat.com> | 2018-11-26 13:48:37 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2019-01-09 10:14:56 +0100 |
commit | b3ae5e06ee625ab69cb8541548a7fda1ba807b07 (patch) | |
tree | f07693363a1c77756ce1c9fc7fcae874eb58ef36 | |
parent | d4e5644e217f2a21376adb1ccf6457a1a7e7b44e (diff) | |
download | libssh-b3ae5e06ee625ab69cb8541548a7fda1ba807b07.tar.gz libssh-b3ae5e06ee625ab69cb8541548a7fda1ba807b07.tar.xz libssh-b3ae5e06ee625ab69cb8541548a7fda1ba807b07.zip |
tests: Allow to generate unencrypted PCAP files from testsuite
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
Reviewed-by: Daiki Ueno <dueno@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r-- | tests/client/torture_forward.c | 3 | ||||
-rw-r--r-- | tests/client/torture_request_env.c | 3 | ||||
-rw-r--r-- | tests/client/torture_session.c | 3 | ||||
-rw-r--r-- | tests/client/torture_sftp_benchmark.c | 3 | ||||
-rw-r--r-- | tests/client/torture_sftp_canonicalize_path.c | 3 | ||||
-rw-r--r-- | tests/client/torture_sftp_dir.c | 3 | ||||
-rw-r--r-- | tests/client/torture_sftp_fsync.c | 3 | ||||
-rw-r--r-- | tests/client/torture_sftp_read.c | 3 | ||||
-rw-r--r-- | tests/torture.c | 32 | ||||
-rw-r--r-- | tests/torture.h | 6 | ||||
-rw-r--r-- | tests/unittests/torture_server_x11.c | 2 |
11 files changed, 51 insertions, 13 deletions
diff --git a/tests/client/torture_forward.c b/tests/client/torture_forward.c index 9e0dc93c..dcbdcbdb 100644 --- a/tests/client/torture_forward.c +++ b/tests/client/torture_forward.c @@ -55,7 +55,8 @@ static int session_setup(void **state) rc = setuid(pwd->pw_uid); assert_return_code(rc, errno); - s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER, + s->ssh.session = torture_ssh_session(s, + TORTURE_SSH_SERVER, NULL, TORTURE_SSH_USER_ALICE, NULL); diff --git a/tests/client/torture_request_env.c b/tests/client/torture_request_env.c index 03207a05..21806dfb 100644 --- a/tests/client/torture_request_env.c +++ b/tests/client/torture_request_env.c @@ -55,7 +55,8 @@ static int session_setup(void **state) rc = setuid(pwd->pw_uid); assert_return_code(rc, errno); - s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER, + s->ssh.session = torture_ssh_session(s, + TORTURE_SSH_SERVER, NULL, TORTURE_SSH_USER_ALICE, NULL); diff --git a/tests/client/torture_session.c b/tests/client/torture_session.c index 7ec622cb..b5ed7a62 100644 --- a/tests/client/torture_session.c +++ b/tests/client/torture_session.c @@ -60,7 +60,8 @@ static int session_setup(void **state) rc = setuid(pwd->pw_uid); assert_return_code(rc, errno); - s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER, + s->ssh.session = torture_ssh_session(s, + TORTURE_SSH_SERVER, NULL, TORTURE_SSH_USER_ALICE, NULL); diff --git a/tests/client/torture_sftp_benchmark.c b/tests/client/torture_sftp_benchmark.c index 604b8f27..6b2bea5b 100644 --- a/tests/client/torture_sftp_benchmark.c +++ b/tests/client/torture_sftp_benchmark.c @@ -36,7 +36,8 @@ static int session_setup(void **state) rc = setuid(pwd->pw_uid); assert_return_code(rc, errno); - s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER, + s->ssh.session = torture_ssh_session(s, + TORTURE_SSH_SERVER, NULL, TORTURE_SSH_USER_ALICE, NULL); diff --git a/tests/client/torture_sftp_canonicalize_path.c b/tests/client/torture_sftp_canonicalize_path.c index 517fcc77..8d5f9074 100644 --- a/tests/client/torture_sftp_canonicalize_path.c +++ b/tests/client/torture_sftp_canonicalize_path.c @@ -34,7 +34,8 @@ static int session_setup(void **state) rc = setuid(pwd->pw_uid); assert_return_code(rc, errno); - s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER, + s->ssh.session = torture_ssh_session(s, + TORTURE_SSH_SERVER, NULL, TORTURE_SSH_USER_ALICE, NULL); diff --git a/tests/client/torture_sftp_dir.c b/tests/client/torture_sftp_dir.c index 4ba10670..5b4cf145 100644 --- a/tests/client/torture_sftp_dir.c +++ b/tests/client/torture_sftp_dir.c @@ -34,7 +34,8 @@ static int session_setup(void **state) rc = setuid(pwd->pw_uid); assert_return_code(rc, errno); - s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER, + s->ssh.session = torture_ssh_session(s, + TORTURE_SSH_SERVER, NULL, TORTURE_SSH_USER_ALICE, NULL); diff --git a/tests/client/torture_sftp_fsync.c b/tests/client/torture_sftp_fsync.c index df03135f..ac685b94 100644 --- a/tests/client/torture_sftp_fsync.c +++ b/tests/client/torture_sftp_fsync.c @@ -36,7 +36,8 @@ static int session_setup(void **state) rc = setuid(pwd->pw_uid); assert_return_code(rc, errno); - s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER, + s->ssh.session = torture_ssh_session(s, + TORTURE_SSH_SERVER, NULL, TORTURE_SSH_USER_ALICE, NULL); diff --git a/tests/client/torture_sftp_read.c b/tests/client/torture_sftp_read.c index 5c83552c..2208fbae 100644 --- a/tests/client/torture_sftp_read.c +++ b/tests/client/torture_sftp_read.c @@ -36,7 +36,8 @@ static int session_setup(void **state) rc = setuid(pwd->pw_uid); assert_return_code(rc, errno); - s->ssh.session = torture_ssh_session(TORTURE_SSH_SERVER, + s->ssh.session = torture_ssh_session(s, + TORTURE_SSH_SERVER, NULL, TORTURE_SSH_USER_ALICE, NULL); diff --git a/tests/torture.c b/tests/torture.c index 9899a33b..427c8a6a 100644 --- a/tests/torture.c +++ b/tests/torture.c @@ -244,7 +244,8 @@ int torture_terminate_process(const char *pidfile) return 0; } -ssh_session torture_ssh_session(const char *host, +ssh_session torture_ssh_session(struct torture_state *s, + const char *host, const unsigned int *port, const char *user, const char *password) { @@ -261,6 +262,12 @@ ssh_session torture_ssh_session(const char *host, return NULL; } +#ifdef WITH_PCAP + if (s != NULL && s->plain_pcap != NULL) { + ssh_set_pcap_file(session, s->plain_pcap); + } +#endif /* WITH_PCAP */ + if (ssh_options_set(session, SSH_OPTIONS_HOST, host) < 0) { goto failed; } @@ -497,11 +504,23 @@ void torture_setup_socket_dir(void **state) struct torture_state *s; const char *p; size_t len; - char *env = getenv("TORTURE_GENERATE_PCAP"); + char *env = NULL; + int rc; - s = malloc(sizeof(struct torture_state)); + s = calloc(1, sizeof(struct torture_state)); assert_non_null(s); +#ifdef WITH_PCAP + env = getenv("TORTURE_PLAIN_PCAP_FILE"); + if (env != NULL && env[0] != '\0') { + s->plain_pcap = ssh_pcap_file_new(); + assert_non_null(s->plain_pcap); + + rc = ssh_pcap_file_open(s->plain_pcap, env); + assert_int_equal(rc, SSH_OK); + } +#endif /* WITH_PCAP */ + s->socket_dir = torture_make_temp_dir(TORTURE_SOCKET_DIR); assert_non_null(s->socket_dir); @@ -533,6 +552,7 @@ void torture_setup_socket_dir(void **state) setenv("SOCKET_WRAPPER_DIR", p, 1); setenv("SOCKET_WRAPPER_DEFAULT_IFACE", "170", 1); + env = getenv("TORTURE_GENERATE_PCAP"); if (env != NULL && env[0] == '1') { setenv("SOCKET_WRAPPER_PCAP_FILE", s->pcap_file, 1); } @@ -781,6 +801,12 @@ void torture_teardown_socket_dir(void **state) strerror(errno)); } } +#ifdef WITH_PCAP + if (s->plain_pcap != NULL) { + ssh_pcap_file_free(s->plain_pcap); + } + s->plain_pcap = NULL; +#endif /* WITH_PCAP */ free(s->srv_config); free(s->socket_dir); diff --git a/tests/torture.h b/tests/torture.h index bdff4deb..5ff5e954 100644 --- a/tests/torture.h +++ b/tests/torture.h @@ -75,6 +75,9 @@ struct torture_state { ssh_session session; struct torture_sftp *tsftp; } ssh; +#ifdef WITH_PCAP + ssh_pcap_file plain_pcap; +#endif }; #ifndef ZERO_STRUCT @@ -93,7 +96,8 @@ int torture_terminate_process(const char *pidfile); */ int torture_libssh_verbosity(void); -ssh_session torture_ssh_session(const char *host, +ssh_session torture_ssh_session(struct torture_state *s, + const char *host, const unsigned int *port, const char *user, const char *password); diff --git a/tests/unittests/torture_server_x11.c b/tests/unittests/torture_server_x11.c index 4395dbf1..d2cb93ab 100644 --- a/tests/unittests/torture_server_x11.c +++ b/tests/unittests/torture_server_x11.c @@ -76,7 +76,7 @@ static void *client_thread(void *arg) { (void)arg; usleep(200); - session = torture_ssh_session("localhost", + session = torture_ssh_session(NULL, "localhost", &test_port, "foo", "bar"); assert_non_null(session); |