From 0661fdf781cfb9aff4004dfd9682eef060264c5b Mon Sep 17 00:00:00 2001
From: Rich Trott <rtrott@gmail.com>
Date: Tue, 11 Apr 2017 13:09:05 -0700
Subject: [PATCH] test: add test-benchmark-crypto

Add minimal test for crypto benchmarks. It makes sure that they can run
without returning an error code.

PR-URL: https://github.com/nodejs/node/pull/12347
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
---
 test/parallel/test-benchmark-crypto.js | 36 ++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 test/parallel/test-benchmark-crypto.js

diff --git a/test/parallel/test-benchmark-crypto.js b/test/parallel/test-benchmark-crypto.js
new file mode 100644
index 00000000000000..55ab98ee2199df
--- /dev/null
+++ b/test/parallel/test-benchmark-crypto.js
@@ -0,0 +1,36 @@
+'use strict';
+
+const common = require('../common');
+
+if (!common.hasCrypto) {
+  common.skip('missing crypto');
+  return;
+}
+
+if (common.hasFipsCrypto) {
+  common.skip('some benchmarks are FIPS-incompatible');
+  return;
+}
+
+// Minimal test for crypto benchmarks. This makes sure the benchmarks aren't
+// horribly broken but nothing more than that.
+
+const assert = require('assert');
+const fork = require('child_process').fork;
+const path = require('path');
+
+const runjs = path.join(__dirname, '..', '..', 'benchmark', 'run.js');
+const argv = ['--set', 'n=1',
+              '--set', 'writes=1',
+              '--set', 'len=1',
+              '--set', 'api=stream',
+              '--set', 'out=buffer',
+              '--set', 'keylen=1024',
+              '--set', 'type=buf',
+              'crypto'];
+
+const child = fork(runjs, argv, {env: {NODEJS_BENCHMARK_ZERO_ALLOWED: 1}});
+child.on('exit', (code, signal) => {
+  assert.strictEqual(code, 0);
+  assert.strictEqual(signal, null);
+});