mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2024-11-23 18:14:25 +08:00
tests: don't use a sparse test file
If the TEST_BITS file is sparse, then the "debugfs -R write" command may skip holes in the file when copying it into the test image (depending on whether SEEK_HOLE/SEEK_DATA and/or FIEMAP are available in the copy_file() function). This was causing test failures on MacOS in the f_dup_resize and d_loaddump tests because the TEST_BITS file was the compiled "debugfs" binary, which apparently has holes when built on MacOS, and the number of blocks allocated in the test image was reduced as a result. This caused the expect output to differ in the summary line and resulted in failure. Instead of using the debugfs binary for TEST_BITS, generate a temporary file using /dev/urandom, if available. If not, fall back to the old behaviour or using debugfs. [ Fixed up use of non-POSIX /bin/sh constructs and add test_data.tmp to .gitignore and files to be deleted on a make clean. --tytso ] Signed-off-by: Andreas Dilger <adilger@dilger.ca> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
8b5273d5d1
commit
5cf8bb1100
1
.gitignore
vendored
1
.gitignore
vendored
@ -223,6 +223,7 @@ tests/*.failed
|
||||
tests/*.log
|
||||
tests/*.tmp
|
||||
tests/*.slow
|
||||
tests/test_data.tmp
|
||||
tests/mke2fs.conf
|
||||
tests/test_script
|
||||
tests/test_one
|
||||
|
@ -94,7 +94,7 @@ testend: test_one ${TDIR}/image
|
||||
|
||||
clean::
|
||||
$(RM) -f *~ *.log *.new *.failed *.ok *.tmp *.slow
|
||||
$(RM) -f test_one test_script mke2fs.conf
|
||||
$(RM) -f test_one test_script mke2fs.conf test_data.tmp
|
||||
|
||||
distclean:: clean
|
||||
$(RM) -f Makefile
|
||||
|
@ -13,7 +13,14 @@ E2IMAGE="$USE_VALGRIND ../misc/e2image"
|
||||
E2IMAGE_EXE="../misc/e2image"
|
||||
DEBUGFS="$USE_VALGRIND ../debugfs/debugfs"
|
||||
DEBUGFS_EXE="../debugfs/debugfs"
|
||||
TEST_BITS="../debugfs/debugfs"
|
||||
TEST_BITS="test_data.tmp"
|
||||
if [ ! -s $TEST_BITS ]; then
|
||||
# create a non-sparse test file if possible, since debugfs may be
|
||||
# sparse and cause "debugfs write" (using copy_file()) to skip holes
|
||||
# during testing if SEEK_DATA/SEEK_HOLE or FS_IOC_FIEMAP are available
|
||||
dd if=/dev/urandom of=$TEST_BITS bs=128k count=1 > /dev/null 2>&1 ||
|
||||
TEST_BITS="$DEFBUGFS_EXE"
|
||||
fi
|
||||
RESIZE2FS_EXE="../resize/resize2fs"
|
||||
RESIZE2FS="$USE_VALGRIND $RESIZE2FS_EXE"
|
||||
E2UNDO_EXE="../misc/e2undo"
|
||||
|
Loading…
Reference in New Issue
Block a user