diff options
Diffstat (limited to 'plugins/metrics/tests/metrics_test.go')
-rw-r--r-- | plugins/metrics/tests/metrics_test.go | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/plugins/metrics/tests/metrics_test.go b/plugins/metrics/tests/metrics_test.go index d04c75d3..f21016d4 100644 --- a/plugins/metrics/tests/metrics_test.go +++ b/plugins/metrics/tests/metrics_test.go @@ -1,13 +1,18 @@ package tests import ( - "fmt" + "os" + "os/signal" + "syscall" "testing" + "time" "github.com/spiral/endure" "github.com/spiral/roadrunner/v2/plugins/config" "github.com/spiral/roadrunner/v2/plugins/logger" "github.com/spiral/roadrunner/v2/plugins/metrics" + "github.com/spiral/roadrunner/v2/plugins/rpc" + "github.com/stretchr/testify/assert" ) func TestMetricsInit(t *testing.T) { @@ -30,22 +35,54 @@ func TestMetricsInit(t *testing.T) { t.Fatal(err) } + err = cont.Register(&rpc.Plugin{}) + if err != nil { + t.Fatal(err) + } + err = cont.Register(&logger.ZapLogger{}) if err != nil { t.Fatal(err) } + err = cont.Register(&Plugin1{}) + if err != nil { + t.Fatal(err) + } err = cont.Init() if err != nil { t.Fatal(err) } - errCh, err := cont.Serve() + ch, err := cont.Serve() + assert.NoError(t, err) + + sig := make(chan os.Signal, 1) + signal.Notify(sig, os.Interrupt, syscall.SIGINT, syscall.SIGTERM) + + tt := time.NewTimer(time.Second * 5) for { select { - case e := <-errCh: - fmt.Println(e) + case e := <-ch: + assert.Fail(t, "error", e.Error.Error()) + err = cont.Stop() + if err != nil { + assert.FailNow(t, "error", err.Error()) + } + case <-sig: + err = cont.Stop() + if err != nil { + assert.FailNow(t, "error", err.Error()) + } + return + case <-tt.C: + // timeout + err = cont.Stop() + if err != nil { + assert.FailNow(t, "error", err.Error()) + } + return } } } |