From dfde02716ae0aa1748f55c6024802d53c02fa141 Mon Sep 17 00:00:00 2001 From: Guillaume Grossetie Date: Mon, 5 Sep 2022 16:46:27 +0200 Subject: [PATCH 1/3] fix timeout value in .taprc --- .taprc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.taprc b/.taprc index 81ceaaa..954e854 100644 --- a/.taprc +++ b/.taprc @@ -1,3 +1,4 @@ jobs: 1 check-coverage: false -timeout: 60000 +# in seconds +timeout: 60 From b09b3b0f0af9640aad6025cd8bc7dbfc3fb8a38c Mon Sep 17 00:00:00 2001 From: Guillaume Grossetie Date: Mon, 5 Sep 2022 12:54:10 +0200 Subject: [PATCH 2/3] resolves #99 pass version to the worker --- index.js | 9 ++++++++- test/context.test.js | 20 ++++++++++++++++++++ test/event.test.js | 4 ++-- test/get-context.js | 22 ++++++++++++++++++++++ 4 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 test/context.test.js create mode 100644 test/get-context.js diff --git a/index.js b/index.js index 2210f50..148656c 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,6 @@ 'use strict' +const { version } = require('./package.json') const { EventEmitter } = require('events') const { Worker } = require('worker_threads') const { join } = require('path') @@ -29,6 +30,7 @@ class FakeWeakRef { const FinalizationRegistry = global.FinalizationRegistry || class FakeFinalizationRegistry { register () {} + unregister () {} } @@ -55,7 +57,12 @@ function createWorker (stream, opts) { : pathToFileURL(filename).href, dataBuf: stream[kImpl].dataBuf, stateBuf: stream[kImpl].stateBuf, - workerData + workerData: { + $context: { + threadStreamVersion: version + }, + ...workerData + } } }) diff --git a/test/context.test.js b/test/context.test.js new file mode 100644 index 0000000..646603a --- /dev/null +++ b/test/context.test.js @@ -0,0 +1,20 @@ +'use strict' + +const { test } = require('tap') +const { join } = require('path') +const ThreadStream = require('..') +const { version } = require('../package.json') + +test('get context', (t) => { + const stream = new ThreadStream({ + filename: join(__dirname, 'get-context.js'), + workerData: {}, + sync: true + }) + t.on('end', () => stream.end()) + stream.on('context', (ctx) => { + t.same(ctx.threadStreamVersion, version) + t.end() + }) + stream.write('hello') +}) diff --git a/test/event.test.js b/test/event.test.js index 21ee2c5..8a29eba 100644 --- a/test/event.test.js +++ b/test/event.test.js @@ -4,12 +4,13 @@ const { test } = require('tap') const { join } = require('path') const ThreadStream = require('..') -test('event propagate', function (t) { +test('event propagate', (t) => { const stream = new ThreadStream({ filename: join(__dirname, 'emit-event.js'), workerData: {}, sync: true }) + t.on('end', () => stream.end()) stream.on('socketError', function (a, b, c, n, error) { t.same(a, 'list') t.same(b, 'of') @@ -19,5 +20,4 @@ test('event propagate', function (t) { t.end() }) stream.write('hello') - stream.end() }) diff --git a/test/get-context.js b/test/get-context.js new file mode 100644 index 0000000..6bcdc33 --- /dev/null +++ b/test/get-context.js @@ -0,0 +1,22 @@ +'use strict' + +const { Writable } = require('stream') +const parentPort = require('worker_threads').parentPort + +async function run (opts) { + return new Writable({ + autoDestroy: true, + write (chunk, enc, cb) { + if (parentPort) { + parentPort.postMessage({ + code: 'EVENT', + name: 'context', + args: opts.$context + }) + } + cb() + } + }) +} + +module.exports = run From 1e3f804ff5f25e89cb2bf382ca433c875fb33b87 Mon Sep 17 00:00:00 2001 From: Guillaume Grossetie Date: Tue, 6 Sep 2022 11:58:08 +0200 Subject: [PATCH 3/3] require why-is-node-running fix flakiness??? --- test/context.test.js | 1 + test/event.test.js | 1 + 2 files changed, 2 insertions(+) diff --git a/test/context.test.js b/test/context.test.js index 646603a..07028cb 100644 --- a/test/context.test.js +++ b/test/context.test.js @@ -4,6 +4,7 @@ const { test } = require('tap') const { join } = require('path') const ThreadStream = require('..') const { version } = require('../package.json') +require('why-is-node-running') test('get context', (t) => { const stream = new ThreadStream({ diff --git a/test/event.test.js b/test/event.test.js index 8a29eba..dbb9a20 100644 --- a/test/event.test.js +++ b/test/event.test.js @@ -3,6 +3,7 @@ const { test } = require('tap') const { join } = require('path') const ThreadStream = require('..') +require('why-is-node-running') test('event propagate', (t) => { const stream = new ThreadStream({