|
|
@@ -34,9 +34,18 @@ async function sh(cmd, capMs) {
|
|
|
|
|
|
(async () => {
|
|
|
const mode = process.argv[2] || 'kick';
|
|
|
+ // R173 增:LOG 若从本机 env 注入,Git Bash(MSYS) 会把 /tmp/x 改写成 C:/Users/.../x,
|
|
|
+ // 远端 `tail` 恒报 No such file,且 kick 的重定向也会失败 → 看起来像「日志没生成」。
|
|
|
+ // 这里直接挡住 Windows 风格路径,强制调用方使用远端 POSIX 路径。
|
|
|
+ if (LOG.includes(':') || LOG.includes('\\')) {
|
|
|
+ console.error('BAD_LOG_PATH=' + LOG + ' 请使用远端 POSIX 路径(如 /tmp/rX_pytest.log),不要经由本地 env 注入');
|
|
|
+ process.exit(2);
|
|
|
+ }
|
|
|
if (mode === 'kick') {
|
|
|
// R156 修:251 系统 /usr/bin/python 无 pytest,必须用节点 venv(.venv/bin/python → python3.11);
|
|
|
// 退出码另存变量后再写盘(B-126:$? 直接内联在 kick 串里可能落盘失败)。
|
|
|
+ // R173 复现(B-126 第 6 轮):手工 kick 用 `echo EXIT=$?` 时 186 行日志零 EXIT 行;
|
|
|
+ // 已在 /tmp/r173_probe.log 验证「先存 rc 再落盘」可写入 → 保留 rc 写法为唯一正确姿势。
|
|
|
const inner = "cd " + DIR + " && .venv/bin/python -m pytest -q --ignore=tests/qna --ignore=tests/test_chat.py > " + LOG + " 2>&1; rc=$?; echo EXIT=$rc >> " + LOG;
|
|
|
const cmd = "rm -f " + LOG + "; setsid nohup bash -c '" + inner + "' >/dev/null 2>&1 & echo KICKED";
|
|
|
const r = await sh(cmd, 40000);
|