aboutsummaryrefslogtreecommitdiff
path: root/tests/perf-server/src
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-06-06 02:28:00 +0200
committerDario Nieuwenhuis <[email protected]>2023-06-06 02:50:57 +0200
commit6701606e4c7811082808271b67caa1cdc9387163 (patch)
treefe47f8b76fe4e74aed0bc7f959d2f04954303c29 /tests/perf-server/src
parent79b982c941576597bd09d585a9bdaa7fce47688a (diff)
cyw43: add perf HIL test.
Diffstat (limited to 'tests/perf-server/src')
-rw-r--r--tests/perf-server/src/main.rs90
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/perf-server/src/main.rs b/tests/perf-server/src/main.rs
new file mode 100644
index 000000000..f6e7efc59
--- /dev/null
+++ b/tests/perf-server/src/main.rs
@@ -0,0 +1,90 @@
1use std::io::{Read, Write};
2use std::net::{TcpListener, TcpStream};
3use std::thread::spawn;
4use std::time::Duration;
5
6use log::info;
7
8fn main() {
9 pretty_env_logger::init();
10 spawn(|| rx_listen());
11 spawn(|| rxtx_listen());
12 tx_listen();
13}
14
15fn tx_listen() {
16 info!("tx: listening on 0.0.0.0:4321");
17 let listener = TcpListener::bind("0.0.0.0:4321").unwrap();
18 loop {
19 let (socket, addr) = listener.accept().unwrap();
20 info!("tx: received connection from: {}", addr);
21 spawn(|| tx_conn(socket));
22 }
23}
24
25fn tx_conn(mut socket: TcpStream) {
26 socket.set_read_timeout(Some(Duration::from_secs(30))).unwrap();
27 socket.set_write_timeout(Some(Duration::from_secs(30))).unwrap();
28
29 let buf = [0; 1024];
30 loop {
31 if let Err(e) = socket.write_all(&buf) {
32 info!("tx: failed to write to socket; err = {:?}", e);
33 return;
34 }
35 }
36}
37
38fn rx_listen() {
39 info!("rx: listening on 0.0.0.0:4322");
40 let listener = TcpListener::bind("0.0.0.0:4322").unwrap();
41 loop {
42 let (socket, addr) = listener.accept().unwrap();
43 info!("rx: received connection from: {}", addr);
44 spawn(|| rx_conn(socket));
45 }
46}
47
48fn rx_conn(mut socket: TcpStream) {
49 socket.set_read_timeout(Some(Duration::from_secs(30))).unwrap();
50 socket.set_write_timeout(Some(Duration::from_secs(30))).unwrap();
51
52 let mut buf = [0; 1024];
53 loop {
54 if let Err(e) = socket.read_exact(&mut buf) {
55 info!("rx: failed to read from socket; err = {:?}", e);
56 return;
57 }
58 }
59}
60
61fn rxtx_listen() {
62 info!("rxtx: listening on 0.0.0.0:4323");
63 let listener = TcpListener::bind("0.0.0.0:4323").unwrap();
64 loop {
65 let (socket, addr) = listener.accept().unwrap();
66 info!("rxtx: received connection from: {}", addr);
67 spawn(|| rxtx_conn(socket));
68 }
69}
70
71fn rxtx_conn(mut socket: TcpStream) {
72 socket.set_read_timeout(Some(Duration::from_secs(30))).unwrap();
73 socket.set_write_timeout(Some(Duration::from_secs(30))).unwrap();
74
75 let mut buf = [0; 1024];
76 loop {
77 match socket.read(&mut buf) {
78 Ok(n) => {
79 if let Err(e) = socket.write_all(&buf[..n]) {
80 info!("rxtx: failed to write to socket; err = {:?}", e);
81 return;
82 }
83 }
84 Err(e) => {
85 info!("rxtx: failed to read from socket; err = {:?}", e);
86 return;
87 }
88 }
89 }
90}