summaryrefslogtreecommitdiffstats
path: root/packages/markdown/marked/test/specs/redos-spec.js
blob: 1f94a42e99e00db5ab41f780b65c05f7bda2f63d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const path = require('path');
const fs = require('fs');

const redosDir = path.resolve(__dirname, '../redos');

describe('ReDOS tests', () => {
  const files = fs.readdirSync(redosDir);
  files.forEach(file => {
    if (!file.match(/\.js$/)) {
      return;
    }

    it(file, () => {
      const spec = require(path.resolve(redosDir, file));
      const before = process.hrtime();
      expect(spec).toRender(spec.html);
      const elapsed = process.hrtime(before);
      if (elapsed[0] > 0) {
        const s = (elapsed[0] + elapsed[1] * 1e-9).toFixed(3);
        fail(`took too long: ${s}s`);
      }
    });
  });
});