@@ -362,40 +362,38 @@ func TestTimeoutWithFullEchoStack(t *testing.T) {
362362 },
363363 }
364364
365- e := echo .New ()
366-
367- buf := new (bytes.Buffer )
368- e .Logger .SetOutput (buf )
369-
370- // NOTE: timeout middleware is first as it changes Response.Writer and causes data race for logger middleware if it is not first
371- // FIXME: I have no idea how to fix this without adding mutexes.
372- e .Use (TimeoutWithConfig (TimeoutConfig {
373- Timeout : 15 * time .Millisecond ,
374- }))
375- e .Use (Logger ())
376- e .Use (Recover ())
377-
378- e .GET ("/" , func (c echo.Context ) error {
379- var delay time.Duration
380- if err := echo .QueryParamsBinder (c ).Duration ("delay" , & delay ).BindError (); err != nil {
381- return err
382- }
383- if delay > 0 {
384- time .Sleep (delay )
385- }
386- return c .JSON (http .StatusTeapot , map [string ]string {"message" : "OK" })
387- })
388-
389- server , addr , err := startServer (e )
390- if err != nil {
391- assert .NoError (t , err )
392- return
393- }
394- defer server .Close ()
395-
396365 for _ , tc := range testCases {
397366 t .Run (tc .name , func (t * testing.T ) {
398- buf .Reset () // this is design this can not be run in parallel
367+ e := echo .New ()
368+
369+ buf := new (bytes.Buffer )
370+ e .Logger .SetOutput (buf )
371+
372+ // NOTE: timeout middleware is first as it changes Response.Writer and causes data race for logger middleware if it is not first
373+ // FIXME: I have no idea how to fix this without adding mutexes.
374+ e .Use (TimeoutWithConfig (TimeoutConfig {
375+ Timeout : 15 * time .Millisecond ,
376+ }))
377+ e .Use (Logger ())
378+ e .Use (Recover ())
379+
380+ e .GET ("/" , func (c echo.Context ) error {
381+ var delay time.Duration
382+ if err := echo .QueryParamsBinder (c ).Duration ("delay" , & delay ).BindError (); err != nil {
383+ return err
384+ }
385+ if delay > 0 {
386+ time .Sleep (delay )
387+ }
388+ return c .JSON (http .StatusTeapot , map [string ]string {"message" : "OK" })
389+ })
390+
391+ server , addr , err := startServer (e )
392+ if err != nil {
393+ assert .NoError (t , err )
394+ return
395+ }
396+ defer server .Close ()
399397
400398 res , err := http .Get (fmt .Sprintf ("http://%v%v" , addr , tc .whenPath ))
401399 if err != nil {
0 commit comments