FSTests Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 1/2] fstests: Always dump dmesg for failed test cases
@ 2020-01-20  7:09 Qu Wenruo
  2020-01-20  7:09 ` [PATCH 2/2] fstests: btrfs: Fix a bug where test case can't grab the 2nd device when glob is used Qu Wenruo
  2020-02-09 15:48 ` [PATCH 1/2] fstests: Always dump dmesg for failed test cases Eryu Guan
  0 siblings, 2 replies; 6+ messages in thread
From: Qu Wenruo @ 2020-01-20  7:09 UTC (permalink / raw)
  To: fstests, linux-btrfs

When hard-to-hit bugs happened, we really want every piece of info to
help us debugging.

Although we already have KEEP_DMESG config, not everyone is utilizing
it, thus when hard-to-hit bugs happened, one could only set it and retry
until next hit.

This patch will change the behavior by always dumping the dmesg for
failed tests, so that developers can always get extra info from any
failure.

Signed-off-by: Qu Wenruo <wqu@suse.com>
---
 check | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/check b/check
index 2e148e5776e5..e580b2249f06 100755
--- a/check
+++ b/check
@@ -840,6 +840,9 @@ for section in $HOST_OPTIONS_SECTIONS; do
 
 	# make sure we record the status of the last test we ran.
 	if $err ; then
+		if [ ! -f $seqres.dmesg ]; then
+			_dmesg_since_test_start >$seqres.dmesg
+		fi
 		bad="$bad $seqnum"
 		n_bad=`expr $n_bad + 1`
 		tc_status="fail"
-- 
2.24.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 2/2] fstests: btrfs: Fix a bug where test case can't grab the 2nd device when glob is used
  2020-01-20  7:09 [PATCH 1/2] fstests: Always dump dmesg for failed test cases Qu Wenruo
