From bcb29d74c15c7f805af6fe825191414f36397148 Mon Sep 17 00:00:00 2001 From: Ronald Petty Date: Mon, 27 Apr 2020 10:40:23 -0700 Subject: [PATCH] Update gin_integration_test.go TestUnixSocket fails if you run it twice in a row. This is due to the unix socket file persisting. Added defer to clean up. Whats unclear is the following test TestBadUnixSocket I suspect is just looking for cruft maybe from a prior test or defaults not working, I have not enough background to say. --- gin_integration_test.go | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/gin_integration_test.go b/gin_integration_test.go index f29d1fc1..72bcec7e 100644 --- a/gin_integration_test.go +++ b/gin_integration_test.go @@ -144,27 +144,31 @@ func TestRunWithPort(t *testing.T) { } func TestUnixSocket(t *testing.T) { - router := New() + router := New() - go func() { - router.GET("/example", func(c *Context) { c.String(http.StatusOK, "it worked") }) - assert.NoError(t, router.RunUnix("/tmp/unix_unit_test")) - }() - // have to wait for the goroutine to start and run the server - // otherwise the main thread will complete - time.Sleep(5 * time.Millisecond) + unixTestSocket := "/tmp/unix_unit_test" - c, err := net.Dial("unix", "/tmp/unix_unit_test") - assert.NoError(t, err) + defer os.Remove(unixTestSocket) - fmt.Fprint(c, "GET /example HTTP/1.0\r\n\r\n") - scanner := bufio.NewScanner(c) - var response string - for scanner.Scan() { - response += scanner.Text() - } - assert.Contains(t, response, "HTTP/1.0 200", "should get a 200") - assert.Contains(t, response, "it worked", "resp body should match") + go func() { + router.GET("/example", func(c *Context) { c.String(http.StatusOK, "it worked") }) + assert.NoError(t, router.RunUnix(unixTestSocket)) + }() + // have to wait for the goroutine to start and run the server + // otherwise the main thread will complete + time.Sleep(5 * time.Millisecond) + + c, err := net.Dial("unix", unixTestSocket) + assert.NoError(t, err) + + fmt.Fprint(c, "GET /example HTTP/1.0\r\n\r\n") + scanner := bufio.NewScanner(c) + var response string + for scanner.Scan() { + response += scanner.Text() + } + assert.Contains(t, response, "HTTP/1.0 200", "should get a 200") + assert.Contains(t, response, "it worked", "resp body should match") } func TestBadUnixSocket(t *testing.T) {