timeseries_test.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Copyright 2016 The etcd Authors
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package report
  15. import (
  16. "testing"
  17. "time"
  18. )
  19. func TestGetTimeseries(t *testing.T) {
  20. sp := newSecondPoints()
  21. now := time.Now()
  22. sp.Add(now, time.Second)
  23. sp.Add(now.Add(5*time.Second), time.Second)
  24. n := sp.getTimeSeries().Len()
  25. if n < 3 {
  26. t.Fatalf("expected at 6 points of time series, got %s", sp.getTimeSeries())
  27. }
  28. // add a point with duplicate timestamp
  29. sp.Add(now, 3*time.Second)
  30. ts := sp.getTimeSeries()
  31. if ts[0].MinLatency != time.Second {
  32. t.Fatalf("ts[0] min latency expected %v, got %s", time.Second, ts[0].MinLatency)
  33. }
  34. if ts[0].AvgLatency != 2*time.Second {
  35. t.Fatalf("ts[0] average latency expected %v, got %s", 2*time.Second, ts[0].AvgLatency)
  36. }
  37. if ts[0].MaxLatency != 3*time.Second {
  38. t.Fatalf("ts[0] max latency expected %v, got %s", 3*time.Second, ts[0].MaxLatency)
  39. }
  40. }