mirror of
				https://github.com/HDT3213/godis.git
				synced 2025-10-31 12:06:26 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			773 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			773 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package server
 | |
| 
 | |
| 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)
 | |
| }
 | 
