mirror of
https://github.com/denoland/deno.git
synced 2025-10-03 07:34:36 +00:00
fix(node): setting process.exitCode should change exit code of process (#21429)
This commit is contained in:
parent
61a4e88e38
commit
f29075ae4c
2 changed files with 65 additions and 5 deletions
|
@ -681,9 +681,58 @@ Deno.test("process.memoryUsage.rss()", () => {
|
|||
});
|
||||
|
||||
Deno.test("process.exitCode", () => {
|
||||
assert(process.exitCode === undefined);
|
||||
assertEquals(process.exitCode, undefined);
|
||||
process.exitCode = 127;
|
||||
assert(process.exitCode === 127);
|
||||
assertEquals(process.exitCode, 127);
|
||||
// deno-lint-ignore no-explicit-any
|
||||
(process.exitCode as any) = "asdf";
|
||||
// deno-lint-ignore no-explicit-any
|
||||
assertEquals(process.exitCode as any, "asdf");
|
||||
// deno-lint-ignore no-explicit-any
|
||||
(process.exitCode as any) = "10";
|
||||
process.exitCode = undefined; // reset
|
||||
});
|
||||
|
||||
async function exitCodeTest(codeText: string, expectedExitCode: number) {
|
||||
const command = new Deno.Command(Deno.execPath(), {
|
||||
args: [
|
||||
"eval",
|
||||
codeText,
|
||||
],
|
||||
cwd: testDir,
|
||||
});
|
||||
const { code } = await command.output();
|
||||
assertEquals(code, expectedExitCode);
|
||||
}
|
||||
|
||||
Deno.test("process.exitCode in should change exit code", async () => {
|
||||
await exitCodeTest(
|
||||
"import process from 'node:process'; process.exitCode = 127;",
|
||||
127,
|
||||
);
|
||||
await exitCodeTest(
|
||||
"import process from 'node:process'; process.exitCode = 2.5;",
|
||||
2,
|
||||
);
|
||||
await exitCodeTest(
|
||||
"import process from 'node:process'; process.exitCode = '10';",
|
||||
10,
|
||||
);
|
||||
await exitCodeTest(
|
||||
"import process from 'node:process'; process.exitCode = '0x10';",
|
||||
16,
|
||||
);
|
||||
await exitCodeTest(
|
||||
"import process from 'node:process'; process.exitCode = NaN;",
|
||||
0,
|
||||
);
|
||||
});
|
||||
|
||||
Deno.test("Deno.exit should override process exit", async () => {
|
||||
await exitCodeTest(
|
||||
"import process from 'node:process'; process.exitCode = 10; Deno.exit(12);",
|
||||
12,
|
||||
);
|
||||
});
|
||||
|
||||
Deno.test("process.config", () => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue