refactor code structure for gnet

This commit is contained in:
finley
2025-05-25 21:04:49 +08:00
parent 144b642fe7
commit d6bbf0315c
11 changed files with 167 additions and 117 deletions

View File

@@ -0,0 +1,44 @@
package std
import (
"bufio"
"github.com/hdt3213/godis/tcp"
"net"
"testing"
"time"
)
func TestListenAndServe(t *testing.T) {
var err error
closeChan := make(chan struct{})
listener, err := net.Listen("tcp", ":0")
if err != nil {
t.Error(err)
return
}
addr := listener.Addr().String()
go tcp.ListenAndServe(listener, MakeHandler(), closeChan)
conn, err := net.Dial("tcp", addr)
if err != nil {
t.Error(err)
return
}
_, err = conn.Write([]byte("PING\r\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) != "+PONG" {
t.Error("get wrong response")
return
}
closeChan <- struct{}{}
time.Sleep(time.Second)
}