Message ID | 1477114796-19019-1-git-send-email-eguan@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sat, Oct 22, 2016 at 01:39:56PM +0800, Eryu Guan wrote: > In the test ROOT_INO is filtered out or replaced, but if ROOT_INO is > also 32, more "32"s are filtered or replaced than expected. This > happens to me when testing 512B block size XFS and 1k block size CRC > enabled XFS. > > Also the ROOT_INO should be the inode number of TEST_DIR not > SCRATCH_MNT. > > Signed-off-by: Eryu Guan <eguan@redhat.com> > --- > tests/xfs/054 | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/tests/xfs/054 b/tests/xfs/054 > index 7d08f8a..578b752 100755 > --- a/tests/xfs/054 > +++ b/tests/xfs/054 > @@ -52,13 +52,13 @@ _require_test > _require_xfs_io_command "inode" > > # We know the root inode is there > -ROOT_INO=`ls -id $SCRATCH_MNT | awk '{print $1}'` > +ROOT_INO=`ls -id $TEST_DIR | awk '{print $1}'` > > touch $TEST_DIR/file > > $XFS_IO_PROG -c "inode" $TEST_DIR/file > $XFS_IO_PROG -c "inode -v" $TEST_DIR/file | \ > - grep -vw $ROOT_INO | sed -e s/.*:/LAST:/g > + grep -vw "^$ROOT_INO" | sed -e s/.*:/LAST:/g So all of these sed expressions have the modifier "/g" on them, which means "replace every matching occurrence on the line". If all we want to do is replace the first match, then we should be dropping the "g" modifier from the sed expressions... Cheers, Dave.
On Tue, Oct 25, 2016 at 04:50:16PM +1100, Dave Chinner wrote: > On Sat, Oct 22, 2016 at 01:39:56PM +0800, Eryu Guan wrote: > > In the test ROOT_INO is filtered out or replaced, but if ROOT_INO is > > also 32, more "32"s are filtered or replaced than expected. This > > happens to me when testing 512B block size XFS and 1k block size CRC > > enabled XFS. > > > > Also the ROOT_INO should be the inode number of TEST_DIR not > > SCRATCH_MNT. > > > > Signed-off-by: Eryu Guan <eguan@redhat.com> > > --- > > tests/xfs/054 | 14 +++++++------- > > 1 file changed, 7 insertions(+), 7 deletions(-) > > > > diff --git a/tests/xfs/054 b/tests/xfs/054 > > index 7d08f8a..578b752 100755 > > --- a/tests/xfs/054 > > +++ b/tests/xfs/054 > > @@ -52,13 +52,13 @@ _require_test > > _require_xfs_io_command "inode" > > > > # We know the root inode is there > > -ROOT_INO=`ls -id $SCRATCH_MNT | awk '{print $1}'` > > +ROOT_INO=`ls -id $TEST_DIR | awk '{print $1}'` > > > > touch $TEST_DIR/file > > > > $XFS_IO_PROG -c "inode" $TEST_DIR/file > > $XFS_IO_PROG -c "inode -v" $TEST_DIR/file | \ > > - grep -vw $ROOT_INO | sed -e s/.*:/LAST:/g > > + grep -vw "^$ROOT_INO" | sed -e s/.*:/LAST:/g > > So all of these sed expressions have the modifier "/g" on > them, which means "replace every matching occurrence on the line". > If all we want to do is replace the first match, then we should be > dropping the "g" modifier from the sed expressions... I thought about this too, but it only works for "replace" in sed, not for the "grep -vw" part. One of the problems here is that "grep -vw" is filtering out more lines, so adding "^" is still needed for grep. OTOH, all the "g" modifiers in this test seem not necessary to me, I'll remove all "g"s in v2. Thanks for the review! Eryu -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/tests/xfs/054 b/tests/xfs/054 index 7d08f8a..578b752 100755 --- a/tests/xfs/054 +++ b/tests/xfs/054 @@ -52,13 +52,13 @@ _require_test _require_xfs_io_command "inode" # We know the root inode is there -ROOT_INO=`ls -id $SCRATCH_MNT | awk '{print $1}'` +ROOT_INO=`ls -id $TEST_DIR | awk '{print $1}'` touch $TEST_DIR/file $XFS_IO_PROG -c "inode" $TEST_DIR/file $XFS_IO_PROG -c "inode -v" $TEST_DIR/file | \ - grep -vw $ROOT_INO | sed -e s/.*:/LAST:/g + grep -vw "^$ROOT_INO" | sed -e s/.*:/LAST:/g # These should fail, -n requires an inode $XFS_IO_PROG -c "inode -n" $TEST_DIR/file 2>&1 | grep -q Query \ @@ -83,15 +83,15 @@ $XFS_IO_PROG -c "inode -n -v badnumber" $TEST_DIR/file | grep -q numeric \ # These should all work, and return $ROOT_INO or the next inode... # grep out ROOT_INO (which is incorrect) when we should be getting next inode $XFS_IO_PROG -c "inode $ROOT_INO" $TEST_DIR/file | \ - sed -e s/$ROOT_INO/ROOT_INO/g + sed -e s/^$ROOT_INO/ROOT_INO/g $XFS_IO_PROG -c "inode -v $ROOT_INO" $TEST_DIR/file | \ - sed -e s/$ROOT_INO/ROOT_INO/g + sed -e s/^$ROOT_INO/ROOT_INO/g $XFS_IO_PROG -c "inode -n $ROOT_INO" $TEST_DIR/file | \ - grep -vw $ROOT_INO | sed -e s/.*/NEXT/g + grep -vw "^$ROOT_INO" | sed -e s/.*/NEXT/g $XFS_IO_PROG -c "inode -nv $ROOT_INO" $TEST_DIR/file | \ - grep -vw $ROOT_INO | sed -e s/.*:/NEXT:/g + grep -vw "^$ROOT_INO" | sed -e s/.*:/NEXT:/g $XFS_IO_PROG -c "inode -n -v $ROOT_INO" $TEST_DIR/file | \ - grep -vw $ROOT_INO | sed -e s/.*:/NEXT:/g + grep -vw "^$ROOT_INO" | sed -e s/.*:/NEXT:/g # Try one that doesn't exist, 2^64-2? Should get 0 $XFS_IO_PROG -c "inode 18446744073709551614" $TEST_DIR/file
In the test ROOT_INO is filtered out or replaced, but if ROOT_INO is also 32, more "32"s are filtered or replaced than expected. This happens to me when testing 512B block size XFS and 1k block size CRC enabled XFS. Also the ROOT_INO should be the inode number of TEST_DIR not SCRATCH_MNT. Signed-off-by: Eryu Guan <eguan@redhat.com> --- tests/xfs/054 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)