X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Fpools%2Fthread%2Ffixed.test.js;h=26546d5e1a1fa1aeb0468b2b85357ea73925bc23;hb=58399427588adb63380e6bfe955dbdf4ea8ea8a5;hp=080ebad6ec8fa19b682bff11ae0f6634802c393e;hpb=dbca3be954130834defeb4084096272ecf660c5c;p=poolifier.git diff --git a/tests/pools/thread/fixed.test.js b/tests/pools/thread/fixed.test.js index 080ebad6..26546d5e 100644 --- a/tests/pools/thread/fixed.test.js +++ b/tests/pools/thread/fixed.test.js @@ -10,7 +10,7 @@ describe('Fixed thread pool test suite', () => { numberOfThreads, './tests/worker-files/thread/testWorker.js', { - errorHandler: e => console.error(e) + errorHandler: (e) => console.error(e) } ) const queuePool = new FixedThreadPool( @@ -21,7 +21,7 @@ describe('Fixed thread pool test suite', () => { tasksQueueOptions: { concurrency: tasksConcurrency }, - errorHandler: e => console.error(e) + errorHandler: (e) => console.error(e) } ) const emptyPool = new FixedThreadPool( @@ -37,14 +37,14 @@ describe('Fixed thread pool test suite', () => { numberOfThreads, './tests/worker-files/thread/errorWorker.js', { - errorHandler: e => console.error(e) + errorHandler: (e) => console.error(e) } ) const asyncErrorPool = new FixedThreadPool( numberOfThreads, './tests/worker-files/thread/asyncErrorWorker.js', { - errorHandler: e => console.error(e) + errorHandler: (e) => console.error(e) } ) const asyncPool = new FixedThreadPool( @@ -83,7 +83,7 @@ describe('Fixed thread pool test suite', () => { numberOfThreads, './tests/worker-files/thread/testWorker.js', { - errorHandler: e => console.error(e) + errorHandler: (e) => console.error(e) } ) let poolReady = 0 @@ -155,10 +155,36 @@ describe('Fixed thread pool test suite', () => { expect(result).toStrictEqual(data) }) + it('Verify that transferable objects are sent to the worker correctly', async () => { + let error + let result + try { + result = await pool.execute(undefined, undefined, [ + new ArrayBuffer(16), + new MessageChannel().port1 + ]) + } catch (e) { + error = e + } + expect(result).toStrictEqual({ ok: 1 }) + expect(error).toBeUndefined() + try { + result = await pool.execute(undefined, undefined, [ + new SharedArrayBuffer(16) + ]) + } catch (e) { + error = e + } + expect(result).toStrictEqual({ ok: 1 }) + expect(error).toStrictEqual( + new TypeError('Found invalid object in transferList') + ) + }) + it('Verify that error handling is working properly:sync', async () => { const data = { f: 10 } let taskError - errorPool.emitter.on(PoolEvents.taskError, e => { + errorPool.emitter.on(PoolEvents.taskError, (e) => { taskError = e }) let inError @@ -179,7 +205,7 @@ describe('Fixed thread pool test suite', () => { }) expect( errorPool.workerNodes.some( - workerNode => workerNode.usage.tasks.failed === 1 + (workerNode) => workerNode.usage.tasks.failed === 1 ) ).toBe(true) }) @@ -187,7 +213,7 @@ describe('Fixed thread pool test suite', () => { it('Verify that error handling is working properly:async', async () => { const data = { f: 10 } let taskError - asyncErrorPool.emitter.on(PoolEvents.taskError, e => { + asyncErrorPool.emitter.on(PoolEvents.taskError, (e) => { taskError = e }) let inError @@ -208,7 +234,7 @@ describe('Fixed thread pool test suite', () => { }) expect( asyncErrorPool.workerNodes.some( - workerNode => workerNode.usage.tasks.failed === 1 + (workerNode) => workerNode.usage.tasks.failed === 1 ) ).toBe(true) })