@ 2020-01-20  7:09 ` Qu Wenruo
  2020-02-09 15:52   ` Eryu Guan
  2020-02-09 15:48 ` [PATCH 1/2] fstests: Always dump dmesg for failed test cases Eryu Guan
  1 sibling, 1 reply; 6+ messages in thread
From: Qu Wenruo @ 2020-01-20  7:09 UTC (permalink / raw)
  To: fstests, linux-btrfs

If SCRATCH_DEV_POOL is definted using glob, e.g.
SCRATCH_DEV_POOL="/dev/mapper/test-scratch[123456]", then btrfs/175 will
fail like this:
btrfs/175 15s ... - output mismatch (see results//btrfs/175.out.bad)
    --- tests/btrfs/175.out     2019-10-22 15:18:14.085632007 +0800
    +++ results//btrfs/175.out.bad      2020-01-20 14:53:56.518567916 +0800
    @@ -6,3 +6,4 @@
     Single on multiple devices
     swapon: SCRATCH_MNT/swap: swapon failed: Invalid argument
     Single on one device
    +ERROR: checking status of : No such file or directory
    ...
    (Run 'diff -u tests/btrfs/175.out results//btrfs/175.out.bad'  to see the entire diff)

This is caused by the extra quotation mark (and the complexity nature of
bash glob).

  # SCRATCH_DEV_POOL="/dev/mapper/test-scratch[123]"
  # echo ${SCRATCH_DEV_POOL}
  /dev/mapper/test-scratch1 /dev/mapper/test-scratch2 /dev/mapper/test-scratch3
  # echo "${SCRATCH_DEV_POOL}"
  /dev/mapper/test-scratch[123]

To fix the problem, remove the quotation mark out of
${SCRATCH_DEV_POOL} or $SCRATCH_DEV_POOL for all related test cases.

Signed-off-by: Qu Wenruo <wqu@suse.com>
---
The weirdest thing is, only btrfs/17[56], all other related test cases
pass without any problem.

Maybe it's time to provide a proper wrapper to do such thing?
---
 tests/btrfs/140 | 2 +-
 tests/btrfs/141 | 2 +-
 tests/btrfs/142 | 2 +-
 tests/btrfs/143 | 2 +-
 tests/btrfs/157 | 2 +-
 tests/btrfs/158 | 2 +-
 tests/btrfs/175 | 2 +-
 tests/btrfs/176 | 6 +++---
 8 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/tests/btrfs/140 b/tests/btrfs/140
index f0db8022cb48..0e6c91019854 100755
--- a/tests/btrfs/140
+++ b/tests/btrfs/140
@@ -65,7 +65,7 @@ get_devid()
 get_device_path()
 {
 	local devid=$1
-	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
+	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
 }
 
 _scratch_dev_pool_get 2
diff --git a/tests/btrfs/141 b/tests/btrfs/141
index c8c184ba29b0..5678e6513f80 100755
--- a/tests/btrfs/141
+++ b/tests/btrfs/141
@@ -65,7 +65,7 @@ get_devid()
 get_device_path()
 {
 	local devid=$1
-	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
+	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
 }
 
 _scratch_dev_pool_get 2
diff --git a/tests/btrfs/142 b/tests/btrfs/142
index db0a3377a1ed..ae480352c4d9 100755
--- a/tests/btrfs/142
+++ b/tests/btrfs/142
@@ -66,7 +66,7 @@ get_devid()
 get_device_path()
 {
 	local devid=$1
-	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
+	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
 }
 
 start_fail()
diff --git a/tests/btrfs/143 b/tests/btrfs/143
index 0388a52899c9..9e1e7ea0874d 100755
--- a/tests/btrfs/143
+++ b/tests/btrfs/143
@@ -73,7 +73,7 @@ get_devid()
 get_device_path()
 {
 	local devid=$1
-	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
+	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
 }
 
 SYSFS_BDEV=`_sysfs_dev $SCRATCH_DEV`
diff --git a/tests/btrfs/157 b/tests/btrfs/157
index 634370b97ec0..c60d05ce36f3 100755
--- a/tests/btrfs/157
+++ b/tests/btrfs/157
@@ -70,7 +70,7 @@ get_devid()
 get_device_path()
 {
 	local devid=$1
-	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
+	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
 }
 
 _scratch_dev_pool_get 4
diff --git a/tests/btrfs/158 b/tests/btrfs/158
index d6df9eaa7dea..179c620b223f 100755
--- a/tests/btrfs/158
+++ b/tests/btrfs/158
@@ -62,7 +62,7 @@ get_devid()
 get_device_path()
 {
 	local devid=$1
-	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
+	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
 }
 
 _scratch_dev_pool_get 4
diff --git a/tests/btrfs/175 b/tests/btrfs/175
index d13be3e95ed4..e1c3c28fe5a4 100755
--- a/tests/btrfs/175
+++ b/tests/btrfs/175
@@ -63,7 +63,7 @@ _scratch_mount
 # Create the swap file, then add the device. That way we know it's all on one
 # device.
 _format_swapfile "$SCRATCH_MNT/swap" $(($(get_page_size) * 10))
-scratch_dev2="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $2 }')"
+scratch_dev2="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $2 }')"
 $BTRFS_UTIL_PROG device add -f "$scratch_dev2" "$SCRATCH_MNT"
 swapon "$SCRATCH_MNT/swap" 2>&1 | _filter_scratch
 swapoff "$SCRATCH_MNT/swap" > /dev/null 2>&1
diff --git a/tests/btrfs/176 b/tests/btrfs/176
index 196ba2b8bdf6..c2d67c6f807a 100755
--- a/tests/btrfs/176
+++ b/tests/btrfs/176
@@ -39,9 +39,9 @@ _require_scratch_swapfile
 # We check the filesystem manually because we move devices around.
 rm -f "${RESULT_DIR}/require_scratch"
 
-scratch_dev1="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $1 }')"
-scratch_dev2="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $2 }')"
-scratch_dev3="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $3 }')"
+scratch_dev1="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $1 }')"
+scratch_dev2="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $2 }')"
+scratch_dev3="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $3 }')"
 
 echo "Remove device"
 _scratch_mkfs >> $seqres.full 2>&1
-- 
2.24.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] fstests: Always dump dmesg for failed test cases
  2020-01-20  7:09 [PATCH 1/2] fstests: Always dump dmesg for failed test cases Qu Wenruo
  2020-01-20  7:09 ` [PATCH 2/2] fstests: btrfs: Fix a bug where test case can't grab the 2nd device when glob is used Qu Wenruo
