current commit
251117.6 · test: ensure assertions are reached on more tests
'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', common.mustCall(() => {
      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');