From: Xiaoguang W. <wan...@cn...> - 2013-12-12 11:11:15
|
Add two options -z and -Z for runltp, to allow user specify big block device for some tests, such as fs_ext4(ext4 new features tests). We abandon the old way of assigning specific device in runltp like that "sed -i 's|DEVICE|$DEVICE|' ${TMP}/alltests". Now we use shell variables directly in runtest files. runltp will export four shell variables to indicate devices. LTP_SMALL_DEV: small block device(the original DEVICE). LTP_BIG_DEV: big block device. if user doesn't specify it, LTP_BIG_DEV will be "d" DEVICE_FS_TYPE: default ext2 BIG_DEVICE_FS_TYPE: default ext2 Signed-off-by: Xiaoguang Wang <wan...@cn...> --- runltp | 59 +++++++++++++++++++++++++++------------------------- runtest/dio | 2 +- runtest/ltplite | 8 +++---- runtest/stress.part1 | 2 +- runtest/stress.part3 | 8 +++---- runtest/syscalls | 32 ++++++++++++++-------------- 6 files changed, 57 insertions(+), 54 deletions(-) diff --git a/runltp b/runltp index c8a2e20..681acf0 100755 --- a/runltp +++ b/runltp @@ -80,6 +80,12 @@ setup() export TMPBASE="/tmp" export PATH="${PATH}:${LTPROOT}/testcases/bin" + # here "d" indicates a invalid device + export LTP_SMALL_DEV="d" + export LTP_BIG_DEV="d" + export LTP_SMALL_DEV_FS_TYPE="ext2" + export LTP_BIG_DEV_FS_TYPE="ext2" + [ -d "$LTPROOT/testcases/bin" ] || { echo "FATAL: LTP not installed correctly" @@ -109,8 +115,8 @@ usage() [ -D NUM_PROCS,NUM_FILES,NUM_BYTES,CLEAN_FLAG ] -e [ -f CMDFILES(,...) ] [ -g HTMLFILE] [ -i NUM_PROCS ] [ -l LOGFILE ] [ -m NUM_PROCS,CHUNKS,BYTES,HANGUP_FLAG ] -N -n [ -o OUTPUTFILE ] -p -q [ -r LTPROOT ] [ -s PATTERN ] [ -t DURATION ] - -v [ -w CMDFILEADDR ] [ -x INSTANCES ] [ -b DEVICE ] [-B DEVICE_FS_TYPE] - [ -F LOOPS,PERCENTAGE ] + -v [ -w CMDFILEADDR ] [ -x INSTANCES ] [ -b DEVICE ] [-B LTP_SMALL_DEV_FS_TYPE] + [ -F LOOPS,PERCENTAGE ] [ -z BIG_DEVICE ] [-Z LTP_BIG_DEV_FS_TYPE] -a EMAIL_TO EMAIL all your Reports to this E-mail Address -c NUM_PROCS Run LTP under additional background CPU load @@ -162,7 +168,11 @@ usage() -x INSTANCES Run multiple instances of this testsuite. -b DEVICE Some tests require an unmounted block device to run correctly. - -B DEVICE_FS_TYPE The file system of test block devices. + -B LTP_SMALL_DEV_FS_TYPE The file system of test block devices. + -z BIG_DEVICE Some tests require a big unmounted block device + to run correctly. + -Z LTP_BIG_DEV_FS_TYPE The file system of the big device + example: ${0##*/} -c 2 -i 2 -m 2,4,10240,1 -D 2,10,10240,1 -p -q -l /tmp/result-log.$$ -o /tmp/result-output.$$ -C /tmp/result-failed.$$ -d ${PWD} @@ -206,12 +216,11 @@ main() local TAG_RESTRICT_STRING="" local PAN_COMMAND="" local DEFAULT_FILE_NAME_GENERATION_TIME=`date +"%Y_%b_%d-%Hh_%Mm_%Ss"` - local DEVICE_FS_TYPE="ext2" local scenfile= version_date=$(cat "$LTPROOT/Version") - while getopts a:c:C:d:D:f:F:ehi:K:g:l:m:M:Nno:pqr:s:S:t:T:w:x:b:B: arg + while getopts a:c:C:d:D:f:F:ehi:K:g:l:m:M:Nno:pqr:s:S:t:T:w:x:b:B:z:Z: arg do case $arg in a) EMAIL_TO=$OPTARG ALT_EMAIL_OUT=1;; @@ -423,7 +432,9 @@ main() sleep 10 INSTANCES="-x $OPTARG";; b) DEVICE=$OPTARG;; - B) DEVICE_FS_TYPE=$OPTARG;; + B) LTP_SMALL_DEV_FS_TYPE=$OPTARG;; + z) BIG_DEVICE=$OPTARG;; + Z) LTP_BIG_DEV_FS_TYPE=$OPTARG;; \?) usage;; esac done @@ -677,36 +688,28 @@ main() } } - if [ -n "$DEVICE" ]; then - sed -i "s|DEVICE|$DEVICE|" ${TMP}/alltests - RC=$? - else + if [ -z "$DEVICE" ]; then create_block - if [ $? -eq 0 ]; then - sed -i "s|DEVICE|$DEVICE|" ${TMP}/alltests - RC=$? - else + if [ $? -ne 0 ]; then echo "no block device was specified on commandline." echo "Block device could not be created using loopback device" echo "Tests which require block device are disabled." echo "You can specify it with option -b" - sed -i "/DEVICE/d" ${TMP}/alltests - RC=$? + else + LTP_SMALL_DEV=$DEVICE fi + else + LTP_SMALL_DEV=$DEVICE fi - if [ $RC -ne 0 ]; then - echo "FATAL: error during processing alltests file by sed" - exit 1 - fi - - if [ -n "$DEVICE" ]; then - sed -i "s|DEVICE_FS_TYPE|$DEVICE_FS_TYPE|" ${TMP}/alltests - fi - - if [ $? -ne 0 ]; then - echo "FATAL: error during processing alltests file by sed" - exit 1 + # here even if the user don't specify a big block device, we + # also don't create the big block device. + if [ -z "$BIG_DEVICE" ]; then + echo "no big block device was specified on commandline." + echo "Tests which require a big block device are disabled." + echo "You can specify it with option -z" + else + LTP_BIG_DEV=$BIG_DEVICE fi if [ $RUN_REPEATED -gt 1 ]; then # You need to specify at least more than 1 sequential run, else it runs default diff --git a/runtest/dio b/runtest/dio index 97820e9..f39ef50 100644 --- a/runtest/dio +++ b/runtest/dio @@ -43,7 +43,7 @@ dio28 diotest6 -b 8192 -o 1024000 -i 1000 -v 200 #dio29 diotest3 -b 65536 -n 100 -i 1000 -o 1024000 #dio30 diotest6 -b 65536 -n 100 -i 1000 -o 1024000 # -# RAW DEVICE TEST SECTION +# RAW $LTP_SMALL_DEV TEST SECTION # DEV1 and DEV2 should be exported prior to execution or # replaced with the actual device ids, i.e. # dio33 diotest1 -i /dev/sda2 -o /dev/sda3 diff --git a/runtest/ltplite b/runtest/ltplite index c90bc48..d3253ff 100644 --- a/runtest/ltplite +++ b/runtest/ltplite @@ -66,9 +66,9 @@ access02 access02 access03 access03 access04 access04 access05 access05 -access06 access06 -D DEVICE -T DEVICE_FS_TYPE +access06 access06 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE -acct01 acct01 -D DEVICE -T DEVICE_FS_TYPE +acct01 acct01 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE adjtimex01 adjtimex01 adjtimex02 adjtimex02 @@ -111,7 +111,7 @@ chmod07 chmod07 chown01 chown01 chown02 chown02 chown03 export change_owner=$LTPROOT/testcases/bin/change_owner;chown03 -chown04 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;chown04 -D DEVICE -T DEVICE_FS_TYPE +chown04 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;chown04 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE chown05 chown05 chroot01 chroot01 @@ -183,7 +183,7 @@ fchmod02 fchmod02 fchmod03 fchmod03 fchmod04 fchmod04 fchmod05 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod05 -fchmod06 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod06 -D DEVICE -T DEVICE_FS_TYPE +fchmod06 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod06 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE fchmod07 fchmod07 fchown01 fchown01 diff --git a/runtest/stress.part1 b/runtest/stress.part1 index d879aaf..b8f250c 100644 --- a/runtest/stress.part1 +++ b/runtest/stress.part1 @@ -90,7 +90,7 @@ dio28 diotest6 -b 8192 -o 1024000 -i 1000 -v 200 #dio29 diotest3 -b 65536 -n 100 -i 1000 -o 1024000 #dio30 diotest6 -b 65536 -n 100 -i 1000 -o 1024000 # -# RAW DEVICE TEST SECTION +# RAW $LTP_SMALL_DEV TEST SECTION # DEV1 and DEV2 should be exported prior to execution or # replaced with the actual device ids, i.e. # dio33 diotest1 -i /dev/sda2 -o /dev/sda3 diff --git a/runtest/stress.part3 b/runtest/stress.part3 index eac28d0..7731265 100644 --- a/runtest/stress.part3 +++ b/runtest/stress.part3 @@ -8,9 +8,9 @@ access02 access02 access03 access03 access04 access04 access05 access05 -access06 access06 -D DEVICE -T DEVICE_FS_TYPE +access06 access06 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE -acct01 acct01 -D DEVICE -T DEVICE_FS_TYPE +acct01 acct01 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE adjtimex01 adjtimex01 adjtimex02 adjtimex02 @@ -53,7 +53,7 @@ chmod07 chmod07 chown01 chown01 chown02 chown02 chown03 export change_owner=$LTPROOT/testcases/bin/change_owner;chown03 -chown04 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;chown04 -D DEVICE -T DEVICE_FS_TYPE +chown04 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;chown04 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE chown05 chown05 chroot01 chroot01 @@ -124,7 +124,7 @@ fchmod02 fchmod02 fchmod03 fchmod03 fchmod04 fchmod04 fchmod05 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod05 -fchmod06 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod06 -D DEVICE -T DEVICE_FS_TYPE +fchmod06 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod06 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE fchmod07 fchmod07 fchown01 fchown01 diff --git a/runtest/syscalls b/runtest/syscalls index c5bbe8f..852dcd4 100644 --- a/runtest/syscalls +++ b/runtest/syscalls @@ -9,9 +9,9 @@ access02 access02 access03 access03 access04 access04 access05 access05 -access06 access06 -D DEVICE -T DEVICE_FS_TYPE +access06 access06 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE -acct01 acct01 -D DEVICE -T DEVICE_FS_TYPE +acct01 acct01 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE add_key01 add_key01 add_key02 add_key02 @@ -55,7 +55,7 @@ chmod02 chmod02 chmod03 chmod03 chmod04 chmod04 chmod05 chmod05 -chmod06 chmod06 -D DEVICE -T DEVICE_FS_TYPE +chmod06 chmod06 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE chmod07 chmod07 chown01 chown01 @@ -64,8 +64,8 @@ chown02 chown02 chown02_16 chown02_16 chown03 chown03 chown03_16 chown03_16 -chown04 chown04 -D DEVICE -T DEVICE_FS_TYPE -chown04_16 chown04_16 -D DEVICE -T DEVICE_FS_TYPE +chown04 chown04 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE +chown04_16 chown04_16 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE chown05 chown05 chown05_16 chown05_16 @@ -173,7 +173,7 @@ fchmod02 fchmod02 fchmod03 fchmod03 fchmod04 fchmod04 fchmod05 fchmod05 -fchmod06 fchmod06 -D DEVICE -T DEVICE_FS_TYPE +fchmod06 fchmod06 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE fchmod07 fchmod07 #fchmodat test cases @@ -436,7 +436,7 @@ inotify_init1_02 inotify_init1_02 inotify01 inotify01 inotify02 inotify02 -inotify03 inotify03 -D DEVICE -T DEVICE_FS_TYPE +inotify03 inotify03 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE inotify04 inotify04 fanotify01 fanotify01 @@ -581,12 +581,12 @@ modify_ldt02 modify_ldt02 # to run correctly. Please see individual test # code for more information. # -mount01 mount01 -D DEVICE -T DEVICE_FS_TYPE -mount02 mount02 -D DEVICE -T DEVICE_FS_TYPE -mount03 mount03 -D DEVICE -T DEVICE_FS_TYPE -mount04 mount04 -D DEVICE -T DEVICE_FS_TYPE +mount01 mount01 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE +mount02 mount02 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE +mount03 mount03 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE +mount04 mount04 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE mount05 mount05 -mount06 mount06 -D DEVICE -T DEVICE_FS_TYPE +mount06 mount06 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE move_pages01 move_pages.sh 01 move_pages02 move_pages.sh 02 @@ -776,7 +776,7 @@ pwrite03_64 pwrite03_64 pwrite04_64 pwrite04_64 quotactl01 quotactl01 -quotactl02 quotactl02 -D DEVICE +quotactl02 quotactl02 -D $LTP_SMALL_DEV read01 read01 read02 read02 @@ -1269,9 +1269,9 @@ unshare02 unshare02 # to run correctly. Please see individual test # code for more information. # -umount01 umount01 -D DEVICE -T DEVICE_FS_TYPE -umount02 umount02 -D DEVICE -T DEVICE_FS_TYPE -umount03 umount03 -D DEVICE -T DEVICE_FS_TYPE +umount01 umount01 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE +umount02 umount02 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE +umount03 umount03 -D $LTP_SMALL_DEV -T $LTP_SMALL_DEV_FS_TYPE ustat01 ustat01 ustat02 ustat02 -- 1.8.2.1 |
From: <ch...@su...> - 2014-01-30 16:00:27
|
Hi! > Add two options -z and -Z for runltp, to allow user specify big block > device for some tests, such as fs_ext4(ext4 new features tests). > > We abandon the old way of assigning specific device in runltp like that > "sed -i 's|DEVICE|$DEVICE|' ${TMP}/alltests". Now we use shell > variables directly in runtest files. > > runltp will export four shell variables to indicate devices. > LTP_SMALL_DEV: small block device(the original DEVICE). > LTP_BIG_DEV: big block device. if user doesn't specify it, > LTP_BIG_DEV will be "d" > DEVICE_FS_TYPE: default ext2 > BIG_DEVICE_FS_TYPE: default ext2 > Pushed with following changes: * Renamed the LTP_SMALL_DEV to just LTP_DEV and LTP_SMALL_DEV_FS_TYPE to LTP_DEV_FS_TYPE * The devices are initialized to empty string * Fixed the commit message (the DEVICE_FS_TYPE and BIG_DEVICE_FS_TYPE were wrong anyway) Thanks. -- Cyril Hrubis ch...@su... |