echo server tests for moonpool-lwt

This commit is contained in:
Simon Cruanes 2024-02-20 18:34:35 -05:00
parent 004f5fc82b
commit f68f27a4a4
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4
4 changed files with 131 additions and 3 deletions

View file

@ -12,3 +12,14 @@
(rule
(alias runtest)
(action (diff ./output_hash.expected ./output_hash.txt)))
(rule
(targets output_echo.txt)
(deps ./echo_server.exe ./echo_client.exe ./run_echo.sh)
(action
(with-stdout-to %{targets}
(run ./run_echo.sh -n 10 --n-conn=2 -j=4))))
(rule
(alias runtest)
(action (diff ./output_echo.expected ./output_echo.txt)))

View file

@ -2,6 +2,7 @@ module M = Moonpool
module M_lwt = Moonpool_lwt
module Trace = Trace_core
let spf = Printf.sprintf
let ( let@ ) = ( @@ )
let main ~port ~runner ~n ~n_conn () : unit Lwt.t =
@ -26,17 +27,19 @@ let main ~port ~runner ~n ~n_conn () : unit Lwt.t =
M_lwt.TCP_client.with_connect addr @@ fun ic oc ->
let buf = Bytes.create 32 in
for _j = 1 to 100 do
for _j = 1 to 10 do
let _sp =
Trace.enter_manual_sub_span ~parent:_sp ~__FILE__ ~__LINE__
"write.loop"
in
M_lwt.IO_out.output_string oc "hello";
let s = spf "hello %d" _j in
M_lwt.IO_out.output_string oc s;
M_lwt.IO_out.flush oc;
(* read back something *)
M_lwt.IO_in.really_input ic buf 0 (String.length "hello");
M_lwt.IO_in.really_input ic buf 0 (String.length s);
Printf.printf "read: %s\n%!" (Bytes.sub_string buf 0 (String.length s));
Trace.exit_manual_span _sp;
()
done;

View file

@ -0,0 +1,104 @@
run echo client -p 1235 -n 10 --n-conn=2 -j=4
connecting to port 1235
read: hello 1
read: hello 1
listening on port 1235
read: hello 2
read: hello 2
read: hello 3
read: hello 3
read: hello 4
read: hello 4
read: hello 5
read: hello 5
read: hello 6
read: hello 6
read: hello 7
read: hello 7
read: hello 8
read: hello 8
read: hello 9
read: hello 9
read: hello 10
read: hello 10
read: hello 1
read: hello 1
read: hello 2
read: hello 2
read: hello 3
read: hello 3
read: hello 4
read: hello 4
read: hello 5
read: hello 5
read: hello 6
read: hello 6
read: hello 7
read: hello 7
read: hello 8
read: hello 8
read: hello 9
read: hello 9
read: hello 10
read: hello 10
read: hello 1
read: hello 1
read: hello 2
read: hello 2
read: hello 3
read: hello 3
read: hello 4
read: hello 4
read: hello 5
read: hello 5
read: hello 6
read: hello 6
read: hello 7
read: hello 7
read: hello 8
read: hello 8
read: hello 9
read: hello 9
read: hello 10
read: hello 10
read: hello 1
read: hello 1
read: hello 2
read: hello 2
read: hello 3
read: hello 3
read: hello 4
read: hello 4
read: hello 5
read: hello 5
read: hello 6
read: hello 6
read: hello 7
read: hello 7
read: hello 8
read: hello 8
read: hello 9
read: hello 9
read: hello 10
read: hello 10
read: hello 1
read: hello 1
read: hello 2
read: hello 2
read: hello 3
read: hello 3
read: hello 4
read: hello 4
read: hello 5
read: hello 5
read: hello 6
read: hello 6
read: hello 7
read: hello 7
read: hello 8
read: hello 8
read: hello 9
read: hello 9
read: hello 10
read: hello 10
all done

10
test/lwt/run_echo.sh Executable file
View file

@ -0,0 +1,10 @@
#!/bin/bash
PORT=1235
./echo_server.exe -p $PORT &
echo "run echo client -p $PORT $@"
./echo_client.exe -p $PORT $@
kill %1