From 36eb6706d0240865e1fad11279fcb0c29bc28c23 Mon Sep 17 00:00:00 2001 From: OpenAI Date: Wed, 10 Jun 2026 18:48:23 +0000 Subject: [PATCH] tests: reset ncpfs metadata smoke directory --- tests/nwfs/nwfs_ncpfs_metadata_smoke.sh.in | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/nwfs/nwfs_ncpfs_metadata_smoke.sh.in b/tests/nwfs/nwfs_ncpfs_metadata_smoke.sh.in index d2eb7bf..bbb9c20 100755 --- a/tests/nwfs/nwfs_ncpfs_metadata_smoke.sh.in +++ b/tests/nwfs/nwfs_ncpfs_metadata_smoke.sh.in @@ -11,6 +11,7 @@ if [ "$#" -lt 4 ]; then echo "Set NWFS_NCPFS_TRUSTEE_OBJECT and NWFS_NCPFS_TRUSTEE_TYPE to override the default GUEST user trustee mutation." >&2 echo "Set NWFS_NCPFS_RIGHTS_MATRIX to a space-separated trustee-rights matrix; default: R F RF W C E M A RWCEMFA S." >&2 echo "Set NWFS_NCPFS_RIGHTS_USER/PASSWORD to mount as the target user and verify effective rights exactly." >&2 + echo "Set NWFS_NCPFS_RESET_TESTDIR=0 to keep an existing test directory. Default is 1 and removes TESTDIR before the smoke." >&2 echo "Set NWFS_NCPFS_DIR_QUOTA_4K to override the directory quota limit; set it empty to skip. Directory quota is off by default for NetWare 3.x/4.x smoke." >&2 echo "Set NWFS_NCPFS_USER_QUOTA_4K to enable the user-volume restriction smoke." >&2 echo "Set NWFS_NCPFS_USER_QUOTA_EXPECT to metadata, linux, or auto; default auto." >&2 @@ -38,6 +39,7 @@ USER_QUOTA_TYPE=${NWFS_NCPFS_USER_QUOTA_TYPE:-$TRUSTEE_TYPE} USER_QUOTA_EXPECT=${NWFS_NCPFS_USER_QUOTA_EXPECT:-auto} USER_QUOTA_HOST_USER=${NWFS_NCPFS_USER_QUOTA_HOST_USER:-} RIGHTS_MATRIX=${NWFS_NCPFS_RIGHTS_MATRIX:-R F RF W C E M A RWCEMFA S} +RESET_TESTDIR=${NWFS_NCPFS_RESET_TESTDIR:-1} RIGHTS_USER=${NWFS_NCPFS_RIGHTS_USER:-} RIGHTS_PASSWORD=${NWFS_NCPFS_RIGHTS_PASSWORD-} RIGHTS_MOUNTPOINT=${NWFS_NCPFS_RIGHTS_MOUNTPOINT:-} @@ -49,6 +51,7 @@ DIRQUOTA_DUMP=$(mktemp "${TMPDIR:-/tmp}/nwfs_ncpfs_dirquota_dump.XXXXXX") USERQUOTA_OUT=$(mktemp "${TMPDIR:-/tmp}/nwfs_ncpfs_userquota.XXXXXX") USERQUOTA_DUMP=$(mktemp "${TMPDIR:-/tmp}/nwfs_ncpfs_userquota_dump.XXXXXX") RIGHTS_DUMP=$(mktemp "${TMPDIR:-/tmp}/nwfs_ncpfs_rights_dump.XXXXXX") +RESET_ERR=$(mktemp "${TMPDIR:-/tmp}/nwfs_ncpfs_reset.XXXXXX") case "$TESTDIR" in /*|*..*) @@ -88,7 +91,7 @@ cleanup() { umount "$RIGHTS_MOUNTPOINT" || true fi fi - rm -f "$MKDIR_ERR" "$WRITE_ERR" "$GRANT_ERR" "$REVOKE_ERR" "$DIRQUOTA_DUMP" "$USERQUOTA_OUT" "$USERQUOTA_DUMP" "$RIGHTS_DUMP" + rm -f "$MKDIR_ERR" "$WRITE_ERR" "$GRANT_ERR" "$REVOKE_ERR" "$DIRQUOTA_DUMP" "$USERQUOTA_OUT" "$USERQUOTA_DUMP" "$RIGHTS_DUMP" "$RESET_ERR" [ "$CLEAN_MOUNT" = 1 ] && rmdir "$MOUNTPOINT" 2>/dev/null || true } trap cleanup EXIT HUP INT TERM @@ -163,6 +166,26 @@ NCP_TEST_PATH=$MOUNTPOINT/$TESTDIR HOST_TEST_PATH=$SYSROOT/$TESTDIR NW_TEST_PATH=$VOLUME:$TESTDIR +case "$RESET_TESTDIR" in + 1|yes|true|on) + if [ -e "$NCP_TEST_PATH" ]; then + echo "removing existing test directory $NCP_TEST_PATH" >&2 + if ! rm -rf -- "$NCP_TEST_PATH" 2>"$RESET_ERR"; then + echo "cannot remove existing test directory $NW_TEST_PATH through NCPFS" >&2 + cat "$RESET_ERR" >&2 || true + echo "Set NWFS_NCPFS_RESET_TESTDIR=0 to reuse it, or remove it manually." >&2 + exit 1 + fi + fi + ;; + 0|no|false|off) + ;; + *) + echo "invalid NWFS_NCPFS_RESET_TESTDIR=$RESET_TESTDIR" >&2 + exit 2 + ;; +esac + if [ -d "$NCP_TEST_PATH" ]; then echo "using existing test directory $NCP_TEST_PATH" >&2 else