Files
MrFastwind 04882b3c80 test(backend): enhance stubs with logging, heartbeat, timed exit, and fake downloads
arma3server_x64 stub:
- Logs binary path and all arguments ([STUB] binary=... args=...)
- Prints heartbeat every 5 seconds
- Accepts -t N flag to exit after N seconds (for auto-exit tests)

steamcmd stub:
- Parses +force_install_dir and +workshop_download_item args
- Creates fake mod directories at the expected workshop content path
- Prints fake download progress and success logs

New tests:
- TestStart_StubLogsArgsAndPath: verifies arg logging via log streamer
- TestStart_StubLogsBinaryPath: verifies binary path logging
- TestStart_StubHeartbeatLogs: verifies heartbeat lines appear within timeout
- TestStart_StubAutoExit: verifies -t flag causes server to auto-exit
- TestDownloadMods_StubCreatesModDirs: verifies single mod dir creation
- TestDownloadMods_StubCreatesMultipleModDirs: verifies multi-mod dir creation
- TestDownloadMods_StubLogsAppear: verifies fake download logs on channel
- TestDownloadMods_StubSteamcmdArgsLogged: verifies install_dir logging
2026-07-23 21:07:49 +02:00

32 lines
828 B
Bash
Executable File

#!/bin/sh
# Stub steamcmd binary for testing.
# Parses +force_install_dir and +workshop_download_item args.
# Creates fake mod directories and prints fake download logs.
INSTALL_DIR=""
MOD_IDS=""
while [ $# -gt 0 ]; do
case "$1" in
+force_install_dir) INSTALL_DIR="$2"; shift 2 ;;
+workshop_download_item)
APP_ID="$2"; MOD_ID="$3"; shift 3
MOD_IDS="$MOD_IDS $MOD_ID"
;;
*) shift ;;
esac
done
echo "[STUB] steamcmd install_dir=$INSTALL_DIR mods=$MOD_IDS"
for MOD_ID in $MOD_IDS; do
MOD_DIR="$INSTALL_DIR/steamapps/workshop/content/107410/$MOD_ID"
echo "[STUB] Downloading item $MOD_ID (App $APP_ID)..."
echo "[STUB] Downloading 100% [//////////]"
mkdir -p "$MOD_DIR"
echo "[STUB] Success! App $APP_ID item $MOD_ID installed to $MOD_DIR"
done
echo "[STUB] steamcmd exiting"
exit 0