* [PATCH 1/2] fstest: btrfs/196: test for alien btrfs-devices
@ 2019-10-07 9:41 Anand Jain
2019-10-07 9:41 ` [PATCH 2/2] fstest: btrfs/197: test for alien devices Anand Jain
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Anand Jain @ 2019-10-07 9:41 UTC (permalink / raw)
To: fstests; +Cc: linux-btrfs
Test if btrfs.ko sucessfully identifies and reports the missing device,
if the missed device contians someother btrfs.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
tests/btrfs/196 | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/btrfs/196.out | 25 +++++++++++++++++
tests/btrfs/group | 1 +
3 files changed, 103 insertions(+)
create mode 100755 tests/btrfs/196
create mode 100644 tests/btrfs/196.out
diff --git a/tests/btrfs/196 b/tests/btrfs/196
new file mode 100755
index 000000000000..e35cdce492e5
--- /dev/null
+++ b/tests/btrfs/196
@@ -0,0 +1,77 @@
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2019 Oracle. All Rights Reserved.
+#
+# FS QA Test 196
+#
+# Test stale and alien btrfs-device in the fs devices list.
+#
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1 # failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ cd /
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/filter.btrfs
+
+# remove previous $seqres.full before test
+rm -f $seqres.full
+
+# real QA test starts here
+
+# Modify as appropriate.
+_supported_fs generic
+_supported_os Linux
+_require_scratch
+_require_scratch_dev_pool 4
+
+workout()
+{
+ raid=$1
+ device_nr=$2
+
+ echo $raid
+ _scratch_dev_pool_get $device_nr
+
+ _scratch_pool_mkfs "-d$raid -m$raid" >> $seqres.full 2>&1 || \
+ _fail "mkfs failed"
+
+ # Make device_1 an alien btrfs device for the raid created above by
+ # adding it to the $TEST_DIR
+
+ # don't test with the first device as auto fs check (_check_scratch_fs)
+ # picks the first device
+ device_1=$(echo $SCRATCH_DEV_POOL | awk '{print $2}')
+ $BTRFS_UTIL_PROG device add -f "$device_1" "$TEST_DIR"
+
+ device_2=$(echo $SCRATCH_DEV_POOL | awk '{print $1}')
+ _mount -o degraded $device_2 $SCRATCH_MNT
+ # Check if missing device is reported as in the 196.out
+ $BTRFS_UTIL_PROG filesystem show -m $SCRATCH_MNT | \
+ _filter_btrfs_filesystem_show
+
+ $BTRFS_UTIL_PROG device remove "$device_1" "$TEST_DIR"
+ _scratch_unmount
+ _scratch_dev_pool_put
+}
+
+workout "raid1" "2"
+workout "raid5" "3"
+workout "raid6" "4"
+workout "raid10" "4"
+
+# success, all done
+status=0
+exit
diff --git a/tests/btrfs/196.out b/tests/btrfs/196.out
new file mode 100644
index 000000000000..311ae9e2f46a
--- /dev/null
+++ b/tests/btrfs/196.out
@@ -0,0 +1,25 @@
+QA output created by 196
+raid1
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid5
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid6
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid10
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
diff --git a/tests/btrfs/group b/tests/btrfs/group
index 3ce6fa4628d8..c86ea2516397 100644
--- a/tests/btrfs/group
+++ b/tests/btrfs/group
@@ -198,3 +198,4 @@
193 auto quick qgroup enospc limit
194 auto volume
195 auto volume
+196 auto quick volume
--
1.8.3.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] fstest: btrfs/197: test for alien devices
2019-10-07 9:41 [PATCH 1/2] fstest: btrfs/196: test for alien btrfs-devices Anand Jain
@ 2019-10-07 9:41 ` Anand Jain
2019-10-18 9:13 ` Eryu Guan
2019-10-18 9:10 ` [PATCH 1/2] fstest: btrfs/196: test for alien btrfs-devices Eryu Guan
2019-10-22 9:24 ` [PATCH v2 1/2] fstest: btrfs/197: " Anand Jain
2 siblings, 1 reply; 8+ messages in thread
From: Anand Jain @ 2019-10-07 9:41 UTC (permalink / raw)
To: fstests; +Cc: linux-btrfs
Test if btrfs.ko sucessfully identifies and reports the missing device,
if the missed device contians no btrfs magic string.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
tests/btrfs/197 | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/btrfs/197.out | 25 +++++++++++++++++
tests/btrfs/group | 1 +
3 files changed, 105 insertions(+)
create mode 100755 tests/btrfs/197
create mode 100644 tests/btrfs/197.out
diff --git a/tests/btrfs/197 b/tests/btrfs/197
new file mode 100755
index 000000000000..82e1a299ca43
--- /dev/null
+++ b/tests/btrfs/197
@@ -0,0 +1,79 @@
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2019 Oracle. All Rights Reserved.
+#
+# FS QA Test 197
+#
+# Test stale and alien device in the fs devices list.
+# Similar to the testcase btrfs/196 except that here the alien device no more
+# contains the btrfs superblock.
+#
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1 # failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ cd /
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/filter.btrfs
+
+# remove previous $seqres.full before test
+rm -f $seqres.full
+
+# real QA test starts here
+
+# Modify as appropriate.
+_supported_fs generic
+_supported_os Linux
+_require_command "$WIPEFS_PROG" wipefs
+_require_scratch
+_require_scratch_dev_pool 4
+
+workout()
+{
+ raid=$1
+ device_nr=$2
+
+ echo $raid
+ _scratch_dev_pool_get $device_nr
+
+ _scratch_pool_mkfs "-d$raid -m$raid" >> $seqres.full 2>&1 || \
+ _fail "mkfs failed"
+
+ # Make device_1 an alien btrfs device for the raid created above by
+ # adding it to the $TEST_DIR
+
+ # don't test with the first device as auto fs check (_check_scratch_fs)
+ # picks the first device
+ device_1=$(echo $SCRATCH_DEV_POOL | awk '{print $2}')
+ $WIPEFS_PROG -a $device_1 >> $seqres.full 2>&1
+
+ device_2=$(echo $SCRATCH_DEV_POOL | awk '{print $1}')
+ _mount -o degraded $device_2 $SCRATCH_MNT
+ # Check if missing device is reported as in the 196.out
+ $BTRFS_UTIL_PROG filesystem show -m $SCRATCH_MNT | \
+ _filter_btrfs_filesystem_show
+
+ _scratch_unmount
+ _scratch_dev_pool_put
+}
+
+workout "raid1" "2"
+workout "raid5" "3"
+workout "raid6" "4"
+workout "raid10" "4"
+
+# success, all done
+status=0
+exit
diff --git a/tests/btrfs/197.out b/tests/btrfs/197.out
new file mode 100644
index 000000000000..79237b854b5a
--- /dev/null
+++ b/tests/btrfs/197.out
@@ -0,0 +1,25 @@
+QA output created by 197
+raid1
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid5
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid6
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid10
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
diff --git a/tests/btrfs/group b/tests/btrfs/group
index c86ea2516397..f2eac5c20712 100644
--- a/tests/btrfs/group
+++ b/tests/btrfs/group
@@ -199,3 +199,4 @@
194 auto volume
195 auto volume
196 auto quick volume
+197 auto quick volume
--
1.8.3.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] fstest: btrfs/196: test for alien btrfs-devices
2019-10-07 9:41 [PATCH 1/2] fstest: btrfs/196: test for alien btrfs-devices Anand Jain
2019-10-07 9:41 ` [PATCH 2/2] fstest: btrfs/197: test for alien devices Anand Jain
@ 2019-10-18 9:10 ` Eryu Guan
2019-10-22 9:23 ` Anand Jain
2019-10-22 9:24 ` [PATCH v2 1/2] fstest: btrfs/197: " Anand Jain
2 siblings, 1 reply; 8+ messages in thread
From: Eryu Guan @ 2019-10-18 9:10 UTC (permalink / raw)
To: Anand Jain; +Cc: fstests, linux-btrfs
On Mon, Oct 07, 2019 at 05:41:00PM +0800, Anand Jain wrote:
> Test if btrfs.ko sucessfully identifies and reports the missing device,
> if the missed device contians someother btrfs.
>
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
> ---
> tests/btrfs/196 | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++
> tests/btrfs/196.out | 25 +++++++++++++++++
> tests/btrfs/group | 1 +
> 3 files changed, 103 insertions(+)
> create mode 100755 tests/btrfs/196
> create mode 100644 tests/btrfs/196.out
>
> diff --git a/tests/btrfs/196 b/tests/btrfs/196
> new file mode 100755
> index 000000000000..e35cdce492e5
> --- /dev/null
> +++ b/tests/btrfs/196
> @@ -0,0 +1,77 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2019 Oracle. All Rights Reserved.
> +#
> +# FS QA Test 196
> +#
> +# Test stale and alien btrfs-device in the fs devices list.
> +#
> +seq=`basename $0`
> +seqres=$RESULT_DIR/$seq
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1 # failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> + cd /
> + rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +. ./common/filter.btrfs
> +
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
> +
> +# real QA test starts here
> +
> +# Modify as appropriate.
> +_supported_fs generic
> +_supported_os Linux
_supported_os btrfs
> +_require_scratch
> +_require_scratch_dev_pool 4
> +
> +workout()
> +{
> + raid=$1
> + device_nr=$2
> +
> + echo $raid
> + _scratch_dev_pool_get $device_nr
> +
> + _scratch_pool_mkfs "-d$raid -m$raid" >> $seqres.full 2>&1 || \
> + _fail "mkfs failed"
> +
> + # Make device_1 an alien btrfs device for the raid created above by
> + # adding it to the $TEST_DIR
Instead of adding $device_1 to $TEST_DIR, does creating a new btrfs on
$device_1 work? I'm a bit worried that changing $TEST_DIR/$TEST_DEV
configuration would have some side effects, e.g. we add it to $TEST_DIR
and cancle the test before removing it, the $TEST_DEV will end up in an
unexpected state in next test run. (Though we could remove the device in
_cleanup, this is just an example.)
> +
> + # don't test with the first device as auto fs check (_check_scratch_fs)
> + # picks the first device
> + device_1=$(echo $SCRATCH_DEV_POOL | awk '{print $2}')
> + $BTRFS_UTIL_PROG device add -f "$device_1" "$TEST_DIR"
> +
> + device_2=$(echo $SCRATCH_DEV_POOL | awk '{print $1}')
> + _mount -o degraded $device_2 $SCRATCH_MNT
> + # Check if missing device is reported as in the 196.out
Test could be renumbered, no need to hardcode 196.out, just ".out file"
would be fine.
> + $BTRFS_UTIL_PROG filesystem show -m $SCRATCH_MNT | \
> + _filter_btrfs_filesystem_show
> +
> + $BTRFS_UTIL_PROG device remove "$device_1" "$TEST_DIR"
I think we should remove $device_1 in _cleanup if it's not empty in case
test exits unexpectly. But as mentioned above, better to avoid adding
new device to $TEST_DIR.
Thanks,
Eryu
> + _scratch_unmount
> + _scratch_dev_pool_put
> +}
> +
> +workout "raid1" "2"
> +workout "raid5" "3"
> +workout "raid6" "4"
> +workout "raid10" "4"
> +
> +# success, all done
> +status=0
> +exit
> diff --git a/tests/btrfs/196.out b/tests/btrfs/196.out
> new file mode 100644
> index 000000000000..311ae9e2f46a
> --- /dev/null
> +++ b/tests/btrfs/196.out
> @@ -0,0 +1,25 @@
> +QA output created by 196
> +raid1
> +Label: none uuid: <UUID>
> + Total devices <NUM> FS bytes used <SIZE>
> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
> + *** Some devices missing
> +
> +raid5
> +Label: none uuid: <UUID>
> + Total devices <NUM> FS bytes used <SIZE>
> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
> + *** Some devices missing
> +
> +raid6
> +Label: none uuid: <UUID>
> + Total devices <NUM> FS bytes used <SIZE>
> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
> + *** Some devices missing
> +
> +raid10
> +Label: none uuid: <UUID>
> + Total devices <NUM> FS bytes used <SIZE>
> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
> + *** Some devices missing
> +
> diff --git a/tests/btrfs/group b/tests/btrfs/group
> index 3ce6fa4628d8..c86ea2516397 100644
> --- a/tests/btrfs/group
> +++ b/tests/btrfs/group
> @@ -198,3 +198,4 @@
> 193 auto quick qgroup enospc limit
> 194 auto volume
> 195 auto volume
> +196 auto quick volume
> --
> 1.8.3.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] fstest: btrfs/197: test for alien devices
2019-10-07 9:41 ` [PATCH 2/2] fstest: btrfs/197: test for alien devices Anand Jain
@ 2019-10-18 9:13 ` Eryu Guan
2019-10-22 9:23 ` Anand Jain
0 siblings, 1 reply; 8+ messages in thread
From: Eryu Guan @ 2019-10-18 9:13 UTC (permalink / raw)
To: Anand Jain; +Cc: fstests, linux-btrfs
On Mon, Oct 07, 2019 at 05:41:01PM +0800, Anand Jain wrote:
> Test if btrfs.ko sucessfully identifies and reports the missing device,
> if the missed device contians no btrfs magic string.
>
> Signed-off-by: Anand Jain <anand.jain@oracle.com>
> ---
> tests/btrfs/197 | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++
> tests/btrfs/197.out | 25 +++++++++++++++++
> tests/btrfs/group | 1 +
> 3 files changed, 105 insertions(+)
> create mode 100755 tests/btrfs/197
> create mode 100644 tests/btrfs/197.out
>
> diff --git a/tests/btrfs/197 b/tests/btrfs/197
> new file mode 100755
> index 000000000000..82e1a299ca43
> --- /dev/null
> +++ b/tests/btrfs/197
> @@ -0,0 +1,79 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2019 Oracle. All Rights Reserved.
> +#
> +# FS QA Test 197
> +#
> +# Test stale and alien device in the fs devices list.
> +# Similar to the testcase btrfs/196 except that here the alien device no more
> +# contains the btrfs superblock.
> +#
> +seq=`basename $0`
> +seqres=$RESULT_DIR/$seq
> +echo "QA output created by $seq"
> +
> +here=`pwd`
> +tmp=/tmp/$$
> +status=1 # failure is the default!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> + cd /
> + rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +. ./common/filter.btrfs
> +
> +# remove previous $seqres.full before test
> +rm -f $seqres.full
> +
> +# real QA test starts here
> +
> +# Modify as appropriate.
> +_supported_fs generic
> +_supported_os Linux
> +_require_command "$WIPEFS_PROG" wipefs
> +_require_scratch
> +_require_scratch_dev_pool 4
> +
> +workout()
> +{
> + raid=$1
> + device_nr=$2
> +
> + echo $raid
> + _scratch_dev_pool_get $device_nr
> +
> + _scratch_pool_mkfs "-d$raid -m$raid" >> $seqres.full 2>&1 || \
> + _fail "mkfs failed"
> +
> + # Make device_1 an alien btrfs device for the raid created above by
> + # adding it to the $TEST_DIR
Stale comments above.
Otherwise looks fine to me.
> +
> + # don't test with the first device as auto fs check (_check_scratch_fs)
> + # picks the first device
> + device_1=$(echo $SCRATCH_DEV_POOL | awk '{print $2}')
> + $WIPEFS_PROG -a $device_1 >> $seqres.full 2>&1
If creating a new btrfs works for btrfs/196, I wonder if we could merge
the two tests into one test, firstly create a new fs & degraded mount,
then wipefs & degraded mount.
Thanks,
Eryu
> +
> + device_2=$(echo $SCRATCH_DEV_POOL | awk '{print $1}')
> + _mount -o degraded $device_2 $SCRATCH_MNT
> + # Check if missing device is reported as in the 196.out
> + $BTRFS_UTIL_PROG filesystem show -m $SCRATCH_MNT | \
> + _filter_btrfs_filesystem_show
> +
> + _scratch_unmount
> + _scratch_dev_pool_put
> +}
> +
> +workout "raid1" "2"
> +workout "raid5" "3"
> +workout "raid6" "4"
> +workout "raid10" "4"
> +
> +# success, all done
> +status=0
> +exit
> diff --git a/tests/btrfs/197.out b/tests/btrfs/197.out
> new file mode 100644
> index 000000000000..79237b854b5a
> --- /dev/null
> +++ b/tests/btrfs/197.out
> @@ -0,0 +1,25 @@
> +QA output created by 197
> +raid1
> +Label: none uuid: <UUID>
> + Total devices <NUM> FS bytes used <SIZE>
> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
> + *** Some devices missing
> +
> +raid5
> +Label: none uuid: <UUID>
> + Total devices <NUM> FS bytes used <SIZE>
> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
> + *** Some devices missing
> +
> +raid6
> +Label: none uuid: <UUID>
> + Total devices <NUM> FS bytes used <SIZE>
> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
> + *** Some devices missing
> +
> +raid10
> +Label: none uuid: <UUID>
> + Total devices <NUM> FS bytes used <SIZE>
> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
> + *** Some devices missing
> +
> diff --git a/tests/btrfs/group b/tests/btrfs/group
> index c86ea2516397..f2eac5c20712 100644
> --- a/tests/btrfs/group
> +++ b/tests/btrfs/group
> @@ -199,3 +199,4 @@
> 194 auto volume
> 195 auto volume
> 196 auto quick volume
> +197 auto quick volume
> --
> 1.8.3.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] fstest: btrfs/196: test for alien btrfs-devices
2019-10-18 9:10 ` [PATCH 1/2] fstest: btrfs/196: test for alien btrfs-devices Eryu Guan
@ 2019-10-22 9:23 ` Anand Jain
0 siblings, 0 replies; 8+ messages in thread
From: Anand Jain @ 2019-10-22 9:23 UTC (permalink / raw)
To: Eryu Guan; +Cc: fstests, linux-btrfs
On 10/18/19 5:10 PM, Eryu Guan wrote:
> On Mon, Oct 07, 2019 at 05:41:00PM +0800, Anand Jain wrote:
>> Test if btrfs.ko sucessfully identifies and reports the missing device,
>> if the missed device contians someother btrfs.
>>
>> Signed-off-by: Anand Jain <anand.jain@oracle.com>
>> ---
>> tests/btrfs/196 | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>> tests/btrfs/196.out | 25 +++++++++++++++++
>> tests/btrfs/group | 1 +
>> 3 files changed, 103 insertions(+)
>> create mode 100755 tests/btrfs/196
>> create mode 100644 tests/btrfs/196.out
>>
>> diff --git a/tests/btrfs/196 b/tests/btrfs/196
>> new file mode 100755
>> index 000000000000..e35cdce492e5
>> --- /dev/null
>> +++ b/tests/btrfs/196
>> @@ -0,0 +1,77 @@
>> +#! /bin/bash
>> +# SPDX-License-Identifier: GPL-2.0
>> +# Copyright (c) 2019 Oracle. All Rights Reserved.
>> +#
>> +# FS QA Test 196
>> +#
>> +# Test stale and alien btrfs-device in the fs devices list.
>> +#
>> +seq=`basename $0`
>> +seqres=$RESULT_DIR/$seq
>> +echo "QA output created by $seq"
>> +
>> +here=`pwd`
>> +tmp=/tmp/$$
>> +status=1 # failure is the default!
>> +trap "_cleanup; exit \$status" 0 1 2 3 15
>> +
>> +_cleanup()
>> +{
>> + cd /
>> + rm -f $tmp.*
>> +}
>> +
>> +# get standard environment, filters and checks
>> +. ./common/rc
>> +. ./common/filter
>> +. ./common/filter.btrfs
>> +
>> +# remove previous $seqres.full before test
>> +rm -f $seqres.full
>> +
>> +# real QA test starts here
>> +
>> +# Modify as appropriate.
>> +_supported_fs generic
>> +_supported_os Linux
>
> _supported_os btrfs
Thanks fixed in v2.
>> +_require_scratch
>> +_require_scratch_dev_pool 4
>> +
>> +workout()
>> +{
>> + raid=$1
>> + device_nr=$2
>> +
>> + echo $raid
>> + _scratch_dev_pool_get $device_nr
>> +
>> + _scratch_pool_mkfs "-d$raid -m$raid" >> $seqres.full 2>&1 || \
>> + _fail "mkfs failed"
>> +
>> + # Make device_1 an alien btrfs device for the raid created above by
>> + # adding it to the $TEST_DIR
>
> Instead of adding $device_1 to $TEST_DIR, does creating a new btrfs on
> $device_1 work? I'm a bit worried that changing $TEST_DIR/$TEST_DEV
> configuration would have some side effects, e.g. we add it to $TEST_DIR
> and cancle the test before removing it, the $TEST_DEV will end up in an
> unexpected state in next test run. (Though we could remove the device in
> _cleanup, this is just an example.)
In v2 I am avoiding adding $device_1 to $TEST_DIR.
Instead, I am using $SPARE_DEV to create a new btrfs and $device_1
is added to it. I feel this is a better fix which shall completely
avoid messing up the $TEST_DEV. Thanks.
>> +
>> + # don't test with the first device as auto fs check (_check_scratch_fs)
>> + # picks the first device
>> + device_1=$(echo $SCRATCH_DEV_POOL | awk '{print $2}')
>> + $BTRFS_UTIL_PROG device add -f "$device_1" "$TEST_DIR"
>> +
>> + device_2=$(echo $SCRATCH_DEV_POOL | awk '{print $1}')
>> + _mount -o degraded $device_2 $SCRATCH_MNT
>> + # Check if missing device is reported as in the 196.out
>
> Test could be renumbered, no need to hardcode 196.out, just ".out file"
> would be fine.
Oh. Thanks this is fixed in v2.
>> + $BTRFS_UTIL_PROG filesystem show -m $SCRATCH_MNT | \
>> + _filter_btrfs_filesystem_show
>> +
>> + $BTRFS_UTIL_PROG device remove "$device_1" "$TEST_DIR"
>
> I think we should remove $device_1 in _cleanup if it's not empty in case
> test exits unexpectly. But as mentioned above, better to avoid adding
> new device to $TEST_DIR.
As I am not using $TEST_DIR to add the $device_1. So this won't be
needed now.
Thanks, Anand
> Thanks,
> Eryu
>
>> + _scratch_unmount
>> + _scratch_dev_pool_put
>> +}
>> +
>> +workout "raid1" "2"
>> +workout "raid5" "3"
>> +workout "raid6" "4"
>> +workout "raid10" "4"
>> +
>> +# success, all done
>> +status=0
>> +exit
>> diff --git a/tests/btrfs/196.out b/tests/btrfs/196.out
>> new file mode 100644
>> index 000000000000..311ae9e2f46a
>> --- /dev/null
>> +++ b/tests/btrfs/196.out
>> @@ -0,0 +1,25 @@
>> +QA output created by 196
>> +raid1
>> +Label: none uuid: <UUID>
>> + Total devices <NUM> FS bytes used <SIZE>
>> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>> + *** Some devices missing
>> +
>> +raid5
>> +Label: none uuid: <UUID>
>> + Total devices <NUM> FS bytes used <SIZE>
>> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>> + *** Some devices missing
>> +
>> +raid6
>> +Label: none uuid: <UUID>
>> + Total devices <NUM> FS bytes used <SIZE>
>> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>> + *** Some devices missing
>> +
>> +raid10
>> +Label: none uuid: <UUID>
>> + Total devices <NUM> FS bytes used <SIZE>
>> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>> + *** Some devices missing
>> +
>> diff --git a/tests/btrfs/group b/tests/btrfs/group
>> index 3ce6fa4628d8..c86ea2516397 100644
>> --- a/tests/btrfs/group
>> +++ b/tests/btrfs/group
>> @@ -198,3 +198,4 @@
>> 193 auto quick qgroup enospc limit
>> 194 auto volume
>> 195 auto volume
>> +196 auto quick volume
>> --
>> 1.8.3.1
>>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] fstest: btrfs/197: test for alien devices
2019-10-18 9:13 ` Eryu Guan
@ 2019-10-22 9:23 ` Anand Jain
0 siblings, 0 replies; 8+ messages in thread
From: Anand Jain @ 2019-10-22 9:23 UTC (permalink / raw)
To: Eryu Guan; +Cc: fstests, linux-btrfs
On 10/18/19 5:13 PM, Eryu Guan wrote:
> On Mon, Oct 07, 2019 at 05:41:01PM +0800, Anand Jain wrote:
>> Test if btrfs.ko sucessfully identifies and reports the missing device,
>> if the missed device contians no btrfs magic string.
>>
>> Signed-off-by: Anand Jain <anand.jain@oracle.com>
>> ---
>> tests/btrfs/197 | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>> tests/btrfs/197.out | 25 +++++++++++++++++
>> tests/btrfs/group | 1 +
>> 3 files changed, 105 insertions(+)
>> create mode 100755 tests/btrfs/197
>> create mode 100644 tests/btrfs/197.out
>>
>> diff --git a/tests/btrfs/197 b/tests/btrfs/197
>> new file mode 100755
>> index 000000000000..82e1a299ca43
>> --- /dev/null
>> +++ b/tests/btrfs/197
>> @@ -0,0 +1,79 @@
>> +#! /bin/bash
>> +# SPDX-License-Identifier: GPL-2.0
>> +# Copyright (c) 2019 Oracle. All Rights Reserved.
>> +#
>> +# FS QA Test 197
>> +#
>> +# Test stale and alien device in the fs devices list.
>> +# Similar to the testcase btrfs/196 except that here the alien device no more
>> +# contains the btrfs superblock.
>> +#
>> +seq=`basename $0`
>> +seqres=$RESULT_DIR/$seq
>> +echo "QA output created by $seq"
>> +
>> +here=`pwd`
>> +tmp=/tmp/$$
>> +status=1 # failure is the default!
>> +trap "_cleanup; exit \$status" 0 1 2 3 15
>> +
>> +_cleanup()
>> +{
>> + cd /
>> + rm -f $tmp.*
>> +}
>> +
>> +# get standard environment, filters and checks
>> +. ./common/rc
>> +. ./common/filter
>> +. ./common/filter.btrfs
>> +
>> +# remove previous $seqres.full before test
>> +rm -f $seqres.full
>> +
>> +# real QA test starts here
>> +
>> +# Modify as appropriate.
>> +_supported_fs generic
>> +_supported_os Linux
>> +_require_command "$WIPEFS_PROG" wipefs
>> +_require_scratch
>> +_require_scratch_dev_pool 4
>> +
>> +workout()
>> +{
>> + raid=$1
>> + device_nr=$2
>> +
>> + echo $raid
>> + _scratch_dev_pool_get $device_nr
>> +
>> + _scratch_pool_mkfs "-d$raid -m$raid" >> $seqres.full 2>&1 || \
>> + _fail "mkfs failed"
>> +
>> + # Make device_1 an alien btrfs device for the raid created above by
>> + # adding it to the $TEST_DIR
>
> Stale comments above.
updated in v2.
> Otherwise looks fine to me.
>
>> +
>> + # don't test with the first device as auto fs check (_check_scratch_fs)
>> + # picks the first device
>> + device_1=$(echo $SCRATCH_DEV_POOL | awk '{print $2}')
>> + $WIPEFS_PROG -a $device_1 >> $seqres.full 2>&1
>
> If creating a new btrfs works for btrfs/196, I wonder if we could merge
> the two tests into one test, firstly create a new fs & degraded mount,
> then wipefs & degraded mount.
Its better if they are separate. The workout is already looping for
different raids. Per experiences from btrfs/011 it gets harder to
debug with testing different cases in one test case. Can I keep them
separate?
V2 is being sent out in a while.
Thanks, Anand
> Thanks,
> Eryu
>
>> +
>> + device_2=$(echo $SCRATCH_DEV_POOL | awk '{print $1}')
>> + _mount -o degraded $device_2 $SCRATCH_MNT
>> + # Check if missing device is reported as in the 196.out
>> + $BTRFS_UTIL_PROG filesystem show -m $SCRATCH_MNT | \
>> + _filter_btrfs_filesystem_show
>> +
>> + _scratch_unmount
>> + _scratch_dev_pool_put
>> +}
>> +
>> +workout "raid1" "2"
>> +workout "raid5" "3"
>> +workout "raid6" "4"
>> +workout "raid10" "4"
>> +
>> +# success, all done
>> +status=0
>> +exit
>> diff --git a/tests/btrfs/197.out b/tests/btrfs/197.out
>> new file mode 100644
>> index 000000000000..79237b854b5a
>> --- /dev/null
>> +++ b/tests/btrfs/197.out
>> @@ -0,0 +1,25 @@
>> +QA output created by 197
>> +raid1
>> +Label: none uuid: <UUID>
>> + Total devices <NUM> FS bytes used <SIZE>
>> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>> + *** Some devices missing
>> +
>> +raid5
>> +Label: none uuid: <UUID>
>> + Total devices <NUM> FS bytes used <SIZE>
>> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>> + *** Some devices missing
>> +
>> +raid6
>> +Label: none uuid: <UUID>
>> + Total devices <NUM> FS bytes used <SIZE>
>> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>> + *** Some devices missing
>> +
>> +raid10
>> +Label: none uuid: <UUID>
>> + Total devices <NUM> FS bytes used <SIZE>
>> + devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>> + *** Some devices missing
>> +
>> diff --git a/tests/btrfs/group b/tests/btrfs/group
>> index c86ea2516397..f2eac5c20712 100644
>> --- a/tests/btrfs/group
>> +++ b/tests/btrfs/group
>> @@ -199,3 +199,4 @@
>> 194 auto volume
>> 195 auto volume
>> 196 auto quick volume
>> +197 auto quick volume
>> --
>> 1.8.3.1
>>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/2] fstest: btrfs/197: test for alien btrfs-devices
2019-10-07 9:41 [PATCH 1/2] fstest: btrfs/196: test for alien btrfs-devices Anand Jain
2019-10-07 9:41 ` [PATCH 2/2] fstest: btrfs/197: test for alien devices Anand Jain
2019-10-18 9:10 ` [PATCH 1/2] fstest: btrfs/196: test for alien btrfs-devices Eryu Guan
@ 2019-10-22 9:24 ` Anand Jain
2019-10-22 9:24 ` [PATCH v2 2/2] fstest: btrfs/198: test for alien devices Anand Jain
2 siblings, 1 reply; 8+ messages in thread
From: Anand Jain @ 2019-10-22 9:24 UTC (permalink / raw)
To: fstests; +Cc: linux-btrfs
Test if btrfs.ko sucessfully identifies and reports the missing device,
if the missed device contians someother btrfs.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
v2: Comments updated with the required kernel patch to pass this test.
Use spare device instead of test_mnt to create an alien btrfs device.
Fix comment, remove ref to 196.
Fix _supported_fs generic
tests/btrfs/197 | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/btrfs/197.out | 25 +++++++++++++++
tests/btrfs/group | 1 +
3 files changed, 114 insertions(+)
create mode 100755 tests/btrfs/197
create mode 100644 tests/btrfs/197.out
diff --git a/tests/btrfs/197 b/tests/btrfs/197
new file mode 100755
index 000000000000..9019df1a4897
--- /dev/null
+++ b/tests/btrfs/197
@@ -0,0 +1,88 @@
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2019 Oracle. All Rights Reserved.
+#
+# FS QA Test 197
+#
+# Test stale and alien btrfs-device in the fs devices list.
+# Bug fixed in the kernel patch:
+# btrfs: include non-missing as a qualifier for the latest_bdev
+# btrfs: remove identified alien btrfs device in open_fs_devices
+#
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1 # failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ rm -rf $TEST_DIR/$seq.mnt
+ cd /
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/filter.btrfs
+
+# remove previous $seqres.full before test
+rm -f $seqres.full
+
+# real QA test starts here
+
+# Modify as appropriate.
+_supported_os Linux
+_supported_fs btrfs
+_require_scratch
+_require_scratch_dev_pool 5
+
+workout()
+{
+ raid=$1
+ device_nr=$2
+
+ echo $raid
+ _scratch_dev_pool_get $device_nr
+ _spare_dev_get
+
+ _mkfs_dev $SPARE_DEV
+ mkdir -p $TEST_DIR/$seq.mnt
+ _mount $SPARE_DEV $TEST_DIR/$seq.mnt
+
+ _scratch_pool_mkfs "-d$raid -m$raid" >> $seqres.full 2>&1 || \
+ _fail "mkfs failed"
+
+ # Make device_1 an alien btrfs device for the raid created above by
+ # adding it to the $TEST_DIR
+
+ # don't test with the first device as auto fs check (_check_scratch_fs)
+ # picks the first device
+ device_1=$(echo $SCRATCH_DEV_POOL | awk '{print $2}')
+ $BTRFS_UTIL_PROG device add -f "$device_1" "$TEST_DIR/$seq.mnt"
+
+ device_2=$(echo $SCRATCH_DEV_POOL | awk '{print $1}')
+ _mount -o degraded $device_2 $SCRATCH_MNT
+ # Check if missing device is reported as in the .out
+ $BTRFS_UTIL_PROG filesystem show -m $SCRATCH_MNT | \
+ _filter_btrfs_filesystem_show
+
+ $BTRFS_UTIL_PROG device remove "$device_1" "$TEST_DIR/$seq.mnt"
+ umount $TEST_DIR/$seq.mnt
+ _scratch_unmount
+ _spare_dev_put
+ _scratch_dev_pool_put
+}
+
+workout "raid1" "2"
+workout "raid5" "3"
+workout "raid6" "4"
+workout "raid10" "4"
+
+# success, all done
+status=0
+exit
diff --git a/tests/btrfs/197.out b/tests/btrfs/197.out
new file mode 100644
index 000000000000..79237b854b5a
--- /dev/null
+++ b/tests/btrfs/197.out
@@ -0,0 +1,25 @@
+QA output created by 197
+raid1
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid5
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid6
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid10
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
diff --git a/tests/btrfs/group b/tests/btrfs/group
index c2ab3e7de9b6..208720efba61 100644
--- a/tests/btrfs/group
+++ b/tests/btrfs/group
@@ -199,3 +199,4 @@
194 auto volume
195 auto volume
196 auto metadata log volume
+197 auto quick volume
--
1.8.3.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/2] fstest: btrfs/198: test for alien devices
2019-10-22 9:24 ` [PATCH v2 1/2] fstest: btrfs/197: " Anand Jain
@ 2019-10-22 9:24 ` Anand Jain
0 siblings, 0 replies; 8+ messages in thread
From: Anand Jain @ 2019-10-22 9:24 UTC (permalink / raw)
To: fstests; +Cc: linux-btrfs
Test if btrfs.ko sucessfully identifies and reports the missing device,
if the missed device contians no btrfs magic string.
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
v2: Comments added to list kernel patch required to pass the test case
Fix copy and paste error in the comment
tests/btrfs/198 | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/btrfs/198.out | 25 +++++++++++++++++
tests/btrfs/group | 1 +
3 files changed, 105 insertions(+)
create mode 100755 tests/btrfs/198
create mode 100644 tests/btrfs/198.out
diff --git a/tests/btrfs/198 b/tests/btrfs/198
new file mode 100755
index 000000000000..c4c651b310c8
--- /dev/null
+++ b/tests/btrfs/198
@@ -0,0 +1,79 @@
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2019 Oracle. All Rights Reserved.
+#
+# FS QA Test 198
+#
+# Test stale and alien non-btrfs device in the fs devices list.
+# Bug fixed in:
+# btrfs: remove identified alien device in open_fs_devices
+#
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1 # failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ cd /
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/filter.btrfs
+
+# remove previous $seqres.full before test
+rm -f $seqres.full
+
+# real QA test starts here
+
+# Modify as appropriate.
+_supported_fs generic
+_supported_os Linux
+_require_command "$WIPEFS_PROG" wipefs
+_require_scratch
+_require_scratch_dev_pool 4
+
+workout()
+{
+ raid=$1
+ device_nr=$2
+
+ echo $raid
+ _scratch_dev_pool_get $device_nr
+
+ _scratch_pool_mkfs "-d$raid -m$raid" >> $seqres.full 2>&1 || \
+ _fail "mkfs failed"
+
+ # Make device_1 a free btrfs device for the raid created above by
+ # clearing its superblock
+
+ # don't test with the first device as auto fs check (_check_scratch_fs)
+ # picks the first device
+ device_1=$(echo $SCRATCH_DEV_POOL | awk '{print $2}')
+ $WIPEFS_PROG -a $device_1 >> $seqres.full 2>&1
+
+ device_2=$(echo $SCRATCH_DEV_POOL | awk '{print $1}')
+ _mount -o degraded $device_2 $SCRATCH_MNT
+ # Check if missing device is reported as in the 196.out
+ $BTRFS_UTIL_PROG filesystem show -m $SCRATCH_MNT | \
+ _filter_btrfs_filesystem_show
+
+ _scratch_unmount
+ _scratch_dev_pool_put
+}
+
+workout "raid1" "2"
+workout "raid5" "3"
+workout "raid6" "4"
+workout "raid10" "4"
+
+# success, all done
+status=0
+exit
diff --git a/tests/btrfs/198.out b/tests/btrfs/198.out
new file mode 100644
index 000000000000..af904a39efd6
--- /dev/null
+++ b/tests/btrfs/198.out
@@ -0,0 +1,25 @@
+QA output created by 198
+raid1
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid5
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid6
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
+raid10
+Label: none uuid: <UUID>
+ Total devices <NUM> FS bytes used <SIZE>
+ devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
+ *** Some devices missing
+
diff --git a/tests/btrfs/group b/tests/btrfs/group
index 208720efba61..94961044f1fe 100644
--- a/tests/btrfs/group
+++ b/tests/btrfs/group
@@ -200,3 +200,4 @@
195 auto volume
196 auto metadata log volume
197 auto quick volume
+198 auto quick volume
--
1.8.3.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-10-22 9:25 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-07 9:41 [PATCH 1/2] fstest: btrfs/196: test for alien btrfs-devices Anand Jain
2019-10-07 9:41 ` [PATCH 2/2] fstest: btrfs/197: test for alien devices Anand Jain
2019-10-18 9:13 ` Eryu Guan
2019-10-22 9:23 ` Anand Jain
2019-10-18 9:10 ` [PATCH 1/2] fstest: btrfs/196: test for alien btrfs-devices Eryu Guan
2019-10-22 9:23 ` Anand Jain
2019-10-22 9:24 ` [PATCH v2 1/2] fstest: btrfs/197: " Anand Jain
2019-10-22 9:24 ` [PATCH v2 2/2] fstest: btrfs/198: test for alien devices Anand Jain
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.