Просмотр исходного кода

test(code-runtime): observe native temp through inherited Windows handles

Tianyi Cui 6 дней назад
Родитель
Сommit
e21060defe
1 измененных файлов с 2 добавлено и 2 удалено
  1. 2 2
      packages/code-runtime/code-runtime-node/tests/runtime.spec.ts

+ 2 - 2
packages/code-runtime/code-runtime-node/tests/runtime.spec.ts

@@ -75,9 +75,9 @@ describe('Node program process', () => {
     vi.stubEnv('TEMP', temp)
     vi.stubEnv('TMP', tmp)
     vi.stubEnv('DSH_TEST_RUNTIME_SECRET', 'must-not-inherit')
-    const childCode = 'const fs=require("node:fs"); const path=require("node:path"); const temp=require("node:os").tmpdir(); const file=path.join(temp,"native-temp.txt"); fs.writeFileSync(file,"native-temp"); process.stdout.write(JSON.stringify({file,temp,env:Object.keys(process.env)}));'
+    const childCode = 'const fs=require("node:fs"); const path=require("node:path"); const temp=require("node:os").tmpdir(); const file=path.join(temp,"native-temp.txt"); fs.writeFileSync(file,"native-temp"); fs.writeFileSync("native-observation.json",JSON.stringify({file,temp,env:Object.keys(process.env)}));'
     const result = await run({
-      program: `const {spawnSync}=await import("node:child_process"); const child=spawnSync(process.execPath,["-e",${JSON.stringify(childCode)}],{encoding:"utf8"}); if(child.status!==0) throw new Error(child.error?.message ?? child.stderr); const native=JSON.parse(child.stdout); return {env:Object.keys(process.env),native,observed:await tools.inspect({path:native.file})};`,
+      program: `const {spawnSync}=await import("node:child_process"); const child=spawnSync(process.execPath,["-e",${JSON.stringify(childCode)}],{stdio:"inherit"}); if(child.status!==0) throw new Error(child.error?.message ?? "native child failed"); const native=JSON.parse((await import("node:fs")).readFileSync("native-observation.json","utf8")); return {env:Object.keys(process.env),native,observed:await tools.inspect({path:native.file})};`,
       bindings: bindings({ inspect: async (args) => {
         const path = (args as { path: string }).path
         expect(path.startsWith(`${temp}\\dsh-`)).toBe(true)