mirror of https://gitee.com/openkylin/nodejs.git
[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:
parent
7587a7d37e
commit
9f936f2f6a
|
@ -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
|
||||
|
|
|
@ -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`);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue