mirror of
https://github.com/prometheus/prometheus.git
synced 2025-01-11 13:57:36 -08:00
Refactor cmd tests to use testify.
Signed-off-by: Paweł Szulik <paul.szulik@gmail.com>
This commit is contained in:
parent
5961f78186
commit
d5eb636a89
|
@ -126,12 +126,9 @@ func TestFailedStartupExitCode(t *testing.T) {
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
var exitError *exec.ExitError
|
var exitError *exec.ExitError
|
||||||
if errors.As(err, &exitError) {
|
require.ErrorAs(t, err, &exitError)
|
||||||
status := exitError.Sys().(syscall.WaitStatus)
|
status := exitError.Sys().(syscall.WaitStatus)
|
||||||
require.Equal(t, expectedExitStatus, status.ExitStatus())
|
require.Equal(t, expectedExitStatus, status.ExitStatus())
|
||||||
} else {
|
|
||||||
t.Errorf("unable to retrieve the exit status for prometheus: %v", err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type senderFunc func(alerts ...*notifier.Alert)
|
type senderFunc func(alerts ...*notifier.Alert)
|
||||||
|
@ -194,9 +191,7 @@ func TestSendAlerts(t *testing.T) {
|
||||||
tc := tc
|
tc := tc
|
||||||
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
|
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
|
||||||
senderFunc := senderFunc(func(alerts ...*notifier.Alert) {
|
senderFunc := senderFunc(func(alerts ...*notifier.Alert) {
|
||||||
if len(tc.in) == 0 {
|
require.NotEmpty(t, tc.in, "sender called with 0 alert")
|
||||||
t.Fatalf("sender called with 0 alert")
|
|
||||||
}
|
|
||||||
require.Equal(t, tc.exp, alerts)
|
require.Equal(t, tc.exp, alerts)
|
||||||
})
|
})
|
||||||
rules.SendAlerts(senderFunc, "http://localhost:9090")(context.TODO(), "up", tc.in...)
|
rules.SendAlerts(senderFunc, "http://localhost:9090")(context.TODO(), "up", tc.in...)
|
||||||
|
@ -228,7 +223,7 @@ func TestWALSegmentSizeBounds(t *testing.T) {
|
||||||
go func() { done <- prom.Wait() }()
|
go func() { done <- prom.Wait() }()
|
||||||
select {
|
select {
|
||||||
case err := <-done:
|
case err := <-done:
|
||||||
t.Errorf("prometheus should be still running: %v", err)
|
require.Fail(t, "prometheus should be still running: %v", err)
|
||||||
case <-time.After(startupTime):
|
case <-time.After(startupTime):
|
||||||
prom.Process.Kill()
|
prom.Process.Kill()
|
||||||
<-done
|
<-done
|
||||||
|
@ -239,12 +234,9 @@ func TestWALSegmentSizeBounds(t *testing.T) {
|
||||||
err = prom.Wait()
|
err = prom.Wait()
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
var exitError *exec.ExitError
|
var exitError *exec.ExitError
|
||||||
if errors.As(err, &exitError) {
|
require.ErrorAs(t, err, &exitError)
|
||||||
status := exitError.Sys().(syscall.WaitStatus)
|
status := exitError.Sys().(syscall.WaitStatus)
|
||||||
require.Equal(t, expectedExitStatus, status.ExitStatus())
|
require.Equal(t, expectedExitStatus, status.ExitStatus())
|
||||||
} else {
|
|
||||||
t.Errorf("unable to retrieve the exit status for prometheus: %v", err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -274,7 +266,7 @@ func TestMaxBlockChunkSegmentSizeBounds(t *testing.T) {
|
||||||
go func() { done <- prom.Wait() }()
|
go func() { done <- prom.Wait() }()
|
||||||
select {
|
select {
|
||||||
case err := <-done:
|
case err := <-done:
|
||||||
t.Errorf("prometheus should be still running: %v", err)
|
require.Fail(t, "prometheus should be still running: %v", err)
|
||||||
case <-time.After(startupTime):
|
case <-time.After(startupTime):
|
||||||
prom.Process.Kill()
|
prom.Process.Kill()
|
||||||
<-done
|
<-done
|
||||||
|
@ -285,12 +277,9 @@ func TestMaxBlockChunkSegmentSizeBounds(t *testing.T) {
|
||||||
err = prom.Wait()
|
err = prom.Wait()
|
||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
var exitError *exec.ExitError
|
var exitError *exec.ExitError
|
||||||
if errors.As(err, &exitError) {
|
require.ErrorAs(t, err, &exitError)
|
||||||
status := exitError.Sys().(syscall.WaitStatus)
|
status := exitError.Sys().(syscall.WaitStatus)
|
||||||
require.Equal(t, expectedExitStatus, status.ExitStatus())
|
require.Equal(t, expectedExitStatus, status.ExitStatus())
|
||||||
} else {
|
|
||||||
t.Errorf("unable to retrieve the exit status for prometheus: %v", err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -347,10 +336,8 @@ func getCurrentGaugeValuesFor(t *testing.T, reg prometheus.Gatherer, metricNames
|
||||||
}
|
}
|
||||||
|
|
||||||
require.Len(t, g.GetMetric(), 1)
|
require.Len(t, g.GetMetric(), 1)
|
||||||
if _, ok := res[m]; ok {
|
_, ok := res[m]
|
||||||
t.Error("expected only one metric family for", m)
|
require.False(t, ok, "expected only one metric family for", m)
|
||||||
t.FailNow()
|
|
||||||
}
|
|
||||||
res[m] = *g.GetMetric()[0].GetGauge().Value
|
res[m] = *g.GetMetric()[0].GetGauge().Value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,8 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/prometheus/prometheus/util/testutil"
|
"github.com/prometheus/prometheus/util/testutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -37,9 +39,7 @@ func TestStartupInterrupt(t *testing.T) {
|
||||||
|
|
||||||
prom := exec.Command(promPath, "-test.main", "--config.file="+promConfig, "--storage.tsdb.path="+t.TempDir(), "--web.listen-address=0.0.0.0"+port)
|
prom := exec.Command(promPath, "-test.main", "--config.file="+promConfig, "--storage.tsdb.path="+t.TempDir(), "--web.listen-address=0.0.0.0"+port)
|
||||||
err := prom.Start()
|
err := prom.Start()
|
||||||
if err != nil {
|
require.NoError(t, err)
|
||||||
t.Fatalf("execution error: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
done := make(chan error, 1)
|
done := make(chan error, 1)
|
||||||
go func() {
|
go func() {
|
||||||
|
@ -68,14 +68,11 @@ Loop:
|
||||||
time.Sleep(500 * time.Millisecond)
|
time.Sleep(500 * time.Millisecond)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !startedOk {
|
require.True(t, startedOk, "prometheus didn't start in the specified timeout")
|
||||||
t.Fatal("prometheus didn't start in the specified timeout")
|
err = prom.Process.Kill()
|
||||||
}
|
require.Error(t, err, "prometheus didn't shutdown gracefully after sending the Interrupt signal")
|
||||||
switch err := prom.Process.Kill(); {
|
// TODO - find a better way to detect when the process didn't exit as expected!
|
||||||
case err == nil:
|
if stoppedErr != nil {
|
||||||
t.Errorf("prometheus didn't shutdown gracefully after sending the Interrupt signal")
|
require.EqualError(t, stoppedErr, "signal: interrupt", "prometheus exited with an unexpected error: %v", stoppedErr)
|
||||||
case 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)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,8 @@ package main
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/prometheus/prometheus/promql"
|
"github.com/prometheus/prometheus/promql"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -178,9 +180,8 @@ func TestRulesUnitTestRun(t *testing.T) {
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
if got := RulesUnitTest(tt.queryOpts, tt.args.run, false, tt.args.files...); got != tt.want {
|
got := RulesUnitTest(tt.queryOpts, tt.args.run, false, tt.args.files...)
|
||||||
t.Errorf("RulesUnitTest() = %v, want %v", got, tt.want)
|
require.Equal(t, tt.want, got)
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue