Skip to contentSkip to conversation

fs/ext4-new-features: add ext4-new-features tests to default

PATCH [email protected] 1 participant 1 message Jan 30, 2014 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

Hi!

Quoted 244 lines

Remove run_ext4_test.sh which calls all feature tests directly. Now we treat every feature as a signle test in fs_ext4 runtest file, keep one entry per test.
Like that:
ext4-nsec-timestamps ext4_nsec_timestamps_test.sh -D $LTP_BIG_DEV
ext4-uninit-groups ext4_uninit_groups_test.sh -D $LTP_BIG_DEV

Configure script has been removed and ffsb has been moved to utils directory.

If want to run these tests, user should specify a big block device when run runltp, which will be parsed in ext4_setup() defined in ext4_funcs.sh.

Currently enable ext4-nsec-timestamps, ext4-persist-prealloc, ext4-subdir-limit, ext4-uninit-groups test.

---
 runtest/fs_ext4                                    |   5 +-
 scenario_groups/default                            |   1 +
 .../ext4-delalloc-mballoc/ext4-alloc-test.sh       |   5 +-
 .../ext4-inode-version/ext4_inode_version_test.sh  |   5 +-
 .../ext4-journal-checksum/ext4_journal_checksum.sh |   5 +-
 .../ext4_nsec_timestamps_test.sh                   |   4 +-
 .../ext4-online-defrag/ext4_online_defrag_test.sh  |   5 +-
 .../ext4_persist_prealloc_test.sh                  |   5 +-
 .../ext4-subdir-limit/ext4_subdir_limit_test.sh    |   4 +-
 .../ext4-uninit-groups/ext4_uninit_groups_test.sh  |   4 +-
 .../kernel/fs/ext4-new-features/ext4_funcs.sh      |  60 +++++--
 .../kernel/fs/ext4-new-features/run_ext4_test.sh   | 179 ---------------------
 12 files changed, 59 insertions(+), 223 deletions(-)
 delete mode 100755 testcases/kernel/fs/ext4-new-features/run_ext4_test.sh
runtest/fs_ext4 +4 -1
index c65ebab..2206b39 100644
@@ -1 +1,4 @@
-ext4_new_feature_test	run_ext4_test.sh
+ext4-nsec-timestamps	ext4_nsec_timestamps_test.sh -D $LTP_BIG_DEV
+ext4-uninit-groups	ext4_uninit_groups_test.sh -D $LTP_BIG_DEV
+ext4-persist-prealloc	ext4_persist_prealloc_test.sh -D $LTP_BIG_DEV
+ext4-subdir-limit	ext4_subdir_limit_test.sh -D $LTP_BIG_DEV
scenario_groups/default +1 -0
index 9eca8ad..893909c 100644
@@ -25,3 +25,4 @@ hugetlb
 commands
 hyperthreading
 kernel_misc
+fs_ext4
testcases/kernel/fs/ext4-new-features/ext4-delalloc-mballoc/ext4-alloc-test.sh +1 -4
index dfa34c4..e40a1d1 100755
@@ -28,11 +28,8 @@ export TCID="ext4-delalloc-mballoc"
 export TST_TOTAL=17
 export TST_COUNT=1
 
-# $1: the test config
-
 export TEST_DIR=$PWD
 
-read_config $1
 
 # Case 17: mount ext4 partition to ext3
 ext4_test_remount()
@@ -124,7 +121,7 @@ ext4_test_delalloc_mballoc()
 }
 
 # main
-ext4_setup
+ext4_setup "$@"
 
 DELALLOC=( "delalloc" "nodelalloc" )
 DIRECT_IO=( 0 1 )
testcases/kernel/fs/ext4-new-features/ext4-inode-version/ext4_inode_version_test.sh +1 -4
index 998c3e4..f558571 100755
@@ -33,9 +33,6 @@ export TST_COUNT=1
 
 export TEST_DIR=$PWD
 
