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=""
|
local command=""
|
||||||
while [[ $# -gt 0 ]]; do
|
while [[ $# -gt 0 ]]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
--session) session="$2"; shift 2 ;;
|
--session)
|
||||||
*) command="$1"; shift ;;
|
shift
|
||||||
|
if [[ $# -eq 0 ]]; then
|
||||||
|
echo "mcc-cmd: --session requires a value" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
session="$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
command="$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
@ -191,6 +202,17 @@ mcc-tui() {
|
||||||
}
|
}
|
||||||
|
|
||||||
_mcc_session_log_tail() {
|
_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 session="$1"
|
||||||
local log_file
|
local log_file
|
||||||
log_file="$(_mcc_session_log_file "$session")"
|
log_file="$(_mcc_session_log_file "$session")"
|
||||||
|
|
@ -200,21 +222,71 @@ _mcc_session_log_tail() {
|
||||||
# --- Debug helpers ---
|
# --- Debug helpers ---
|
||||||
mcc-debug() { bash "$MCC_REPO/tools/mcc-debug.sh" "$@"; }
|
mcc-debug() { bash "$MCC_REPO/tools/mcc-debug.sh" "$@"; }
|
||||||
mcc-log-mcc() {
|
mcc-log-mcc() {
|
||||||
local session="${1:-}"
|
local session=""
|
||||||
if [[ "$session" == "--session" ]]; then
|
while [[ $# -gt 0 ]]; do
|
||||||
session="${2:-}"
|
case "$1" in
|
||||||
fi
|
--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")"
|
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_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-preflight() { bash "$MCC_REPO/.skills/mcc-integration-testing/scripts/preflight_test_env.sh" "$@"; }
|
||||||
mcc-reset-session() {
|
mcc-reset-session() {
|
||||||
local session=""
|
local session=""
|
||||||
while [[ $# -gt 0 ]]; do
|
while [[ $# -gt 0 ]]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
--session) session="$2"; shift 2 ;;
|
--session)
|
||||||
*) echo "Unknown option: $1" >&2; return 1 ;;
|
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
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,5 +84,12 @@ grep -Fq "debug state" "$input_file"
|
||||||
|
|
||||||
mcc-reset-session --session "$session"
|
mcc-reset-session --session "$session"
|
||||||
[[ ! -e "$(_mcc_session_root "$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"
|
echo "PASS"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue