From 4ea3b8d9d5daec614eb504fbae769fe88586325a Mon Sep 17 00:00:00 2001 From: Gerhard Stoebich <18708370+Flarna@users.noreply.github.com> Date: Sat, 31 Oct 2020 01:07:39 +0100 Subject: [PATCH 1/3] test: correct test-worker-eventlooputil The active worker check compared the time from sending message till response arrived from worker with the complete time the worker was running till it responses to the spin request. If sending back the message is slow for some reason the test fails. Adapt the test to compare the time seen inside the worker with the time read from main thread. --- test/parallel/test-worker-eventlooputil.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-worker-eventlooputil.js b/test/parallel/test-worker-eventlooputil.js index 6759bd362cfd05..b13f795cc950cf 100644 --- a/test/parallel/test-worker-eventlooputil.js +++ b/test/parallel/test-worker-eventlooputil.js @@ -34,9 +34,10 @@ function workerOnMetricsMsg(msg) { } if (msg.cmd === 'spin') { + const elu = eventLoopUtilization(); const t = now(); while (now() - t < msg.dur); - return this.postMessage(eventLoopUtilization()); + return this.postMessage(eventLoopUtilization(elu)); } } @@ -104,8 +105,9 @@ function checkWorkerActive() { const w2 = workerELU(w); assert.ok(w2.active >= 50, `${w2.active} < 50`); - assert.ok(idleActive(wElu) > idleActive(w2), - `${idleActive(wElu)} <= ${idleActive(w2)}`); + assert.ok(wElu.active >= 50, `${wElu.active} < 50`); + assert.ok(idleActive(wElu) < idleActive(w2), + `${idleActive(wElu)} > ${idleActive(w2)}`); metricsCh.port2.postMessage({ cmd: 'close' }); }); From 4374323a251a9dda746312a677b54dc46f01dbed Mon Sep 17 00:00:00 2001 From: Gerhard Stoebich <18708370+Flarna@users.noreply.github.com> Date: Mon, 2 Nov 2020 09:16:25 +0100 Subject: [PATCH 2/3] fixup! test: correct test-worker-eventlooputil --- test/parallel/test-worker-eventlooputil.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-worker-eventlooputil.js b/test/parallel/test-worker-eventlooputil.js index b13f795cc950cf..5339332116aab1 100644 --- a/test/parallel/test-worker-eventlooputil.js +++ b/test/parallel/test-worker-eventlooputil.js @@ -69,8 +69,8 @@ let workerELU; function checkWorkerIdle(wElu) { - const tmpMainElu = eventLoopUtilization(mainElu); const perfWorkerElu = workerELU(); + const tmpMainElu = eventLoopUtilization(mainElu); const eluDiff = eventLoopUtilization(perfWorkerElu, mainElu); assert.strictEqual(idleActive(eluDiff), @@ -107,7 +107,7 @@ function checkWorkerActive() { assert.ok(w2.active >= 50, `${w2.active} < 50`); assert.ok(wElu.active >= 50, `${wElu.active} < 50`); assert.ok(idleActive(wElu) < idleActive(w2), - `${idleActive(wElu)} > ${idleActive(w2)}`); + `${idleActive(wElu)} => ${idleActive(w2)}`); metricsCh.port2.postMessage({ cmd: 'close' }); }); From 932350e8330e2b279ba26419322563fddd2bfdc8 Mon Sep 17 00:00:00 2001 From: Gerhard Stoebich <18708370+Flarna@users.noreply.github.com> Date: Tue, 3 Nov 2020 08:37:35 +0100 Subject: [PATCH 3/3] fixup! test: correct test-worker-eventlooputil --- test/parallel/test-worker-eventlooputil.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/test/parallel/test-worker-eventlooputil.js b/test/parallel/test-worker-eventlooputil.js index 5339332116aab1..7e012cb2b02e7a 100644 --- a/test/parallel/test-worker-eventlooputil.js +++ b/test/parallel/test-worker-eventlooputil.js @@ -51,12 +51,13 @@ let workerELU; if (eventLoopUtilization().idle <= 0) return setTimeout(mustCall(r), 5); + mainElu = eventLoopUtilization(); + worker = new Worker(__filename, { argv: [ 'iamalive' ] }); metricsCh = new MessageChannel(); worker.postMessage({ metricsCh: metricsCh.port1 }, [ metricsCh.port1 ]); workerELU = worker.performance.eventLoopUtilization; - mainElu = eventLoopUtilization(); metricsCh.port2.once('message', mustCall(checkWorkerIdle)); metricsCh.port2.postMessage({ cmd: 'elu' }); // Make sure it's still safe to call eventLoopUtilization() after the worker @@ -67,15 +68,10 @@ let workerELU; })); })(); - function checkWorkerIdle(wElu) { const perfWorkerElu = workerELU(); const tmpMainElu = eventLoopUtilization(mainElu); - const eluDiff = eventLoopUtilization(perfWorkerElu, mainElu); - assert.strictEqual(idleActive(eluDiff), - (perfWorkerElu.active - mainElu.active) + - (perfWorkerElu.idle - mainElu.idle)); assert.ok(idleActive(wElu) > 0, `${idleActive(wElu)} <= 0`); assert.ok(idleActive(workerELU(wElu)) > 0, `${idleActive(workerELU(wElu))} <= 0`); @@ -107,7 +103,7 @@ function checkWorkerActive() { assert.ok(w2.active >= 50, `${w2.active} < 50`); assert.ok(wElu.active >= 50, `${wElu.active} < 50`); assert.ok(idleActive(wElu) < idleActive(w2), - `${idleActive(wElu)} => ${idleActive(w2)}`); + `${idleActive(wElu)} >= ${idleActive(w2)}`); metricsCh.port2.postMessage({ cmd: 'close' }); });