-# $1: the test config
-read_config $1
-
 # Test that inode version is not 32 bits with 128 inode size
 ext4_test_128_inode_version()
 {
@@ -145,7 +142,7 @@ test_inode_version()
 }
 
 # main
-ext4_setup
+ext4_setup "$@"
 
 RET=0
 
testcases/kernel/fs/ext4-new-features/ext4-journal-checksum/ext4_journal_checksum.sh +1 -4
index 1fd9bba..6a011b6 100755
@@ -31,11 +31,8 @@ export TCID="ext4-journal-checksum"
 export TST_TOTAL=36
 export TST_COUNT=1
 
-# $1: the test config
-
 export TEST_DIR=$PWD
 
-read_config $1
 
 # Use ffsb to test journal checksumming
 # $1: journal mode: writeback, ordered, journal
@@ -100,7 +97,7 @@ ext4_test_journal_checksum()
 }
 
 # main
-ext4_setup
+ext4_setup "$@"
 
 DATA=( "writeback" "ordered" "journal" )
 COMMIT=( 1 100 )
testcases/kernel/fs/ext4-new-features/ext4-nsec-timestamps/ext4_nsec_timestamps_test.sh +1 -3
index c91c1af..710bc00 100755
@@ -31,8 +31,6 @@ export TCID="ext4-nsec-timestamps"
 export TST_TOTAL=2
 export TST_COUNT=1
 
-# $1: the test config
-read_config $1
 
 TEST_DIR=$PWD
 
@@ -173,7 +171,7 @@ ext4_test_nsec_timestamps()
 }
 
 # main
-ext4_setup
+ext4_setup "$@"
 
 RET=0
 
testcases/kernel/fs/ext4-new-features/ext4-online-defrag/ext4_online_defrag_test.sh +1 -4
index 2aa3e5b..9845404 100755
@@ -30,9 +30,6 @@ export TST_COUNT=1
 
 export TEST_DIR=$PWD
 
-# $1: the test config
-read_config $1
-
 # How to age filesystem
 EMPTY=1
 SMALL=2
@@ -173,7 +170,7 @@ ext4_test_online_defrag()
 }
 
 # main
-ext4_setup
+ext4_setup "$@"
 
 rm -f $LTPROOT/output/ext4_online_defrag_result.txt
 
testcases/kernel/fs/ext4-new-features/ext4-persist-prealloc/ext4_persist_prealloc_test.sh +1 -4
index e41b104..a83a84f 100755
@@ -33,9 +33,6 @@ export TST_COUNT=1
 
 export TEST_DIR=$PWD
 
-# $1: the test config
-read_config $1
-
 # The test path of fallocate
 export TMPDIR=$PWD/mnt_point/
 
@@ -91,7 +88,7 @@ ext4_test_persist_prealloc()
 }
 
 # main
-ext4_setup
+ext4_setup "$@"
 
 RET=0
 
testcases/kernel/fs/ext4-new-features/ext4-subdir-limit/ext4_subdir_limit_test.sh +1 -3
index fdb6a08..e6ff372 100755
@@ -31,8 +31,6 @@ export TCID="ext4-subdir-limit"
 export TST_TOTAL=10
 export TST_COUNT=1
 
-# $1: the test config
-read_config $1
 
 TEST_DIR=$PWD
 SHORT_DIR=1
@@ -138,7 +136,7 @@ ext4_run_case()
 }
 
 # main
-ext4_setup
+ext4_setup "$@"
 
 DIR_LEN=( $SHORT_DIR $LONG_DIR )
 PARENT_DIR=( "mnt_point" "mnt_point/sub" )
testcases/kernel/fs/ext4-new-features/ext4-uninit-groups/ext4_uninit_groups_test.sh +1 -3
index e6d49e1..2f4911c 100755
@@ -29,8 +29,6 @@ export TST_TOTAL=24
 export TST_COUNT=1
 
 export TEST_DIR=$PWD
-# $1: the test config
-read_config $1
 
 # How to age filesystem
 EMPTY=1
@@ -128,7 +126,7 @@ ext4_test_uninit_groups()
 }
 
 # main
