mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-21 08:42:16 +08:00
Using waitgroup to wait asynchronous test case
This commit is contained in:
parent
8709d894ef
commit
bfbe6a708f
@ -16,6 +16,7 @@ import (
|
||||
"os"
|
||||
"reflect"
|
||||
"strings"
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@ -1818,15 +1819,19 @@ func TestRaceParamsContextCopy(t *testing.T) {
|
||||
DefaultWriter = os.Stdout
|
||||
router := Default()
|
||||
nameGroup := router.Group("/:name")
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(2)
|
||||
{
|
||||
nameGroup.GET("/api", func(c *Context) {
|
||||
go func(c *Context, param string) {
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
defer wg.Done()
|
||||
// First assert must be executed after the second request
|
||||
time.Sleep(50 * time.Millisecond)
|
||||
assert.Equal(t, c.Param("name"), param)
|
||||
}(c.Copy(), c.Param("name"))
|
||||
})
|
||||
}
|
||||
performRequest(router, "GET", "/name1/api")
|
||||
performRequest(router, "GET", "/name2/api")
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
wg.Wait()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user