tests: add combined userquota dual backend smoke
All checks were successful
Source release / source-package (push) Successful in 1m3s
All checks were successful
Source release / source-package (push) Successful in 1m3s
This commit is contained in:
@@ -30,6 +30,7 @@ if(NCPFS_INCLUDE_DIR AND NCPFS_LIBRARY)
|
||||
target_include_directories(nwfs_ncpfs_userquota PRIVATE ${NCPFS_INCLUDE_DIR})
|
||||
target_link_libraries(nwfs_ncpfs_userquota PRIVATE ${NCPFS_LIBRARY})
|
||||
set(NWFS_NCPFS_USERQUOTA_HELPER "${CMAKE_CURRENT_BINARY_DIR}/nwfs_ncpfs_userquota")
|
||||
set(NWFS_NCPFS_USERQUOTA_FILL_SMOKE "${CMAKE_CURRENT_BINARY_DIR}/nwfs_ncpfs_userquota_fill_smoke.sh")
|
||||
|
||||
add_executable(nwfs_ncpfs_rights nwfs_ncpfs_rights.c)
|
||||
target_include_directories(nwfs_ncpfs_rights PRIVATE ${NCPFS_INCLUDE_DIR})
|
||||
@@ -57,11 +58,13 @@ configure_file(nwfs_ncpfs_metadata_smoke.sh.in nwfs_ncpfs_metadata_smoke.sh @ONL
|
||||
configure_file(nwfs_ncpfs_novell_quota_reference.sh.in nwfs_ncpfs_novell_quota_reference.sh @ONLY)
|
||||
|
||||
configure_file(nwfs_ncpfs_userquota_fill_smoke.sh.in nwfs_ncpfs_userquota_fill_smoke.sh @ONLY)
|
||||
configure_file(nwfs_ncpfs_userquota_dual_smoke.sh.in nwfs_ncpfs_userquota_dual_smoke.sh @ONLY)
|
||||
|
||||
foreach(NWFS_NCPFS_SMOKE_SCRIPT
|
||||
nwfs_ncpfs_metadata_smoke.sh
|
||||
nwfs_ncpfs_novell_quota_reference.sh
|
||||
nwfs_ncpfs_userquota_fill_smoke.sh)
|
||||
nwfs_ncpfs_userquota_fill_smoke.sh
|
||||
nwfs_ncpfs_userquota_dual_smoke.sh)
|
||||
file(CHMOD "${CMAKE_CURRENT_BINARY_DIR}/${NWFS_NCPFS_SMOKE_SCRIPT}"
|
||||
PERMISSIONS
|
||||
OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||
|
||||
94
tests/nwfs/nwfs_ncpfs_userquota_dual_smoke.sh.in
Normal file
94
tests/nwfs/nwfs_ncpfs_userquota_dual_smoke.sh.in
Normal file
@@ -0,0 +1,94 @@
|
||||
#!/bin/sh
|
||||
# Manual combined user-volume quota smoke for mars-nwe.
|
||||
#
|
||||
# Runs the same NetWare-style fill test against both quota implementations:
|
||||
# a Linux-quota backed volume (normally QUOTA) and the mars-nwe NWQUOTA/
|
||||
# metadata-backed SYS path. The terminal output is intentionally short; each
|
||||
# per-volume fill smoke writes its full transcript to a separate log file.
|
||||
set -u
|
||||
|
||||
if [ "$#" -lt 7 ]; then
|
||||
echo "usage: $0 SERVER ADMIN PASSWORD QUOTA_SYSROOT QUOTA_MOUNT SYS_SYSROOT SYS_MOUNT [TESTDIR] [QUOTA_VOLUME] [SYS_VOLUME]" >&2
|
||||
echo "example: $0 MARS SUPERVISOR secret /mnt/marsquota /mnt/nw-quota /var/mars_nwe/SYS /mnt/nw-sys NWFSTEST QUOTA SYS" >&2
|
||||
echo "Set NWFS_NCPFS_QUOTA_LOG_DIR to choose the log directory; default: temporary directory." >&2
|
||||
echo "Pass-through tuning: NWFS_NCPFS_FILL_USER/PASSWORD/OBJECT/TYPE/RIGHTS/LIMIT_4K/FILE_4K/GOOD_FILES." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
SERVER=$1
|
||||
ADMIN_USER=$2
|
||||
ADMIN_PASSWORD=$3
|
||||
QUOTA_SYSROOT=$4
|
||||
QUOTA_MOUNT=$5
|
||||
SYS_SYSROOT=$6
|
||||
SYS_MOUNT=$7
|
||||
TESTDIR=${8:-${NWFS_NCPFS_TESTDIR:-NWFSTEST}}
|
||||
QUOTA_VOLUME=${9:-${NWFS_NCPFS_QUOTA_VOLUME:-QUOTA}}
|
||||
SYS_VOLUME=${10:-${NWFS_NCPFS_SYS_VOLUME:-SYS}}
|
||||
|
||||
FILL_SMOKE="@NWFS_NCPFS_USERQUOTA_FILL_SMOKE@"
|
||||
if [ -z "$FILL_SMOKE" ] || [ ! -x "$FILL_SMOKE" ]; then
|
||||
echo "nwfs_ncpfs_userquota_fill_smoke.sh not built or not executable: $FILL_SMOKE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "${NWFS_NCPFS_QUOTA_LOG_DIR:-}" ]; then
|
||||
LOG_DIR=$NWFS_NCPFS_QUOTA_LOG_DIR
|
||||
mkdir -p "$LOG_DIR" || exit 1
|
||||
CLEAN_LOG_DIR=0
|
||||
else
|
||||
LOG_DIR=$(mktemp -d "${TMPDIR:-/tmp}/nwfs-quota-dual.XXXXXX") || exit 1
|
||||
CLEAN_LOG_DIR=0
|
||||
fi
|
||||
|
||||
TS=$(date +%Y%m%d-%H%M%S 2>/dev/null || echo now)
|
||||
|
||||
run_one() {
|
||||
label=$1
|
||||
expect=$2
|
||||
sysroot=$3
|
||||
mountpoint=$4
|
||||
volume=$5
|
||||
log=$LOG_DIR/${TS}-${label}.log
|
||||
|
||||
printf '[RUN ] %-5s volume=%s mount=%s log=%s\n' "$label" "$volume" "$mountpoint" "$log"
|
||||
(
|
||||
echo "# $label userquota fill smoke"
|
||||
echo "# server=$SERVER admin=$ADMIN_USER volume=$volume sysroot=$sysroot mount=$mountpoint testdir=$TESTDIR expect=$expect"
|
||||
date 2>/dev/null || true
|
||||
NWFS_NCPFS_USER_QUOTA_EXPECT=$expect \
|
||||
"$FILL_SMOKE" "$SERVER" "$ADMIN_USER" "$ADMIN_PASSWORD" \
|
||||
"$sysroot" "$mountpoint" "$TESTDIR" "$volume"
|
||||
rc=$?
|
||||
date 2>/dev/null || true
|
||||
echo "# rc=$rc"
|
||||
exit "$rc"
|
||||
) >"$log" 2>&1
|
||||
rc=$?
|
||||
if [ "$rc" -eq 0 ]; then
|
||||
summary=$(grep -E 'user quota fill smoke completed|allowed=.*denied_next=' "$log" | tail -n 1)
|
||||
if [ -z "$summary" ]; then
|
||||
summary="completed"
|
||||
fi
|
||||
printf '[PASS] %-5s %s\n' "$label" "$summary"
|
||||
else
|
||||
printf '[FAIL] %-5s rc=%s log=%s\n' "$label" "$rc" "$log"
|
||||
echo "----- last 30 lines of $label log -----"
|
||||
tail -n 30 "$log" 2>/dev/null || true
|
||||
echo "----- end $label log tail -----"
|
||||
fi
|
||||
return "$rc"
|
||||
}
|
||||
|
||||
fail=0
|
||||
run_one QUOTA linux "$QUOTA_SYSROOT" "$QUOTA_MOUNT" "$QUOTA_VOLUME" || fail=1
|
||||
run_one SYS nwquota "$SYS_SYSROOT" "$SYS_MOUNT" "$SYS_VOLUME" || fail=1
|
||||
|
||||
printf 'logs: %s\n' "$LOG_DIR"
|
||||
if [ "$fail" -ne 0 ]; then
|
||||
echo "combined userquota smoke FAILED: NetWare-style deny-before-data must pass on both quota backends" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "combined userquota smoke PASSED: QUOTA and SYS both match NetWare-style fill/deny behavior"
|
||||
exit 0
|
||||
Reference in New Issue
Block a user