@ 2020-02-09 15:48 ` Eryu Guan
  2020-02-10  0:29   ` Qu Wenruo
  1 sibling, 1 reply; 6+ messages in thread
From: Eryu Guan @ 2020-02-09 15:48 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: fstests, linux-btrfs

On Mon, Jan 20, 2020 at 03:09:37PM +0800, Qu Wenruo wrote:
> When hard-to-hit bugs happened, we really want every piece of info to
> help us debugging.
> 
> Although we already have KEEP_DMESG config, not everyone is utilizing
> it, thus when hard-to-hit bugs happened, one could only set it and retry
> until next hit.
> 
> This patch will change the behavior by always dumping the dmesg for
> failed tests, so that developers can always get extra info from any
> failure.
> 
> Signed-off-by: Qu Wenruo <wqu@suse.com>
> ---
>  check | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/check b/check
> index 2e148e5776e5..e580b2249f06 100755
> --- a/check
> +++ b/check
> @@ -840,6 +840,9 @@ for section in $HOST_OPTIONS_SECTIONS; do
>  
>  	# make sure we record the status of the last test we ran.
>  	if $err ; then
> +		if [ ! -f $seqres.dmesg ]; then
> +			_dmesg_since_test_start >$seqres.dmesg
> +		fi

So this only saves the dmesg of the last test?

And I don't think this is necessary, even if it saves the dmesgs of all
failed tests, this behavior change requires some more diskspace and may
fulfill / more easily.

I think if one knows he/she's debugging a hard-to-hit bug, set
KEEP_DMESG. Or again, make "save dmesg of every failed test" a tunable
behavior.

Thanks,
Eryu

