From ad66476c4f73087e61b9837eb70372b4a713d50d Mon Sep 17 00:00:00 2001 From: Krasi Georgiev Date: Tue, 19 Dec 2017 15:06:51 +0000 Subject: [PATCH] fix flaky main.go test and simplify a bit --- cmd/prometheus/main_test.go | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/cmd/prometheus/main_test.go b/cmd/prometheus/main_test.go index 71d638bf0..184f47dfd 100644 --- a/cmd/prometheus/main_test.go +++ b/cmd/prometheus/main_test.go @@ -75,25 +75,20 @@ func TestStartupInterrupt(t *testing.T) { }() var startedOk bool - var stoppedOk bool var stoppedErr error Loop: for x := 0; x < 10; x++ { - // error=nil means prometheus has started so can send the interrupt signal and wait for the grace shutdown. if _, err := http.Get("http://localhost:9090/graph"); err == nil { startedOk = true prom.Process.Signal(os.Interrupt) select { case stoppedErr = <-done: - stoppedOk = true break Loop case <-time.After(10 * time.Second): - } break Loop - } time.Sleep(500 * time.Millisecond) } @@ -102,10 +97,10 @@ Loop: t.Errorf("prometheus didn't start in the specified timeout") return } - if err := prom.Process.Kill(); err == nil && !stoppedOk { + if err := prom.Process.Kill(); err == nil { t.Errorf("prometheus didn't shutdown gracefully after sending the Interrupt signal") - } else if stoppedErr != nil { - t.Errorf("prometheus exited with an error:%v", stoppedErr) + } else if stoppedErr != nil && stoppedErr.Error() != "signal: interrupt" { // TODO - find a better way to detect when the process didn't exit as expected! + t.Errorf("prometheus exited with an unexpected error:%v", stoppedErr) } }