Browse Source

jest-worker => Worker

pull/1164/head
Vitaly Puzrin 5 months ago
parent
commit
66a729c88e
  1. 1
      package.json
  2. 48
      test/markdown-it/pathological.test.mjs
  3. 5
      test/pathological_worker.js

1
package.json

@ -80,7 +80,6 @@
"express": "^4.14.0",
"gh-pages": "^6.1.0",
"highlight.js": "^11.9.0",
"jest-worker": "^29.7.0",
"markdown-it-abbr": "^2.0.0",
"markdown-it-container": "^4.0.0",
"markdown-it-deflist": "^3.0.0",

48
test/markdown-it/pathological.test.mjs

@ -1,32 +1,26 @@
import assert from 'node:assert'
import { describe, it } from 'node:test'
import { Worker as JestWorker } from 'jest-worker'
async function test_pattern (str, mdOpts) {
const worker = new JestWorker(
new URL('../pathological_worker.js', import.meta.url),
{
numWorkers: 1,
enableWorkerThreads: true
}
)
let result
const ac = new AbortController()
try {
result = await Promise.race([
worker.render(str, mdOpts),
new Promise((resolve, reject) => {
setTimeout(() => reject(new Error('Terminated (timeout exceeded)')), 3000).unref()
})
])
} finally {
ac.abort()
await worker.end()
}
return result
import { Worker, isMainThread, parentPort, workerData } from 'node:worker_threads'
import { fileURLToPath } from 'node:url'
if (!isMainThread) {
const { default: md } = await import('../../index.mjs')
parentPort.postMessage(md(workerData.opts).render(workerData.str))
process.exit(0)
}
function test_pattern (str, mdOpts) {
return new Promise((resolve, reject) => {
const worker = new Worker(fileURLToPath(import.meta.url), {
workerData: { str, opts: mdOpts }
})
const timer = setTimeout(() => {
worker.terminate()
reject(new Error('Terminated (timeout exceeded)'))
}, 3000)
worker.on('message', val => { clearTimeout(timer); resolve(val) })
worker.on('error', err => { clearTimeout(timer); reject(err) })
})
}
describe('Pathological sequences speed', () => {

5
test/pathological_worker.js

@ -1,5 +0,0 @@
'use strict'
exports.render = async (str, mdOpts) => {
return (await import('../index.mjs')).default(mdOpts).render(str)
}
Loading…
Cancel
Save