blob: 8bef50e138240447a188a2e2ac273a553db14b76 [file] [log] [blame]
#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2018 Oracle, Inc.
#
# FS QA Test No. 449
#
# Make sure pretty printed XFS geometry is the same across all programs.
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
cd /
rm -f $tmp.*
}
rm -f $seqres.full
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
# real QA test starts here
_supported_fs xfs
_require_scratch_nocheck
# Geometry printing wasn't unified until xfs_spaceman grew an 'info'
# command, so skip this test if there is no spaceman or it doesn't
# know what 'info' is.
_require_xfs_spaceman_command "info"
_require_command "$XFS_GROWFS_PROG" xfs_growfs
_scratch_mkfs | sed -e '/Discarding/d' > $tmp.mkfs
echo MKFS >> $seqres.full
cat $tmp.mkfs >> $seqres.full
_scratch_xfs_db -c "info" > $tmp.dbinfo
echo DB >> $seqres.full
cat $tmp.dbinfo >> $seqres.full
# xfs_db doesn't take a rtdev argument, so it reports "realtime=external".
# mkfs does, so make a quick substitution
diff -u <(cat $tmp.mkfs | sed -e 's/realtime =\/.*extsz=/realtime =external extsz=/g') $tmp.dbinfo
_scratch_mount
$XFS_SPACEMAN_PROG -c "info" $SCRATCH_MNT > $tmp.spaceman
echo SPACEMAN >> $seqres.full
cat $tmp.spaceman >> $seqres.full
diff -u $tmp.mkfs $tmp.spaceman
$XFS_GROWFS_PROG -n $SCRATCH_MNT > $tmp.growfs
echo GROWFS >> $seqres.full
cat $tmp.growfs >> $seqres.full
diff -u $tmp.mkfs $tmp.growfs
$XFS_INFO_PROG $SCRATCH_MNT > $tmp.info.mnt
echo INFO_MNT >> $seqres.full
cat $tmp.info.mnt >> $seqres.full
diff -u $tmp.mkfs $tmp.info.mnt
$XFS_INFO_PROG $SCRATCH_DEV > $tmp.info.dev
echo INFO_DEV >> $seqres.full
cat $tmp.info.dev >> $seqres.full
diff -u $tmp.mkfs $tmp.info.dev
echo "Silence is golden."
status=0
exit 0