[PATCH] test: fix flaky test-worker-prof

Fixes: https://github.com/nodejs/node/issues/26401
Co-authored-by: Gireesh Punathil <gpunathi@in.ibm.com>

PR-URL: https://github.com/nodejs/node/pull/37372
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>

Gbp-Pq: Name upstream-fix-test-worker-prof.patch
This commit is contained in:
Rich Trott 2021-02-14 15:52:54 -08:00 committed by Lu zhiping
parent 7587a7d37e
commit 9f936f2f6a
2 changed files with 8 additions and 13 deletions

View File

@ -24,8 +24,6 @@ test-tls-securepair-client: PASS,FLAKY
[$system==win32]
# https://github.com/nodejs/node/issues/22327
test-http2-large-file: PASS, FLAKY
# https://github.com/nodejs/node/issues/26401
test-worker-prof: PASS, FLAKY
[$system==linux]
@ -45,10 +43,6 @@ test-buffer-creation-regression: SKIP
# https://github.com/nodejs/node/pull/30819
test-perf-hooks: SKIP
[$arch==arm]
# https://github.com/nodejs/node/issues/26401#issuecomment-613095719
test-worker-prof: PASS, FLAKY
[$arch==mipsel]
test-inspector-async-hook-setup-at-inspect-brk: SKIP
test-inspector-async-hook-setup-at-signal: SKIP

View File

@ -23,17 +23,17 @@ if (process.argv[2] === 'child') {
const fs = require('fs');
const { Worker, parentPort } = require('worker_threads');
parentPort.on('message', (m) => {
if (counter++ === 10)
if (counter++ === 1024)
process.exit(0);
parentPort.postMessage(
fs.readFileSync(m.toString()).slice(0, 1024 * 1024));
parentPort.postMessage(
fs.readFileSync(m.toString()).slice(0, 1024 * 1024));
});
`;
const { Worker } = require('worker_threads');
const w = new Worker(pingpong, { eval: true });
w.on('message', (m) => {
w.postMessage(process.execPath);
w.postMessage(__filename);
});
w.on('exit', common.mustCall(() => {
@ -46,12 +46,13 @@ if (process.argv[2] === 'child') {
}
process.exit(0);
}));
w.postMessage(process.execPath);
w.postMessage(__filename);
} else {
tmpdir.refresh();
const timeout = common.platformTimeout(30_000);
const spawnResult = spawnSync(
process.execPath, ['--prof', __filename, 'child'],
{ cwd: tmpdir.path, encoding: 'utf8', timeout: 30_000 });
{ cwd: tmpdir.path, encoding: 'utf8', timeout });
assert.strictEqual(spawnResult.stderr.toString(), '',
`child exited with an error: \
${util.inspect(spawnResult)}`);
@ -72,7 +73,7 @@ if (process.argv[2] === 'child') {
// Test that at least 15 ticks have been recorded for both parent and child
// threads. When not tracking Worker threads, only 1 or 2 ticks would
// have been recorded.
// When running locally on x64 Linux, this number is usually at least 200
// When running locally, this number is usually around 200
// for both threads, so 15 seems like a very safe threshold.
assert(ticks >= 15, `${ticks} >= 15`);
}