mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
fstests: filter mount error message for EUCLEAN and ESTALE
util-linux commit ea848180dd34 ("libmount: add
mnt_context_get_excode()") since v2.30 changed the error message on
EUCLEAN and ESTALE again (and maybe other errno too):
- mount: <device> on <mountpoint> failed: Structure needs cleaning
+ mount: <mountpoint>: mount(2) system call failed: Structure needs cleaning.
and it causes xfs/005, overlay/037 to fail (and probably xfs/333 too,
but it's always _notrun for now).
And what's more, the mentioned tests would also fail when testing
with util-linux prior to v2.21, no one complained just because the
tests are usually _notrun on such old distributions that ship
util-linux < v2.21.
So let's filter out the changing parts and keep the error message
simple.
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
@@ -390,6 +390,13 @@ _filter_fstrim()
|
||||
egrep -o "[0-9]+ bytes" | $AWK_PROG '{print $1}'
|
||||
}
|
||||
|
||||
# Remove the ending dot appended to mount error message, util-linux 2.30
|
||||
# starts to do so.
|
||||
_filter_ending_dot()
|
||||
{
|
||||
sed -e "s/\.$//"
|
||||
}
|
||||
|
||||
# Older mount output referred to "block device" when mounting RO devices
|
||||
# It's gone in newer versions
|
||||
_filter_ro_mount() {
|
||||
@@ -397,6 +404,25 @@ _filter_ro_mount() {
|
||||
-e "s/mount: cannot mount block device/mount: cannot mount/g"
|
||||
}
|
||||
|
||||
# Filter a failed mount output due to EUCLEAN and USTALE, util-linux changed
|
||||
# the message several times.
|
||||
#
|
||||
# prior to v2.21:
|
||||
# mount: Structure needs cleaning
|
||||
# v2.21 to v2.29:
|
||||
# mount: mount <device> on <mountpoint> failed: Structure needs cleaning
|
||||
# v2.30 and later:
|
||||
# mount: <mountpoint>: mount(2) system call failed: Structure needs cleaning.
|
||||
#
|
||||
# This is also true for ESTALE error. So let's remove all the changing parts
|
||||
# and keep the 'prior to v2.21' format:
|
||||
# mount: Structure needs cleaning
|
||||
# mount: Stale file handle
|
||||
_filter_error_mount()
|
||||
{
|
||||
sed -e "s/mount:\(.*failed:\)/mount:/" | _filter_ending_dot
|
||||
}
|
||||
|
||||
_filter_od()
|
||||
{
|
||||
BLOCK_SIZE=$(_get_block_size $SCRATCH_MNT)
|
||||
|
||||
+2
-2
@@ -76,12 +76,12 @@ $UMOUNT_PROG $SCRATCH_MNT
|
||||
|
||||
# Try to mount an overlay with the same upperdir and different lowerdir - expect ESTALE
|
||||
_overlay_scratch_mount_dirs $lowerdir2 $upperdir $workdir -oindex=on \
|
||||
2>&1 | _filter_scratch
|
||||
2>&1 | _filter_error_mount
|
||||
$UMOUNT_PROG $SCRATCH_MNT 2>/dev/null
|
||||
|
||||
# Try to mount an overlay with the same workdir and different upperdir - expect ESTALE
|
||||
_overlay_scratch_mount_dirs $lowerdir $upperdir2 $workdir -oindex=on \
|
||||
2>&1 | _filter_scratch
|
||||
2>&1 | _filter_error_mount
|
||||
$UMOUNT_PROG $SCRATCH_MNT 2>/dev/null
|
||||
|
||||
# Mount overlay with original lowerdir, upperdir, workdir and index=on - expect success
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
QA output created by 037
|
||||
mount: mount SCRATCH_DEV on SCRATCH_MNT failed: Stale file handle
|
||||
mount: mount SCRATCH_DEV on SCRATCH_MNT failed: Stale file handle
|
||||
mount: Stale file handle
|
||||
mount: Stale file handle
|
||||
|
||||
+1
-6
@@ -40,11 +40,6 @@ _cleanup()
|
||||
rm -f $tmp.*
|
||||
}
|
||||
|
||||
filter_mount()
|
||||
{
|
||||
sed -e "s/mount .* failed: //"
|
||||
}
|
||||
|
||||
# get standard environment, filters and checks
|
||||
. ./common/rc
|
||||
. ./common/filter
|
||||
@@ -64,7 +59,7 @@ _scratch_mkfs_xfs -m crc=1 >> $seqres.full 2>&1 || _fail "mkfs failed"
|
||||
$XFS_IO_PROG -c "pwrite 224 4" -c fsync $SCRATCH_DEV | _filter_xfs_io
|
||||
|
||||
# should FAIL, the crc is bad; golden output contains mount failure
|
||||
_scratch_mount 2>&1 | filter_mount
|
||||
_scratch_mount 2>&1 | _filter_error_mount
|
||||
|
||||
# success, all done
|
||||
status=0
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ _scratch_unmount
|
||||
|
||||
echo "Corrupt fs"
|
||||
_scratch_xfs_db -x -c 'sb 0' -c "write rrmapino $ino" >> $seqres.full
|
||||
_scratch_mount 2>&1 | _filter_scratch
|
||||
_scratch_mount 2>&1 | _filter_error_mount
|
||||
|
||||
echo "Test done, mount should have failed"
|
||||
|
||||
|
||||
+1
-1
@@ -2,5 +2,5 @@ QA output created by 333
|
||||
Format and mount
|
||||
Create some files
|
||||
Corrupt fs
|
||||
mount: mount SCRATCH_DEV on SCRATCH_MNT failed: Structure needs cleaning
|
||||
mount: Structure needs cleaning
|
||||
Test done, mount should have failed
|
||||
|
||||
Reference in New Issue
Block a user