diff options
| -rw-r--r-- | src/process/monitor.rs | 10 | ||||
| -rw-r--r-- | src/process/openvpn.rs | 32 |
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), _))); + } } |
