github.com/aavshr/aws-sdk-go@v1.41.3/aws/request/http_request_copy_test.go (about) 1 package request 2 3 import ( 4 "bytes" 5 "io/ioutil" 6 "net/http" 7 "net/url" 8 "sync" 9 "testing" 10 ) 11 12 func TestRequestCopyRace(t *testing.T) { 13 origReq := &http.Request{URL: &url.URL{}, Header: http.Header{}} 14 origReq.Header.Set("Header", "OrigValue") 15 16 var wg sync.WaitGroup 17 for i := 0; i < 100; i++ { 18 wg.Add(1) 19 go func() { 20 req := copyHTTPRequest(origReq, ioutil.NopCloser(&bytes.Buffer{})) 21 req.Header.Set("Header", "Value") 22 go func() { 23 req2 := copyHTTPRequest(req, ioutil.NopCloser(&bytes.Buffer{})) 24 req2.Header.Add("Header", "Value2") 25 }() 26 _ = req.Header.Get("Header") 27 wg.Done() 28 }() 29 _ = origReq.Header.Get("Header") 30 } 31 origReq.Header.Get("Header") 32 33 wg.Wait() 34 }