The first thing to try is to make sure that everything is getting flushed. For temporary debugging messages I strongly recommend just using [Core.Std.eprintf "<message>\n%!"].On 16 June 2015 at 16:03, Kenneth Adam Miller <kennethadammiller@gmail.com> wrote:I'm having trouble with OCaml Async. I wrote a small server with it, and right now I'm trying to unit test that server. Here's my code for the server:
let _main ()=
print_endline "Server running";
let handler = print_endline in
let socket = Tcp.on_port 5554 in
let server = Tcp.Server.create socket (fun addr r w ->
(Reader.contents r) >>| handler; (Writer.write w "got it")) in
serverIn my unit test code I have:
let test_shutdown test_ctxt = Thread_safe.block_on_async_exn (fun () -> (
print_endline "test_shutdown";
let server = Server._main () in
server >>= fun server ->
let where = Tcp.to_host_and_port "127.0.0.1" 5554 in
Tcp.connect where >>= fun s ->
let socket, r, w = s in
ignore (Writer.write w "kill");
ignore (Writer.flushed w);
(Reader.recv r >>> function
| `Ok result -> print_endline ("writing shutdown to server" ^ result)
| `Eof -> ());
return ()
)); ()I see test_shutdown and Server running, but not sign of "writing shutdown to server" or even "got it"; why isn't my server or even any of the connection executing?