Re: [PATCH] xfstests: test dump/restore of 32-bit projids

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2012-08-26 at 22:27 -0500, Eric Sandeen wrote:
>Test that xfsdump/xfsrestore properly restores more than the
> bottom 16 bits of a 32-bit projid.
>
> Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
> ---
>
> diff --git a/285 b/285
> new file mode 100755
> index 0000000..2804e5d
> --- /dev/null
> +++ b/285
> @@ -0,0 +1,81 @@
> +#! /bin/bash
> +# FS QA Test No. 285
> +#
> +# Test projid32: persist 32 bit projids thorugh dump/restore
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2012 Eric Sandeen.  All Rights Reserved.
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License as
> +# published by the Free Software Foundation.
> +#
> +# This program is distributed in the hope that it would be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write the Free Software Foundation,
> +# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
> +#-----------------------------------------------------------------------
> +#
> +# creator
> +owner=sandeen@xxxxxxxxxxx
> +
> +seq=`basename $0`
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1    # failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> +    cd /
> +    rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common.rc
> +. ./common.filter
> +. ./common.dump
> +. ./common.quota
> +
> +_require_scratch
> +_require_xfs_quota
> +
> +# real QA test starts here
> +
> +_supported_fs xfs
> +_supported_os IRIX Linux
> +
> +_scratch_mkfs_xfs -i projid32bit=1 >> $seq.full || _fail "mkfs failed"
> +
> +export MOUNT_OPTIONS="-opquota"
> +_qmount
> +_require_prjquota $SCRATCH_DEV
> +
> +# > 16 bit project ID
> +PROJID=2123456789
> +
> +# Put a project quota on a dir
> +mkdir $SCRATCH_MNT/dir
> +xfs_quota -x -c "project -s -p $SCRATCH_MNT/dir $PROJID" $SCRATCH_MNT >> $seq.full || _fail "dir pquota failed"
> +
> +# Dump it then restore it to a fresh fs, and check the projid
> +rm -f $tmp.dumpfile
> +xfsdump -L label -M media -f $tmp.dumpfile $SCRATCH_MNT >> $seq.full || _fail "dump failed"
> +umount $SCRATCH_DEV
> +
> +_scratch_mkfs_xfs -i projid32bit=1 >> $seq.full || _fail "re-mkfs failed"
> +_qmount
> +xfsrestore -f $tmp.dumpfile $SCRATCH_MNT >> $seq.full || _fail "restore failed"
> +
> +# check (-c) that we got the correct project ID back post-restore
> +xfs_quota -x -c "project -s -c -p $SCRATCH_MNT/dir $PROJID" $SCRATCH_MNT
> +
> +# success, all done
> +status=0
> +exit
> diff --git a/285.out b/285.out
> new file mode 100644
> index 0000000..daf4e4c
> --- /dev/null
> +++ b/285.out
> @@ -0,0 +1,3 @@
> +QA output created by 285
> +Checking project 2123456790 (path /mnt/scratch/dir)...
> +Processed 1 (/etc/projects and cmdline) paths for project 2123456790 with recursion depth infinite (-1).
> diff --git a/group b/group
> index 104ed35..bbc74fe 100644
> --- a/group
> +++ b/group
> @@ -403,3 +403,4 @@ deprecated
>  282 dump ioctl auto quick
>  283 dump ioctl auto quick
>  284 auto
> +285 auto dump quota
>
>

I've been working on a xfstests projid32bit test case, too. It covers this area + few others. I'll post that one, soon.
_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs

[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux