summaryrefslogtreecommitdiffstats
path: root/packages/markdown/marked/test/specs/redos-spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/markdown/marked/test/specs/redos-spec.js')
-rw-r--r--packages/markdown/marked/test/specs/redos-spec.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/markdown/marked/test/specs/redos-spec.js b/packages/markdown/marked/test/specs/redos-spec.js
new file mode 100644
index 00000000..1f94a42e
--- /dev/null
+++ b/packages/markdown/marked/test/specs/redos-spec.js
@@ -0,0 +1,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`);
+ }
+ });
+ });
+});