[BACK]Return to 166 CVS log [TXT][DIR] Up to [Development] / xfs-cmds / xfstests

File: [Development] / xfs-cmds / xfstests / 166 (download)

Revision 1.3, Tue Mar 25 05:19:50 2008 UTC (9 years, 6 months ago) by dgc.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.2: +31 -7 lines

xfsqa test 166 fails on 64k page machine

test 166 output is dependent on page size (mmap related). Make
the output filter turn the output into something independent of
page size whilst checking that the output is valid.
Merge of master-melb:xfs-cmds:30702a by kenmcd.

  Make the file size and I/O size large enough that 64k pages are
  handled correctly.

#! /bin/sh
# FSQA Test No. 166
#
# ->page-mkwrite test - unwritten extents and mmap
#
#-----------------------------------------------------------------------
#  Copyright (c) 2007 Silicon Graphics, Inc.  All Rights Reserved.
#-----------------------------------------------------------------------
#
# creator
owner=dgc@sgi.com

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()
{
    _cleanup_testdir
}

# get standard environment, filters and checks
. ./common.rc
. ./common.filter

# assumes 1st, 3rd and 5th blocks are single written blocks,
# the others are unwritten.
_filter_blocks()
{
	$AWK_PROG '
/[0-9]/ {
	if (!written_size) {
		written_size = $6
		unwritten1 = ((1048576/512) / 2) - written_size
		unwritten2 = ((1048576/512) / 2) - 2 * written_size
	}

	if ($7) {
		size = "RIGHT"
		flags = "GOOD"
		if (unwritten1) {
			if ($6 != unwritten1)
				size = "WRONG"
			unwritten1 = 0;
		} else if ($6 != unwritten2) {
			size = "WRONG"
		}
		if ($7 < 10000)
			flags = "BAD"
	} else {
		size = "RIGHT"
		flags = "GOOD"
		if ($6 != written_size)
			size = "WRONG"
	}
	print $1, "[AA..BB]", "XX..YY", "AG", "(AA..BB)", size, flags
}'
}

# real QA test starts here
_supported_fs xfs
_supported_os Linux

_setup_testdir
_require_scratch
_scratch_mkfs_xfs >/dev/null 2>&1
_scratch_mount

TEST_FILE=$SCRATCH_MNT/test_file
TEST_PROG=$here/src/unwritten_mmap
FILE_SIZE=1048576

rm -f $TEST_FILE
$TEST_PROG $FILE_SIZE $TEST_FILE

xfs_bmap -vp $TEST_FILE | _filter_blocks

status=0
exit