From d6e12c0f1de7194f00aa1e8158ee7a176e4105d2 Mon Sep 17 00:00:00 2001 From: cirospaciari Date: Thu, 11 May 2023 18:16:16 -0300 Subject: avoid unreacheable and fix tests to not hang --- .../node/child_process/child_process-node.test.js | 34 +++++++++------------- 1 file changed, 13 insertions(+), 21 deletions(-) (limited to 'test/js/node/child_process/child_process-node.test.js') diff --git a/test/js/node/child_process/child_process-node.test.js b/test/js/node/child_process/child_process-node.test.js index f69b8668f..8fbaaeb0d 100644 --- a/test/js/node/child_process/child_process-node.test.js +++ b/test/js/node/child_process/child_process-node.test.js @@ -230,7 +230,6 @@ describe("child_process cwd", () => { function testCwd(options, { expectPidType, expectCode = 0, expectData }, done = () => {}) { const createDone = createDoneDotAll(done); const { mustCall } = createCallCheckCtx(createDone(1500)); - const exitDone = createDone(5000); const child = spawn(...common.pwdCommand, options); @@ -244,19 +243,7 @@ describe("child_process cwd", () => { data += chunk; }); - // TODO: Test exit events - // // Can't assert callback, as stayed in to API: - // // _The 'exit' event may or may not fire after an error has occurred._ - child.on("exit", (code, signal) => { - try { - strictEqual(code, expectCode); - exitDone(); - } catch (err) { - exitDone(err); - } - }); - - child.on( + child.stdout.on( "close", mustCall(() => { expectData && strictEqual(data.trim(), expectData); @@ -374,9 +361,12 @@ describe("child_process default options", () => { describe("child_process double pipe", () => { it("should allow two pipes to be used at once", done => { - // const { mustCallAtLeast, mustCall } = createCallCheckCtx(done); - const mustCallAtLeast = fn => fn; - const mustCall = fn => fn; + const createDone = createDoneDotAll(done); + const { mustCall, mustCallAtLeast } = createCallCheckCtx(createDone(3000)); + const sedExitDone = createDone(3000); + const echoExitDone = createDone(3000); + const grepExitDone = createDone(3000); + let grep, sed, echo; grep = spawn("grep", ["o"], { stdio: ["pipe", "pipe", "pipe"] }); sed = spawn("sed", ["s/o/O/"]); @@ -386,7 +376,7 @@ describe("child_process double pipe", () => { grep.stdout.on( "data", mustCallAtLeast(data => { - debug(`grep stdout ${data.length}`); + console.log(`grep stdout ${data.length}`); if (!sed.stdin.write(data)) { grep.stdout.pause(); } @@ -435,6 +425,7 @@ describe("child_process double pipe", () => { "exit", mustCall(() => { debug("echo exit"); + echoExitDone(); }), ); @@ -442,11 +433,12 @@ describe("child_process double pipe", () => { "exit", mustCall(() => { debug("grep exit"); + grepExitDone(); }), ); - sed.on( - "exit", + sed.stdout.on( + "close", mustCall(() => { debug("sed exit"); }), @@ -474,7 +466,7 @@ describe("child_process double pipe", () => { mustCall(() => { debug("result: " + result); strictEqual(result, `hellO\nnOde\nwOrld\n`); - done(); + sedExitDone(); }), ); }); -- cgit v1.2.3