diff mbox series

fstests: which has been deprecated by Debian

Message ID 20210830011401.697295-1-david@fromorbit.com (mailing list archive)
State New, archived
Headers show
Series fstests: which has been deprecated by Debian | expand

Commit Message

Dave Chinner Aug. 30, 2021, 1:14 a.m. UTC
From: Dave Chinner <dchinner@redhat.com>

This patch is brought to you by the Department That Hates Users.

The latest debian unstable release is now causing a bunch of new
test failures because they have deprecated the which command.

Rather than make everyone jump through hoops chasing problems with
'which' while debian decides to how to package at least three
variants of 'which' - each which will different semantics, behaviour
and support - as alternatives users then have to opt into, let's
just remove the remaining uses of the shell independent 'which'
command and replace them with bash builtin 'type -P' operations.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
 common/rc         | 2 +-
 src/fill2fs       | 2 +-
 tests/ext4/006    | 2 +-
 tests/generic/128 | 2 +-
 tests/generic/452 | 2 +-
 tests/xfs/293     | 2 +-
 tests/xfs/505     | 2 +-
 tests/xfs/514     | 2 +-
 tests/xfs/515     | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

Comments

Zorro Lang Aug. 30, 2021, 1:29 p.m. UTC | #1
On Mon, Aug 30, 2021 at 11:14:01AM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
> 
> This patch is brought to you by the Department That Hates Users.
> 
> The latest debian unstable release is now causing a bunch of new
> test failures because they have deprecated the which command.
> 
> Rather than make everyone jump through hoops chasing problems with
> 'which' while debian decides to how to package at least three
> variants of 'which' - each which will different semantics, behaviour
> and support - as alternatives users then have to opt into, let's
> just remove the remaining uses of the shell independent 'which'
> command and replace them with bash builtin 'type -P' operations.
> 
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---




