Skip to content

Commit

Permalink
ZTS: replace uses of TMPDIR with mktemp
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
robn committed Feb 15, 2025
1 parent 8778b27 commit 92e350d
Show file tree
Hide file tree
Showing 15 changed files with 89 additions and 92 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@

. $STF_SUITE/include/libtest.shlib

DATAFILE="$TMPDIR/datafile"
DATAFILE=$(mktemp)

function cleanup
{
destroy_pool $TESTPOOL
unload_scsi_debug
rm -f $DATA_FILE
rm -f $DATAFILE
}

log_onexit cleanup
Expand Down
14 changes: 7 additions & 7 deletions tests/zfs-tests/tests/functional/removal/removal_check_space.ksh
Original file line number Diff line number Diff line change
Expand Up @@ -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."
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
12 changes: 6 additions & 6 deletions tests/zfs-tests/tests/functional/removal/removal_reservation.ksh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
14 changes: 7 additions & 7 deletions tests/zfs-tests/tests/functional/removal/removal_with_add.ksh
Original file line number Diff line number Diff line change
Expand Up @@ -21,25 +21,25 @@
. $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"
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
}

Expand Down
16 changes: 8 additions & 8 deletions tests/zfs-tests/tests/functional/removal/removal_with_errors.ksh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,19 +63,19 @@
# 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

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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
10 changes: 5 additions & 5 deletions tests/zfs-tests/tests/functional/removal/remove_expanded.ksh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
}

#
Expand Down
11 changes: 5 additions & 6 deletions tests/zfs-tests/tests/functional/removal/remove_mirror.ksh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"
Expand Down
Loading

0 comments on commit 92e350d

Please sign in to comment.