Skip to content

Commit 12d7d64

Browse files
nornagonMylesBorins
authored andcommitted
src: add file name to 'Module did not self-register' error
PR-URL: #30125 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: David Carlier <[email protected]> Reviewed-By: Tobias Nießen <[email protected]>
1 parent 0ae1d17 commit 12d7d64

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

src/node_binding.cc

+6-1
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,12 @@ void DLOpen(const FunctionCallbackInfo<Value>& args) {
485485
mp = dlib->GetSavedModuleFromGlobalHandleMap();
486486
if (mp == nullptr || mp->nm_context_register_func == nullptr) {
487487
dlib->Close();
488-
env->ThrowError("Module did not self-register.");
488+
char errmsg[1024];
489+
snprintf(errmsg,
490+
sizeof(errmsg),
491+
"Module did not self-register: '%s'.",
492+
*filename);
493+
env->ThrowError(errmsg);
489494
return false;
490495
}
491496
}

test/addons/dlopen-ping-pong/test-worker.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@ require(bindingPath);
1616
new Worker(`require(${JSON.stringify(bindingPath)})`, { eval: true })
1717
.on('error', common.mustCall((err) => {
1818
assert.strictEqual(err.constructor, Error);
19-
assert.strictEqual(err.message, 'Module did not self-register.');
19+
assert.strictEqual(err.message,
20+
`Module did not self-register: '${bindingPath}'.`);
2021
}));

test/addons/dlopen-ping-pong/test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ assert.strictEqual(module.exports.ping(), 'pong');
1919
// Check that after the addon is loaded with
2020
// process.dlopen() a require() call fails.
2121
console.log('require:', `./build/${common.buildType}/binding`);
22-
const re = /^Error: Module did not self-register\.$/;
22+
const re = /^Error: Module did not self-register: '.*[\\/]binding\.node'\.$/;
2323
assert.throws(() => require(`./build/${common.buildType}/binding`), re);

test/addons/not-a-binding/test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
const common = require('../../common');
33
const assert = require('assert');
44

5-
const re = /^Error: Module did not self-register\.$/;
5+
const re = /^Error: Module did not self-register: '.*[\\/]binding\.node'\.$/;
66
assert.throws(() => require(`./build/${common.buildType}/binding`), re);

0 commit comments

Comments
 (0)