>  		bad="$bad $seqnum"
>  		n_bad=`expr $n_bad + 1`
>  		tc_status="fail"
> -- 
> 2.24.1
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] fstests: btrfs: Fix a bug where test case can't grab the 2nd device when glob is used
  2020-01-20  7:09 ` [PATCH 2/2] fstests: btrfs: Fix a bug where test case can't grab the 2nd device when glob is used Qu Wenruo
@ 2020-02-09 15:52   ` Eryu Guan
  2020-02-10  0:30     ` Qu Wenruo
  0 siblings, 1 reply; 6+ messages in thread
From: Eryu Guan @ 2020-02-09 15:52 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: fstests, linux-btrfs

On Mon, Jan 20, 2020 at 03:09:38PM +0800, Qu Wenruo wrote:
> If SCRATCH_DEV_POOL is definted using glob, e.g.
> SCRATCH_DEV_POOL="/dev/mapper/test-scratch[123456]", then btrfs/175 will

I don't think this is necessary, and I think it's not a problem that
fstests should resolve.

Usually Config file is not always changing, setting SCRATCH_DEV_POOL
correctly for once should be fine. A simple command could expand the
device list for you:

    [root@fedoravm xfstests]# ls /dev/mapper/testvg-lv[1234567]
    /dev/mapper/testvg-lv1  /dev/mapper/testvg-lv2 /dev/mapper/testvg-lv3  /dev/mapper/testvg-lv4 /dev/mapper/testvg-lv5  /dev/mapper/testvg-lv6 /dev/mapper/testvg-lv7

Then just copy/paste the device list.

Thanks,
Eryu

> fail like this:
> btrfs/175 15s ... - output mismatch (see results//btrfs/175.out.bad)
>     --- tests/btrfs/175.out     2019-10-22 15:18:14.085632007 +0800
>     +++ results//btrfs/175.out.bad      2020-01-20 14:53:56.518567916 +0800
>     @@ -6,3 +6,4 @@
>      Single on multiple devices
>      swapon: SCRATCH_MNT/swap: swapon failed: Invalid argument
>      Single on one device
>     +ERROR: checking status of : No such file or directory
>     ...
>     (Run 'diff -u tests/btrfs/175.out results//btrfs/175.out.bad'  to see the entire diff)
> 
> This is caused by the extra quotation mark (and the complexity nature of
> bash glob).
> 
>   # SCRATCH_DEV_POOL="/dev/mapper/test-scratch[123]"
>   # echo ${SCRATCH_DEV_POOL}
>   /dev/mapper/test-scratch1 /dev/mapper/test-scratch2 /dev/mapper/test-scratch3
>   # echo "${SCRATCH_DEV_POOL}"
>   /dev/mapper/test-scratch[123]
> 
> To fix the problem, remove the quotation mark out of
> ${SCRATCH_DEV_POOL} or $SCRATCH_DEV_POOL for all related test cases.
> 
> Signed-off-by: Qu Wenruo <wqu@suse.com>
> ---
> The weirdest thing is, only btrfs/17[56], all other related test cases
> pass without any problem.
> 
> Maybe it's time to provide a proper wrapper to do such thing?
> ---
>  tests/btrfs/140 | 2 +-
>  tests/btrfs/141 | 2 +-
>  tests/btrfs/142 | 2 +-
>  tests/btrfs/143 | 2 +-
>  tests/btrfs/157 | 2 +-
>  tests/btrfs/158 | 2 +-
>  tests/btrfs/175 | 2 +-
>  tests/btrfs/176 | 6 +++---
>  8 files changed, 10 insertions(+), 10 deletions(-)
> 
> diff --git a/tests/btrfs/140 b/tests/btrfs/140
> index f0db8022cb48..0e6c91019854 100755
> --- a/tests/btrfs/140
> +++ b/tests/btrfs/140
> @@ -65,7 +65,7 @@ get_devid()
>  get_device_path()
>  {
>  	local devid=$1
> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>  }
>  
>  _scratch_dev_pool_get 2
> diff --git a/tests/btrfs/141 b/tests/btrfs/141
> index c8c184ba29b0..5678e6513f80 100755
> --- a/tests/btrfs/141
> +++ b/tests/btrfs/141
> @@ -65,7 +65,7 @@ get_devid()
>  get_device_path()
>  {
>  	local devid=$1
> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>  }
>  
>  _scratch_dev_pool_get 2
> diff --git a/tests/btrfs/142 b/tests/btrfs/142
> index db0a3377a1ed..ae480352c4d9 100755
> --- a/tests/btrfs/142
> +++ b/tests/btrfs/142
> @@ -66,7 +66,7 @@ get_devid()
>  get_device_path()
>  {
>  	local devid=$1
> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>  }
>  
>  start_fail()
> diff --git a/tests/btrfs/143 b/tests/btrfs/143
> index 0388a52899c9..9e1e7ea0874d 100755
> --- a/tests/btrfs/143
> +++ b/tests/btrfs/143
> @@ -73,7 +73,7 @@ get_devid()
>  get_device_path()
>  {
>  	local devid=$1
> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>  }
>  
>  SYSFS_BDEV=`_sysfs_dev $SCRATCH_DEV`
> diff --git a/tests/btrfs/157 b/tests/btrfs/157
> index 634370b97ec0..c60d05ce36f3 100755
> --- a/tests/btrfs/157
> +++ b/tests/btrfs/157
> @@ -70,7 +70,7 @@ get_devid()
>  get_device_path()
>  {
>  	local devid=$1
> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>  }
>  
>  _scratch_dev_pool_get 4
> diff --git a/tests/btrfs/158 b/tests/btrfs/158
> index d6df9eaa7dea..179c620b223f 100755
> --- a/tests/btrfs/158
> +++ b/tests/btrfs/158
> @@ -62,7 +62,7 @@ get_devid()
>  get_device_path()
>  {
>  	local devid=$1
> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>  }
>  
>  _scratch_dev_pool_get 4
> diff --git a/tests/btrfs/175 b/tests/btrfs/175
> index d13be3e95ed4..e1c3c28fe5a4 100755
> --- a/tests/btrfs/175
> +++ b/tests/btrfs/175
> @@ -63,7 +63,7 @@ _scratch_mount
>  # Create the swap file, then add the device. That way we know it's all on one
>  # device.
>  _format_swapfile "$SCRATCH_MNT/swap" $(($(get_page_size) * 10))
> -scratch_dev2="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $2 }')"
> +scratch_dev2="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $2 }')"
>  $BTRFS_UTIL_PROG device add -f "$scratch_dev2" "$SCRATCH_MNT"
>  swapon "$SCRATCH_MNT/swap" 2>&1 | _filter_scratch
>  swapoff "$SCRATCH_MNT/swap" > /dev/null 2>&1
> diff --git a/tests/btrfs/176 b/tests/btrfs/176
> index 196ba2b8bdf6..c2d67c6f807a 100755
> --- a/tests/btrfs/176
> +++ b/tests/btrfs/176
> @@ -39,9 +39,9 @@ _require_scratch_swapfile
>  # We check the filesystem manually because we move devices around.
>  rm -f "${RESULT_DIR}/require_scratch"
>  
> -scratch_dev1="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $1 }')"
> -scratch_dev2="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $2 }')"
> -scratch_dev3="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $3 }')"
> +scratch_dev1="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $1 }')"
> +scratch_dev2="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $2 }')"
> +scratch_dev3="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $3 }')"
>  
>  echo "Remove device"
>  _scratch_mkfs >> $seqres.full 2>&1
> -- 
> 2.24.1
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] fstests: Always dump dmesg for failed test cases
  2020-02-09 15:48 ` [PATCH 1/2] fstests: Always dump dmesg for failed test cases Eryu Guan
