diff --git a/net/rcon_test.go b/net/rcon_test.go index e2a45bc..4cf857c 100644 --- a/net/rcon_test.go +++ b/net/rcon_test.go @@ -6,46 +6,45 @@ import ( ) func Test(t *testing.T) { - p := make(chan int, 1) - go server(t, p) - <-p + c := make(chan int, 1) + go server(t, c) + <-c client(t) + <-c } -func server(t *testing.T, prepare chan<- int) { +func server(t *testing.T, c chan<- int) { l, err := ListenRCON("localhost:25575") if err != nil { t.Fatal(err) } defer l.Close() - prepare <- 1 + c <- 1 // prepared - for { - conn, err := l.Accept() - if err != nil { - t.Fatal(err) - } - go func(conn RCONServerConn) { - err := conn.AcceptLogin("RightPassword") - if err != nil { - t.Fatal("password wrong") - } - - for { - cmd, err := conn.AcceptCmd() - if err != nil { - t.Log(err) - return - } - resp := handleCommand(cmd) - err = conn.RespCmd(resp) - if err != nil { - t.Fatal(err) - } - } - }(conn) + conn, err := l.Accept() + if err != nil { + t.Fatal(err) } + + err = conn.AcceptLogin("RightPassword") + if err != nil { + t.Fatal("password wrong") + } + + cmd, err := conn.AcceptCmd() + if err != nil { + t.Log(err) + return + } + + resp := handleCommand(cmd) + err = conn.RespCmd(resp) + if err != nil { + t.Fatal(err) + } + + c <- 2 // finished } func handleCommand(cmd string) (resp string) {