mirror of
https://git.savannah.gnu.org/git/coreutils.git
synced 2025-09-10 07:59:52 +02:00
tests: fix false dd conv=sparse failure on newer XFS
* tests/dd/sparse.sh: When testing that a hole is created, use an existing sparse destination file, so that we're not write extending the file size, and thus avoiding speculative preallocation which can result in smaller holes than requested. Workaround suggested by Brian Foster
This commit is contained in:
@@ -95,6 +95,7 @@ Bjorn Helgaas helgaas@rsn.hp.com
|
||||
Bob McCracken kerouac@ravenet.com
|
||||
Branden Robinson branden@necrotic.deadbeast.net
|
||||
Brendan O'Dea bod@compusol.com.au
|
||||
Brian Foster bfoster@redhat.com
|
||||
Brian Kimball bfk@footbag.org
|
||||
Brian M. Carlson sandals@crustytoothpaste.ath.cx
|
||||
Brian Silverman bsilverman@conceptxdesign.com
|
||||
|
||||
@@ -61,8 +61,15 @@ if test $(kb_alloc file.in) -gt 3000; then
|
||||
dd if=file.in of=file.out bs=2M conv=sparse
|
||||
test 2500 -lt $(kb_alloc file.out) || fail=1
|
||||
|
||||
# Note we recreate a sparse file first to avoid
|
||||
# speculative preallocation seen in XFS, where a write() that
|
||||
# extends a file can preallocate some extra space that
|
||||
# a subsequent seek will not convert to a hole.
|
||||
rm -f file.out
|
||||
truncate --size=3M file.out
|
||||
|
||||
# Ensure that this 1MiB string of NULs *is* converted to a hole.
|
||||
dd if=file.in of=file.out bs=1M conv=sparse
|
||||
dd if=file.in of=file.out bs=1M conv=sparse,notrunc
|
||||
test $(kb_alloc file.out) -lt 2500 || fail=1
|
||||
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user