From 22b1e5bc7c32e24b7b39435af2321ba281018dd6 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sun, 6 Feb 2011 15:33:17 +0100 Subject: tests: Added test for sftp directory functions. --- tests/client/CMakeLists.txt | 1 + tests/client/torture_sftp_dir.c | 67 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 tests/client/torture_sftp_dir.c (limited to 'tests/client') diff --git a/tests/client/CMakeLists.txt b/tests/client/CMakeLists.txt index 820df17..cfce09e 100644 --- a/tests/client/CMakeLists.txt +++ b/tests/client/CMakeLists.txt @@ -7,4 +7,5 @@ add_cmockery_test(torture_knownhosts torture_knownhosts.c ${TORTURE_LIBRARY}) add_cmockery_test(torture_proxycommand torture_proxycommand.c ${TORTURE_LIBRARY}) if (WITH_SFTP) add_cmockery_test(torture_sftp_static torture_sftp_static.c ${TORTURE_LIBRARY}) + add_cmockery_test(torture_sftp_dir torture_sftp_dir.c ${TORTURE_LIBRARY}) endif (WITH_SFTP) diff --git a/tests/client/torture_sftp_dir.c b/tests/client/torture_sftp_dir.c new file mode 100644 index 0000000..68e5984 --- /dev/null +++ b/tests/client/torture_sftp_dir.c @@ -0,0 +1,67 @@ +#define LIBSSH_STATIC + +#include "torture.h" +#include "sftp.c" + +static void setup(void **state) { + ssh_session session; + struct torture_sftp *t; + char *host; + char *user; + char *password; + + host = getenv("TORTURE_HOST"); + if (host == NULL) { + host = (char *) "localhost"; + } + + user = getenv("TORTURE_USER"); + password = getenv("TORTURE_PASSWORD"); + + session = torture_ssh_session(host, user, password); + t = torture_sftp_session(session); + assert_false(t == NULL); + + *state = t; +} + +static void teardown(void **state) { + struct torture_sftp *t = *state; + + torture_rmdirs(t->testdir); + torture_sftp_close(t); +} + +static void torture_sftp_mkdir(void **state) { + struct torture_sftp *t = *state; + char tmpdir[128]; + int rc; + + snprintf(tmpdir, sizeof(tmpdir), "%s/mkdir_test", t->testdir); + + rc = sftp_mkdir(t->sftp, tmpdir, 0755); + assert_true(rc == 0); + + /* check if it really has been created */ + assert_true(torture_isdir(tmpdir)); + + rc = sftp_rmdir(t->sftp, tmpdir); + assert_true(rc == 0); + + /* check if it has been deleted */ + assert_false(torture_isdir(tmpdir)); +} + +int torture_run_tests(void) { + int rc; + const UnitTest tests[] = { + unit_test_setup_teardown(torture_sftp_mkdir, setup, teardown) + }; + + ssh_init(); + + rc = run_tests(tests); + ssh_finalize(); + + return rc; +} -- cgit v1.2.3