summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/channel.rs6
-rw-r--r--tests/session.rs23
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");
+}