#! /bin/bash
# FS QA Test No. 029
#
# exercise mkfs log (internal/external) zeroing
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2002 Silicon Graphics, Inc.  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
#
#-----------------------------------------------------------------------
#

seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"

here=`pwd`
tmp=/tmp/$$
status=1	# failure is the default
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15

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

_filter_logprint()
{
	perl -ne '
	    s/data device: ([\w|\/.-]+)/data device: DDEV/;
	    s/log device: ([\w|\/.-]+) daddr: (\d+) length: (\d+)/log device: LDEV daddr: XXX length: XXX/;
	    s/log file: "([\w|\/.-]+)" daddr: (\d+) length: (\d+)/log device: LDEV daddr: XXX length: XXX/;
	    s/skipped (\w+) zeroed blocks/skipped XXX zeroed blocks/;
	    s/in range: \d+ - \d+/in range: XXX - XXX/;
            s/^uuid: *[0-9a-f-][0-9a-f-]* *format: *.*$/uuid: <UUID> format: <FORMAT>/;
            s/(length of Log Record:) \d+/$1 <LEN>/;
            s/version: \d/version: <VERN>/;
	    s/h_size: \d+/h_size: <H_SIZE>/;
	    print;
	'
}

# real QA test starts here
_supported_fs xfs
_supported_os Linux

_require_scratch

echo
_scratch_mkfs_xfs | _filter_mkfs 2>/dev/null

echo
_scratch_xfs_logprint | _filter_logprint

status=0
exit
