package test import ( "os" "path/filepath" "strconv" "tunnel/pkg/client" "tunnel/pkg/server" ) func getSocketPath() string { s := "tunnel.test." + strconv.Itoa(os.Getpid()) return filepath.Join(os.TempDir(), s) } func newClientServer() (*client.Client, *server.Server, error) { socket := getSocketPath() s, err := server.New(socket) if err != nil { return nil, nil, err } go s.Serve() c, err := client.New(socket) if err != nil { s.Stop() return nil, nil, err } return c, s, nil }