diff --git a/internal/testutil/net.go b/internal/testutil/net.go new file mode 100644 index 00000000..f7484d6f --- /dev/null +++ b/internal/testutil/net.go @@ -0,0 +1,24 @@ +package testutil + +import ( + "net" + "testing" +) + +func AllocOpenBindAddr(t *testing.T) string { + t.Helper() + + listener, err := net.Listen("tcp", ":0") + if err != nil { + t.Fatalf("failed to listen: %v", err) + } + defer listener.Close() + + // Get the port number from the listener + _, port, err := net.SplitHostPort(listener.Addr().String()) + if err != nil { + t.Fatalf("failed to split host and port: %v", err) + } + + return "127.0.0.1:" + port +}