mirror of
https://github.com/zebrajr/node.git
synced 2025-12-07 00:20:38 +01:00
Currently when running configure with the --debug option in combination
with the tests (./configure --debug && make -j8 test) there are a few
addon tests that fail with error messages similar to this:
=== release test ===
Path: addons/load-long-path/test
fs.js:558
return binding.open(pathModule._makeLong(path), stringToFlags(flags),
mode);
^
Error: ENOENT: no such file or directory, open
'/nodejs/node/test/addons/load-long-path/build/Release/binding.node'
at Object.fs.openSync (fs.js:558:18)
at Object.fs.readFileSync (fs.js:468:33)
at Object.<anonymous>
(/nodejs/node/test/addons/load-long-path/test.js:28:19)
at Module._compile (module.js:560:32)
at Object.Module._extensions..js (module.js:569:10)
at Module.load (module.js:477:32)
at tryModuleLoad (module.js:436:12)
at Function.Module._load (module.js:428:3)
at Module.runMain (module.js:594:10)
at run (bootstrap_node.js:382:7)
Command: out/Release/node
/nodejs/node/test/addons/load-long-path/test.js
This commit allows for the tests to pass even if the configured build
type is of type debug.
PR-URL: https://github.com/nodejs/node/pull/8836
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ilkka Myller <ilkka.myller@nodefield.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
34 lines
987 B
JavaScript
34 lines
987 B
JavaScript
'use strict';
|
|
|
|
const common = require('../../common');
|
|
const binding = require(`./build/${common.buildType}/binding`);
|
|
const assert = require('assert');
|
|
|
|
// v8 fails silently if string length > v8::String::kMaxLength
|
|
// v8::String::kMaxLength defined in v8.h
|
|
const kStringMaxLength = process.binding('buffer').kStringMaxLength;
|
|
|
|
const skipMessage = 'intensive toString tests due to memory confinements';
|
|
if (!common.enoughTestMem) {
|
|
common.skip(skipMessage);
|
|
return;
|
|
}
|
|
|
|
try {
|
|
var buf = Buffer.allocUnsafe(kStringMaxLength);
|
|
} catch (e) {
|
|
// If the exception is not due to memory confinement then rethrow it.
|
|
if (e.message !== 'Array buffer allocation failed') throw (e);
|
|
common.skip(skipMessage);
|
|
return;
|
|
}
|
|
|
|
// Ensure we have enough memory available for future allocations to succeed.
|
|
if (!binding.ensureAllocation(2 * kStringMaxLength)) {
|
|
common.skip(skipMessage);
|
|
return;
|
|
}
|
|
|
|
const maxString = buf.toString('latin1');
|
|
assert.equal(maxString.length, kStringMaxLength);
|