metrics_test.go 714 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package stat
  2. import (
  3. "strconv"
  4. "testing"
  5. "time"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func TestMetrics(t *testing.T) {
  9. DisableLog()
  10. defer logEnabled.Set(true)
  11. counts := []int{1, 5, 10, 100, 1000, 1000}
  12. for _, count := range counts {
  13. m := NewMetrics("foo")
  14. m.SetName("bar")
  15. for i := 0; i < count; i++ {
  16. m.Add(Task{
  17. Duration: time.Millisecond * time.Duration(i),
  18. Description: strconv.Itoa(i),
  19. })
  20. }
  21. m.AddDrop()
  22. var writer mockedWriter
  23. SetReportWriter(&writer)
  24. m.executor.Flush()
  25. assert.Equal(t, "bar", writer.report.Name)
  26. }
  27. }
  28. type mockedWriter struct {
  29. report *StatReport
  30. }
  31. func (m *mockedWriter) Write(report *StatReport) error {
  32. m.report = report
  33. return nil
  34. }