Mercurial > crates > systemd-socket
comparison tests/comm.rs @ 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 | 372afb9a700f |
children | 1941e9d9819c |
comparison
equal
deleted
inserted
replaced
14:2039b5d39d72 | 15:08b37039504b |
---|---|
10 | 10 |
11 const REQUEST: &[u8] = b"orange coin"; | 11 const REQUEST: &[u8] = b"orange coin"; |
12 const RESPONSE: &[u8] = b"good"; | 12 const RESPONSE: &[u8] = b"good"; |
13 | 13 |
14 fn main_master(slave: io::Result<Child>) { | 14 fn main_master(slave: io::Result<Child>) { |
15 let mut slave = slave.expect("failed to run systemd-socket-activate"); | 15 let mut slave = slave.expect("failed to run a child"); |
16 | 16 |
17 // give slave some time to bind the socket just to be sure | 17 // give slave some time to bind the socket just to be sure |
18 std::thread::sleep(std::time::Duration::from_secs(5)); | 18 std::thread::sleep(std::time::Duration::from_secs(5)); |
19 | 19 |
20 let mut client_socket = std::net::TcpStream::connect("127.0.0.1:4242").expect("Failed to connect to 127.0.0.1:4242"); | 20 if let Some(exited) = slave.try_wait().expect("failed to check if the child exited") { |
21 panic!("child exited unexpectedly: {}", exited); | |
22 } | |
23 | |
24 let mut client_socket = std::net::TcpStream::connect("localhost:4242").expect("Failed to connect to 127.0.0.1:4242"); | |
21 client_socket.write_all(REQUEST).expect("failed to send data"); | 25 client_socket.write_all(REQUEST).expect("failed to send data"); |
22 let mut buf = [0u8; RESPONSE.len()]; | 26 let mut buf = [0u8; RESPONSE.len()]; |
23 client_socket.read_exact(&mut buf).expect("failed to read response"); | 27 client_socket.read_exact(&mut buf).expect("failed to read response"); |
24 assert_eq!(buf, RESPONSE); | 28 assert_eq!(buf, RESPONSE); |
25 | 29 |