tests: TestFileHoleCopy: accept +-4kB
Failure looked like this: --- FAIL: TestFileHoleCopy (3.73s) --- FAIL: TestFileHoleCopy/k81 (0.04s) file_holes_test.go:93: size changed: st0.Blocks=88 st2.Blocks=96 file_holes_test.go:147: aborting further subtests $ findholes TestFileHoleCopy.k81.1 0 data 36864 hole 45056 data 50434 hole 50434 eof $ findholes TestFileHoleCopy.k81.2 0 data 36864 hole 45056 data 50434 hole 50434 eof $ filefrag -v TestFileHoleCopy.k81.1 Filesystem type is: ef53 File size of TestFileHoleCopy.k81.1 is 50434 (13 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 2: 23702311.. 23702313: 3: 1: 3.. 8: 20389855.. 20389860: 6: 23702314: 2: 11.. 12: 23702314.. 23702315: 2: 20389863: last,eof TestFileHoleCopy.k81.1: 3 extents found $ filefrag -v TestFileHoleCopy.k81.2 Filesystem type is: ef53 File size of TestFileHoleCopy.k81.2 is 50434 (13 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 2: 20389861.. 20389863: 3: 1: 3.. 4: 23702316.. 23702317: 2: 20389864: 2: 5.. 6: 20389864.. 20389865: 2: 23702318: 3: 7.. 8: 23702318.. 23702319: 2: 20389866: 4: 11.. 12: 23702320.. 23702321: 2: last,eof TestFileHoleCopy.k81.2: 4 extents found
This commit is contained in:
parent
18befda0e6
commit
0e37fbe042
@ -88,8 +88,10 @@ func doTestFileHoleCopy(t *testing.T, name string, writeOffsets []int64) {
|
||||
if err := syscall.Stat(pPath[i], &st); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Sometimes the size on disk decreases by 4k due to less fragmentation
|
||||
if st.Blocks != st0.Blocks && st.Blocks != st0.Blocks-8 {
|
||||
// Size on disk fluctuates by +-4kB due to different number of extents
|
||||
// (looking at "filefrag -v", it seems like ext4 needs 4kB extra once
|
||||
// you have >=4 extents)
|
||||
if st.Blocks != st0.Blocks && st.Blocks != st0.Blocks-8 && st.Blocks != st0.Blocks+8 {
|
||||
t.Errorf("size changed: st0.Blocks=%d st%d.Blocks=%d", st0.Blocks, i, st.Blocks)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user