Skip to content

Commit e4d80c1

Browse files
authored
Merge pull request #54 from xibz/53
client: fixing test bug with hanging requests
2 parents 1585d53 + 4338346 commit e4d80c1

File tree

1 file changed

+29
-25
lines changed

1 file changed

+29
-25
lines changed

client/client_transports_test.go

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,45 @@
11
package client
22

33
import (
4-
"github.com/firecracker-microvm/firecracker-go-sdk/client/operations"
5-
"github.com/go-openapi/runtime"
6-
"github.com/stretchr/testify/assert"
4+
"context"
75
"net"
6+
"net/http"
7+
"os"
88
"testing"
99
"time"
10+
11+
"github.com/firecracker-microvm/firecracker-go-sdk/client/operations"
12+
"github.com/go-openapi/runtime"
13+
"github.com/stretchr/testify/assert"
1014
)
1115

16+
const expectedEndpointPath = "/test-operation"
17+
1218
func TestNewUnixSocketTransport(t *testing.T) {
1319
done := make(chan bool)
1420

15-
expectedMessage := "PUT /logger HTTP/1.1\r\nHost: localhost\r\nUser-Agent: Go-http-client/1.1\r\nContent-Length: 0\r\nAccept: application/json\r\nContent-Type: application/json\r\nAccept-Encoding: gzip\r\n\r\n"
1621
socketPath := "testingUnixSocket.sock"
17-
addr, _ := net.ResolveUnixAddr("unix", socketPath)
18-
listener, _ := net.ListenUnix("unix", addr)
19-
defer listener.Close()
20-
21-
go func() {
22-
conn, err := listener.AcceptUnix()
23-
if err != nil {
24-
t.Error(err)
25-
}
26-
27-
buf := make([]byte, 512)
28-
nr, err := conn.Read(buf)
29-
if err != nil {
30-
return
31-
}
32-
33-
data := string(buf[0:nr])
34-
assert.Equal(t, expectedMessage, data, "expectedMessage received on socket is different than what was sent")
35-
done <- true
22+
listener, err := net.Listen("unix", socketPath)
23+
if err != nil {
24+
panic(err)
25+
}
26+
27+
server := http.Server{
28+
Handler: http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
29+
assert.Equal(t, expectedEndpointPath, req.URL.String())
30+
w.WriteHeader(http.StatusOK)
31+
close(done)
32+
}),
33+
}
34+
35+
go server.Serve(listener)
36+
defer func() {
37+
server.Shutdown(context.Background())
38+
listener.Close()
39+
os.Remove(socketPath)
3640
}()
3741

3842
unixTransport := NewUnixSocketTransport(socketPath, nil, false)
39-
4043
unixTransport.Submit(testOperation())
4144

4245
select {
@@ -50,9 +53,10 @@ func testOperation() *runtime.ClientOperation {
5053
return &runtime.ClientOperation{
5154
ID: "putLogger",
5255
Method: "PUT",
53-
PathPattern: "/logger",
56+
PathPattern: expectedEndpointPath,
5457
ProducesMediaTypes: []string{"application/json"},
5558
Schemes: []string{"http"},
5659
Params: operations.NewPutLoggerParams(),
60+
Reader: &operations.PutLoggerReader{},
5761
}
5862
}

0 commit comments

Comments
 (0)