mirror of
https://github.com/buger/goreplay.git
synced 2024-04-21 12:32:02 +00:00
faulty listener test
This commit is contained in:
+51
-25
@@ -7,7 +7,8 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
"time"
|
||||
"io"
|
||||
)
|
||||
|
||||
func getTCPMessage() (msg *TCPMessage) {
|
||||
@@ -21,8 +22,6 @@ func mockReplayServer() (listener net.Listener) {
|
||||
|
||||
Settings.ReplayAddress = listener.Addr().String()
|
||||
|
||||
fmt.Println(listener.Addr().String())
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
@@ -49,49 +48,76 @@ func TestSendMessage(t *testing.T) {
|
||||
|
||||
func TestSaveMessageToFile(t *testing.T) {
|
||||
Settings.Verbose = true
|
||||
Settings.FileToReplyPath = "requests.gor"
|
||||
Settings.FileToReplyPath = "listener_test.gor"
|
||||
Settings.Address = "127.0.0.1"
|
||||
Settings.Port = 50000
|
||||
|
||||
received := make(chan int)
|
||||
receivedChan := make(chan int)
|
||||
|
||||
requestBytes := []byte("GET / HTTP/1.1\nHost: localhost:50000\r\n\r\n")
|
||||
// receivedChan <- 1
|
||||
// requestBytes := []byte("GET / HTTP/1.1\nHost: localhost:50000\r\n\r\n")
|
||||
|
||||
handler := func(w http.ResponseWriter, r *http.Request) {
|
||||
http.Error(w, "OK", http.StatusNotFound)
|
||||
received <- 1
|
||||
fmt.Println("handler called")
|
||||
// fmt.Fprintf(w, "Hello, aaa")
|
||||
// this is faulty
|
||||
io.WriteString(w, "hello, world!\n")
|
||||
}
|
||||
|
||||
go Run()
|
||||
|
||||
go func() {
|
||||
http.ListenAndServe(":50000", http.HandlerFunc(handler))
|
||||
}()
|
||||
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
go Run()
|
||||
go func() {
|
||||
conn, _ := net.Dial("tcp", ":50000")
|
||||
conn.Write(requestBytes)
|
||||
}()
|
||||
|
||||
select {
|
||||
case <-received:
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
case msg, ok := <-receivedChan:
|
||||
fmt.Println("received something")
|
||||
case <-time.After(time.Second):
|
||||
t.Error("Timeout error")
|
||||
fmt.Println("in timeout section")
|
||||
// t.Error("Server not started and I dont know what is going on :(")
|
||||
}
|
||||
|
||||
file, err := os.Open("requests.gor")
|
||||
request := getRequest()
|
||||
resp, err := http.DefaultClient.Do(request)
|
||||
if err != nil {
|
||||
t.Errorf("Problem with default client", err)
|
||||
}
|
||||
fmt.Println("RESPONSE", resp)
|
||||
|
||||
file, err := os.Open("listener_test.gor")
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("Problem with opening file: ", err)
|
||||
}
|
||||
|
||||
fileBuf := make([]byte, 100)
|
||||
file.Read(fileBuf)
|
||||
fileBuf := make([]byte, 1024)
|
||||
n, err := file.Read(fileBuf)
|
||||
fileBuf = fileBuf[:n]
|
||||
|
||||
if bytes.Compare(fileBuf, requestBytes) != 0 {
|
||||
t.Errorf("Original and received requests does not match")
|
||||
}
|
||||
//requestBuffer := bytes.NewBuffer(fileBuf)
|
||||
//requestReader := bufio.NewReader(requestBuffer)
|
||||
//readRequest, _ := http.ReadRequest(requestReader)
|
||||
fmt.Println("Read file: \n", string(fileBuf))
|
||||
fmt.Println("Read file: \n", fileBuf)
|
||||
|
||||
//if bytes.Compare(fileBuf, make([]byte, 1024)) != 0 {
|
||||
// t.Errorf("Original and received requests does not match")
|
||||
//}
|
||||
// if *request != *readRequest {
|
||||
// t.Errorf("Original and received requests does not match")
|
||||
//}
|
||||
t.Errorf("Original and received requests does not match")
|
||||
}
|
||||
|
||||
func getRequest() (req *http.Request) {
|
||||
req, _ = http.NewRequest("GET", "http://localhost:50000", nil)
|
||||
ck := new(http.Cookie)
|
||||
ck.Name = "test"
|
||||
ck.Value = "value2"
|
||||
|
||||
req.AddCookie(ck)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user