Improved rcon testing
This commit is contained in:
@ -6,46 +6,45 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Test(t *testing.T) {
|
func Test(t *testing.T) {
|
||||||
p := make(chan int, 1)
|
c := make(chan int, 1)
|
||||||
go server(t, p)
|
go server(t, c)
|
||||||
<-p
|
<-c
|
||||||
client(t)
|
client(t)
|
||||||
|
<-c
|
||||||
}
|
}
|
||||||
|
|
||||||
func server(t *testing.T, prepare chan<- int) {
|
func server(t *testing.T, c chan<- int) {
|
||||||
l, err := ListenRCON("localhost:25575")
|
l, err := ListenRCON("localhost:25575")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
defer l.Close()
|
defer l.Close()
|
||||||
|
|
||||||
prepare <- 1
|
c <- 1 // prepared
|
||||||
|
|
||||||
for {
|
conn, err := l.Accept()
|
||||||
conn, err := l.Accept()
|
if err != nil {
|
||||||
if err != nil {
|
t.Fatal(err)
|
||||||
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)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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) {
|
func handleCommand(cmd string) (resp string) {
|
||||||
|
Reference in New Issue
Block a user