|
|
@@ -17,29 +17,29 @@ package fileutil
|
|
|
import (
|
|
|
"io/ioutil"
|
|
|
"os"
|
|
|
- "runtime"
|
|
|
"testing"
|
|
|
)
|
|
|
|
|
|
-func TestPreallocate(t *testing.T) {
|
|
|
- if runtime.GOOS != "linux" {
|
|
|
- t.Skipf("skip testPreallocate, OS = %s", runtime.GOOS)
|
|
|
- }
|
|
|
-
|
|
|
- p, err := ioutil.TempDir(os.TempDir(), "preallocateTest")
|
|
|
- if err != nil {
|
|
|
+func TestPreallocateExtend(t *testing.T) { runPreallocTest(t, testPreallocateExtend) }
|
|
|
+func testPreallocateExtend(t *testing.T, f *os.File) {
|
|
|
+ size := int64(64 * 1000)
|
|
|
+ if err := Preallocate(f, size, true); err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
- defer os.RemoveAll(p)
|
|
|
|
|
|
- f, err := ioutil.TempFile(p, "")
|
|
|
+ stat, err := f.Stat()
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
+ if stat.Size() != size {
|
|
|
+ t.Errorf("size = %d, want %d", stat.Size(), size)
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
- size := 64 * 1000
|
|
|
- err = Preallocate(f, size)
|
|
|
- if err != nil {
|
|
|
+func TestPreallocateFixed(t *testing.T) { runPreallocTest(t, testPreallocateFixed) }
|
|
|
+func testPreallocateFixed(t *testing.T, f *os.File) {
|
|
|
+ size := int64(64 * 1000)
|
|
|
+ if err := Preallocate(f, size, false); err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
|
|
|
@@ -51,3 +51,17 @@ func TestPreallocate(t *testing.T) {
|
|
|
t.Errorf("size = %d, want %d", stat.Size(), 0)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func runPreallocTest(t *testing.T, test func(*testing.T, *os.File)) {
|
|
|
+ p, err := ioutil.TempDir(os.TempDir(), "preallocateTest")
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+ defer os.RemoveAll(p)
|
|
|
+
|
|
|
+ f, err := ioutil.TempFile(p, "")
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+ test(t, f)
|
|
|
+}
|