node/test/parallel/test-tls-cipher-list.js
Anna Henningsen 1f9761f4cc
tls: provide default cipher list from command line
Avoid storing data that depends on command line options on internal
bindings. This is generally a cleaner way of accessing CLI options.

PR-URL: https://github.com/nodejs/node/pull/32760
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: David Carlier <devnexen@gmail.com>
2020-04-13 18:48:23 +02:00

33 lines
982 B
JavaScript

'use strict';
const common = require('../common');
if (!common.hasCrypto)
common.skip('missing crypto');
const assert = require('assert');
const spawn = require('child_process').spawn;
const defaultCoreList = require('crypto').constants.defaultCoreCipherList;
function doCheck(arg, expression, check) {
let out = '';
arg = arg.concat([
'-pe',
expression
]);
spawn(process.execPath, arg, {})
.on('error', common.mustNotCall())
.stdout.on('data', function(chunk) {
out += chunk;
}).on('end', function() {
assert.strictEqual(out.trim(), check);
}).on('error', common.mustNotCall());
}
// Test the default unmodified version
doCheck([], 'crypto.constants.defaultCipherList', defaultCoreList);
doCheck([], 'tls.DEFAULT_CIPHERS', defaultCoreList);
// Test the command line switch by itself
doCheck(['--tls-cipher-list=ABC'], 'crypto.constants.defaultCipherList', 'ABC');
doCheck(['--tls-cipher-list=ABC'], 'tls.DEFAULT_CIPHERS', 'ABC');