On Thu, Aug 21, 2014 at 01:33:48AM +0800, Eryu Guan wrote:
> This patchset add new stress test cases for btrfs by running two
> different btrfs operations simultaneously under fsstress to ensure
> btrfs doesn't hang or oops in such situations. btrfs scrub and
> btrfs check will be run after each test.
Cool.
> The test matrix is the combination of 6 btrfs operations:
>
> balance
> create/mount/umount/delete subvolume
> replace device
> scrub
> defrag
> remount with different compress algorithms
>
> Short descriptions:
>
> 057: balance-subvolume
> 058: balance-scrub
> 059: balance-defrag
> 060: balance-remount
> 061: balance-replace
> 062: subvolume-replace
> 063: subvolume-scrub
> 064: subvolume-defrag
> 065: subvolume-remount
> 066: replace-scrub
> 067: replace-defrag
> 068: replace-remount
> 069: scrub-defrag
> 070: scrub-remount
> 071: defrag-remount
But I'm not sure it should be built this way.
At the very least each operation's implementation should be in a shared
function somewhere instead of being duplicated in each test.
But I don't think there should be a seperate test for each combination.
With a bit of fiddly bash you can automate generating unique
combinations of operations that are defined as functions in one test.
btrfs_op_balance()
{
echo hi
}
btrfs_op_scrub()
{
echo hi
}
btrfs_op_defrag()
{
echo hi
}
ops=($(declare -F | awk '/-f btrfs_op_/ {print $3}'))
nr=${#ops[@]}
for i in $(seq 0 $((nr - 2))); do
for j in $(seq $((i + 1)) $((nr - 1))); do
echo ${ops[i]} ${ops[j]}
done
done
Something like that.
- z
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html