diff mbox series

[30/40] fstests: don't use directory stacks

Message ID 20241127045403.3665299-31-david@fromorbit.com (mailing list archive)
State New
Headers show
Series fstests: concurrent test execution | expand

Commit Message

Dave Chinner Nov. 27, 2024, 4:52 a.m. UTC
From: Dave Chinner <dchinner@redhat.com>

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@redhat.com>
---
 tests/generic/099 |  8 +++-----
 tests/generic/109 |  5 +----
 tests/generic/135 | 24 +++++++++++-------------
 tests/generic/707 |  7 ++++---
 4 files changed, 19 insertions(+), 25 deletions(-)
diff mbox series

Patch

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
 
 # 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