changeset 15:08b37039504b

Improved tests * Use `localhost` for connecting which makes sure to resolve to the same address as `bind` does. * Check for slave crashing before attempting to connect. * Improve error message.
author Martin Habovstiak <martin.habovstiak@gmail.com>
date Tue, 22 Dec 2020 13:56:56 +0100
parents 2039b5d39d72
children bc76507dd878
files tests/comm.rs
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/tests/comm.rs	Thu Dec 03 16:46:24 2020 +0100
+++ b/tests/comm.rs	Tue Dec 22 13:56:56 2020 +0100
@@ -12,12 +12,16 @@
 const RESPONSE: &[u8] = b"good";
 
 fn main_master(slave: io::Result<Child>) {
-    let mut slave = slave.expect("failed to run systemd-socket-activate");
+    let mut slave = slave.expect("failed to run a child");
 
     // give slave some time to bind the socket just to be sure
     std::thread::sleep(std::time::Duration::from_secs(5));
 
-    let mut client_socket = std::net::TcpStream::connect("127.0.0.1:4242").expect("Failed to connect to 127.0.0.1:4242");
+    if let Some(exited) = slave.try_wait().expect("failed to check if the child exited") {
+        panic!("child exited unexpectedly: {}", exited);
+    }
+
+    let mut client_socket = std::net::TcpStream::connect("localhost:4242").expect("Failed to connect to 127.0.0.1:4242");
     client_socket.write_all(REQUEST).expect("failed to send data");
     let mut buf = [0u8; RESPONSE.len()];
     client_socket.read_exact(&mut buf).expect("failed to read response");