summaryrefslogtreecommitdiff
path: root/test/parallel/test-worker-prof.js
diff options
context:
space:
mode:
authorRich Trott <rtrott@gmail.com>2019-11-24 08:10:03 -0800
committerRich Trott <rtrott@gmail.com>2019-11-26 10:17:04 -0800
commitebb177ee22eda9ff1459e8c82d4d1e0b3987428e (patch)
tree85fda2051b2a7e73792389da9d225834ca9988b2 /test/parallel/test-worker-prof.js
parent568968e39bff623e30b71f4eaf20f3a471bbc8be (diff)
downloadandroid-node-v8-ebb177ee22eda9ff1459e8c82d4d1e0b3987428e.tar.gz
android-node-v8-ebb177ee22eda9ff1459e8c82d4d1e0b3987428e.tar.bz2
android-node-v8-ebb177ee22eda9ff1459e8c82d4d1e0b3987428e.zip
test: move test-worker-prof to sequential
Refs: https://github.com/nodejs/node/issues/26401#issuecomment-557899953 PR-URL: https://github.com/nodejs/node/pull/30628 Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Diffstat (limited to 'test/parallel/test-worker-prof.js')
-rw-r--r--test/parallel/test-worker-prof.js78
1 files changed, 0 insertions, 78 deletions
diff --git a/test/parallel/test-worker-prof.js b/test/parallel/test-worker-prof.js
deleted file mode 100644
index 80596a76f9..0000000000
--- a/test/parallel/test-worker-prof.js
+++ /dev/null
@@ -1,78 +0,0 @@
-'use strict';
-const common = require('../common');
-const tmpdir = require('../common/tmpdir');
-const fs = require('fs');
-const assert = require('assert');
-const util = require('util');
-const { join } = require('path');
-const { spawnSync } = require('child_process');
-
-// Test that --prof also tracks Worker threads.
-// Refs: https://github.com/nodejs/node/issues/24016
-
-if (process.argv[2] === 'child') {
- let files = fs.readdirSync(tmpdir.path);
- const plog = files.filter((name) => /\.log$/.test(name))[0];
- if (plog === undefined) {
- console.error('`--prof` did not produce a profile log for parent thread!');
- process.exit(1);
- }
- const pingpong = `
- let counter = 0;
- const { Worker, parentPort } = require('worker_threads');
- parentPort.on('message', (m) => {
- if (counter++ === 1024)
- process.exit(0);
- parentPort.postMessage(
- m.toString().split('').reverse().toString().replace(/,/g, ''));
- });
- `;
-
- const { Worker } = require('worker_threads');
- const data = 'x'.repeat(1024);
- const w = new Worker(pingpong, { eval: true });
- w.on('message', (m) => {
- w.postMessage(m.toString().split('').reverse().toString().replace(/,/g, ''));
- });
-
- w.on('exit', common.mustCall(() => {
- files = fs.readdirSync(tmpdir.path);
- const wlog = files.filter((name) => /\.log$/.test(name) && name !== plog)[0];
- if (wlog === undefined) {
- console.error('`--prof` did not produce a profile log' +
- ' for worker thread!');
- process.exit(1);
- }
- process.exit(0);
- }));
- w.postMessage(data);
-} else {
- tmpdir.refresh();
- const spawnResult = spawnSync(
- process.execPath, ['--prof', __filename, 'child'],
- { cwd: tmpdir.path, encoding: 'utf8', timeout: 30_000 });
- assert.strictEqual(spawnResult.stderr.toString(), '',
- `child exited with an error: \
- ${util.inspect(spawnResult)}`);
- assert.strictEqual(spawnResult.signal, null,
- `child exited with signal: ${util.inspect(spawnResult)}`);
- assert.strictEqual(spawnResult.status, 0,
- `child exited with non-zero status: \
- ${util.inspect(spawnResult)}`);
- const files = fs.readdirSync(tmpdir.path);
- const logfiles = files.filter((name) => /\.log$/.test(name));
- assert.strictEqual(logfiles.length, 2); // Parent thread + child thread.
-
- for (const logfile of logfiles) {
- const lines = fs.readFileSync(
- join(tmpdir.path, logfile), 'utf8').split('\n');
- const ticks = lines.filter((line) => /^tick,/.test(line)).length;
-
- // 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
- // for both threads, so 15 seems like a very safe threshold.
- assert(ticks >= 15, `${ticks} >= 15`);
- }
-}