diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/channel.rs | 6 | ||||
-rw-r--r-- | tests/session.rs | 23 |
2 files changed, 23 insertions, 6 deletions
diff --git a/tests/channel.rs b/tests/channel.rs index 2344cce..21a678f 100644 --- a/tests/channel.rs +++ b/tests/channel.rs @@ -56,15 +56,9 @@ fn shell() { #[test] fn setenv() { let (_tcp, sess) = ::authed_session(); - { let mut channel = sess.channel_session().unwrap(); let _ = channel.setenv("FOO", "BAR"); channel.close().unwrap(); - drop(channel); - } - sess.disconnect(None, "lol", None).unwrap(); - drop(sess); - drop(_tcp); } #[test] diff --git a/tests/session.rs b/tests/session.rs index 4c8f907..e3275d1 100644 --- a/tests/session.rs +++ b/tests/session.rs @@ -1,4 +1,5 @@ use std::os; +use std::io::{mod, File, TempDir}; use ssh2::{mod, Session}; @@ -48,3 +49,25 @@ fn keepalive() { sess.keepalive_set(false, 10).unwrap(); sess.keepalive_send().unwrap(); } + +#[test] +fn scp_recv() { + let (_tcp, sess) = ::authed_session(); + let (mut ch, _) = sess.scp_recv(&Path::new(".ssh/authorized_keys")).unwrap(); + let data = ch.read_to_string().unwrap(); + let p = Path::new(os::getenv("HOME").unwrap()).join(".ssh/authorized_keys"); + let expected = File::open(&p).read_to_string().unwrap(); + assert!(data == expected); +} + +#[test] +fn scp_send() { + let td = TempDir::new("test").unwrap(); + let (_tcp, sess) = ::authed_session(); + let mut ch = sess.scp_send(&td.path().join("foo"), + io::UserFile, 6, None).unwrap(); + ch.write(b"foobar").unwrap(); + drop(ch); + let actual = File::open(&td.path().join("foo")).read_to_end().unwrap(); + assert_eq!(actual.as_slice(), b"foobar"); +} |