[PATCH 1/2] generic/740: set env for mkfs.exfat

David Timber <[email protected]> Fri, 19 Jun 2026 04:22:35 +0900
Newsgroups org.kernel.vger.fstests
Message-ID <[email protected]>
Foreign filesystem detection is added in exfatprogs version 1.4.1. To
maintain backward compatibility, mkfs.exfat refuses to format the device
only when it's run from terminal with a tty associated to it.

This is similar to how e2fsprogs work around the issue. However,
with exfatprogs, this behaviour can be overridden with the special
environment variable EXFAT_TTY_OVERRIDE to simulate shell invocation by
user.

Signed-off-by: David Timber <[email protected]>
---
 tests/generic/740 | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/tests/generic/740 b/tests/generic/740
index ce55200f..4f8bf099 100755
--- a/tests/generic/740
+++ b/tests/generic/740
@@ -28,6 +28,18 @@ _require_block_device "${SCRATCH_DEV}"
 # not all the FS support zoned block device
 _require_non_zoned_device "${SCRATCH_DEV}"
 
+mkfs_preop=""
+mkfs_preargs=""
+mkfs_postargs=""
+
+case "$FSTYP" in
+exfat)
+	# For backward compatibility, mkfs.exfat refuses to format only when run
+	# from a tty. This env var should override the behaviour if supported.
+	mkfs_preop="EXFAT_TTY_OVERRIDE=1"
+	;;
+esac
+
 echo "Silence is golden."
 for fs in `echo ${MKFS_PROG}.* | sed -e "s:${MKFS_PROG}.::g"`
 do
@@ -83,7 +95,8 @@ do
 		# next, ensure we don't overwrite it
 
 		echo "=== Attempting $FSTYP overwrite of $fs..." >>$seqres.full
-		${MKFS_PROG} -t $FSTYP $SCRATCH_DEV >>$seqres.full 2>&1
+		eval $mkfs_preop ${MKFS_PROG} -t $FSTYP $mkfs_preargs $SCRATCH_DEV $mkfs_postargs \
+			>>$seqres.full 2>&1
 
 		[ $? -eq 0 ] && echo "Failed - overwrote fs type ${fs}!"
 	else
-- 
2.54.0