use atomic for test shutdown

This commit is contained in:
Hayden 2022-09-05 00:13:04 -08:00
parent 0c6fe4ea62
commit d10ae78725

View file

@ -2,6 +2,7 @@ package server
import ( import (
"net/http" "net/http"
"sync/atomic"
"testing" "testing"
"time" "time"
@ -72,14 +73,14 @@ func Test_GracefulServerShutdownWithWorkers(t *testing.T) {
} }
func Test_GracefulServerShutdownWithRequests(t *testing.T) { func Test_GracefulServerShutdownWithRequests(t *testing.T) {
isFinished := false var isFinished atomic.Bool
router := http.NewServeMux() router := http.NewServeMux()
// add long running handler func // add long running handler func
router.HandleFunc("/test", func(rw http.ResponseWriter, r *http.Request) { router.HandleFunc("/test", func(rw http.ResponseWriter, r *http.Request) {
time.Sleep(time.Second * 3) time.Sleep(time.Second * 3)
isFinished = true isFinished.Store(true)
}) })
svr := testServer(t, router) svr := testServer(t, router)
@ -94,5 +95,5 @@ func Test_GracefulServerShutdownWithRequests(t *testing.T) {
err := svr.Shutdown("test") err := svr.Shutdown("test")
assert.NoError(t, err) assert.NoError(t, err)
assert.True(t, isFinished) assert.True(t, isFinished.Load())
} }