Mercurial > crates > systemd-socket
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");