Just update the tests a bit.
diff --git a/scaffold_test.go b/scaffold_test.go
index 4a82a62..2321ad8 100644
--- a/scaffold_test.go
+++ b/scaffold_test.go
@@ -76,13 +76,13 @@
s := CreateHTTPScaffold()
s.SetHealthPath("/health")
s.SetReadyPath("/ready")
- stopChan := make(chan bool)
+ stopChan := make(chan error)
err := s.Open()
Expect(err).Should(Succeed())
go func() {
- s.Listen(&testHandler{})
- stopChan <- true
+ stopErr := s.Listen(&testHandler{})
+ stopChan <- stopErr
}()
go func() {
@@ -105,7 +105,8 @@
Consistently(stopChan, 250*time.Millisecond).ShouldNot(Receive())
// Tell the server to try and exit
- s.Shutdown(errors.New("Stop"))
+ stopErr := errors.New("Stop")
+ s.Shutdown(stopErr)
// Should take one second -- in the meantime, calls should fail with 503,
// health should be good, but ready should be bad
@@ -116,8 +117,14 @@
code, _ = getText(fmt.Sprintf("http://%s/health", s.InsecureAddress()))
Expect(code).Should(Equal(200))
+ // Do a bunch more stops because we are funny that way.
+ // We just want to make sure that we don't hang if we stop a FEW times.
+ for i := 0; i < 25; i++ {
+ s.Shutdown(stopErr)
+ }
+
// But in less than two seconds, server should be down
- Eventually(stopChan, 2*time.Second).Should(Receive(BeTrue()))
+ Eventually(stopChan, 2*time.Second).Should(Receive(Equal(stopErr)))
// Calls should now fail
Eventually(func() bool {
return testGet(s, "")