From ef533c99ba3e9ac44777957b95602fe1c93e5a9e Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 26 Dec 2017 09:58:43 +0100 Subject: [PATCH] test: add hasCrypto when using binding('crypto') Currently, when configured --without-ssl tests that use process.binding('crypto') fail with the following error: === release test-accessor-properties === Path: parallel/test-accessor-properties node/test/parallel/test-accessor-properties.js:16 const crypto = process.binding('crypto'); ^ Error: No such module: crypto at Object. (test-accessor-properties.js:16:24) at Module._compile (module.js:660:30) at Object.Module._extensions..js (module.js:671:10) at Module.load (module.js:577:32) at tryModuleLoad (module.js:517:12) at Function.Module._load (module.js:509:3) at Function.Module.runMain (module.js:701:10) at startup (bootstrap_node.js:194:16) at bootstrap_node.js:645:3 This commit adds a hasCrypto check. PR-URL: https://github.com/nodejs/node/pull/17867 Reviewed-By: James M Snell Reviewed-By: Ruben Bridgewater --- test/parallel/test-accessor-properties.js | 49 ++++++++++--------- test/parallel/test-http2-util-headers-list.js | 2 + .../test-http2-util-update-options-buffer.js | 4 +- 3 files changed, 30 insertions(+), 25 deletions(-) diff --git a/test/parallel/test-accessor-properties.js b/test/parallel/test-accessor-properties.js index 478b1c55e93fdb..13535ceda9667f 100644 --- a/test/parallel/test-accessor-properties.js +++ b/test/parallel/test-accessor-properties.js @@ -1,6 +1,6 @@ 'use strict'; -require('../common'); +const common = require('../common'); // This tests that the accessor properties do not raise assertions // when called with incompatible receivers. @@ -12,9 +12,6 @@ const assert = require('assert'); const TTY = process.binding('tty_wrap').TTY; const UDP = process.binding('udp_wrap').UDP; -// There are accessor properties in crypto too -const crypto = process.binding('crypto'); - { // Should throw instead of raise assertions assert.throws(() => { @@ -33,15 +30,6 @@ const crypto = process.binding('crypto'); UDP.prototype.fd; }, TypeError); - assert.throws(() => { - crypto.SecureContext.prototype._external; - }, TypeError); - - assert.throws(() => { - crypto.Connection.prototype._external; - }, TypeError); - - // Should not throw for Object.getOwnPropertyDescriptor assert.strictEqual( typeof Object.getOwnPropertyDescriptor(TTY.prototype, 'bytesRead'), @@ -63,15 +51,28 @@ const crypto = process.binding('crypto'); 'object' ); - assert.strictEqual( - typeof Object.getOwnPropertyDescriptor( - crypto.SecureContext.prototype, '_external'), - 'object' - ); - - assert.strictEqual( - typeof Object.getOwnPropertyDescriptor( - crypto.Connection.prototype, '_external'), - 'object' - ); + if (common.hasCrypto) { // eslint-disable-line crypto-check + // There are accessor properties in crypto too + const crypto = process.binding('crypto'); + + assert.throws(() => { + crypto.SecureContext.prototype._external; + }, TypeError); + + assert.throws(() => { + crypto.Connection.prototype._external; + }, TypeError); + + assert.strictEqual( + typeof Object.getOwnPropertyDescriptor( + crypto.SecureContext.prototype, '_external'), + 'object' + ); + + assert.strictEqual( + typeof Object.getOwnPropertyDescriptor( + crypto.Connection.prototype, '_external'), + 'object' + ); + } } diff --git a/test/parallel/test-http2-util-headers-list.js b/test/parallel/test-http2-util-headers-list.js index 0bbe1972d07981..0ff6b558d9a51b 100644 --- a/test/parallel/test-http2-util-headers-list.js +++ b/test/parallel/test-http2-util-headers-list.js @@ -5,6 +5,8 @@ // to pass to the internal binding layer. const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); const assert = require('assert'); const { mapToHeaders } = require('internal/http2/util'); diff --git a/test/parallel/test-http2-util-update-options-buffer.js b/test/parallel/test-http2-util-update-options-buffer.js index 4388d55682a54b..14e4ba23d8fdca 100644 --- a/test/parallel/test-http2-util-update-options-buffer.js +++ b/test/parallel/test-http2-util-update-options-buffer.js @@ -1,7 +1,9 @@ // Flags: --expose-internals 'use strict'; -require('../common'); +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); // Test coverage for the updateOptionsBuffer method used internally // by the http2 implementation.