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 <[email protected]>
---
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
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list