ZTS: replace uses of TMPDIR with mktemp

Most of these are trying to use TMPDIR to put their work files somewhere
sensible. Now that we've set up correctly, they can all just use mktemp
to do the job.

In a couple of places cleaning up temp files wasn't being done
correctly, which has been fixed.

Sponsored-by: https://despairlabs.com/sponsor/
Signed-off-by: Rob Norris <robn@despairlabs.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de>
Reviewed-by: Igor Kozhukhov <igor@dilos.org>
This commit is contained in:
Rob Norris 2025-02-15 14:44:23 +11:00 committed by Tony Hutter
parent 72c0fde609
commit a44f423b00
15 changed files with 89 additions and 92 deletions

View File

@ -48,11 +48,13 @@ function get_same_blocks
if [ ${#KEY} -gt 0 ]; then
KEY="--key=$KEY"
fi
typeset zdbout=${TMPDIR:-$TEST_BASE_DIR}/zdbout.$$
typeset zdbout1=$(mktemp)
typeset zdbout2=$(mktemp)
zdb $KEY -vvvvv $1 -O $2 | \
awk '/ L0 / { print l++ " " $3 " " $7 }' > $zdbout.a
awk '/ L0 / { print l++ " " $3 " " $7 }' > $zdbout1
zdb $KEY -vvvvv $3 -O $4 | \
awk '/ L0 / { print l++ " " $3 " " $7 }' > $zdbout.b
echo $(sort -n $zdbout.a $zdbout.b | uniq -d | cut -f1 -d' ')
awk '/ L0 / { print l++ " " $3 " " $7 }' > $zdbout2
echo $(sort -n $zdbout1 $zdbout2 | uniq -d | cut -f1 -d' ')
rm -f $zdbout1 $zdbout2
}

View File

@ -38,10 +38,10 @@
verify_runnable "both"
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
MNTPT=$TMPDIR/zfs_mount_test_race_mntpt
DISK1="$TMPDIR/zfs_mount_test_race_disk1"
DISK2="$TMPDIR/zfs_mount_test_race_disk2"
DISKDIR=$(mktemp -d)
MNTPT=$DISKDIR/zfs_mount_test_race_mntpt
DISK1="$DISKDIR/zfs_mount_test_race_disk1"
DISK2="$DISKDIR/zfs_mount_test_race_disk2"
TESTPOOL1=zfs_mount_test_race_tp1
TESTPOOL2=zfs_mount_test_race_tp2
@ -54,11 +54,9 @@ function cleanup
{
zpool destroy $TESTPOOL1
zpool destroy $TESTPOOL2
rm -rf $MNTPT
rm -rf $DISKDIR
rm -rf /$TESTPOOL1
rm -rf /$TESTPOOL2
rm -f $DISK1
rm -f $DISK2
export __ZFS_POOL_RESTRICT="$TESTPOOL1 $TESTPOOL2"
log_must zfs $mountall
unset __ZFS_POOL_RESTRICT

View File

@ -26,14 +26,14 @@
. $STF_SUITE/include/libtest.shlib
DATAFILE="$TMPDIR/datafile"
DATAFILE=$(mktemp)
function cleanup
{
zpool clear $TESTPOOL
destroy_pool $TESTPOOL
unload_scsi_debug
rm -f $DATA_FILE
rm -f $DATAFILE
}
log_onexit cleanup

View File

@ -21,24 +21,24 @@
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/functional/removal/removal.kshlib
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
log_must mkfile $MINVDEVSIZE $TMPDIR/dsk1
log_must mkfile $MINVDEVSIZE $TMPDIR/dsk2
DISKS="$TMPDIR/dsk1 $TMPDIR/dsk2"
REMOVEDISK=$TMPDIR/dsk1
DISKDIR=$(mktemp -d)
log_must mkfile $MINVDEVSIZE $DISKDIR/dsk1
log_must mkfile $MINVDEVSIZE $DISKDIR/dsk2
DISKS="$DISKDIR/dsk1 $DISKDIR/dsk2"
REMOVEDISK=$DISKDIR/dsk1
log_must default_setup_noexit "$DISKS"
function cleanup
{
default_cleanup_noexit
log_must rm -f $DISKS
log_must rm -rf $DISKDIR
}
log_onexit cleanup
# Write a little more than half the pool.
log_must dd if=/dev/urandom of=/$TESTDIR/$TESTFILE0 bs=$((2**20)) \
count=$((MINVDEVSIZE / (1024 * 1024)))
log_mustnot zpool remove $TESTPOOL $TMPDIR/dsk1
log_mustnot zpool remove $TESTPOOL $DISKDIR/dsk1
log_pass "Removal will not succeed if insufficient space."

View File

@ -44,18 +44,18 @@
# that the files contents remain the same across transfers.
#
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
log_must mkfile $(($MINVDEVSIZE * 2)) $TMPDIR/dsk1
log_must mkfile $(($MINVDEVSIZE * 2)) $TMPDIR/dsk2
DISKS="$TMPDIR/dsk1 $TMPDIR/dsk2"
REMOVEDISK=$TMPDIR/dsk1
DISKDIR=$(mktemp -d)
log_must mkfile $(($MINVDEVSIZE * 2)) $DISKDIR/dsk1
log_must mkfile $(($MINVDEVSIZE * 2)) $DISKDIR/dsk2
DISKS="$DISKDIR/dsk1 $DISKDIR/dsk2"
REMOVEDISK=$DISKDIR/dsk1
log_must default_setup_noexit "$DISKS"
function cleanup
{
default_cleanup_noexit
log_must rm -f $DISKS
log_must rm -rf $DISKDIR
# reset REMOVE_MAX_SEGMENT to 1M
set_tunable32 REMOVE_MAX_SEGMENT 1048576
@ -71,19 +71,19 @@ FILE_CONTENTS=$(<$TESTDIR/$TESTFILE0)
log_must [ "x$(<$TESTDIR/$TESTFILE0)" = "x$FILE_CONTENTS" ]
for i in {1..10}; do
log_must zpool remove $TESTPOOL $TMPDIR/dsk1
log_must zpool remove $TESTPOOL $DISKDIR/dsk1
log_must wait_for_removal $TESTPOOL
log_mustnot vdevs_in_pool $TESTPOOL $TMPDIR/dsk1
log_must zpool add $TESTPOOL $TMPDIR/dsk1
log_mustnot vdevs_in_pool $TESTPOOL $DISKDIR/dsk1
log_must zpool add $TESTPOOL $DISKDIR/dsk1
log_must zinject -a
log_must dd if=$TESTDIR/$TESTFILE0 of=/dev/null
log_must [ "x$(<$TESTDIR/$TESTFILE0)" = "x$FILE_CONTENTS" ]
log_must zpool remove $TESTPOOL $TMPDIR/dsk2
log_must zpool remove $TESTPOOL $DISKDIR/dsk2
log_must wait_for_removal $TESTPOOL
log_mustnot vdevs_in_pool $TESTPOOL $TMPDIR/dsk2
log_must zpool add $TESTPOOL $TMPDIR/dsk2
log_mustnot vdevs_in_pool $TESTPOOL $DISKDIR/dsk2
log_must zpool add $TESTPOOL $DISKDIR/dsk2
log_must zinject -a
log_must dd if=$TESTDIR/$TESTFILE0 of=/dev/null

View File

@ -21,18 +21,18 @@
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/functional/removal/removal.kshlib
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
log_must mkfile 1g $TMPDIR/dsk1
log_must mkfile 1g $TMPDIR/dsk2
DISKS="$TMPDIR/dsk1 $TMPDIR/dsk2"
REMOVEDISK=$TMPDIR/dsk1
DISKDIR=$(mktemp -d)
log_must mkfile 1g $DISKDIR/dsk1
log_must mkfile 1g $DISKDIR/dsk2
DISKS="$DISKDIR/dsk1 $DISKDIR/dsk2"
REMOVEDISK=$DISKDIR/dsk1
default_setup_noexit "$DISKS"
function cleanup
{
default_cleanup_noexit
log_must rm -f $DISKS
log_must rm -rf $DISKDIR
}
log_onexit cleanup

View File

@ -21,14 +21,14 @@
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/functional/removal/removal.kshlib
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
log_must mkfile 1g $TMPDIR/dsk1
log_must mkfile 1g $TMPDIR/dsk2
DISKDIR=$(mktemp -d)
log_must mkfile 1g $DISKDIR/dsk1
log_must mkfile 1g $DISKDIR/dsk2
function cleanup
{
default_cleanup_noexit
log_must rm -f $TMPDIR/dsk1 $TMPDIR/dsk2
log_must rm -rf $DISKDIR
}
default_setup_noexit "$DISKS"
@ -36,10 +36,10 @@ log_onexit cleanup
function callback
{
log_mustnot zpool attach -f $TESTPOOL $TMPDIR/dsk1 $TMPDIR/dsk2
log_mustnot zpool attach -f $TESTPOOL $DISKDIR/dsk1 $DISKDIR/dsk2
log_mustnot zpool add -f $TESTPOOL \
raidz $TMPDIR/dsk1 $TMPDIR/dsk2
log_must zpool add -f $TESTPOOL $TMPDIR/dsk1
raidz $DISKDIR/dsk1 $DISKDIR/dsk2
log_must zpool add -f $TESTPOOL $DISKDIR/dsk1
return 0
}

View File

@ -44,11 +44,11 @@
# 7. Lastly verify the pool data is still intact.
#
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
DISK0=$TMPDIR/dsk0
DISK1=$TMPDIR/dsk1
DISK2=$TMPDIR/dsk2
DISK3=$TMPDIR/dsk3
DISKDIR=$(mktemp -d)
DISK0=$DISKDIR/dsk0
DISK1=$DISKDIR/dsk1
DISK2=$DISKDIR/dsk2
DISK3=$DISKDIR/dsk3
log_must truncate -s $MINVDEVSIZE $DISK0 $DISK1
log_must truncate -s $((MINVDEVSIZE * 4)) $DISK2 $DISK3
@ -57,7 +57,7 @@ function cleanup
{
log_must zinject -c all
default_cleanup_noexit
log_must rm -f $DISK0 $DISK1 $DISK2 $DISK3
log_must rm -rf $DISKDIR
}
function wait_for_removing_cancel
@ -88,7 +88,7 @@ log_must file_write -o create -f $TESTDIR/$TESTFILE1 -b $((2**20)) -c $((2**8))
# Flush the ARC to minimize cache effects.
log_must zpool export $TESTPOOL
log_must zpool import -d $TMPDIR $TESTPOOL
log_must zpool import -d $DISKDIR $TESTPOOL
# Verify that unexpected read errors automatically cancel the removal.
log_must zinject -d $DISK0 -e io -T all -f 100 $TESTPOOL
@ -99,7 +99,7 @@ log_must zinject -c all
# Flush the ARC to minimize cache effects.
log_must zpool export $TESTPOOL
log_must zpool import -d $TMPDIR $TESTPOOL
log_must zpool import -d $DISKDIR $TESTPOOL
# Verify that unexpected write errors automatically cancel the removal.
log_must zinject -d $DISK3 -e io -T all -f 100 $TESTPOOL

View File

@ -63,11 +63,11 @@
# data is still intact.
#
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
DISK0=$TMPDIR/dsk0
DISK1=$TMPDIR/dsk1
DISK2=$TMPDIR/dsk2
DISK3=$TMPDIR/dsk3
DISKDIR=$(mktemp -d)
DISK0=$DISKDIR/dsk0
DISK1=$DISKDIR/dsk1
DISK2=$DISKDIR/dsk2
DISK3=$DISKDIR/dsk3
log_must truncate -s $MINVDEVSIZE $DISK0 $DISK1
log_must truncate -s $((MINVDEVSIZE * 4)) $DISK2 $DISK3
@ -75,7 +75,7 @@ log_must truncate -s $((MINVDEVSIZE * 4)) $DISK2 $DISK3
function cleanup
{
default_cleanup_noexit
log_must rm -f $DISK0 $DISK1 $DISK2 $DISK3
log_must rm -rf $DISKDIR
}
default_setup_noexit "mirror $DISK0 $DISK1 mirror $DISK2 $DISK3"

View File

@ -21,12 +21,11 @@
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/functional/removal/removal.kshlib
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
DISK1="$TMPDIR/dsk1"
DISK2="$TMPDIR/dsk2"
DISK3="$TMPDIR/dsk3"
DISK4="$TMPDIR/dsk4"
DISKDIR=$(mktemp -d)
DISK1="$DISKDIR/dsk1"
DISK2="$DISKDIR/dsk2"
DISK3="$DISKDIR/dsk3"
DISK4="$DISKDIR/dsk4"
DISKS="$DISK1 $DISK2 $DISK3 $DISK4"
log_must mkfile $(($MINVDEVSIZE * 2)) $DISK1
@ -37,7 +36,7 @@ log_must mkfile $(($MINVDEVSIZE * 2)) $DISK4
function cleanup
{
default_cleanup_noexit
log_must rm -f $DISKS
log_must rm -rf $DISKDIR
}
# Build a zpool with 2 mirror vdevs

View File

@ -21,7 +21,7 @@
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/functional/removal/removal.kshlib
zdbout=${TMPDIR:-$TEST_BASE_DIR}/zdbout.$$
zdbout=$(mktemp)
if is_linux; then
log_unsupported "ZDB fails during concurrent pool activity."

View File

@ -34,10 +34,9 @@
command -v fio > /dev/null || log_unsupported "fio missing"
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
DISK1="$TMPDIR/dsk1"
DISK2="$TMPDIR/dsk2"
DISKDIR=$(mktemp -d)
DISK1="$DISKDIR/dsk1"
DISK2="$DISKDIR/dsk2"
DISKS="$DISK1 $DISK2"
# fio options
@ -58,7 +57,7 @@ log_must mkfile 4g $DISK2
function cleanup
{
default_cleanup_noexit
log_must rm -f $DISKS
log_must rm -rf $DISKDIR
}
log_must zpool create -O recordsize=4k $TESTPOOL $DISK1 $DISK2

View File

@ -32,10 +32,10 @@
#
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
DISK0=$TMPDIR/dsk0
DISK1=$TMPDIR/dsk1
DISK2=$TMPDIR/dsk2
DISKDIR=$(mktemp -d)
DISK0=$DISKDIR/dsk0
DISK1=$DISKDIR/dsk1
DISK2=$DISKDIR/dsk2
log_must truncate -s $MINVDEVSIZE $DISK0
log_must truncate -s $(($MINVDEVSIZE * 3)) $DISK1
@ -44,7 +44,7 @@ log_must truncate -s $MINVDEVSIZE $DISK2
function cleanup
{
default_cleanup_noexit
log_must rm -f $DISK0 $DISK1 $DISK2
log_must rm -rf $DISKDIR
}
#

View File

@ -21,11 +21,10 @@
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/functional/removal/removal.kshlib
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
DISK1="$TMPDIR/dsk1"
DISK2="$TMPDIR/dsk2"
DISK3="$TMPDIR/dsk3"
DISKDIR=$(mktemp -d)
DISK1="$DISKDIR/dsk1"
DISK2="$DISKDIR/dsk2"
DISK3="$DISKDIR/dsk3"
DISKS="$DISK1 $DISK2 $DISK3"
log_must mkfile $(($MINVDEVSIZE * 2)) $DISK1
@ -35,7 +34,7 @@ log_must mkfile $(($MINVDEVSIZE * 2)) $DISK3
function cleanup
{
default_cleanup_noexit
log_must rm -f $DISKS
log_must rm -rf $DISKDIR
}
log_must default_setup_noexit "$DISK1 mirror $DISK2 $DISK3"

View File

@ -21,28 +21,28 @@
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/functional/removal/removal.kshlib
TMPDIR=${TMPDIR:-$TEST_BASE_DIR}
log_must mkfile $MINVDEVSIZE $TMPDIR/dsk1
log_must mkfile $MINVDEVSIZE $TMPDIR/dsk2
log_must mkfile $MINVDEVSIZE $TMPDIR/dsk3
DISKS1="$TMPDIR/dsk1"
DISKS2="$TMPDIR/dsk2 $TMPDIR/dsk3"
DISKDIR=$(mktemp -d)
log_must mkfile $MINVDEVSIZE $DISKDIR/dsk1
log_must mkfile $MINVDEVSIZE $DISKDIR/dsk2
log_must mkfile $MINVDEVSIZE $DISKDIR/dsk3
DISKS1="$DISKDIR/dsk1"
DISKS2="$DISKDIR/dsk2 $DISKDIR/dsk3"
DISKS="$DISKS1 $DISKS2"
function cleanup
{
default_cleanup_noexit
log_must rm -f $DISKS
log_must rm -rf $DISKDIR
}
log_must default_setup_noexit "$DISKS1 raidz $DISKS2"
log_onexit cleanup
# Attempt to remove the non raidz disk.
log_mustnot zpool remove $TESTPOOL $TMPDIR/dsk1
log_mustnot zpool remove $TESTPOOL $DISKDIR/dsk1
# Attempt to remove one of the raidz disks.
log_mustnot zpool remove $TESTPOOL $TMPDIR/dsk2
log_mustnot zpool remove $TESTPOOL $DISKDIR/dsk2
# Attempt to remove the raidz.
log_mustnot zpool remove $TESTPOOL raidz1-1