From 11b5d151337e2e7d94a7f94b3e82dc2fa50db5ab Mon Sep 17 00:00:00 2001 From: Nathan Scott Date: Thu, 17 Feb 2005 02:52:28 +0000 Subject: [PATCH] Add a test to run fsx with the AIO flag switched on, in combination with various other flags. Merge of master-melb:xfs-cmds:21536a by kenmcd. --- 075 | 2 +- 112 | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 112.out | 18 ++++++ group | 4 ++ 4 files changed, 193 insertions(+), 1 deletion(-) create mode 100755 112 create mode 100755 112.out diff --git a/075 b/075 index fdedce2d..bf32cb8c 100755 --- a/075 +++ b/075 @@ -1,7 +1,7 @@ #! /bin/sh # FS QA Test No. 075 # -# fsx +# fsx (non-AIO variant) # #----------------------------------------------------------------------- # Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved. diff --git a/112 b/112 new file mode 100755 index 00000000..55e0d64b --- /dev/null +++ b/112 @@ -0,0 +1,170 @@ +#! /bin/sh +# FS QA Test No. 112 +# +# fsx (AIO variant, based on 075) +# +#----------------------------------------------------------------------- +# Copyright (c) 2005 Silicon Graphics, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of version 2 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. +# +# Further, this software is distributed without any warranty that it is +# free of the rightful claim of any third person regarding infringement +# or the like. Any license provided herein, whether implied or +# otherwise, applies only to this software file. Patent licenses, if +# any, provided herein do not apply to combinations of this program with +# other software, or any other product whatsoever. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write the Free Software Foundation, Inc., 59 +# Temple Place - Suite 330, Boston MA 02111-1307, USA. +# +# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, +# Mountain View, CA 94043, or: +# +# http://www.sgi.com +# +# For further information regarding this notice, see: +# +# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ +#----------------------------------------------------------------------- +# +# creator +owner=nathans@sgi.com + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=0 # success is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -rf $testdir/fsx.* $tmp.* + _cleanup_testdir +} + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +_do_test() +{ + _n="$1" + _param="$2" + + out=$testdir/fsx + rm -rf $out + if ! mkdir $out + then + echo " failed to mkdir $out" + status=1 + exit + fi + + _filter_param=`echo "$_param" | sed\ + -e 's/-N [0-9][0-9]*/-N numops/' \ + -e 's/-l [0-9][0-9]*/-l filelen/'` + + echo "" + echo "-----------------------------------------------" + echo "fsx.$_n : $_filter_param" + echo "-----------------------------------------------" + + # This cd and use of -P gets full debug on $here (not TEST_DEV) + cd $out + if ! $here/ltp/fsx $_param -P $here $seq.$_n >/dev/null + then + echo " fsx ($_param) returned $? - see $seq.$_n.full" + mv $seq.$_n.fsxlog $here/$seq.$_n.full + status=1 + exit + fi + + cd $here + _check_test_fs +} + +_usage() +{ + echo "$0: [-l filelen] [-n numops1] [-N numops2]" +} + +_process_args() +{ + while getopts "l:n:N:?" c $@ + do + case $c + in + l) + filelen=$OPTARG + param_type="$param_type, overidde -l" + ;; + N) + numops2=$OPTARG + param_type="$param_type, overidde -N" + ;; + n) + numops1=$OPTARG + param_type="$param_type, overidde -n" + ;; + ?) + _usage + exit + ;; + esac + done +} + + +# real QA test starts here +_supported_fs xfs +_supported_os Linux + +[ -x $here/ltp/aio-stress ] || \ + _notrun "fsx not built with AIO for this platform" + +size10=`expr 10 \* 1024 \* 1024` # 10 megabytes +filelen=$size10 +numops1=1000 +numops2=10000 + +# can override the params here +_process_args "$@" + +echo "Params are for $param_type" >>$seq.full +echo "Params: n = $numops1 N = $numops2 l = $filelen" >>$seq.full + +_setup_testdir + +rm -f $here/$seq.full +echo "brevity is wit..." + +_check_test_fs + +# Options: +# -d: debug output for all operations +# -l flen: the upper bound on file size (default 262144) +# -o oplen: the upper bound on operation size +# -N numops: total # operations to do (default infinity) +# -P: save .fsxlog and .fsxgood files in dirpath (default ./) +# -S seed: for random # generator (default 1) 0 gets timestamp +# -x: pre-allocate file space, exercising unwritten extents +# -A: use the AIO system calls + +_do_test 0 "-A -d -N $numops1 -S 0" +_do_test 1 "-A -d -N $numops1 -S 0 -x" +_do_test 2 "-A -d -N $numops2 -l $filelen -S 0" +_do_test 3 "-A -d -N $numops2 -l $filelen -S 0 -x" + +rm -f $seq.*.fsx{good,log} +exit 0 diff --git a/112.out b/112.out new file mode 100755 index 00000000..7d1709cf --- /dev/null +++ b/112.out @@ -0,0 +1,18 @@ +QA output created by 112 +brevity is wit... + +----------------------------------------------- +fsx.0 : -A -d -N numops -S 0 +----------------------------------------------- + +----------------------------------------------- +fsx.1 : -A -d -N numops -S 0 -x +----------------------------------------------- + +----------------------------------------------- +fsx.2 : -A -d -N numops -l filelen -S 0 +----------------------------------------------- + +----------------------------------------------- +fsx.3 : -A -d -N numops -l filelen -S 0 -x +----------------------------------------------- diff --git a/group b/group index 98088d0c..ff5b85b4 100644 --- a/group +++ b/group @@ -72,6 +72,9 @@ ioctl nathans@sgi.com # udf filesystem udf ajones@sgi.com +# AIO operations +aio nathans@sgi.com + # test-group association ... one line per test # 001 rw dir udf auto @@ -178,4 +181,5 @@ udf ajones@sgi.com 102 udf auto 103 metadata dir ioctl auto 104 growfs ioctl +112 rw aio auto 113 rw aio auto -- 2.30.2