fix(fs): S-10 hang test hook requires UMT_FS_TEST_HOOKS=1; preflight warns when set
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
b4560be48b
commit
2ddaf7bfa6
4 files changed
+32
-7
No files matched your search
@@ -110,14 +110,19 @@ export function defaultWorkerCommand(): { cmd: string; args: string[]; kind: "sc
|
||||
/**
|
||||
* 仅容器/手工验收用:UMT_FS_TEST_HANG_AFTER_BYTES=<n> 让每个数据类操作的 worker 在读到 n 字节后卡死 JS 线程
|
||||
* (不响应 SIGTERM),用于在生产二进制里验证 停滞超时 → SIGKILL → TIMEOUT。只在子进程模式生效。
|
||||
* 必须同时设置 UMT_FS_TEST_HOOKS=1 才生效(验收 07 S-10):单独误设这一个变量不会让所有文件操作卡死。
|
||||
*/
|
||||
export function fsTestHookFromEnv(get: (k: string) => string | undefined): FsTestHook | undefined {
|
||||
const v = get("UMT_FS_TEST_HANG_AFTER_BYTES");
|
||||
if (v === undefined || v === "" || !/^\d+$/.test(v)) return undefined;
|
||||
if (get("UMT_FS_TEST_HOOKS") !== "1") return undefined;
|
||||
return { hangAfterBytes: Number(v), ignoreTerm: true };
|
||||
}
|
||||
|
||||
function envTestHook(): FsTestHook | undefined {
|
||||
try {
|
||||
const v = (globalThis as { Deno?: { env?: { get(k: string): string | undefined } } }).Deno?.env?.get(
|
||||
"UMT_FS_TEST_HANG_AFTER_BYTES",
|
||||
);
|
||||
if (v === undefined || v === "" || !/^\d+$/.test(v)) return undefined;
|
||||
return { hangAfterBytes: Number(v), ignoreTerm: true };
|
||||
const env = (globalThis as { Deno?: { env?: { get(k: string): string | undefined } } }).Deno?.env;
|
||||
return env ? fsTestHookFromEnv((k) => env.get(k)) : undefined;
|
||||
} catch {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user