-ext4_setup
+ext4_setup "$@"
 
 ORLOV=( "orlov" "oldalloc" )
 DELALLOC=( "delalloc" "nodelalloc" )
testcases/kernel/fs/ext4-new-features/ext4_funcs.sh +0 -0
index b469bab..ddc67a2 100755
@@ -25,23 +25,55 @@
 
 ext4_setup()
 {

testcases/kernel/fs/ext4-new-features/ext4_funcs.sh line 37

Quoted 10 lines
testcases/kernel/fs/ext4-new-features/ext4_funcs.sh +10 -0
+	tst_kvercmp 2 6 31
+	if [ $? -eq 0 ]; then
+		tst_brkm TCONF ignored "kernel is below 2.6.31"
+		exit 0
+	fi
+
+	if [ "$USER" != root ]; then
+		tst_brkm TCONF ignored "Test must be run as root"
+		exit 0
+	fi

This should be:

if [ $(id -u) != 0 ]; then

or even better we can create a shell function tst_require_root and put it some common shell library. There is allready testcases/lib/cmdlib.sh but it's used only in small part of the tescases.

testcases/kernel/fs/ext4-new-features/ext4_funcs.sh line 49

Quoted 12 lines
testcases/kernel/fs/ext4-new-features/ext4_funcs.sh +12 -0
+	EXT4_SUPPORT1=`grep -w ext4 /proc/filesystems | cut -f2`
+	EXT4_SUPPORT2=`grep -w ext4 /proc/modules | cut -f1`
+	if [ "$EXT4_SUPPORT1" != "ext4" ] && [ "$EXT4_SUPPORT2" != "ext4" ];then
+		tst_brkm TCONF ignored "Ext4 is not supported"
+		exit 0
+	fi
+
+	if [ ! -f "ffsb" ]; then
+		tst_brkm TCONF ignored "ffsb does not exist. Please " \
+			"check whether ffsb was configed and compiled"
+		exit 0
+	fi

This should rather check that ffsb is in $PATH. There is exists() function in the cmdlib.sh allready, what about using it?

Quoted 13 lines
testcases/kernel/fs/ext4-new-features/ext4_funcs.sh +13 -0
+	while getopts D:T: arg
+	do
+		case $arg in
+		D)
+			export EXT4_DEV=$OPTARG
+			;;
+		T)
+			export FILE_SYSTEM_TYPE=$OPTARG
+			;;
+		\?)
+			echo "not supproted option"
+			;;
+		esac

testcases/kernel/fs/ext4-new-features/ext4_funcs.sh line 72

Quoted 10 lines
testcases/kernel/fs/ext4-new-features/ext4_funcs.sh +8 -0
+	done
+
+	# "d" indicates a invalid block device(read runltp)
+	if [ "$EXT4_DEV" = "d" ];then
+		tst_brkm TCONF ignored "tests need a big block device(5G-10G)"
+		exit 0
+	fi
+
 	mkdir mnt_point
 }

Hmm, I would rather see a test for LTP_BIG_DEV being empty. There is no need to pass the device via parameters once we have exported it as shell variable. So we can set it empty in the runltp (if not passed by user) and use it as:

if [ -z "$LTP_BIG_DEV" ]; then
...

Quoted 7 lines
testcases/kernel/fs/ext4-new-features/ext4_funcs.sh +0 -5
 ext4_cleanup()
 {
-	rmdir mnt_point
-}
-
-# $1: the config file
-read_config()

testcases/kernel/fs/ext4-new-features/ext4_funcs.sh line 76

Quoted 10 lines
testcases/kernel/fs/ext4-new-features/ext4_funcs.sh +1 -8
-{
-	while read config
-	do
-		echo $config | grep -q -E ".*=.*"
-		if [ $? -eq 0 ]; then
-			export $config
-		fi
-	done < $1
+	rm -rf mnt_point
 }

The rest looks good.

Signature · 13 lines
Cyril Hrubis
[email protected]

------------------------------------------------------------------------------
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list