rewire icon indicating copy to clipboard operation
rewire copied to clipboard

rewire() doesn't detect when source file tries to rewire itself - stack overflow

Open jghaines opened this issue 8 years ago • 0 comments

self-reference.js var rewire = require('rewire'); var lib = rewire('./self-reference.js');

When run (mocha 2.4.5, node v4.3.0) $ mocha ./self-reference.js

Expected Error: file "./self-reference.js" tries to rewire itself (self-reference.js:2)

Actual It crashes with "Maximum call stack size exceeded" - full trace below

Yes, this is user error. I managed to do this with insufficiently deep parent-directory-ing ../../../../lib/module/sub-module/source.js

fs.js:834 return binding.fstat(fd); ^ RangeError: Maximum call stack size exceeded at Object.fs.fstatSync (fs.js:834:18) at Object.fs.readFileSync (fs.js:403:13) at Object.Module._extensions..js (module.js:416:20) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.require (module.js:354:17) at Module.requireProxy (.../node_modules/rewire/lib/moduleEnv.js:46:24) at require (internal/module.js:12:17) at .../test/self-reference.js:1:1255 at Object. ( .../test/self-reference.js:101:4) at Module._compile (module.js:410:26) at Object.Module._extensions..js (module.js:417:10) at Module.load (module.js:344:32) at Object.load (.../node_modules/rewire/lib/moduleEnv.js:20:18) at internalRewire (.../node_modules/rewire/lib/rewire.js:57:15) at rewire (.../node_modules/rewire/lib/index.js:11:12) at .../test/self-reference.js:2:11

jghaines avatar May 12 '16 00:05 jghaines