>  common/rc         | 2 +-
>  src/fill2fs       | 2 +-
>  tests/ext4/006    | 2 +-
>  tests/generic/128 | 2 +-
>  tests/generic/452 | 2 +-
>  tests/xfs/293     | 2 +-
>  tests/xfs/505     | 2 +-
>  tests/xfs/514     | 2 +-
>  tests/xfs/515     | 2 +-
>  9 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/common/rc b/common/rc
> index a7f9ed86..db400c4d 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -4,7 +4,7 @@
>  
>  . common/config
>  
> -BC=$(which bc 2> /dev/null) || BC=
> +BC="$(type -P bc)" || BC=
>  
>  _require_math()
>  {
> diff --git a/src/fill2fs b/src/fill2fs
> index 1c3383a8..d5e5436b 100755
> --- a/src/fill2fs
> +++ b/src/fill2fs
> @@ -111,7 +111,7 @@ sub normal {
>  #
>  
>  chomp($cwd = `pwd`);
> -chomp($_ = `which fill2 2>&1 | head -1`);
> +chomp($_ = `type -P fill2 | head -1`);
>  if (-x $_) {
>    # look in the path
>    $fill2 = fill2;
> diff --git a/tests/ext4/006 b/tests/ext4/006
> index 17e77f86..48ed6bee 100755
> --- a/tests/ext4/006
> +++ b/tests/ext4/006
> @@ -24,7 +24,7 @@ _cleanup()
>  . ./common/populate
>  . ./common/fuzzy
>  
> -if [ ! -x "$(which e2fuzz)" ]; then
> +if [ ! -x "$(type -P e2fuzz)" ]; then
>  	_notrun "Couldn't find e2fuzz"
>  fi
>  
> diff --git a/tests/generic/128 b/tests/generic/128
> index dfc67fd5..dc1d43f4 100755
> --- a/tests/generic/128
> +++ b/tests/generic/128
> @@ -23,7 +23,7 @@ _scratch_mkfs >/dev/null 2>&1
>  _scratch_mount "-o nosuid"
>  
>  mkdir $SCRATCH_MNT/nosuid
> -cp `which ls` $SCRATCH_MNT
> +cp "$(type -P ls)" $SCRATCH_MNT
>  chmod 700 $SCRATCH_MNT/nosuid
>  chmod 4755 $SCRATCH_MNT/ls
>  
> diff --git a/tests/generic/452 b/tests/generic/452
> index ee4dfe9e..7cbd2dfa 100755
> --- a/tests/generic/452
> +++ b/tests/generic/452
> @@ -26,7 +26,7 @@ _exclude_scratch_mount_option "noexec"
>  _scratch_mkfs > $seqres.full 2>&1
>  _scratch_mount >> $seqres.full 2>&1
>  
> -LS=$(which ls --skip-alias --skip-functions)
> +LS="$(type -P ls) --skip-alias --skip-functions)"

I think the "--skip-alias" and "--skip-functions" options are belong to
the "which" command, so this change might cause fail.

Thanks,
Zorro


>  SCRATCH_LS=$SCRATCH_MNT/ls_on_scratch
>  cp $LS $SCRATCH_LS
>  
> diff --git a/tests/xfs/293 b/tests/xfs/293
> index fbd26b63..20f8c486 100755
> --- a/tests/xfs/293
> +++ b/tests/xfs/293
> @@ -30,7 +30,7 @@ case "$MANPAGE" in
>  *)		CAT=cat;;
>  esac
>  
> -_require_command `which $CAT` $CAT
> +_require_command "$(type -P $CAT)" $CAT
>  
>  for COMMAND in `$XFS_IO_PROG -c help | awk '{print $1}' | grep -v "^Use"`; do
>    $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \
> diff --git a/tests/xfs/505 b/tests/xfs/505
> index 8a999ff4..71fb6e9d 100755
> --- a/tests/xfs/505
> +++ b/tests/xfs/505
> @@ -26,7 +26,7 @@ case "$MANPAGE" in
>  *.xz)		CAT=xzcat;;
>  *)		CAT=cat;;
>  esac
> -_require_command `which $CAT` $CAT
> +_require_command "$(type -P $CAT)" $CAT
>  
>  for COMMAND in `$XFS_SPACEMAN_PROG -c help $TEST_DIR | awk '{print $1}' | grep -v "^Use"`; do
>    $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \
> diff --git a/tests/xfs/514 b/tests/xfs/514
> index a9c67645..cf5588f2 100755
> --- a/tests/xfs/514
> +++ b/tests/xfs/514
> @@ -34,7 +34,7 @@ case "$MANPAGE" in
>  *.xz)		CAT=xzcat;;
>  *)		CAT=cat;;
>  esac
> -_require_command `which $CAT` $CAT
> +_require_command "$(type -P $CAT)" $CAT
>  
>  file=$TEST_DIR/xx.$seq
>  truncate -s 128m $file
> diff --git a/tests/xfs/515 b/tests/xfs/515
> index 32216fe6..2d7bbb35 100755
> --- a/tests/xfs/515
> +++ b/tests/xfs/515
> @@ -34,7 +34,7 @@ case "$MANPAGE" in
>  *.xz)		CAT=xzcat;;
>  *)		CAT=cat;;
>  esac
> -_require_command `which $CAT` $CAT
> +_require_command "$(type -P $CAT)" $CAT
>  
>  for COMMAND in `$XFS_QUOTA_PROG -x -c help $file | awk '{print $1}' | grep -v "^Use"`; do
>    $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \
> -- 
> 2.31.1
>
Darrick J. Wong Aug. 30, 2021, 5:19 p.m. UTC | #2
> Subject: [PATCH] fstests: which has been deprecated by Debian

fstests has been deprecated by Debian?  daaaang. ;)

