mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
Fix session parser robustness and test assertion
This commit is contained in:
parent
4c6d5b566b
commit
1be001bdf8
2 changed files with 88 additions and 9 deletions
|
|
@ -161,8 +161,19 @@ mcc-cmd() {
|
|||
local command=""
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--session) session="$2"; shift 2 ;;
|
||||
*) command="$1"; shift ;;
|
||||
--session)
|
||||
shift
|
||||
if [[ $# -eq 0 ]]; then
|
||||
echo "mcc-cmd: --session requires a value" >&2
|
||||
return 1
|
||||
fi
|
||||
session="$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
command="$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
|
@ -191,6 +202,17 @@ mcc-tui() {
|
|||
}
|
||||
|
||||
_mcc_session_log_tail() {
|
||||
local session="$1"
|
||||
local log_file
|
||||
log_file="$(_mcc_session_log_file "$session")"
|
||||
if [[ -e "$log_file" ]]; then
|
||||
tail -n 30 "$log_file" 2>/dev/null
|
||||
else
|
||||
echo "No MCC log found"
|
||||
fi
|
||||
}
|
||||
|
||||
_mcc_session_log_follow() {
|
||||
local session="$1"
|
||||
local log_file
|
||||
log_file="$(_mcc_session_log_file "$session")"
|
||||
|
|
@ -200,21 +222,71 @@ _mcc_session_log_tail() {
|
|||
# --- Debug helpers ---
|
||||
mcc-debug() { bash "$MCC_REPO/tools/mcc-debug.sh" "$@"; }
|
||||
mcc-log-mcc() {
|
||||
local session="${1:-}"
|
||||
if [[ "$session" == "--session" ]]; then
|
||||
session="${2:-}"
|
||||
fi
|
||||
local session=""
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--session)
|
||||
shift
|
||||
if [[ $# -eq 0 ]]; then
|
||||
echo "mcc-log-mcc: --session requires a value" >&2
|
||||
return 1
|
||||
fi
|
||||
session="$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $1" >&2
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
session="$(_mcc_resolve_session "$session")"
|
||||
_mcc_session_log_follow "$session"
|
||||
}
|
||||
mcc-state() {
|
||||
local session=""
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--session)
|
||||
shift
|
||||
if [[ $# -eq 0 ]]; then
|
||||
echo "mcc-state: --session requires a value" >&2
|
||||
return 1
|
||||
fi
|
||||
session="$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $1" >&2
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
session="$(_mcc_resolve_session "$session")"
|
||||
mcc-cmd --session "$session" "debug state"
|
||||
sleep 1
|
||||
_mcc_session_log_tail "$session"
|
||||
}
|
||||
mcc-state() { echo "debug state" >> "$MCC_REPO/mcc_input.txt"; sleep 1; tail -30 "${TMPDIR:-/tmp}/mcc-debug/mcc-debug.log" 2>/dev/null; }
|
||||
mcc-preflight() { bash "$MCC_REPO/.skills/mcc-integration-testing/scripts/preflight_test_env.sh" "$@"; }
|
||||
mcc-reset-session() {
|
||||
local session=""
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--session) session="$2"; shift 2 ;;
|
||||
*) echo "Unknown option: $1" >&2; return 1 ;;
|
||||
--session)
|
||||
shift
|
||||
if [[ $# -eq 0 ]]; then
|
||||
echo "mcc-reset-session: --session requires a value" >&2
|
||||
return 1
|
||||
fi
|
||||
session="$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $1" >&2
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
|
|
|||
|
|
@ -84,5 +84,12 @@ grep -Fq "debug state" "$input_file"
|
|||
|
||||
mcc-reset-session --session "$session"
|
||||
[[ ! -e "$(_mcc_session_root "$session")" ]]
|
||||
malformed_log="${TMPDIR:-/tmp}/mcc-env-session-hang-test.log"
|
||||
if mcc-cmd --session >"$malformed_log" 2>&1; then
|
||||
echo "FAIL: --session accepted without value" >&2
|
||||
cat "$malformed_log" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -Fq -- "--session requires a value" "$malformed_log"
|
||||
|
||||
echo "PASS"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue