test: make common.mustNotCall show file:linenumber
When a test fails via common.mustNotCall
it is sometimes hard to
determine exactly what was called. This modification stores the
caller's file and line number by using the V8 Error API to capture
a stack at the time common.mustNotCall()
is called. In the event
of failure, this information is printed.
I tried to write a test for this, but I did simulate a
failure, and this is what the output looked like:common.mustNotCall()
ultimately
calls assert.fail()
which made it difficult to do.
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: function should not have been called at /Users/lanceball/src/node/test/parallel/test-http-host-headers.js:60
at ClientRequest.mustNotCall (/Users/lanceball/src/node/test/common/index.js:587:12)
at ClientRequest.emit (events.js:159:13)
at Socket.socketErrorListener (_http_client.js:389:9)
at Socket.emit (events.js:159:13)
at emitErrorNT (internal/streams/destroy.js:64:8)
at _combinedTickCallback (internal/process/next_tick.js:137:11)
at process._tickCallback (internal/process/next_tick.js:179:9)
@nodejs/collaborators if you have a recommendation for testing this, I'm all ears.
Checklist
-
make -j4 test
(UNIX), orvcbuild test
(Windows) passes -
documentation is changed or added -
tests and/or benchmarks are included -
commit message follows commit guidelines
Affected core subsystem(s)
test