btrfs-progs: tests: update 001-basic-profiles, dup on multidev fs
[platform/upstream/btrfs-progs.git] / tests / mkfs-tests / 001-basic-profiles / test.sh
1 #!/bin/bash
2 # test various blockgroup profile combinations, use loop devices as block
3 # devices
4
5 source $TOP/tests/common
6
7 check_prereq btrfs-show-super
8 check_prereq mkfs.btrfs
9 check_prereq btrfs
10
11 ndevs=4
12 declare -a devs
13 dev1=
14
15 setup_root_helper
16
17 prepare_devices()
18 {
19         for i in `seq $ndevs`; do
20                 touch img$i
21                 chmod a+rw img$i
22                 truncate -s0 img$i
23                 truncate -s2g img$i
24                 devs[$i]=`run_check_stdout $SUDO_HELPER losetup --find --show img$i`
25         done
26 }
27
28 cleanup_devices()
29 {
30         for dev in ${devs[@]}; do
31                 run_check $SUDO_HELPER losetup -d $dev
32         done
33         for i in `seq $ndevs`; do
34                 truncate -s0 img$i
35         done
36         run_check $SUDO_HELPER losetup --list
37 }
38
39 test_get_info()
40 {
41         run_check $TOP/btrfs-show-super $dev1
42         run_check $SUDO_HELPER $TOP/btrfs check $dev1
43         run_check $SUDO_HELPER mount $dev1 $TEST_MNT
44         run_check $TOP/btrfs filesystem df $TEST_MNT
45         run_check $SUDO_HELPER $TOP/btrfs filesystem usage $TEST_MNT
46         run_check $SUDO_HELPER $TOP/btrfs device usage $TEST_MNT
47         run_check $SUDO_HELPER umount "$TEST_MNT"
48 }
49 test_do_mkfs()
50 {
51         run_check $SUDO_HELPER $TOP/mkfs.btrfs -f       \
52                 $@
53 }
54
55 test_mkfs_single()
56 {
57         test_do_mkfs $@ $dev1
58         test_get_info
59 }
60 test_mkfs_multi()
61 {
62         test_do_mkfs $@ ${devs[@]}
63         test_get_info
64 }
65
66 prepare_devices
67 dev1=${devs[1]}
68
69 test_mkfs_single
70 test_mkfs_single  -d  single  -m  single
71 test_mkfs_single  -d  single  -m  single  --mixed
72 test_mkfs_single  -d  single  -m  dup
73 test_mkfs_single  -d  dup     -m  single
74 test_mkfs_single  -d  dup     -m  dup
75 test_mkfs_single  -d  dup     -m  dup     --mixed
76
77 test_mkfs_multi
78 test_mkfs_multi   -d  single  -m  single
79 test_mkfs_multi   -d  single  -m  single  --mixed
80 test_mkfs_multi   -d  raid0   -m  raid0
81 test_mkfs_multi   -d  raid0   -m  raid0   --mixed
82 test_mkfs_multi   -d  raid1   -m  raid1
83 test_mkfs_multi   -d  raid1   -m  raid1   --mixed
84 test_mkfs_multi   -d  raid10  -m  raid10
85 test_mkfs_multi   -d  raid10  -m  raid10  --mixed
86 test_mkfs_multi   -d  raid5   -m  raid5
87 test_mkfs_multi   -d  raid5   -m  raid5   --mixed
88 test_mkfs_multi   -d  raid6   -m  raid6
89 test_mkfs_multi   -d  raid6   -m  raid6   --mixed
90 test_mkfs_multi   -d  dup     -m  dup
91 test_mkfs_multi   -d  dup     -m  dup     --mixed
92
93 cleanup_devices