comparison tests/comm.rs @ 28:cfef4593e207

Run `cargo fmt`.
author Paul Fisher <paul@pfish.zone>
date Sat, 19 Apr 2025 01:33:50 -0400
parents 1941e9d9819c
children
comparison
equal deleted inserted replaced
27:85b0f4a7303d 28:cfef4593e207
1 use std::process::Child;
2 use std::ffi::OsStr; 1 use std::ffi::OsStr;
3 use std::io::{self, Read, Write}; 2 use std::io::{self, Read, Write};
3 use std::process::Child;
4 4
5 pub trait Test { 5 pub trait Test {
6 const SOCKET_ADDR: &'static str; 6 const SOCKET_ADDR: &'static str;
7 7
8 fn spawn_slave(program_name: &OsStr) -> io::Result<Child>; 8 fn spawn_slave(program_name: &OsStr) -> io::Result<Child>;
15 let mut slave = slave.expect("failed to run a child"); 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 if let Some(exited) = slave.try_wait().expect("failed to check if the child exited") { 20 if let Some(exited) = slave
21 .try_wait()
22 .expect("failed to check if the child exited")
23 {
21 panic!("child exited unexpectedly: {}", exited); 24 panic!("child exited unexpectedly: {}", exited);
22 } 25 }
23 26
24 let mut client_socket = std::net::TcpStream::connect("localhost:4242").expect("Failed to connect to 127.0.0.1:4242"); 27 let mut client_socket = std::net::TcpStream::connect("localhost:4242")
25 client_socket.write_all(REQUEST).expect("failed to send data"); 28 .expect("Failed to connect to 127.0.0.1:4242");
29 client_socket
30 .write_all(REQUEST)
31 .expect("failed to send data");
26 let mut buf = [0u8; RESPONSE.len()]; 32 let mut buf = [0u8; RESPONSE.len()];
27 client_socket.read_exact(&mut buf).expect("failed to read response"); 33 client_socket
34 .read_exact(&mut buf)
35 .expect("failed to read response");
28 assert_eq!(buf, RESPONSE); 36 assert_eq!(buf, RESPONSE);
29 37
30 let status = slave.wait().expect("faild to wait for slave"); 38 let status = slave.wait().expect("faild to wait for slave");
31 if !status.success() { 39 if !status.success() {
32 panic!("slave did not exit with succcess, status: {}", status); 40 panic!("slave did not exit with succcess, status: {}", status);
47 .bind() 55 .bind()
48 .expect("failed to bind"); 56 .expect("failed to bind");
49 57
50 let (mut client_socket, _) = socket.accept().expect("failed to accept"); 58 let (mut client_socket, _) = socket.accept().expect("failed to accept");
51 let mut buf = [0u8; REQUEST.len()]; 59 let mut buf = [0u8; REQUEST.len()];
52 client_socket.read_exact(&mut buf).expect("failed to read response"); 60 client_socket
61 .read_exact(&mut buf)
62 .expect("failed to read response");
53 assert_eq!(buf, REQUEST); 63 assert_eq!(buf, REQUEST);
54 client_socket.write_all(RESPONSE).expect("failed to send data"); 64 client_socket
65 .write_all(RESPONSE)
66 .expect("failed to send data");
55 } 67 }
56 68
57 pub fn main<T: Test>() { 69 pub fn main<T: Test>() {
58 let mut args = std::env::args_os(); 70 let mut args = std::env::args_os();
59 let program_name = args.next().expect("missing program name"); 71 let program_name = args.next().expect("missing program name");