diff options
Diffstat (limited to 'sys/contrib/openzfs/tests/zfs-tests')
3 files changed, 31 insertions, 13 deletions
| diff --git a/sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_seek.c b/sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_seek.c index 45ba17e36c35..f46980cad111 100644 --- a/sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_seek.c +++ b/sys/contrib/openzfs/tests/zfs-tests/cmd/mmap_seek.c @@ -47,25 +47,34 @@  #endif  static void +seek_expect(int fd, off_t offset, int whence, off_t expect_offset) +{ +	errno = 0; +	off_t seek_offset = lseek(fd, offset, whence); +	if (seek_offset == expect_offset) +		return; + +	int err = errno; +	fprintf(stderr, "lseek(fd, %ld, SEEK_%s) = %ld (expected %ld)", +	    offset, (whence == SEEK_DATA ? "DATA" : "HOLE"), +	    seek_offset, expect_offset); +	if (err != 0) +		fprintf(stderr, " (errno %d [%s])\n", err, strerror(err)); +	else +		fputc('\n', stderr); +	exit(2); +} + +static inline void  seek_data(int fd, off_t offset, off_t expected)  { -	off_t data_offset = lseek(fd, offset, SEEK_DATA); -	if (data_offset != expected) { -		fprintf(stderr, "lseek(fd, %d, SEEK_DATA) = %d (expected %d)\n", -		    (int)offset, (int)data_offset, (int)expected); -		exit(2); -	} +	seek_expect(fd, offset, SEEK_DATA, expected);  } -static void +static inline void  seek_hole(int fd, off_t offset, off_t expected)  { -	off_t hole_offset = lseek(fd, offset, SEEK_HOLE); -	if (hole_offset != expected) { -		fprintf(stderr, "lseek(fd, %d, SEEK_HOLE) = %d (expected %d)\n", -		    (int)offset, (int)hole_offset, (int)expected); -		exit(2); -	} +	seek_expect(fd, offset, SEEK_HOLE, expected);  }  int diff --git a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_reopen/zpool_reopen_004_pos.ksh b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_reopen/zpool_reopen_004_pos.ksh index 2bd9f616170b..1a9774331ba1 100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_reopen/zpool_reopen_004_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/cli_root/zpool_reopen/zpool_reopen_004_pos.ksh @@ -47,6 +47,8 @@ function cleanup  	# bring back removed disk online for further tests  	insert_disk $REMOVED_DISK $scsi_host  	poolexists $TESTPOOL && destroy_pool $TESTPOOL +	# Since the disk was offline during destroy, remove the label +	zpool labelclear $DISK2 -f  }  log_assert "Testing zpool reopen with pool name as argument" diff --git a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_trim.ksh b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_trim.ksh index bb697b76a9f3..9de308c4a11a 100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_trim.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_trim.ksh @@ -41,6 +41,7 @@  # 5. TRIM the first 1MB and last 2MB of the 5MB block of data.  # 6. Observe 2MB of used space on the zvol  # 7. Verify the trimmed regions are zero'd on the zvol +# 8. Verify Secure Erase does not work on zvols (Linux only)  verify_runnable "global" @@ -56,6 +57,7 @@ if is_linux ; then  	else  		trimcmd='blkdiscard'  	fi +	secure_trimcmd="$trimcmd --secure"  else  	# By default, FreeBSD 'trim' always does a dry-run.  '-f' makes  	# it perform the actual operation. @@ -114,6 +116,11 @@ function do_test {  	log_must diff $datafile1 $datafile2  	log_must rm $datafile1 $datafile2 + +	# Secure erase should not work (Linux check only). +	if [ -n "$secure_trimcmd" ] ; then +		log_mustnot $secure_trimcmd $zvolpath +	fi  }  log_assert "Verify that a ZFS volume can be TRIMed" | 
