unit tests for stats sample

This commit is contained in:
Nan Deng 2014-06-11 11:12:09 -07:00
parent eaa166e8c3
commit f1fa77adc3

View File

@ -84,3 +84,167 @@ func TestPercentiles(t *testing.T) {
}
}
}
func TestAddSampleNilStats(t *testing.T) {
s := &ContainerStatsSummary{}
stats := &ContainerStats{
Cpu: &CpuStats{},
Memory: &MemoryStats{},
}
stats.Cpu.Usage.PerCpu = []uint64{uint64(10)}
stats.Cpu.Usage.Total = uint64(10)
stats.Cpu.Usage.System = uint64(2)
stats.Cpu.Usage.User = uint64(8)
stats.Memory.Usage = uint64(200)
s.AddSample(nil, stats)
if len(s.Samples) != 0 {
t.Errorf("added an unexpected sample: %+v", s.Samples)
}
s.Samples = nil
s.AddSample(stats, nil)
if len(s.Samples) != 0 {
t.Errorf("added an unexpected sample: %+v", s.Samples)
}
}
func TestAddSample(t *testing.T) {
s := &ContainerStatsSummary{}
cpuPrevUsage := uint64(10)
cpuCurrentUsage := uint64(15)
memCurrentUsage := uint64(200)
prev := &ContainerStats{
Cpu: &CpuStats{},
Memory: &MemoryStats{},
}
prev.Cpu.Usage.PerCpu = []uint64{cpuPrevUsage}
prev.Cpu.Usage.Total = cpuPrevUsage
prev.Cpu.Usage.System = 0
prev.Cpu.Usage.User = cpuPrevUsage
prev.Timestamp = time.Now()
current := &ContainerStats{
Cpu: &CpuStats{},
Memory: &MemoryStats{},
}
current.Cpu.Usage.PerCpu = []uint64{cpuCurrentUsage}
current.Cpu.Usage.Total = cpuCurrentUsage
current.Cpu.Usage.System = 0
current.Cpu.Usage.User = cpuCurrentUsage
current.Memory.Usage = memCurrentUsage
current.Timestamp = prev.Timestamp.Add(1 * time.Second)
s.AddSample(prev, current)
if len(s.Samples) != 1 {
t.Fatalf("unexpected samples: %+v", s.Samples)
}
if s.Samples[0].Memory.Usage != memCurrentUsage {
t.Errorf("wrong memory usage: %v. should be %v", s.Samples[0].Memory.Usage, memCurrentUsage)
}
if s.Samples[0].Cpu.Usage != cpuCurrentUsage-cpuPrevUsage {
t.Errorf("wrong CPU usage: %v. should be %v", s.Samples[0].Cpu.Usage, cpuCurrentUsage-cpuPrevUsage)
}
}
func TestAddSampleIncompleteStats(t *testing.T) {
s := &ContainerStatsSummary{}
cpuPrevUsage := uint64(10)
cpuCurrentUsage := uint64(15)
memCurrentUsage := uint64(200)
prev := &ContainerStats{
Cpu: &CpuStats{},
Memory: &MemoryStats{},
}
prev.Cpu.Usage.PerCpu = []uint64{cpuPrevUsage}
prev.Cpu.Usage.Total = cpuPrevUsage
prev.Cpu.Usage.System = 0
prev.Cpu.Usage.User = cpuPrevUsage
prev.Timestamp = time.Now()
current := &ContainerStats{
Cpu: &CpuStats{},
Memory: &MemoryStats{},
}
current.Cpu.Usage.PerCpu = []uint64{cpuCurrentUsage}
current.Cpu.Usage.Total = cpuCurrentUsage
current.Cpu.Usage.System = 0
current.Cpu.Usage.User = cpuCurrentUsage
current.Memory.Usage = memCurrentUsage
current.Timestamp = prev.Timestamp.Add(1 * time.Second)
stats := &ContainerStats{
Cpu: prev.Cpu,
Memory: nil,
}
s.AddSample(stats, current)
if len(s.Samples) != 0 {
t.Errorf("added an unexpected sample: %+v", s.Samples)
}
s.Samples = nil
s.AddSample(prev, stats)
if len(s.Samples) != 0 {
t.Errorf("added an unexpected sample: %+v", s.Samples)
}
s.Samples = nil
stats = &ContainerStats{
Cpu: nil,
Memory: prev.Memory,
}
s.AddSample(stats, current)
if len(s.Samples) != 0 {
t.Errorf("added an unexpected sample: %+v", s.Samples)
}
s.Samples = nil
s.AddSample(prev, stats)
if len(s.Samples) != 0 {
t.Errorf("added an unexpected sample: %+v", s.Samples)
}
s.Samples = nil
}
func TestAddSampleWrongOrder(t *testing.T) {
s := &ContainerStatsSummary{}
cpuPrevUsage := uint64(10)
cpuCurrentUsage := uint64(15)
memCurrentUsage := uint64(200)
prev := &ContainerStats{
Cpu: &CpuStats{},
Memory: &MemoryStats{},
}
prev.Cpu.Usage.PerCpu = []uint64{cpuPrevUsage}
prev.Cpu.Usage.Total = cpuPrevUsage
prev.Cpu.Usage.System = 0
prev.Cpu.Usage.User = cpuPrevUsage
prev.Timestamp = time.Now()
current := &ContainerStats{
Cpu: &CpuStats{},
Memory: &MemoryStats{},
}
current.Cpu.Usage.PerCpu = []uint64{cpuCurrentUsage}
current.Cpu.Usage.Total = cpuCurrentUsage
current.Cpu.Usage.System = 0
current.Cpu.Usage.User = cpuCurrentUsage
current.Memory.Usage = memCurrentUsage
current.Timestamp = prev.Timestamp.Add(1 * time.Second)
s.AddSample(current, prev)
if len(s.Samples) != 0 {
t.Errorf("added an unexpected sample: %+v", s.Samples)
}
}