On Wed, Nov 27, 2024 at 03:52:00PM +1100, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > Using bash directory stacking (pushd, popd, etc) seems to be > somewhat unreliable. I've been seeing occasional random failures > from both pushd and popd commands that cause the test to fail, and > there does not appear to be any reason for the failures occurring. > > Rather than wasting time chasing ghosts, just get rid of the > directory stacking altogether. > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> > --- > tests/generic/099 | 8 +++----- > tests/generic/109 | 5 +---- > tests/generic/135 | 24 +++++++++++------------- > tests/generic/707 | 7 ++++--- > 4 files changed, 19 insertions(+), 25 deletions(-) > > diff --git a/tests/generic/099 b/tests/generic/099 > index c7d5932b6..980fd38f3 100755 > --- a/tests/generic/099 > +++ b/tests/generic/099 > @@ -253,15 +253,13 @@ echo "" > echo "=== Recursive change ACL ===" > rm -fr root > mkdir root > -pushd root >/dev/null > # create an arbitrary little tree > -for i in 1 2 3 4 5 6 7 8 9 0 > -do > +( cd root ; for i in 1 2 3 4 5 6 7 8 9 0; do > mkdir -p a/$i > mkdir -p b/c$i/$i > touch a/$i/mumble > -done > -popd >/dev/null > +done ) > + > chown -R 12345:54321 root > echo "Change #1..." > _runas -u 12345 -g 54321 -- chacl -r u::rwx,g::-w-,o::--x root > diff --git a/tests/generic/109 b/tests/generic/109 > index 2b0b438cf..894e07167 100755 > --- a/tests/generic/109 > +++ b/tests/generic/109 > @@ -54,10 +54,7 @@ _scratch_mount >> $seqres.full 2>&1 > # Test different directory sizes to test various directory formats > for f in 1 2 3 4 5 8 12 18 27 40 60 90 135 202 303 454 681 1020 1530 2295; do > mkdir $SCRATCH_MNT/dir$f > - pushd $SCRATCH_MNT/dir$f >/dev/null > - filldir $f > - renamedir > - popd >/dev/null > + ( cd $SCRATCH_MNT/dir$f ; filldir $f ; renamedir ) > done > > status=0 > diff --git a/tests/generic/135 b/tests/generic/135 > index 30c52af72..cb9407fdf 100755 > --- a/tests/generic/135 > +++ b/tests/generic/135 > @@ -21,30 +21,28 @@ _scratch_mount > cd $SCRATCH_MNT ^^^^^^^^^^^^^^^ Below "_scratch_cycle_mount" fails, due to above line. I'll remove it. Thanks, Zorro > > # create file with async I/O > -$XFS_IO_PROG -f -c 'pwrite -b 4k -S 0x12 0 4k' async_file > /dev/null > +$XFS_IO_PROG -f -c 'pwrite -b 4k -S 0x12 0 4k' $SCRATCH_MNT/async_file > /dev/null > > # create file with sync I/O > -$XFS_IO_PROG -f -s -c 'pwrite -b 4k -S 0x34 0 4k' sync_file > /dev/null > +$XFS_IO_PROG -f -s -c 'pwrite -b 4k -S 0x34 0 4k' $SCRATCH_MNT/sync_file > /dev/null > > # create file with direct I/O > -$XFS_IO_PROG -f -d -c 'pwrite -b 4k -S 0x56 0 4k' direct_file > /dev/null > +$XFS_IO_PROG -f -d -c 'pwrite -b 4k -S 0x56 0 4k' $SCRATCH_MNT/direct_file > /dev/null > > # create file, truncate and then dirty again > -$XFS_IO_PROG -f -c 'pwrite -b 4k -S 0x78 0 4k' trunc_file > /dev/null > -$XFS_IO_PROG -f -c 'truncate 2k' trunc_file > /dev/null > -$XFS_IO_PROG -c 'pwrite 1k 0 1k' trunc_file > /dev/null > +$XFS_IO_PROG -f -c 'pwrite -b 4k -S 0x78 0 4k' $SCRATCH_MNT/trunc_file > /dev/null > +$XFS_IO_PROG -f -c 'truncate 2k' $SCRATCH_MNT/trunc_file > /dev/null > +$XFS_IO_PROG -c 'pwrite 1k 0 1k' $SCRATCH_MNT/trunc_file > /dev/null > > -pushd / > /dev/null > _scratch_cycle_mount > -popd > /dev/null > > # check file size and contents > -od -Ad -x async_file > -od -Ad -x sync_file > -od -Ad -x direct_file > -od -Ad -x trunc_file > +od -Ad -x $SCRATCH_MNT/async_file > +od -Ad -x $SCRATCH_MNT/sync_file > +od -Ad -x $SCRATCH_MNT/direct_file > +od -Ad -x $SCRATCH_MNT/trunc_file > > -rm -f async_file sync_file direct_file trunc_file > +rm -f $SCRATCH_MNT/* > > status=0 > exit > diff --git a/tests/generic/707 b/tests/generic/707 > index fd02eacf9..3d8fac4bd 100755 > --- a/tests/generic/707 > +++ b/tests/generic/707 > @@ -42,7 +42,7 @@ create_files() > # We use slightly longer file name to make directory grow faster and > # hopefully convert between various types > for (( i = 0; i < $files; i++ )); do > - touch somewhatlongerfilename$i > + echo -n > somewhatlongerfilename$i > done > } > > @@ -50,12 +50,13 @@ for (( i = 0; i <= $moves; i++ )); do > mkdir $SCRATCH_MNT/dir$i > done > > +start_dir=$PWD > for (( l = 0; l < $loops; l++ )); do > mkdir $SCRATCH_MNT/dir0/dir > - pushd $SCRATCH_MNT/dir0/dir &>/dev/null > + cd $SCRATCH_MNT/dir0/dir > create_files & > BGPID=$! > - popd &>/dev/null > + cd $start_dir > for (( i = 0; i < $moves; i++ )); do > mv $SCRATCH_MNT/dir$i/dir $SCRATCH_MNT/dir$((i+1))/dir > done > -- > 2.45.2 > >