mirror of
https://github.com/HDT3213/godis.git
synced 2025-10-05 16:57:06 +08:00
refactor project structure
This commit is contained in:
48
tcp/echo_test.go
Normal file
48
tcp/echo_test.go
Normal file
@@ -0,0 +1,48 @@
|
||||
package tcp
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"net"
|
||||
"strconv"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestListenAndServe(t *testing.T) {
|
||||
var err error
|
||||
var addr string
|
||||
closeChan := make(chan struct{})
|
||||
port := rand.Intn(60000) + 1024
|
||||
addr = fmt.Sprintf("localhost:%d", port)
|
||||
go func() {
|
||||
err = ListenAndServe(&Config{
|
||||
Address: addr,
|
||||
}, MakeEchoHandler(), closeChan)
|
||||
}()
|
||||
|
||||
conn, err := net.Dial("tcp", addr)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
for i := 0; i < 10; i++ {
|
||||
val := strconv.Itoa(rand.Int())
|
||||
_, err = conn.Write([]byte(val + "\n"))
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
bufReader := bufio.NewReader(conn)
|
||||
line, _, err := bufReader.ReadLine()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
if string(line) != val {
|
||||
t.Error("get wrong response")
|
||||
return
|
||||
}
|
||||
}
|
||||
closeChan <- struct{}{}
|
||||
}
|
Reference in New Issue
Block a user