summaryrefslogtreecommitdiffhomepage
path: root/src/process
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2017-03-10 10:30:04 +0100
committerLinus Färnstrand <linus@mullvad.net>2017-03-10 10:30:04 +0100
commitf4424ce56f5b08aa9ccbaa6d2d9660244164345c (patch)
tree6822ae4f23e00fd0635bcb899d4aeda078e409a9 /src/process
parentf2cc9fddc38eb7e3c75b2dccff8f135d30425c4d (diff)
parent2452184f6c68b8c43d4a3d061a34485942af4685 (diff)
downloadmullvadvpn-f4424ce56f5b08aa9ccbaa6d2d9660244164345c.tar.xz
mullvadvpn-f4424ce56f5b08aa9ccbaa6d2d9660244164345c.zip
Merge branch 'add-tests'
Diffstat (limited to 'src/process')
-rw-r--r--src/process/monitor.rs10
-rw-r--r--src/process/openvpn.rs32
2 files changed, 40 insertions, 2 deletions
diff --git a/src/process/monitor.rs b/src/process/monitor.rs
index 8caac5cc79..070cbdf196 100644
--- a/src/process/monitor.rs
+++ b/src/process/monitor.rs
@@ -140,7 +140,7 @@ impl<S: ChildSpawner> Drop for ChildMonitor<S> {
#[cfg(test)]
-mod child_monitor {
+mod child_monitor_tests {
use super::*;
use std::io;
use std::process::{ChildStdout, ChildStderr};
@@ -256,4 +256,12 @@ mod child_monitor {
assert!(testee.stop().is_ok());
assert_event!(rx, Ok(true));
}
+
+ #[test]
+ fn stop_without_start() {
+ let spawner = MockChildSpawner::new(Some(MockChild::alive_until_kill()));
+ let testee = ChildMonitor::new(spawner);
+
+ assert_matches!(testee.stop(), Err(Error(ErrorKind::InvalidState, _)));
+ }
}
diff --git a/src/process/openvpn.rs b/src/process/openvpn.rs
index a6af4742c3..b6d82f02a9 100644
--- a/src/process/openvpn.rs
+++ b/src/process/openvpn.rs
@@ -228,7 +228,7 @@ impl OpenVpnMonitor {
#[cfg(test)]
-mod tests {
+mod openvpn_command_tests {
use super::OpenVpnCommand;
use net::RemoteAddr;
use std::ffi::OsString;
@@ -277,4 +277,34 @@ mod tests {
assert!(testee_args.contains(&OsString::from("127.0.0.1")));
assert!(testee_args.contains(&OsString::from("99")));
}
+
+ #[test]
+ fn passes_plugin_path() {
+ let path = "./a/path";
+ let testee_args = OpenVpnCommand::new("").plugin(path, vec![]).get_arguments();
+ assert!(testee_args.contains(&OsString::from("./a/path")));
+ }
+
+ #[test]
+ fn passes_plugin_args() {
+ let args = vec![String::from("123"), String::from("cde")];
+ let testee_args = OpenVpnCommand::new("").plugin("", args).get_arguments();
+ assert!(testee_args.contains(&OsString::from("123")));
+ assert!(testee_args.contains(&OsString::from("cde")));
+ }
+}
+
+
+#[cfg(test)]
+mod openvpn_monitor_tests {
+ use super::*;
+
+ #[test]
+ fn stop_without_start() {
+ let command = OpenVpnCommand::new("");
+ let testee = OpenVpnMonitor::new(command, "");
+
+ use super::super::monitor::ErrorKind::InvalidState as MInvalidState;
+ assert_matches!(testee.stop(), Err(Error(ErrorKind::ChildMonitorError(MInvalidState), _)));
+ }
}