My agentic slop goes here. Not intended for anyone else!
1(** Simple test to debug connection issues *) 2 3open Eio.Std 4 5let () = 6 Logs.set_reporter (Logs_fmt.reporter ()); 7 Logs.set_level (Some Logs.Debug); 8 Logs.Src.set_level Conpool.src (Some Logs.Debug); 9 10 Eio_main.run @@ fun env -> 11 Switch.run @@ fun sw -> 12 13 traceln "Starting simple server on 127.0.0.1:9000"; 14 15 (* Start a simple echo server *) 16 let raw_bytes = Bytes.create 4 in 17 Bytes.set raw_bytes 0 (Char.chr 127); 18 Bytes.set raw_bytes 1 (Char.chr 0); 19 Bytes.set raw_bytes 2 (Char.chr 0); 20 Bytes.set raw_bytes 3 (Char.chr 1); 21 let ipaddr = Eio.Net.Ipaddr.of_raw (Bytes.to_string raw_bytes) in 22 23 let socket = Eio.Net.listen env#net ~sw ~reuse_addr:true ~backlog:10 24 (`Tcp (ipaddr, 9000)) 25 in 26 27 Eio.Fiber.fork ~sw (fun () -> 28 Eio.Net.accept_fork socket ~sw ~on_error:raise (fun flow _addr -> 29 traceln "Server: accepted connection"; 30 let buf = Eio.Buf_read.of_flow flow ~max_size:1024 in 31 let line = Eio.Buf_read.line buf in 32 traceln "Server: received: %s" line; 33 Eio.Flow.copy_string (line ^ "\n") flow; 34 Eio.Flow.close flow 35 ) 36 ); 37 38 Eio.Time.sleep env#clock 0.1; 39 40 traceln "Creating connection pool"; 41 let pool = Conpool.create ~sw ~net:env#net ~clock:env#clock () in 42 43 traceln "Testing connection"; 44 let endpoint = Conpool.Endpoint.make ~host:"127.0.0.1" ~port:9000 in 45 46 let response = Conpool.with_connection pool endpoint (fun flow -> 47 traceln "Client: sending message"; 48 Eio.Flow.copy_string "test message\n" flow; 49 let buf = Eio.Buf_read.of_flow flow ~max_size:1024 in 50 let resp = Eio.Buf_read.line buf in 51 traceln "Client: received: %s" resp; 52 resp 53 ) in 54 55 traceln "Response: %s" response; 56 traceln "Test passed!"