xfs
[Top] [All Lists]

[PATCH] xfstest: an regression test for btrfs balance

To: xfs@xxxxxxxxxxx
Subject: [PATCH] xfstest: an regression test for btrfs balance
From: Gui Hecheng <guihc.fnst@xxxxxxxxxxxxxx>
Date: Tue, 8 Oct 2013 09:21:15 +0800
Cc: linux-btrfs@xxxxxxxxxxxxxxx, miaox@xxxxxxxxxxxxxx, jbacik@xxxxxxxxxxxx, Gui Hecheng <guihc.fnst@xxxxxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Originally, when executing "btrfs balance" right after
"btrfs subvolume snaphot" & "btrfs subvolume delete",
a kernel BUG arises.

This problem is caused by the patch:
[PATCH 1/2] Btrfs: fix for patch "cleanup: don't check
the same thing twice"
The commit id: 48475471728f060bfd2e686f592ef208d3ba8b7d
(in kernel/git/torvalds/linux.git)

handled by the patch:
[PATCH 2/3] Btrfs: fix oops caused by the space balance
and dead roots

Signed-off-by: Gui Hecheng <guihc.fnst@xxxxxxxxxxxxxx>
---
 tests/btrfs/319     | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/btrfs/319.out |  2 ++
 tests/btrfs/group   |  1 +
 3 files changed, 74 insertions(+)
 create mode 100755 tests/btrfs/319
 create mode 100644 tests/btrfs/319.out

diff --git a/tests/btrfs/319 b/tests/btrfs/319
new file mode 100755
index 0000000..b49e760
--- /dev/null
+++ b/tests/btrfs/319
@@ -0,0 +1,71 @@
+#! /bin/bash
+# FS QA Test No. btrfs/319
+#
+# Btrfs balance tests
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2013 Fujitsu.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#-----------------------------------------------------------------------
+#
+
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here="`pwd`"
+tmp=/tmp/$$
+status=1       # failure is the default!
+
+_create_snapshot()
+{
+       for i in $(seq 20)
+       do
+               btrfs sub snapshot $SCRATCH_MNT $SCRATCH_MNT/snapshot0 
>/dev/null
+               btrfs sub delete $SCRATCH_MNT/snapshot0 >/dev/null
+       done
+}
+
+_balance()
+{
+       for i in $(seq 20)
+       do
+               btrfs balance start $SCRATCH_MNT >/dev/null
+       done
+}
+
+#get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+# real QA test starts here
+_supported_fs btrfs
+_supported_os Linux
+
+_setup_testdir
+_require_scratch
+_scratch_mkfs >/dev/null 2>&1
+_scratch_mount
+
+echo "Tip: Run dmesg to see the error on failure"
+
+_create_snapshot &
+
+_balance &
+
+wait
+
+status=0
+exit
diff --git a/tests/btrfs/319.out b/tests/btrfs/319.out
new file mode 100644
index 0000000..1d21523
--- /dev/null
+++ b/tests/btrfs/319.out
@@ -0,0 +1,2 @@
+QA output created by 319
+Tip: Run dmesg to see the error on failure
diff --git a/tests/btrfs/group b/tests/btrfs/group
index d2fe030..201a475 100644
--- a/tests/btrfs/group
+++ b/tests/btrfs/group
@@ -14,3 +14,4 @@
 009 auto quick
 010 auto quick
 011 auto
+319 auto
-- 
1.8.0.1

<Prev in Thread] Current Thread [Next in Thread>