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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to