Merge branch 'master' into add-worker-test
authorShinigami92 <chrissi92@hotmail.de>
Tue, 16 Feb 2021 15:08:46 +0000 (16:08 +0100)
committerShinigami92 <chrissi92@hotmail.de>
Tue, 16 Feb 2021 15:08:46 +0000 (16:08 +0100)
17 files changed:
1  2 
package.json
tests/pools/abstract/abstract-pool.test.js
tests/pools/cluster/dynamic.test.js
tests/pools/cluster/fixed.test.js
tests/pools/thread/dynamic.test.js
tests/pools/thread/fixed.test.js
tests/worker-files/cluster/asyncErrorWorker.js
tests/worker-files/cluster/asyncWorker.js
tests/worker-files/cluster/echoWorker.js
tests/worker-files/cluster/emptyWorker.js
tests/worker-files/cluster/errorWorker.js
tests/worker-files/cluster/testWorker.js
tests/worker-files/thread/asyncWorker.js
tests/worker-files/thread/echoWorker.js
tests/worker-files/thread/emptyWorker.js
tests/worker-files/thread/errorWorker.js
tests/worker-files/thread/testWorker.js

diff --cc package.json
index fdba3a8b9ab5df262d49dd37d4b90e480423d72b,3831b17b3d74e482b878ed480dc335ead05cb48c..daf3df0e441da1499e58b8ff9fa1c7dcc0191965
@@@ -4,14 -4,14 +4,14 @@@
    "description": "Library on top of node js worker threads that implement various worker pools type",
    "main": "lib/index.js",
    "scripts": {
-     "build": "rollup --config",
-     "build:dev": "rollup --config --environment BUILD:development",
-     "benchmark": "npm run build && node benchmarks/bench.js",
-     "benchmark:debug": "npm run build:dev && node -r source-map-support/register --inspect-brk benchmarks/bench.js",
-     "benchmark:debug:vscode": "node -r source-map-support/register benchmarks/bench.js",
-     "test": "npm run build && nyc mocha --exit --timeout 20000 'tests/**/*.test.js'",
-     "test:debug": "npm run build:dev && mocha -r source-map-support/register --inspect-brk --exit 'tests/**/*.test.js'",
-     "test:debug:vscode": "mocha -r source-map-support/register --exit 'tests/**/*.test.js'",
+     "build": "rollup --config --environment BUILD:development",
+     "build:prod": "rollup --config",
+     "benchmark": "npm run build && node -r source-map-support/register benchmarks/bench.js",
+     "benchmark:debug": "npm run build && node -r source-map-support/register --inspect benchmarks/bench.js",
+     "benchmark:prod": "npm run build:prod && node -r source-map-support/register benchmarks/bench.js",
 -    "test": "npm run build && nyc mocha -r source-map-support/register --exit --timeout 20000 tests/**/*.test.js",
 -    "test:debug": "npm run build && mocha -r source-map-support/register --inspect --exit --timeout 20000 tests/**/*.test.js",
 -    "test:prod": "npm run build:prod && nyc mocha -r source-map-support/register --exit --timeout 20000 tests/**/*.test.js",
++    "test": "npm run build && nyc mocha -r source-map-support/register --exit --timeout 20000 'tests/**/*.test.js'",
++    "test:debug": "npm run build && mocha -r source-map-support/register --inspect --exit --timeout 20000 'tests/**/*.test.js'",
++    "test:prod": "npm run build:prod && nyc mocha -r source-map-support/register --exit --timeout 20000 'tests/**/*.test.js'",
      "sonar": "sonar-scanner",
      "coverage": "nyc report --reporter=lcov --check-coverage --lines 80",
      "coverage:html": "nyc report --reporter=html --check-coverage --lines 80",
index 0000000000000000000000000000000000000000,d5d87058ed2c7f1f2f24c9a18347f00199f146f3..65d667f141a7cefccaf64e5de6525c77a0d37d2b
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,55 +1,55 @@@
 -      './tests/worker/cluster/testWorker.js',
+ const expect = require('expect')
+ const { FixedThreadPool } = require('../../../lib/index')
+ const expectedError = new Error('Worker could not be found in tasks map')
+ class StubPoolWithTasksMapClear extends FixedThreadPool {
+   removeAllWorker () {
+     this.tasks.clear()
+   }
+ }
+ class StubPoolWithIsMainMethod extends FixedThreadPool {
+   isMain () {
+     return false
+   }
+ }
+ describe('Abstract pool test suite ', () => {
+   it('Simulate worker not found during increaseWorkersTask', () => {
+     const pool = new StubPoolWithTasksMapClear(
+       1,
 -      './tests/worker/cluster/testWorker.js',
++      './tests/worker-files/cluster/testWorker.js',
+       {
+         errorHandler: e => console.error(e)
+       }
+     )
+     // simulate worker not found.
+     pool.removeAllWorker()
+     expect(() => pool.increaseWorkersTask()).toThrowError(expectedError)
+   })
+   it('Simulate worker not found during decreaseWorkersTasks', () => {
+     const pool = new StubPoolWithTasksMapClear(
+       1,
 -        './tests/worker/cluster/testWorker.js',
++      './tests/worker-files/cluster/testWorker.js',
+       {
+         errorHandler: e => console.error(e)
+       }
+     )
+     // simulate worker not found.
+     pool.removeAllWorker()
+     expect(() => pool.decreaseWorkersTasks()).toThrowError(expectedError)
+   })
+   it('Simulate pool creation from a non main thread/process', () => {
+     expect(() => {
+       const pool = new StubPoolWithIsMainMethod(
+         1,
++        './tests/worker-files/cluster/testWorker.js',
+         {
+           errorHandler: e => console.error(e)
+         }
+       )
+     }).toThrowError()
+   })
+ })
index 36d17d8695f37c4698a294b7e66b2f28a4beb4a3,b45b7ccac91308fcb1fe5193f0ffa3ea8d882b60..01b720720ac4761a768645b329d3cdb00a93283e
@@@ -5,10 -5,9 +5,9 @@@ const max = 
  const pool = new DynamicClusterPool(
    min,
    max,
 -  './tests/worker/cluster/testWorker.js',
 +  './tests/worker-files/cluster/testWorker.js',
    {
-     errorHandler: e => console.error(e),
-     onlineHandler: () => console.log('worker is online')
+     errorHandler: e => console.error(e)
    }
  )
  
index 1cbfadf5b63ad3e029b61d47e24f6d6d9a445467,87f7376ceb7d18fb8c9f5e676a264af53a5ea4cf..f5300eccf424c39028e340296b18d1d0492f45f4
@@@ -4,26 -4,21 +4,24 @@@ const numberOfWorkers = 1
  const maxTasks = 500
  const pool = new FixedClusterPool(
    numberOfWorkers,
 -  './tests/worker/cluster/testWorker.js',
 +  './tests/worker-files/cluster/testWorker.js',
    {
-     errorHandler: e => console.error(e),
-     onlineHandler: () => console.log('worker is online')
+     errorHandler: e => console.error(e)
    }
  )
  const emptyPool = new FixedClusterPool(
    1,
 -  './tests/worker/cluster/emptyWorker.js'
 +  './tests/worker-files/cluster/emptyWorker.js'
 +)
 +const echoPool = new FixedClusterPool(
 +  1,
 +  './tests/worker-files/cluster/echoWorker.js'
  )
 -const echoPool = new FixedClusterPool(1, './tests/worker/cluster/echoWorker.js')
  const errorPool = new FixedClusterPool(
    1,
 -  './tests/worker/cluster/errorWorker.js',
 +  './tests/worker-files/cluster/errorWorker.js',
    {
-     errorHandler: e => console.error(e),
-     onlineHandler: () => console.log('worker is online')
+     errorHandler: e => console.error(e)
    }
  )
  
index 5f6dc8ba47cb92fe26aefc82a767dd2acaa2ec9b,107ca8665d56ac5e57134ac9be2bede7e7063d6c..4efb0f4b83bdad12b0d96e83d6276ab773198eda
@@@ -5,10 -5,9 +5,9 @@@ const max = 
  const pool = new DynamicThreadPool(
    min,
    max,
 -  './tests/worker/thread/testWorker.js',
 +  './tests/worker-files/thread/testWorker.js',
    {
-     errorHandler: e => console.error(e),
-     onlineHandler: () => console.log('worker is online')
+     errorHandler: e => console.error(e)
    }
  )
  
index ff945a700f6bf6efe85359b260499597c3497a1c,e160f17c72b6d4db2e8111d7fed488f84a666610..755ccf4d4fa2aa12b0621344d1010af377431248
@@@ -4,23 -4,16 +4,22 @@@ const numberOfThreads = 1
  const maxTasks = 400
  const pool = new FixedThreadPool(
    numberOfThreads,
 -  './tests/worker/thread/testWorker.js',
 +  './tests/worker-files/thread/testWorker.js',
    {
-     errorHandler: e => console.error(e),
-     onlineHandler: () => console.log('worker is online')
+     errorHandler: e => console.error(e)
    }
  )
 -const emptyPool = new FixedThreadPool(1, './tests/worker/thread/emptyWorker.js')
 -const echoPool = new FixedThreadPool(1, './tests/worker/thread/echoWorker.js')
 +const emptyPool = new FixedThreadPool(
 +  1,
 +  './tests/worker-files/thread/emptyWorker.js'
 +)
 +const echoPool = new FixedThreadPool(
 +  1,
 +  './tests/worker-files/thread/echoWorker.js'
 +)
  const errorPool = new FixedThreadPool(
    1,
 -  './tests/worker/thread/errorWorker.js',
 +  './tests/worker-files/thread/errorWorker.js',
    {
      errorHandler: e => console.error(e),
      onlineHandler: () => console.log('worker is online')