@ 2020-02-10  0:29   ` Qu Wenruo
  0 siblings, 0 replies; 6+ messages in thread
From: Qu Wenruo @ 2020-02-10  0:29 UTC (permalink / raw)
  To: Eryu Guan, Qu Wenruo; +Cc: fstests, linux-btrfs

[-- Attachment #1.1: Type: text/plain, Size: 1610 bytes --]



On 2020/2/9 下午11:48, Eryu Guan wrote:
> On Mon, Jan 20, 2020 at 03:09:37PM +0800, Qu Wenruo wrote:
>> When hard-to-hit bugs happened, we really want every piece of info to
>> help us debugging.
>>
>> Although we already have KEEP_DMESG config, not everyone is utilizing
>> it, thus when hard-to-hit bugs happened, one could only set it and retry
>> until next hit.
>>
>> This patch will change the behavior by always dumping the dmesg for
>> failed tests, so that developers can always get extra info from any
>> failure.
>>
>> Signed-off-by: Qu Wenruo <wqu@suse.com>
>> ---
>>  check | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/check b/check
>> index 2e148e5776e5..e580b2249f06 100755
>> --- a/check
>> +++ b/check
>> @@ -840,6 +840,9 @@ for section in $HOST_OPTIONS_SECTIONS; do
>>  
>>  	# make sure we record the status of the last test we ran.
>>  	if $err ; then
>> +		if [ ! -f $seqres.dmesg ]; then
>> +			_dmesg_since_test_start >$seqres.dmesg
>> +		fi
> 
> So this only saves the dmesg of the last test?
> 
> And I don't think this is necessary, even if it saves the dmesgs of all
> failed tests, this behavior change requires some more diskspace and may
> fulfill / more easily.
> 
> I think if one knows he/she's debugging a hard-to-hit bug, set
> KEEP_DMESG. Or again, make "save dmesg of every failed test" a tunable
> behavior.

Makes sense.

As I just went the same solution.

Thanks,
Qu
> 
> Thanks,
> Eryu
> 
>>  		bad="$bad $seqnum"
>>  		n_bad=`expr $n_bad + 1`
>>  		tc_status="fail"
>> -- 
>> 2.24.1
>>


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] fstests: btrfs: Fix a bug where test case can't grab the 2nd device when glob is used
  2020-02-09 15:52   ` Eryu Guan
