Skip to content

Commit 966404f

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 b775753 commit 966404f

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

src/node_binding.cc

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

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

Lines changed: 2 additions & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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)