On Mon, Aug 30, 2021 at 11:14:01AM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
> 
> This patch is brought to you by the Department That Hates Users.
> 
> The latest debian unstable release is now causing a bunch of new
> test failures because they have deprecated the which command.
> 
> Rather than make everyone jump through hoops chasing problems with
> 'which' while debian decides to how to package at least three
> variants of 'which' - each which will different semantics, behaviour
> and support - as alternatives users then have to opt into, let's
> just remove the remaining uses of the shell independent 'which'
> command and replace them with bash builtin 'type -P' operations.
> 
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> ---
>  common/rc         | 2 +-
>  src/fill2fs       | 2 +-
>  tests/ext4/006    | 2 +-
>  tests/generic/128 | 2 +-
>  tests/generic/452 | 2 +-
>  tests/xfs/293     | 2 +-
>  tests/xfs/505     | 2 +-
>  tests/xfs/514     | 2 +-
>  tests/xfs/515     | 2 +-
>  9 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/common/rc b/common/rc
> index a7f9ed86..db400c4d 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -4,7 +4,7 @@
>  
>  . common/config
>  
> -BC=$(which bc 2> /dev/null) || BC=
> +BC="$(type -P bc)" || BC=
>  
>  _require_math()
>  {
> diff --git a/src/fill2fs b/src/fill2fs
> index 1c3383a8..d5e5436b 100755
> --- a/src/fill2fs
> +++ b/src/fill2fs
> @@ -111,7 +111,7 @@ sub normal {
>  #
>  
>  chomp($cwd = `pwd`);
> -chomp($_ = `which fill2 2>&1 | head -1`);
> +chomp($_ = `type -P fill2 | head -1`);
>  if (-x $_) {
>    # look in the path
>    $fill2 = fill2;
> diff --git a/tests/ext4/006 b/tests/ext4/006
> index 17e77f86..48ed6bee 100755
> --- a/tests/ext4/006
> +++ b/tests/ext4/006
> @@ -24,7 +24,7 @@ _cleanup()
>  . ./common/populate
>  . ./common/fuzzy
>  
> -if [ ! -x "$(which e2fuzz)" ]; then
> +if [ ! -x "$(type -P e2fuzz)" ]; then
>  	_notrun "Couldn't find e2fuzz"
>  fi
>  
> diff --git a/tests/generic/128 b/tests/generic/128
> index dfc67fd5..dc1d43f4 100755
> --- a/tests/generic/128
> +++ b/tests/generic/128
> @@ -23,7 +23,7 @@ _scratch_mkfs >/dev/null 2>&1
>  _scratch_mount "-o nosuid"
>  
>  mkdir $SCRATCH_MNT/nosuid
> -cp `which ls` $SCRATCH_MNT
> +cp "$(type -P ls)" $SCRATCH_MNT

Given that FHS 3.0 section 3.4.2 requires ls to be in /bin, can we
hardcode this into these tests?

Or, if we don't want to require FHS compliant distros, maybe we should
just make $LS_PROG a general variable set up in common/rc?

>  chmod 700 $SCRATCH_MNT/nosuid
>  chmod 4755 $SCRATCH_MNT/ls
>  
> diff --git a/tests/generic/452 b/tests/generic/452
> index ee4dfe9e..7cbd2dfa 100755
> --- a/tests/generic/452
> +++ b/tests/generic/452
> @@ -26,7 +26,7 @@ _exclude_scratch_mount_option "noexec"
>  _scratch_mkfs > $seqres.full 2>&1
>  _scratch_mount >> $seqres.full 2>&1
>  
> -LS=$(which ls --skip-alias --skip-functions)
> +LS="$(type -P ls) --skip-alias --skip-functions)"
>  SCRATCH_LS=$SCRATCH_MNT/ls_on_scratch
>  cp $LS $SCRATCH_LS
>  
> diff --git a/tests/xfs/293 b/tests/xfs/293
> index fbd26b63..20f8c486 100755
> --- a/tests/xfs/293
> +++ b/tests/xfs/293
> @@ -30,7 +30,7 @@ case "$MANPAGE" in
>  *)		CAT=cat;;
>  esac
>  
> -_require_command `which $CAT` $CAT
> +_require_command "$(type -P $CAT)" $CAT

Same thing with cat.

--D

>  
>  for COMMAND in `$XFS_IO_PROG -c help | awk '{print $1}' | grep -v "^Use"`; do
>    $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \
> diff --git a/tests/xfs/505 b/tests/xfs/505
> index 8a999ff4..71fb6e9d 100755
> --- a/tests/xfs/505
> +++ b/tests/xfs/505
> @@ -26,7 +26,7 @@ case "$MANPAGE" in
>  *.xz)		CAT=xzcat;;
>  *)		CAT=cat;;
>  esac
> -_require_command `which $CAT` $CAT
> +_require_command "$(type -P $CAT)" $CAT
>  
>  for COMMAND in `$XFS_SPACEMAN_PROG -c help $TEST_DIR | awk '{print $1}' | grep -v "^Use"`; do
>    $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \
> diff --git a/tests/xfs/514 b/tests/xfs/514
> index a9c67645..cf5588f2 100755
> --- a/tests/xfs/514
> +++ b/tests/xfs/514
> @@ -34,7 +34,7 @@ case "$MANPAGE" in
>  *.xz)		CAT=xzcat;;
>  *)		CAT=cat;;
>  esac
> -_require_command `which $CAT` $CAT
> +_require_command "$(type -P $CAT)" $CAT
>  
>  file=$TEST_DIR/xx.$seq
>  truncate -s 128m $file
> diff --git a/tests/xfs/515 b/tests/xfs/515
> index 32216fe6..2d7bbb35 100755
> --- a/tests/xfs/515
> +++ b/tests/xfs/515
> @@ -34,7 +34,7 @@ case "$MANPAGE" in
>  *.xz)		CAT=xzcat;;
>  *)		CAT=cat;;
>  esac
> -_require_command `which $CAT` $CAT
> +_require_command "$(type -P $CAT)" $CAT
>  
>  for COMMAND in `$XFS_QUOTA_PROG -x -c help $file | awk '{print $1}' | grep -v "^Use"`; do
>    $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \
> -- 
> 2.31.1
>
Dave Chinner Aug. 31, 2021, 11:46 p.m. UTC | #3
On Mon, Aug 30, 2021 at 09:29:27PM +0800, Zorro Lang wrote:
> On Mon, Aug 30, 2021 at 11:14:01AM +1000, Dave Chinner wrote:
> > From: Dave Chinner <dchinner@redhat.com>
> > 
> > This patch is brought to you by the Department That Hates Users.
> > 
> > The latest debian unstable release is now causing a bunch of new
> > test failures because they have deprecated the which command.
> > 
> > Rather than make everyone jump through hoops chasing problems with
> > 'which' while debian decides to how to package at least three
> > variants of 'which' - each which will different semantics, behaviour
> > and support - as alternatives users then have to opt into, let's
> > just remove the remaining uses of the shell independent 'which'
> > command and replace them with bash builtin 'type -P' operations.
> > 
> > Signed-off-by: Dave Chinner <dchinner@redhat.com>
> > ---
> 
> 
> 
> 
> >  common/rc         | 2 +-
> >  src/fill2fs       | 2 +-
> >  tests/ext4/006    | 2 +-
> >  tests/generic/128 | 2 +-
> >  tests/generic/452 | 2 +-
> >  tests/xfs/293     | 2 +-
> >  tests/xfs/505     | 2 +-
> >  tests/xfs/514     | 2 +-
> >  tests/xfs/515     | 2 +-
> >  9 files changed, 9 insertions(+), 9 deletions(-)
> > 
> > diff --git a/common/rc b/common/rc
> > index a7f9ed86..db400c4d 100644
> > --- a/common/rc
> > +++ b/common/rc
> > @@ -4,7 +4,7 @@
> >  
> >  . common/config
> >  
> > -BC=$(which bc 2> /dev/null) || BC=
> > +BC="$(type -P bc)" || BC=
> >  
> >  _require_math()
> >  {
> > diff --git a/src/fill2fs b/src/fill2fs
> > index 1c3383a8..d5e5436b 100755
> > --- a/src/fill2fs
> > +++ b/src/fill2fs
> > @@ -111,7 +111,7 @@ sub normal {
> >  #
> >  
> >  chomp($cwd = `pwd`);
> > -chomp($_ = `which fill2 2>&1 | head -1`);
> > +chomp($_ = `type -P fill2 | head -1`);
> >  if (-x $_) {
> >    # look in the path
> >    $fill2 = fill2;
> > diff --git a/tests/ext4/006 b/tests/ext4/006
> > index 17e77f86..48ed6bee 100755
> > --- a/tests/ext4/006
> > +++ b/tests/ext4/006
> > @@ -24,7 +24,7 @@ _cleanup()
> >  . ./common/populate
> >  . ./common/fuzzy
> >  
> > -if [ ! -x "$(which e2fuzz)" ]; then
> > +if [ ! -x "$(type -P e2fuzz)" ]; then
> >  	_notrun "Couldn't find e2fuzz"
> >  fi
> >  
> > diff --git a/tests/generic/128 b/tests/generic/128
> > index dfc67fd5..dc1d43f4 100755
> > --- a/tests/generic/128
> > +++ b/tests/generic/128
> > @@ -23,7 +23,7 @@ _scratch_mkfs >/dev/null 2>&1
> >  _scratch_mount "-o nosuid"
> >  
> >  mkdir $SCRATCH_MNT/nosuid
> > -cp `which ls` $SCRATCH_MNT
> > +cp "$(type -P ls)" $SCRATCH_MNT
> >  chmod 700 $SCRATCH_MNT/nosuid
> >  chmod 4755 $SCRATCH_MNT/ls
> >  
> > diff --git a/tests/generic/452 b/tests/generic/452
> > index ee4dfe9e..7cbd2dfa 100755
> > --- a/tests/generic/452
> > +++ b/tests/generic/452
> > @@ -26,7 +26,7 @@ _exclude_scratch_mount_option "noexec"
> >  _scratch_mkfs > $seqres.full 2>&1
> >  _scratch_mount >> $seqres.full 2>&1
> >  
> > -LS=$(which ls --skip-alias --skip-functions)
> > +LS="$(type -P ls) --skip-alias --skip-functions)"
> 
> I think the "--skip-alias" and "--skip-functions" options are belong to
> the "which" command, so this change might cause fail.

Yay for command line parsing - invalid options are silently ignored
by which on debian, so this actual command does the same thing as
'which ls'....

Really, though, I think I'm just going to allow the path to find ls
in most cases - the only reason for using `which ls` was for tests
that use it as a file copy source. If 'ls' is not in the default
execution path, lots of stuff will not work...

> >  SCRATCH_LS=$SCRATCH_MNT/ls_on_scratch
> >  cp $LS $SCRATCH_LS

Oh, look, copying the ls binary is exactly what this test is
doing, so this would result in a cp failure...

Cheers,

Dave.
Dave Chinner Aug. 31, 2021, 11:48 p.m. UTC | #4
On Mon, Aug 30, 2021 at 10:19:52AM -0700, Darrick J. Wong wrote:
> > Subject: [PATCH] fstests: which has been deprecated by Debian
> 
> fstests has been deprecated by Debian?  daaaang. ;)
> 
> On Mon, Aug 30, 2021 at 11:14:01AM +1000, Dave Chinner wrote:
> > From: Dave Chinner <dchinner@redhat.com>
> > 
> > This patch is brought to you by the Department That Hates Users.
> > 
> > The latest debian unstable release is now causing a bunch of new
> > test failures because they have deprecated the which command.
> > 
> > Rather than make everyone jump through hoops chasing problems with
> > 'which' while debian decides to how to package at least three
> > variants of 'which' - each which will different semantics, behaviour
> > and support - as alternatives users then have to opt into, let's
> > just remove the remaining uses of the shell independent 'which'
> > command and replace them with bash builtin 'type -P' operations.
> > 
> > Signed-off-by: Dave Chinner <dchinner@redhat.com>
> > ---
> >  common/rc         | 2 +-
> >  src/fill2fs       | 2 +-
> >  tests/ext4/006    | 2 +-
> >  tests/generic/128 | 2 +-
> >  tests/generic/452 | 2 +-
> >  tests/xfs/293     | 2 +-
> >  tests/xfs/505     | 2 +-
> >  tests/xfs/514     | 2 +-
> >  tests/xfs/515     | 2 +-
> >  9 files changed, 9 insertions(+), 9 deletions(-)
> > 
> > diff --git a/common/rc b/common/rc
> > index a7f9ed86..db400c4d 100644
> > --- a/common/rc
> > +++ b/common/rc
> > @@ -4,7 +4,7 @@
> >  
> >  . common/config
> >  
> > -BC=$(which bc 2> /dev/null) || BC=
> > +BC="$(type -P bc)" || BC=
> >  
> >  _require_math()
> >  {
> > diff --git a/src/fill2fs b/src/fill2fs
> > index 1c3383a8..d5e5436b 100755
> > --- a/src/fill2fs
> > +++ b/src/fill2fs
> > @@ -111,7 +111,7 @@ sub normal {
> >  #
> >  
> >  chomp($cwd = `pwd`);
> > -chomp($_ = `which fill2 2>&1 | head -1`);
> > +chomp($_ = `type -P fill2 | head -1`);
> >  if (-x $_) {
> >    # look in the path
> >    $fill2 = fill2;
> > diff --git a/tests/ext4/006 b/tests/ext4/006
> > index 17e77f86..48ed6bee 100755
> > --- a/tests/ext4/006
> > +++ b/tests/ext4/006
> > @@ -24,7 +24,7 @@ _cleanup()
> >  . ./common/populate
> >  . ./common/fuzzy
> >  
> > -if [ ! -x "$(which e2fuzz)" ]; then
> > +if [ ! -x "$(type -P e2fuzz)" ]; then
> >  	_notrun "Couldn't find e2fuzz"
> >  fi
> >  
> > diff --git a/tests/generic/128 b/tests/generic/128
> > index dfc67fd5..dc1d43f4 100755
> > --- a/tests/generic/128
> > +++ b/tests/generic/128
> > @@ -23,7 +23,7 @@ _scratch_mkfs >/dev/null 2>&1
> >  _scratch_mount "-o nosuid"
> >  
> >  mkdir $SCRATCH_MNT/nosuid
> > -cp `which ls` $SCRATCH_MNT
> > +cp "$(type -P ls)" $SCRATCH_MNT
> 
> Given that FHS 3.0 section 3.4.2 requires ls to be in /bin, can we
> hardcode this into these tests?

For the binary copying, I'll just leave it like this. For all
others, I'll just leave the path to find the ls binary.

> > diff --git a/tests/xfs/293 b/tests/xfs/293
> > index fbd26b63..20f8c486 100755
> > --- a/tests/xfs/293
> > +++ b/tests/xfs/293
> > @@ -30,7 +30,7 @@ case "$MANPAGE" in
> >  *)		CAT=cat;;
> >  esac
> >  
> > -_require_command `which $CAT` $CAT
> > +_require_command "$(type -P $CAT)" $CAT
> 
> Same thing with cat.

Except $CAT might be something other than "cat" here. i.e.:

case "$MANPAGE" in
*.gz|*.z\|*.Z)  CAT=zcat;;
*.bz2)          CAT=bzcat;;
*.xz)           CAT=xzcat;;
*)              CAT=cat;;
esac

