diff mbox

[5/9,v5] common/log: define _require_logstate

Message ID 1423204633-66673-6-git-send-email-jaegeuk@kernel.org (mailing list archive)
State New, archived
Headers show

Commit Message

Jaegeuk Kim Feb. 6, 2015, 6:37 a.m. UTC
This patch defines logstate by adding dump.f2fs for f2fs's clean and dirty logs.
This macro is added into:

  xfs/085
  xfs/086
  xfs/087

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
---
 common/config |  1 +
 common/log    | 51 +++++++++++++++++++++++++++++++++++++++++++++------
 tests/xfs/085 |  1 +
 tests/xfs/086 |  1 +
 tests/xfs/087 |  1 +
 5 files changed, 49 insertions(+), 6 deletions(-)
diff mbox

Patch

diff --git a/common/config b/common/config
index 235f4a1..e5c3579 100644
--- a/common/config
+++ b/common/config
@@ -220,6 +220,7 @@  case "$HOSTOS" in
         export MKFS_UDF_PROG="`set_prog_path mkudffs`"
         export MKFS_BTRFS_PROG="`set_btrfs_mkfs_prog_path_with_opts`"
         export MKFS_F2FS_PROG="`set_prog_path mkfs.f2fs`"
+        export DUMP_F2FS_PROG="`set_prog_path dump.f2fs`"
         export BTRFS_UTIL_PROG="`set_prog_path btrfs`"
         export BTRFS_SHOW_SUPER_PROG="`set_prog_path btrfs-show-super`"
         export XFS_FSR_PROG="`set_prog_path xfs_fsr`"
diff --git a/common/log b/common/log
index 87074d9..d8b18f8 100644
--- a/common/log
+++ b/common/log
@@ -216,14 +216,35 @@  _check_log()
         | head | grep -q "<CLEAN>" || _fail "DIRTY LOG"
 }
 
+_scratch_xfs_logstate()
+{
+    _scratch_xfs_logprint -t | tee -a $seqres.full | grep -q "<CLEAN>"
+    echo $?
+}
+
+_scratch_f2fs_logstate()
+{
+    $DUMP_F2FS_PROG $SCRATCH_DEV | tee -a $seqres.full | grep -q "unmount"
+    echo $?
+}
+
 _print_logstate()
 {
-    _scratch_xfs_logprint -t | tee -a $seqres.full >$tmp.logprint
-    if grep -q "<DIRTY>" $tmp.logprint; then
-	echo "dirty log"
-    fi
-    if grep -q "<CLEAN>" $tmp.logprint; then
-	echo "clean log"
+    case "$FSTYP" in
+    xfs)
+        dirty=$(_scratch_xfs_logstate)
+        ;;
+    f2fs)
+        dirty=$(_scratch_f2fs_logstate)
+        ;;
+    *)
+        ;;
+    esac
+
+    if [ $dirty -ne 0 ]; then
+        echo "dirty log"
+    else
+        echo "clean log"
     fi
 }
 
@@ -470,6 +491,24 @@  _require_v2log()
     # otherwise presume it does support v2 logs...:)
 }
 
+_require_logstate()
+{
+    case "$FSTYP" in
+    xfs)
+        if [ -z "$XFS_LOGPRINT_PROG" ]; then
+            _notrun "This test requires xfs_logprint utility."
+        fi
+        ;;
+    f2fs)
+        if [ -z "$DUMP_F2FS_PROG" ]; then
+            _notrun "This test requires dump.f2fs utility."
+        fi
+        ;;
+    *)
+        _notrun "$FSTYP does not support log state probing."
+        ;;
+    esac
+}
 
 # make sure this script returns success
 /bin/true
diff --git a/tests/xfs/085 b/tests/xfs/085
index 539f324..1b6f424 100755
--- a/tests/xfs/085
+++ b/tests/xfs/085
@@ -48,6 +48,7 @@  rm -f $tmp.log
 
 _require_scratch
 _require_scratch_shutdown
+_require_logstate
 
 echo "mkfs"
 _scratch_mkfs_xfs >>$seqres.full 2>&1 \
diff --git a/tests/xfs/086 b/tests/xfs/086
index 08566d7..02977aa 100755
--- a/tests/xfs/086
+++ b/tests/xfs/086
@@ -45,6 +45,7 @@  _supported_os IRIX Linux
 rm -f $seqres.full $tmp.*
 _require_scratch
 _require_scratch_shutdown
+_require_logstate
 _require_v2log
 
 echo "*** init FS"
diff --git a/tests/xfs/087 b/tests/xfs/087
index 42c7d3b..17a999c 100755
--- a/tests/xfs/087
+++ b/tests/xfs/087
@@ -60,6 +60,7 @@  _supported_os IRIX Linux
 rm -f $seqres.full $tmp.*
 _require_scratch
 _require_scratch_shutdown
+_require_logstate
 _require_v2log 
 _require_xfs_quota