diff mbox series

common/rc: check error case and fail the test

Message ID 20230927061100.95365-1-naohiro.aota@wdc.com (mailing list archive)
State New, archived
Headers show
Series common/rc: check error case and fail the test | expand

Commit Message

Naohiro Aota Sept. 27, 2023, 6:11 a.m. UTC
If we place /var/lib/xfstests on a read-only filesystem, commands in
_link_out_file_named() fail to modify the files. However, they won't fail
the test. As a result, the test case fails mysteriously with only "no
qualified output" printed.

Fix it by checking the error case.

Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
---
 common/rc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Darrick J. Wong Sept. 27, 2023, 2:33 p.m. UTC | #1
On Wed, Sep 27, 2023 at 03:11:00PM +0900, Naohiro Aota wrote:
> If we place /var/lib/xfstests on a read-only filesystem, commands in
> _link_out_file_named() fail to modify the files. However, they won't fail
> the test. As a result, the test case fails mysteriously with only "no
> qualified output" printed.
> 
> Fix it by checking the error case.
> 
> Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
> ---
>  common/rc | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/common/rc b/common/rc
> index 76a7e7740318..4e9bd34f7772 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -3431,8 +3431,8 @@ _link_out_file_named()
>  		}
>  		print $result
>  		' <$seqfull.cfg)
> -	rm -f $1
> -	ln -fs $(basename $1).$suffix $1
> +	rm -f $1 || _fail "_link_out_file_named: failed to remove existing output file"
> +	ln -fs $(basename $1).$suffix $1 || _fail "_link_out_file_named: failed to setup output file"

For the second _fail, you could improve the diagnostic output by
specifying /which/ output file couldn't be linked, e.g.

	ln -fs $(basename $1).$suffix $1 || \
		_fail "$(basename $1).$suffix: could not setup output file"

Since there's always the possibility of Weird Things happening, like
project quota ENOSPC/EXDEV failures, ro mounts, and other strange things
that might be a consequence of the file the test picked.

With that changed,
Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

>  }
>  
>  _link_out_file()
> -- 
> 2.42.0
>
diff mbox series

Patch

diff --git a/common/rc b/common/rc
index 76a7e7740318..4e9bd34f7772 100644
--- a/common/rc
+++ b/common/rc
@@ -3431,8 +3431,8 @@  _link_out_file_named()
 		}
 		print $result
 		' <$seqfull.cfg)
-	rm -f $1
-	ln -fs $(basename $1).$suffix $1
+	rm -f $1 || _fail "_link_out_file_named: failed to remove existing output file"
+	ln -fs $(basename $1).$suffix $1 || _fail "_link_out_file_named: failed to setup output file"
 }
 
 _link_out_file()