_require_command "$(type -P $CAT)" $CAT

Cheers,

Dave.
Eryu Guan Sept. 5, 2021, 1:12 p.m. UTC | #5
On Mon, Aug 30, 2021 at 09:29:27PM +0800, Zorro Lang wrote:
> On Mon, Aug 30, 2021 at 11:14:01AM +1000, Dave Chinner wrote:
> > From: Dave Chinner <dchinner@redhat.com>
> > 
> > This patch is brought to you by the Department That Hates Users.
> > 
> > The latest debian unstable release is now causing a bunch of new
> > test failures because they have deprecated the which command.
> > 
> > Rather than make everyone jump through hoops chasing problems with
> > 'which' while debian decides to how to package at least three
> > variants of 'which' - each which will different semantics, behaviour
> > and support - as alternatives users then have to opt into, let's
> > just remove the remaining uses of the shell independent 'which'
> > command and replace them with bash builtin 'type -P' operations.
> > 
> > Signed-off-by: Dave Chinner <dchinner@redhat.com>
> > ---
> 
> 
> 
> 
> >  common/rc         | 2 +-
> >  src/fill2fs       | 2 +-
> >  tests/ext4/006    | 2 +-
> >  tests/generic/128 | 2 +-
> >  tests/generic/452 | 2 +-
> >  tests/xfs/293     | 2 +-
> >  tests/xfs/505     | 2 +-
> >  tests/xfs/514     | 2 +-
> >  tests/xfs/515     | 2 +-
> >  9 files changed, 9 insertions(+), 9 deletions(-)
> > 
> > diff --git a/common/rc b/common/rc
> > index a7f9ed86..db400c4d 100644
> > --- a/common/rc
> > +++ b/common/rc
> > @@ -4,7 +4,7 @@
> >  
> >  . common/config
> >  
> > -BC=$(which bc 2> /dev/null) || BC=
> > +BC="$(type -P bc)" || BC=
> >  
> >  _require_math()
> >  {
> > diff --git a/src/fill2fs b/src/fill2fs
> > index 1c3383a8..d5e5436b 100755
> > --- a/src/fill2fs
> > +++ b/src/fill2fs
> > @@ -111,7 +111,7 @@ sub normal {
> >  #
> >  
> >  chomp($cwd = `pwd`);
> > -chomp($_ = `which fill2 2>&1 | head -1`);
> > +chomp($_ = `type -P fill2 | head -1`);
> >  if (-x $_) {
> >    # look in the path
> >    $fill2 = fill2;
> > diff --git a/tests/ext4/006 b/tests/ext4/006
> > index 17e77f86..48ed6bee 100755
> > --- a/tests/ext4/006
> > +++ b/tests/ext4/006
> > @@ -24,7 +24,7 @@ _cleanup()
> >  . ./common/populate
> >  . ./common/fuzzy
> >  
> > -if [ ! -x "$(which e2fuzz)" ]; then
> > +if [ ! -x "$(type -P e2fuzz)" ]; then
> >  	_notrun "Couldn't find e2fuzz"
> >  fi
> >  
> > diff --git a/tests/generic/128 b/tests/generic/128
> > index dfc67fd5..dc1d43f4 100755
> > --- a/tests/generic/128
> > +++ b/tests/generic/128
> > @@ -23,7 +23,7 @@ _scratch_mkfs >/dev/null 2>&1
> >  _scratch_mount "-o nosuid"
> >  
> >  mkdir $SCRATCH_MNT/nosuid
> > -cp `which ls` $SCRATCH_MNT
> > +cp "$(type -P ls)" $SCRATCH_MNT
> >  chmod 700 $SCRATCH_MNT/nosuid
> >  chmod 4755 $SCRATCH_MNT/ls
> >  
> > diff --git a/tests/generic/452 b/tests/generic/452
> > index ee4dfe9e..7cbd2dfa 100755
> > --- a/tests/generic/452
> > +++ b/tests/generic/452
> > @@ -26,7 +26,7 @@ _exclude_scratch_mount_option "noexec"
> >  _scratch_mkfs > $seqres.full 2>&1
> >  _scratch_mount >> $seqres.full 2>&1
> >  
> > -LS=$(which ls --skip-alias --skip-functions)
> > +LS="$(type -P ls) --skip-alias --skip-functions)"
> 
> I think the "--skip-alias" and "--skip-functions" options are belong to
> the "which" command, so this change might cause fail.

As Zorro pointed out, this causes LS to be

"/usr/bin/ls --skip-alias --skip-functions)"

and leads to the "cp $LS $SCRATCH_LS" failure as

    +cp: unrecognized option '--skip-alias'
    +Try 'cp --help' for more information.
    +/root/workspace/xfstests/tests/generic/452: line 34: /mnt/scratch/ls_on_scratch: No such file or directory

So I've changed it to

LS="$(type -P ls)"

Thanks,
Eryu

> 
> Thanks,
> Zorro
> 
> 
> >  SCRATCH_LS=$SCRATCH_MNT/ls_on_scratch
> >  cp $LS $SCRATCH_LS
> >  
> > diff --git a/tests/xfs/293 b/tests/xfs/293
> > index fbd26b63..20f8c486 100755
> > --- a/tests/xfs/293
> > +++ b/tests/xfs/293
> > @@ -30,7 +30,7 @@ case "$MANPAGE" in
> >  *)		CAT=cat;;
> >  esac
> >  
> > -_require_command `which $CAT` $CAT
> > +_require_command "$(type -P $CAT)" $CAT
> >  
> >  for COMMAND in `$XFS_IO_PROG -c help | awk '{print $1}' | grep -v "^Use"`; do
> >    $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \
> > diff --git a/tests/xfs/505 b/tests/xfs/505
> > index 8a999ff4..71fb6e9d 100755
> > --- a/tests/xfs/505
> > +++ b/tests/xfs/505
> > @@ -26,7 +26,7 @@ case "$MANPAGE" in
> >  *.xz)		CAT=xzcat;;
> >  *)		CAT=cat;;
> >  esac
> > -_require_command `which $CAT` $CAT
> > +_require_command "$(type -P $CAT)" $CAT
> >  
> >  for COMMAND in `$XFS_SPACEMAN_PROG -c help $TEST_DIR | awk '{print $1}' | grep -v "^Use"`; do
> >    $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \
> > diff --git a/tests/xfs/514 b/tests/xfs/514
> > index a9c67645..cf5588f2 100755
> > --- a/tests/xfs/514
> > +++ b/tests/xfs/514
> > @@ -34,7 +34,7 @@ case "$MANPAGE" in
> >  *.xz)		CAT=xzcat;;
> >  *)		CAT=cat;;
> >  esac
> > -_require_command `which $CAT` $CAT
> > +_require_command "$(type -P $CAT)" $CAT
> >  
> >  file=$TEST_DIR/xx.$seq
> >  truncate -s 128m $file
> > diff --git a/tests/xfs/515 b/tests/xfs/515
> > index 32216fe6..2d7bbb35 100755
> > --- a/tests/xfs/515
> > +++ b/tests/xfs/515
> > @@ -34,7 +34,7 @@ case "$MANPAGE" in
> >  *.xz)		CAT=xzcat;;
> >  *)		CAT=cat;;
> >  esac
> > -_require_command `which $CAT` $CAT
> > +_require_command "$(type -P $CAT)" $CAT
> >  
> >  for COMMAND in `$XFS_QUOTA_PROG -x -c help $file | awk '{print $1}' | grep -v "^Use"`; do
> >    $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \
> > -- 
> > 2.31.1
> >
diff mbox series

