This commit is contained in:
Nan Deng 2014-07-02 15:20:21 -07:00
parent 562a150592
commit 41dcf6d42d
2 changed files with 24 additions and 27 deletions

View File

@ -25,8 +25,7 @@ import (
) )
func runStorageTest(f func(storage.StorageDriver, *testing.T), t *testing.T) { func runStorageTest(f func(storage.StorageDriver, *testing.T), t *testing.T) {
// randomly generate a machine name to mimic multi-machine senario. machineName := "machineA"
machineName := "machine-A"
tablename := "t" tablename := "t"
database := "cadvisor" database := "cadvisor"
username := "root" username := "root"
@ -65,7 +64,7 @@ func runStorageTest(f func(storage.StorageDriver, *testing.T), t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
// generate another container's data on same machine. // generate another container's data on same machine.
test.StorageDriverFillRandomStatsFunc("containerOnSameMachine", 100)(driver, t) test.StorageDriverFillRandomStatsFunc("containerOnSameMachine", 100, driver, t)
// generate another container's data on another machine. // generate another container's data on another machine.
driverForAnotherMachine, err := New("machineB", driverForAnotherMachine, err := New("machineB",
@ -80,7 +79,7 @@ func runStorageTest(f func(storage.StorageDriver, *testing.T), t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
defer driverForAnotherMachine.Close() defer driverForAnotherMachine.Close()
test.StorageDriverFillRandomStatsFunc("containerOnAnotherMachine", 100)(driverForAnotherMachine, t) test.StorageDriverFillRandomStatsFunc("containerOnAnotherMachine", 100, driverForAnotherMachine, t)
f(driver, t) f(driver, t)
} }
@ -105,6 +104,5 @@ func TestNoRecentStats(t *testing.T) {
} }
func TestNoSamples(t *testing.T) { func TestNoSamples(t *testing.T) {
runStorageTest(test.StorageDriverFillRandomStatsFunc("otherContainer", 100), t)
runStorageTest(test.StorageDriverTestNoSamples, t) runStorageTest(test.StorageDriverTestNoSamples, t)
} }

View File

@ -83,36 +83,35 @@ func samplesInTrace(samples []*info.ContainerStatsSample, cpuTrace, memTrace []u
} }
} }
// This function returns a function that will generate random stats and write // This function will generate random stats and write
// them into the storage. The returned function will not close the driver of // them into the storage. The function will not close the driver
// the call, which could be served as a building block to do other works
func StorageDriverFillRandomStatsFunc( func StorageDriverFillRandomStatsFunc(
containerName string, containerName string,
N int, N int,
) func(driver storage.StorageDriver, t *testing.T) { driver storage.StorageDriver,
return func(driver storage.StorageDriver, t *testing.T) { t *testing.T,
cpuTrace := make([]uint64, 0, N) ) {
memTrace := make([]uint64, 0, N) cpuTrace := make([]uint64, 0, N)
memTrace := make([]uint64, 0, N)
// We need N+1 observations to get N samples // We need N+1 observations to get N samples
for i := 0; i < N+1; i++ { for i := 0; i < N+1; i++ {
cpuTrace = append(cpuTrace, uint64(rand.Intn(1000))) cpuTrace = append(cpuTrace, uint64(rand.Intn(1000)))
memTrace = append(memTrace, uint64(rand.Intn(1000))) memTrace = append(memTrace, uint64(rand.Intn(1000)))
} }
samplePeriod := 1 * time.Second samplePeriod := 1 * time.Second
ref := info.ContainerReference{ ref := info.ContainerReference{
Name: containerName, Name: containerName,
} }
trace := buildTrace(cpuTrace, memTrace, samplePeriod) trace := buildTrace(cpuTrace, memTrace, samplePeriod)
for _, stats := range trace { for _, stats := range trace {
err := driver.AddStats(ref, stats) err := driver.AddStats(ref, stats)
if err != nil { if err != nil {
t.Fatalf("unable to add stats: %v", err) t.Fatalf("unable to add stats: %v", err)
}
} }
} }
} }