script: add simple test script
authorJaegeuk Kim <jaegeuk@kernel.org>
Thu, 17 Dec 2015 00:47:23 +0000 (16:47 -0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 19 Apr 2016 01:11:26 +0000 (21:11 -0400)
This patch adds a script to test sload.f2fs, defrag.f2fs, and resize.f2fs.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
scripts/verify.sh [new file with mode: 0755]

diff --git a/scripts/verify.sh b/scripts/verify.sh
new file mode 100755 (executable)
index 0000000..8a22a2d
--- /dev/null
@@ -0,0 +1,137 @@
+#!/bin/bash
+
+IMG=../test.img
+TMP=/tmp/res
+XFSTESTS=~/xfstests
+TESTS="4 5 8 11 16 25 32 55 64"
+
+TARGET=./testdir
+MNT=/mnt/resize
+
+mkdir $TARGET 2>/dev/null
+mkdir $MNT 2>/dev/null
+
+umount $TARGET
+umount $MNT
+
+_check_out()
+{
+       if [ $1 -ne 0 ]; then
+               grep ASSERT $TMP
+               echo FAIL RETURN $1
+               exit
+       fi
+}
+
+_get_sec()
+{
+       echo $(($1*1024*1024*1024/512))
+}
+
+_mkfs()
+{
+       echo "========== Initialize $1 GB ============"
+       mkfs.f2fs $IMG `_get_sec $1` | grep sectors
+}
+
+_mount()
+{
+       echo "========== mount to $1 ================="
+       mount -t f2fs -o loop,discard,inline_data,inline_xattr $IMG $1 2>&1
+       _check_out $?
+}
+
+_fsck()
+{
+       echo "========== fsck.f2fs ==================="
+       fsck.f2fs $IMG -t 2>&1 >$TMP
+       _check_out $?
+       grep FSCK $TMP
+}
+
+_fsstress()
+{
+       echo "========== fsstress $1 ================="
+       $XFSTESTS/ltp/fsstress -x "echo 3 > /proc/sys/vm/drop_caches && sleep 1" -X 1 -r -f fsync=8 -f sync=0 -f write=8 -f dwrite=2 -f truncate=6 -f allocsp=0 -f bulkstat=0 -f bulkstat1=0 -f freesp=0 -f zero=1 -f collapse=1 -f insert=1 -f resvsp=0 -f unresvsp=0 -S t -p 10 -n $2 -d $1 >/dev/null
+}
+
+_resize()
+{
+       echo "========== resize.f2fs $1 GB ==========="
+       resize.f2fs -t `_get_sec $1` $IMG 2>&1 >$TMP
+       _check_out $?
+       _fsck
+}
+
+_resize_tests()
+{
+       for i in $TESTS
+       do
+               if [ $i -ge $1 ]; then
+                       _resize $i
+               fi
+       done
+}
+
+_sload()
+{
+       echo "========== sload $1 ===================="
+       sload.f2fs -f $1 $IMG 2>&1
+       _check_out $?
+}
+
+from_mount()
+{
+       echo ""
+       echo " ****  $1 GB to $2 GB with $3 *** "
+       _mkfs $1
+       _mount $3
+       _fsstress $3 10000
+       umount $3
+       _fsck
+       _resize_tests $2
+}
+
+from_sload()
+{
+       echo ""
+       echo " ****  $1 GB to $2 GB with $3 *** "
+
+       _mkfs $1
+       _sload $3
+       _fsck
+
+       _mount $MNT
+       _fsstress $MNT 10000
+       umount $MNT
+       _fsck
+
+       _resize_tests $2
+
+       _mount $MNT
+       _fsstress $MNT 10000
+       umount $MNT
+       _fsck
+}
+
+test_all()
+{
+       for i in $TESTS
+       do
+               for j in $TESTS
+               do
+                       if [ $i -lt $j ]; then
+                               $1 $i $j $2
+                       fi
+               done
+       done
+}
+
+test_all from_sload ~/grub
+
+rm -rf $TARGET/*
+_fsstress $TARGET 5000
+test_all from_sload $TARGET
+rm -rf $TARGET 2>/dev/null
+
+test_all from_mount $MNT