Patch

diff --git a/common/rc b/common/rc
index a7f9ed86..db400c4d 100644
--- a/common/rc
+++ b/common/rc
@@ -4,7 +4,7 @@ 
 
 . common/config
 
-BC=$(which bc 2> /dev/null) || BC=
+BC="$(type -P bc)" || BC=
 
 _require_math()
 {
diff --git a/src/fill2fs b/src/fill2fs
index 1c3383a8..d5e5436b 100755
--- a/src/fill2fs
+++ b/src/fill2fs
@@ -111,7 +111,7 @@  sub normal {
 #
 
 chomp($cwd = `pwd`);
-chomp($_ = `which fill2 2>&1 | head -1`);
+chomp($_ = `type -P fill2 | head -1`);
 if (-x $_) {
   # look in the path
   $fill2 = fill2;
diff --git a/tests/ext4/006 b/tests/ext4/006
index 17e77f86..48ed6bee 100755
--- a/tests/ext4/006
+++ b/tests/ext4/006
@@ -24,7 +24,7 @@  _cleanup()
 . ./common/populate
 . ./common/fuzzy
 
-if [ ! -x "$(which e2fuzz)" ]; then
+if [ ! -x "$(type -P e2fuzz)" ]; then
 	_notrun "Couldn't find e2fuzz"
 fi
 
diff --git a/tests/generic/128 b/tests/generic/128
index dfc67fd5..dc1d43f4 100755
--- a/tests/generic/128
+++ b/tests/generic/128
@@ -23,7 +23,7 @@  _scratch_mkfs >/dev/null 2>&1
 _scratch_mount "-o nosuid"
 
 mkdir $SCRATCH_MNT/nosuid
-cp `which ls` $SCRATCH_MNT
+cp "$(type -P ls)" $SCRATCH_MNT
 chmod 700 $SCRATCH_MNT/nosuid
 chmod 4755 $SCRATCH_MNT/ls
 
diff --git a/tests/generic/452 b/tests/generic/452
index ee4dfe9e..7cbd2dfa 100755
--- a/tests/generic/452
+++ b/tests/generic/452
@@ -26,7 +26,7 @@  _exclude_scratch_mount_option "noexec"
 _scratch_mkfs > $seqres.full 2>&1
 _scratch_mount >> $seqres.full 2>&1
 
-LS=$(which ls --skip-alias --skip-functions)
+LS="$(type -P ls) --skip-alias --skip-functions)"
 SCRATCH_LS=$SCRATCH_MNT/ls_on_scratch
 cp $LS $SCRATCH_LS
 
diff --git a/tests/xfs/293 b/tests/xfs/293
index fbd26b63..20f8c486 100755
--- a/tests/xfs/293
+++ b/tests/xfs/293
@@ -30,7 +30,7 @@  case "$MANPAGE" in
 *)		CAT=cat;;
 esac
 
-_require_command `which $CAT` $CAT
+_require_command "$(type -P $CAT)" $CAT
 
 for COMMAND in `$XFS_IO_PROG -c help | awk '{print $1}' | grep -v "^Use"`; do
   $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \
diff --git a/tests/xfs/505 b/tests/xfs/505
index 8a999ff4..71fb6e9d 100755
--- a/tests/xfs/505
+++ b/tests/xfs/505
@@ -26,7 +26,7 @@  case "$MANPAGE" in
 *.xz)		CAT=xzcat;;
 *)		CAT=cat;;
 esac
