aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaytan Laats <laytanlaats@hotmail.com>2024-02-20 23:40:57 +0100
committerLaytan Laats <laytanlaats@hotmail.com>2024-02-20 23:45:15 +0100
commit9e417592e34ccb94b717c32aba96f2a425efdc33 (patch)
tree1f310586b837c9c88e044d4583234c0d2d0029ea
parentbdd6a86d7383d75b9d682481e84081ee15e05d06 (diff)
Add logs to flaky test
-rw-r--r--tests/core/net/test_core_net.odin39
1 files changed, 33 insertions, 6 deletions
diff --git a/tests/core/net/test_core_net.odin b/tests/core/net/test_core_net.odin
index 167b7e82a..7f52d33dc 100644
--- a/tests/core/net/test_core_net.odin
+++ b/tests/core/net/test_core_net.odin
@@ -375,6 +375,7 @@ client_sends_server_data :: proc(t: ^testing.T) {
RECV_TIMEOUT :: time.Duration(1 * time.Second)
Thread_Data :: struct {
+ t: ^testing.T,
skt: net.Any_Socket,
err: net.Network_Error,
tid: ^thread.Thread,
@@ -384,58 +385,84 @@ client_sends_server_data :: proc(t: ^testing.T) {
wg: ^sync.Wait_Group,
}
- thread_data := [2]Thread_Data{}
-
- wg: sync.Wait_Group
- thread_data[0].wg = &wg
- thread_data[1].wg = &wg
-
tcp_client :: proc(thread_data: rawptr) {
r := transmute(^Thread_Data)thread_data
+
+ log(r.t, "tcp_client entry")
+ defer log(r.t, "tcp_client exit")
+
defer sync.wait_group_done(r.wg)
+ log(r.t, "tcp_client dial")
if r.skt, r.err = net.dial_tcp(ENDPOINT); r.err != nil {
+ log(r.t, r.err)
return
}
net.set_option(r.skt, .Send_Timeout, SEND_TIMEOUT)
+ log(r.t, "tcp_client send")
_, r.err = net.send(r.skt, transmute([]byte)CONTENT)
}
tcp_server :: proc(thread_data: rawptr) {
r := transmute(^Thread_Data)thread_data
+
+ log(r.t, "tcp_server entry")
+ defer log(r.t, "tcp_server exit")
+
defer sync.wait_group_done(r.wg)
+ log(r.t, "tcp_server listen")
if r.skt, r.err = net.listen_tcp(ENDPOINT); r.err != nil {
+ log(r.t, r.err)
return
}
+ log(r.t, "tcp_server accept")
client: net.TCP_Socket
if client, _, r.err = net.accept_tcp(r.skt.(net.TCP_Socket)); r.err != nil {
+ log(r.t, r.err)
return
}
defer net.close(client)
net.set_option(client, .Receive_Timeout, RECV_TIMEOUT)
+ log(r.t, "tcp_server recv")
r.length, r.err = net.recv_tcp(client, r.data[:])
return
}
+ thread_data := [2]Thread_Data{}
+
+ wg: sync.Wait_Group
+
sync.wait_group_add(&wg, 2)
+
+ thread_data[0].t = t
+ thread_data[0].wg = &wg
thread_data[0].tid = thread.create_and_start_with_data(&thread_data[0], tcp_server, context)
+
+ thread_data[1].t = t
+ thread_data[1].wg = &wg
thread_data[1].tid = thread.create_and_start_with_data(&thread_data[1], tcp_client, context)
defer {
+ log(t, "closing server socket")
net.close(thread_data[0].skt)
+ log(t, "destroying server thread")
thread.destroy(thread_data[0].tid)
+ log(t, "closing client socket")
net.close(thread_data[1].skt)
+ log(t, "destroying client thread")
thread.destroy(thread_data[1].tid)
}
+ log(t, "waiting for threads to finish")
sync.wait_group_wait(&wg)
+ log(t, "threads finished")
okay := thread_data[0].err == nil && thread_data[1].err == nil
msg := fmt.tprintf("Expected client and server to return `nil`, got %v and %v", thread_data[0].err, thread_data[1].err)