@ 2020-02-10  0:30     ` Qu Wenruo
  0 siblings, 0 replies; 6+ messages in thread
From: Qu Wenruo @ 2020-02-10  0:30 UTC (permalink / raw)
  To: Eryu Guan, Qu Wenruo; +Cc: fstests, linux-btrfs

[-- Attachment #1.1: Type: text/plain, Size: 6378 bytes --]



On 2020/2/9 下午11:52, Eryu Guan wrote:
> On Mon, Jan 20, 2020 at 03:09:38PM +0800, Qu Wenruo wrote:
>> If SCRATCH_DEV_POOL is definted using glob, e.g.
>> SCRATCH_DEV_POOL="/dev/mapper/test-scratch[123456]", then btrfs/175 will
> 
> I don't think this is necessary, and I think it's not a problem that
> fstests should resolve.
> 
> Usually Config file is not always changing, setting SCRATCH_DEV_POOL
> correctly for once should be fine. A simple command could expand the
> device list for you:
> 
>     [root@fedoravm xfstests]# ls /dev/mapper/testvg-lv[1234567]
>     /dev/mapper/testvg-lv1  /dev/mapper/testvg-lv2 /dev/mapper/testvg-lv3  /dev/mapper/testvg-lv4 /dev/mapper/testvg-lv5  /dev/mapper/testvg-lv6 /dev/mapper/testvg-lv7
> 
> Then just copy/paste the device list.

Then at least adding some comment for how to set SCRATCH_DEV_POOL would
help.

Thanks,
Qu
> 
> Thanks,
> Eryu
> 
>> fail like this:
>> btrfs/175 15s ... - output mismatch (see results//btrfs/175.out.bad)
>>     --- tests/btrfs/175.out     2019-10-22 15:18:14.085632007 +0800
>>     +++ results//btrfs/175.out.bad      2020-01-20 14:53:56.518567916 +0800
>>     @@ -6,3 +6,4 @@
>>      Single on multiple devices
>>      swapon: SCRATCH_MNT/swap: swapon failed: Invalid argument
>>      Single on one device
>>     +ERROR: checking status of : No such file or directory
>>     ...
>>     (Run 'diff -u tests/btrfs/175.out results//btrfs/175.out.bad'  to see the entire diff)
>>
>> This is caused by the extra quotation mark (and the complexity nature of
>> bash glob).
>>
>>   # SCRATCH_DEV_POOL="/dev/mapper/test-scratch[123]"
>>   # echo ${SCRATCH_DEV_POOL}
>>   /dev/mapper/test-scratch1 /dev/mapper/test-scratch2 /dev/mapper/test-scratch3
>>   # echo "${SCRATCH_DEV_POOL}"
>>   /dev/mapper/test-scratch[123]
>>
>> To fix the problem, remove the quotation mark out of
>> ${SCRATCH_DEV_POOL} or $SCRATCH_DEV_POOL for all related test cases.
>>
>> Signed-off-by: Qu Wenruo <wqu@suse.com>
>> ---
>> The weirdest thing is, only btrfs/17[56], all other related test cases
>> pass without any problem.
>>
>> Maybe it's time to provide a proper wrapper to do such thing?
>> ---
>>  tests/btrfs/140 | 2 +-
>>  tests/btrfs/141 | 2 +-
>>  tests/btrfs/142 | 2 +-
>>  tests/btrfs/143 | 2 +-
>>  tests/btrfs/157 | 2 +-
>>  tests/btrfs/158 | 2 +-
>>  tests/btrfs/175 | 2 +-
>>  tests/btrfs/176 | 6 +++---
>>  8 files changed, 10 insertions(+), 10 deletions(-)
>>
>> diff --git a/tests/btrfs/140 b/tests/btrfs/140
>> index f0db8022cb48..0e6c91019854 100755
>> --- a/tests/btrfs/140
>> +++ b/tests/btrfs/140
>> @@ -65,7 +65,7 @@ get_devid()
>>  get_device_path()
>>  {
>>  	local devid=$1
>> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
>> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>>  }
>>  
>>  _scratch_dev_pool_get 2
>> diff --git a/tests/btrfs/141 b/tests/btrfs/141
>> index c8c184ba29b0..5678e6513f80 100755
>> --- a/tests/btrfs/141
>> +++ b/tests/btrfs/141
>> @@ -65,7 +65,7 @@ get_devid()
>>  get_device_path()
>>  {
>>  	local devid=$1
>> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
>> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>>  }
>>  
>>  _scratch_dev_pool_get 2
>> diff --git a/tests/btrfs/142 b/tests/btrfs/142
>> index db0a3377a1ed..ae480352c4d9 100755
>> --- a/tests/btrfs/142
>> +++ b/tests/btrfs/142
>> @@ -66,7 +66,7 @@ get_devid()
>>  get_device_path()
>>  {
>>  	local devid=$1
>> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
>> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>>  }
>>  
>>  start_fail()
>> diff --git a/tests/btrfs/143 b/tests/btrfs/143
>> index 0388a52899c9..9e1e7ea0874d 100755
>> --- a/tests/btrfs/143
>> +++ b/tests/btrfs/143
>> @@ -73,7 +73,7 @@ get_devid()
>>  get_device_path()
>>  {
>>  	local devid=$1
>> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
>> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>>  }
>>  
>>  SYSFS_BDEV=`_sysfs_dev $SCRATCH_DEV`
>> diff --git a/tests/btrfs/157 b/tests/btrfs/157
>> index 634370b97ec0..c60d05ce36f3 100755
>> --- a/tests/btrfs/157
>> +++ b/tests/btrfs/157
>> @@ -70,7 +70,7 @@ get_devid()
>>  get_device_path()
>>  {
>>  	local devid=$1
>> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
>> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>>  }
>>  
>>  _scratch_dev_pool_get 4
>> diff --git a/tests/btrfs/158 b/tests/btrfs/158
>> index d6df9eaa7dea..179c620b223f 100755
>> --- a/tests/btrfs/158
>> +++ b/tests/btrfs/158
>> @@ -62,7 +62,7 @@ get_devid()
>>  get_device_path()
>>  {
>>  	local devid=$1
>> -	echo "$SCRATCH_DEV_POOL" | $AWK_PROG "{print \$$devid}"
>> +	echo $SCRATCH_DEV_POOL | $AWK_PROG "{print \$$devid}"
>>  }
>>  
>>  _scratch_dev_pool_get 4
>> diff --git a/tests/btrfs/175 b/tests/btrfs/175
>> index d13be3e95ed4..e1c3c28fe5a4 100755
>> --- a/tests/btrfs/175
>> +++ b/tests/btrfs/175
>> @@ -63,7 +63,7 @@ _scratch_mount
>>  # Create the swap file, then add the device. That way we know it's all on one
>>  # device.
>>  _format_swapfile "$SCRATCH_MNT/swap" $(($(get_page_size) * 10))
>> -scratch_dev2="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $2 }')"
>> +scratch_dev2="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $2 }')"
>>  $BTRFS_UTIL_PROG device add -f "$scratch_dev2" "$SCRATCH_MNT"
>>  swapon "$SCRATCH_MNT/swap" 2>&1 | _filter_scratch
>>  swapoff "$SCRATCH_MNT/swap" > /dev/null 2>&1
>> diff --git a/tests/btrfs/176 b/tests/btrfs/176
>> index 196ba2b8bdf6..c2d67c6f807a 100755
>> --- a/tests/btrfs/176
>> +++ b/tests/btrfs/176
>> @@ -39,9 +39,9 @@ _require_scratch_swapfile
>>  # We check the filesystem manually because we move devices around.
>>  rm -f "${RESULT_DIR}/require_scratch"
>>  
>> -scratch_dev1="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $1 }')"
>> -scratch_dev2="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $2 }')"
>> -scratch_dev3="$(echo "${SCRATCH_DEV_POOL}" | awk '{ print $3 }')"
>> +scratch_dev1="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $1 }')"
>> +scratch_dev2="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $2 }')"
>> +scratch_dev3="$(echo ${SCRATCH_DEV_POOL} | awk '{ print $3 }')"
>>  
>>  echo "Remove device"
>>  _scratch_mkfs >> $seqres.full 2>&1
>> -- 
>> 2.24.1
>>


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, back to index

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-20  7:09 [PATCH 1/2] fstests: Always dump dmesg for failed test cases Qu Wenruo
2020-01-20  7:09 ` [PATCH 2/2] fstests: btrfs: Fix a bug where test case can't grab the 2nd device when glob is used Qu Wenruo
2020-02-09 15:52   ` Eryu Guan
2020-02-10  0:30     ` Qu Wenruo
2020-02-09 15:48 ` [PATCH 1/2] fstests: Always dump dmesg for failed test cases Eryu Guan
2020-02-10  0:29   ` Qu Wenruo

FSTests Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/fstests/0 fstests/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 fstests fstests/ https://lore.kernel.org/fstests \
		fstests@vger.kernel.org
	public-inbox-index fstests

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.fstests


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git