summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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), _)));
+ }
}