xfs
[Top] [All Lists]

Re: [PATCH] xfstests: add test 215: c/mtime updates through mapped write

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH] xfstests: add test 215: c/mtime updates through mapped writes
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Mon, 06 Jul 2009 23:01:16 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <20090704182742.GA11083@xxxxxxxxxxxxx>
References: <20090704182742.GA11083@xxxxxxxxxxxxx>
User-agent: Thunderbird 2.0.0.22 (Macintosh/20090605)
Christoph Hellwig wrote:
> Check that we correctly update the timestamps when writing to a file
> through an mmap mapping.  Currently fails for XFS due a VFS bug but
> succeeds for many other filesystems.
> 
> 
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>

Test seems mostly ok, but aren't you missing 215.out in the patch?

couple comments below

> Index: xfstests-dev/215
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ xfstests-dev/215  2009-07-04 18:25:43.000000000 +0000
> @@ -0,0 +1,87 @@
> +#! /bin/sh
> +# FS QA Test No. 215
> +#
> +# Test out c/mtime updates after mapped writes.
> +#
> +# Based on the testcase in http://bugzilla.kernel.org/show_bug.cgi?id=2645
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2009 Christoph Hellwig.
> +#
> +# 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=hch@xxxxxx
> +
> +seq=`basename $0`
> +echo "QA output created by $seq"
> +
> +_cleanup()
> +{
> +     cd /
> +     rm -f $testfile
> +}
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1     # failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +# get standard environment, filters and checks
> +. ./common.rc
> +. ./common.filter
> +
> +# real QA test starts here
> +_supported_fs generic
> +_supported_os Linux
> +
> +testfile=$TEST_DIR/tst.mmap
> +
> +echo
> +echo "creating test file"
> +dd if=/dev/zero of=$testfile count=4096
> +
> +mtime1=`stat --printf="%Y" $testfile`
> +ctime1=`stat --printf="%Z" $testfile`
> +
> +sleep 1

Is there any slight chance a sleep 1 won't catch it?  Would sleep 2 do
better to be sure?

> +echo
> +echo "writing via mmap"
> +$XFS_IO_PROG -F -f           \
> +     -c 'mmap 0 4096'        \
> +     -c 'mwrite 0 4096'      \
> +     $testfile | _filter_xfs_io_unique
> +
> +mtime2=`stat --printf="%Y" $testfile`
> +ctime2=`stat --printf="%Z" $testfile`
> +
> +let mtime_diff=$mtime2-$mtime1
> +let ctime_diff=$ctime2-$ctime1
> +
> +if [ "$mtime_diff" -eq "0" ]; then
> +   echo "FAIL: mtime not update after mapped write"
> +   status=1
> +fi
> +
> +if [ "$ctime_diff" -eq "0" ]; then
> +   echo "FAIL: ctime not update after mapped write"
> +   status=1
> +fi

Should these just be _fail calls?  Otherwise...

> +# success, all done
> +echo "*** done"
> +rm -f $seq.full
> +status=0

don't you always exit w/ status 0 and remove the full output?

I guess i'm not sure when to use _fail and when to let the golden output
difference kill the test, I suppose it doesn't much matter, it should
pass & fail correctly either way.

-Eric

> Index: xfstests-dev/group
> ===================================================================
> --- xfstests-dev.orig/group   2009-07-04 18:07:40.000000000 +0000
> +++ xfstests-dev/group        2009-07-04 18:07:55.000000000 +0000
> @@ -323,3 +323,4 @@
>  212 auto aio quick
>  213 rw auto prealloc quick
>  214 rw auto prealloc quick
> +215 auto metadata quick
> 
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs
> 

<Prev in Thread] Current Thread [Next in Thread>