diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2011-02-06 15:33:17 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2011-02-06 16:35:54 +0100 |
commit | 22b1e5bc7c32e24b7b39435af2321ba281018dd6 (patch) | |
tree | 1044323d86bb262961da5f55b3668ef99d9eb693 /tests/client | |
parent | 38d6d38c1fcc9d323a062c413a5c0b6b8ef6590c (diff) | |
download | libssh-22b1e5bc7c32e24b7b39435af2321ba281018dd6.tar.gz libssh-22b1e5bc7c32e24b7b39435af2321ba281018dd6.tar.xz libssh-22b1e5bc7c32e24b7b39435af2321ba281018dd6.zip |
tests: Added test for sftp directory functions.
Diffstat (limited to 'tests/client')
-rw-r--r-- | tests/client/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/client/torture_sftp_dir.c | 67 |
2 files changed, 68 insertions, 0 deletions
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; +} |