storage unit test percentiles
This commit is contained in:
parent
90ceeacda3
commit
e412c042d3
@ -44,6 +44,12 @@ func TestSamplesWithoutSample(t *testing.T) {
|
|||||||
runStorageTest(test.StorageDriverTestSamplesWithoutSample, t)
|
runStorageTest(test.StorageDriverTestSamplesWithoutSample, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPercentilessWithoutSample(t *testing.T) {
|
func TestPercentilesWithoutSample(t *testing.T) {
|
||||||
runStorageTest(test.StorageDriverTestPercentilesWithoutSample, t)
|
runStorageTest(test.StorageDriverTestPercentilesWithoutSample, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPercentiles(t *testing.T) {
|
||||||
|
N := 100
|
||||||
|
driver := New(N, N)
|
||||||
|
test.StorageDriverTestPercentiles(driver, t)
|
||||||
|
}
|
||||||
|
@ -168,3 +168,44 @@ func StorageDriverTestPercentilesWithoutSample(driver storage.StorageDriver, t *
|
|||||||
t.Errorf("There should be no percentiles")
|
t.Errorf("There should be no percentiles")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The driver must be able to hold more than 100 samples
|
||||||
|
func StorageDriverTestPercentiles(driver storage.StorageDriver, t *testing.T) {
|
||||||
|
N := 100
|
||||||
|
cpuTrace := make([]uint64, N)
|
||||||
|
memTrace := make([]uint64, N)
|
||||||
|
for i := 1; i < N+1; i++ {
|
||||||
|
cpuTrace[i-1] = uint64(i)
|
||||||
|
memTrace[i-1] = uint64(i)
|
||||||
|
}
|
||||||
|
|
||||||
|
trace := buildTrace(cpuTrace, memTrace, 1*time.Second)
|
||||||
|
|
||||||
|
ref := info.ContainerReference{
|
||||||
|
Name: "container",
|
||||||
|
}
|
||||||
|
for _, stats := range trace {
|
||||||
|
driver.AddStats(ref, stats)
|
||||||
|
}
|
||||||
|
percentages := []int{
|
||||||
|
80,
|
||||||
|
90,
|
||||||
|
50,
|
||||||
|
}
|
||||||
|
percentiles, err := driver.Percentiles(ref.Name, percentages, percentages)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
for _, s := range percentiles.CpuUsagePercentiles {
|
||||||
|
// The value is out of the range of tolerance..
|
||||||
|
if s.Value > uint64(s.Percentage+1) || s.Value < uint64(s.Percentage-1) {
|
||||||
|
t.Errorf("%v percentile data should be %v, but got %v", s.Percentage, s.Percentage, s.Value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, s := range percentiles.MemoryUsagePercentiles {
|
||||||
|
// The value is out of the range of tolerance..
|
||||||
|
if s.Value > uint64(s.Percentage+1) || s.Value < uint64(s.Percentage-1) {
|
||||||
|
t.Errorf("%v percentile data should be %v, but got %v", s.Percentage, s.Percentage, s.Value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user