-_require_command `which $CAT` $CAT
+_require_command "$(type -P $CAT)" $CAT
 
 for COMMAND in `$XFS_SPACEMAN_PROG -c help $TEST_DIR | awk '{print $1}' | grep -v "^Use"`; do
   $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \
diff --git a/tests/xfs/514 b/tests/xfs/514
index a9c67645..cf5588f2 100755
--- a/tests/xfs/514
+++ b/tests/xfs/514
@@ -34,7 +34,7 @@  case "$MANPAGE" in
 *.xz)		CAT=xzcat;;
 *)		CAT=cat;;
 esac
-_require_command `which $CAT` $CAT
+_require_command "$(type -P $CAT)" $CAT
 
 file=$TEST_DIR/xx.$seq
 truncate -s 128m $file
diff --git a/tests/xfs/515 b/tests/xfs/515
index 32216fe6..2d7bbb35 100755
--- a/tests/xfs/515
+++ b/tests/xfs/515
@@ -34,7 +34,7 @@  case "$MANPAGE" in
 *.xz)		CAT=xzcat;;
 *)		CAT=cat;;
 esac
-_require_command `which $CAT` $CAT
+_require_command "$(type -P $CAT)" $CAT
 
 for COMMAND in `$XFS_QUOTA_PROG -x -c help $file | awk '{print $1}' | grep -v "^Use"`; do
   $CAT "$MANPAGE" | egrep -q "^\.B.*$COMMAND" || \