If configued with --openssl-use-def-ca-store --shared-openssl the
following error might be thrown:
assert.js:86
throw new assert.AssertionError({
^
AssertionError: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' === 'CERT_REVOKED'
at TLSSocket.client.on.common.mustCall
(/Users/danielbevenius/work/nodejs/node/test/parallel/test-tls-cnnic-whitelist.js:71:14)
at TLSSocket.<anonymous>
(/Users/danielbevenius/work/nodejs/node/test/common.js:461:15)
at emitOne (events.js:115:13)
at TLSSocket.emit (events.js:210:7)
at emitErrorNT (net.js:1305:8)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
In this case the CA's used will be the ones shipped with OpenSSL. For
tests though we should be able to specify --use-bundled-ca as a fix for
the above error, but this functionality was broken by me in commit
be98f26917
("src: exclude node_root_certs when use-def-ca-store").
That commit removed the abilty to use --use-bundled-ca if the build was
configured --openssl-use-def-ca-store.
PR-URL: https://github.com/nodejs/node/pull/12394
Reviewed-By: thefourtheye - Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
crypto.randomFill and crypto.randomFillSync are similar to
crypto.randomBytes, but allow passing in a buffer as the first
argument. This allows us to reuse buffers to prevent having to
create a new one on every call.
PR-URL: https://github.com/nodejs/node/pull/10209
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
When configuring --without-ssl test-crypto-lazy-transform-writable.js
fails with the following error:
```
Path: parallel/test-crypto-lazy-transform-writable
internal/util.js:83
throw new Error('Node.js is not compiled with openssl crypto
support');
^
Error: Node.js is not compiled with openssl crypto support
at Object.exports.assertCrypto (internal/util.js:83:11)
at crypto.js:28:14
at NativeModule.compile (bootstrap_node.js:557:7)
at Function.NativeModule.require (bootstrap_node.js:500:18)
at Function.Module._load (module.js:446:25)
at Module.require (module.js:526:17)
at require (internal/module.js:19:18)
at Object.<anonymous>
(/Users/danielbevenius/work/nodejs/node/test/parallel/test-crypto-lazy-transform-writable.js:5:16)
at Module._compile (module.js:607:30)
at Object.Module._extensions..js (module.js:618:10)
Command: out/Release/node
/Users/danielbevenius/work/nodejs/node/test/parallel/test-crypto-lazy-transform-writable.js
[01:29|% 100|+ 1461|- 1]: Done
make: *** [test] Error 1
```
This commit add a hasCrypto check like other crypto tests do.
PR-URL: https://github.com/nodejs/node/pull/12424
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Use of `common.PORT` in `parallel` tests is not completely safe (because
the same port can be previously assigned to another test running in
parallel if that test uses port `0` to get an arbitrary available port).
Remove `common.PORT` from test-cluster-basic.
PR-URL: https://github.com/nodejs/node/pull/12377
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
When configuring --without-ssl test-debug-usage.js fails with the
following error:
assert.js:82
throw new assert.AssertionError({
^
AssertionError: false == true
at ChildProcess.<anonymous>
(/Users/danielbevenius/work/nodejs/node/test/parallel/test-debug-usage.js:24:5)
at ChildProcess.<anonymous>
(/Users/danielbevenius/work/nodejs/node/test/common.js:461:15)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at Process.ChildProcess._handle.onexit
(internal/child_process.js:208:12)
But the underlying error is the following:
(node:55665) [DEP0068] DeprecationWarning: `node debug` is deprecated.
Please use `node inspect` instead.
internal/util.js:83
throw new Error('Node.js is not compiled with openssl crypto
support');
^
Error: Node.js is not compiled with openssl crypto support
at Object.exports.assertCrypto (internal/util.js:83:11)
at crypto.js:28:14
at NativeModule.compile (bootstrap_node.js:559:7)
at NativeModule.require (bootstrap_node.js:500:18)
at node-inspect/lib/internal/inspect_client.js:24:16
at NativeModule.compile (bootstrap_node.js:559:7)
at NativeModule.require (bootstrap_node.js:500:18)
at node-inspect/lib/_inspect.js:39:5
at NativeModule.compile (bootstrap_node.js:559:7)
at Function.NativeModule.require (bootstrap_node.js:500:18)
assert.js:82
throw new assert.AssertionError({
^
AssertionError: false == true
at ChildProcess.<anonymous>
(/Users/danielbevenius/work/nodejs/node/test/parallel/test-debug-usage.js:25:5)
at ChildProcess.<anonymous>
(/Users/danielbevenius/work/nodejs/node/test/common.js:461:15)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at Process.ChildProcess._handle.onexit
(internal/child_process.js:208:12)
This commit adds a check for crypto like some of the other tests do.
PR-URL: https://github.com/nodejs/node/pull/12357
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Currently when the destination emits an 'error', 'finish' or 'close'
event the pipe calls unpipe to emit 'unpipe' and trigger the clean up
of all it's listeners.
When the source emits an 'end' event without {end: false} it calls
end() on the destination leading it to emit a 'close', this will again
lead to the pipe calling unpipe. However the source emitting an 'end'
event along side {end: false} is the only time the cleanup gets ran
directly without unpipe being called. This fixes that so the 'unpipe'
event does get emitted and cleanup in turn gets ran by that event.
Fixes: https://github.com/nodejs/node/issues/11837
PR-URL: https://github.com/nodejs/node/pull/11876
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
bootstrap_node.js was directly parsing process.execArgv to see if
internals should be exposed, even though the argv was already parsed by
node. This is unusual and unnecessary, change it to set the option value
from the parser onto the config binding.
PR-URL: https://github.com/nodejs/node/pull/12245
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This adds RegExp or error constructor arguments to the remaining places
where it is missing in preparation for the commit that will enforce the
presence of at least two arguments.
PR-URL: https://github.com/nodejs/node/pull/12270
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
assert.fail() has two possible function signatures, both of which are
not intuitive. It virtually guarantees that people who try to use
assert.fail() without carefully reading the docs will end up using it
incorrectly.
This change maintains backwards compatibility with the two valid uses
(arguments 1 2 and 4 supplied but argument 3 falsy, and argument 3
supplied but arguments 1 2 and 4 all falsy) but also adds the far more
intuitive first-argument-only and first-two-arguments-only
possibilities.
assert.fail('boom');
// AssertionError: boom
assert.fail('a', 'b');
// AssertionError: 'a' != 'b'
PR-URL: https://github.com/nodejs/node/pull/12293
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
parallel/test-crypto-dh.js assumes particular curve algorithms
(e.g. Oakley-EC2N-3) are supported, though this may not necessarily be
the case if Node.js was built with a system version of OpenSSL.
PR-URL: https://github.com/nodejs/node/pull/12265
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
6481c93a modified `lib/assert.js` and added some tests for new
functionality, but left a single line uncovered by tests. This adds a
test that covers the currently-uncovered line (which is the final
`return` statement in `setHasSimilarElement()`).`
PR-URL: https://github.com/nodejs/node/pull/12239
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
The auth property of a URL is decoded via decodeURIComponent,
which can throw a URIError. The test URL here will trigger this.
Adds documentation on the possible errors url.parse can throw.
PR-URL: https://github.com/nodejs/node/pull/12135
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Use the remaining listener directly if the array of listeners has only
one element after running `EventEmitter.prototype.removeListener()`.
Advantages:
- Better memory usage and better performance if no new listeners are
added for the same event.
Disadvantages:
- A new array must be created if new listeners are added for the same
event.
PR-URL: https://github.com/nodejs/node/pull/12043
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Reviewed-By: Ron Korving <ron@ronkorving.nl>
As it is, the `killSignal` is just retrieved from an object and used.
If the signal passed is actually one of the inherited properties of
that object, Node.js will die. For example,
➜ node -e "child_process.spawnSync('ls', {killSignal: 'toString'})"
Assertion failed: (0), function uv_close, file ....core.c, line 166.
[1] 58938 abort node -e "child_process.spawnSync(...)"
1. This patch makes sure that the signal is actually a own property of
the constants object.
2. Extends the killSignal validation to all the other functions.
PR-URL: https://github.com/nodejs/node/pull/10423
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>