diff options
-rw-r--r-- | integration_tests/performance_test.go | 52 |
1 files changed, 40 insertions, 12 deletions
diff --git a/integration_tests/performance_test.go b/integration_tests/performance_test.go index 7667243..e46cb91 100644 --- a/integration_tests/performance_test.go +++ b/integration_tests/performance_test.go @@ -34,7 +34,10 @@ func BenchmarkStreamRead(t *testing.B) { t.SetBytes(int64(len(buf))) fn := plainDir + "BenchmarkWrite" - fi, _ := os.Stat(fn) + fi, err := os.Stat(fn) + if err != nil { + t.Fatal(err) + } mb := int(fi.Size() / 1024 / 1024) if t.N > mb { @@ -56,7 +59,7 @@ func BenchmarkStreamRead(t *testing.B) { //fmt.Printf("done\n") } - file, err := os.Open(plainDir + "BenchmarkWrite") + file, err := os.Open(fn) if err != nil { t.FailNow() } @@ -75,25 +78,50 @@ func BenchmarkStreamRead(t *testing.B) { file.Close() } -func BenchmarkCreate10B(t *testing.B) { - dir := plainDir + "BenchmarkCreate10B" - err := os.RemoveAll(dir) +// createFiles - create "count" files of size "size" bytes each +func createFiles(t *testing.B, count int, size int) { + dir := fmt.Sprintf("%s/createFiles_%d_%d", plainDir, count, size) + err := os.Mkdir(dir, 0777) if err != nil { t.Fatal(err) } - err = os.Mkdir(dir, 0777) - if err != nil { - t.Fatal(err) - } - buf := []byte("1234567890") + buf := make([]byte, size) t.SetBytes(int64(len(buf))) t.ResetTimer() var i int - for i = 0; i < t.N; i++ { + for i = 0; i < count; i++ { file := fmt.Sprintf("%s/%d", dir, i) - err = ioutil.WriteFile(file, buf, 0666) + if size > 0 { + err = ioutil.WriteFile(file, buf, 0666) + } else { + var fh *os.File + fh, err = os.Create(file) + fh.Close() + } if err != nil { t.Fatal(err) } } + t.StopTimer() + os.RemoveAll(dir) +} + +func BenchmarkCreate0B(t *testing.B) { + createFiles(t, t.N, 0) +} + +func BenchmarkCreate1B(t *testing.B) { + createFiles(t, t.N, 1) +} + +func BenchmarkCreate100B(t *testing.B) { + createFiles(t, t.N, 100) +} + +func BenchmarkCreate4kB(t *testing.B) { + createFiles(t, t.N, 4*1024) +} + +func BenchmarkCreate10kB(t *testing.B) { + createFiles(t, t.N, 10*1024) } |