test: fix another flaky stringbytes test
Avoid depending on precise timing of when an object will be collected by GC. This test was missed by #6039 as it happened to be in a different directory than the rest. Ref: https://github.com/nodejs/node/pull/6039 PR-URL: https://github.com/nodejs/node/pull/6073 Reviewed-By: Trott - Rich Trott <rtrott@gmail.com>
This commit is contained in:
parent
82d57d39ae
commit
b73e1b3c5a
@ -10,7 +10,9 @@ Tests for when the `--abort-on-uncaught-exception` flag is used.
|
||||
|
||||
### addons
|
||||
|
||||
Tests for [addon](https://nodejs.org/api/addons.html) functionality.
|
||||
Tests for [addon](https://nodejs.org/api/addons.html) functionality along with
|
||||
some tests that require an addon to function properly.
|
||||
|
||||
|
||||
| Runs on CI |
|
||||
|:----------:|
|
||||
|
@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
// Flags: --expose-gc
|
||||
|
||||
const common = require('../common');
|
||||
const common = require('../../common');
|
||||
const binding = require('./build/Release/binding');
|
||||
const assert = require('assert');
|
||||
|
||||
// v8 fails silently if string length > v8::String::kMaxLength
|
||||
@ -14,13 +14,9 @@ if (!common.enoughTestMem) {
|
||||
console.log(skipMessage);
|
||||
return;
|
||||
}
|
||||
assert(typeof gc === 'function', 'Run this test with --expose-gc');
|
||||
|
||||
try {
|
||||
var buf = Buffer.allocUnsafe(kStringMaxLength);
|
||||
// Try to allocate memory first then force gc so future allocations succeed.
|
||||
Buffer.allocUnsafe(2 * kStringMaxLength);
|
||||
gc();
|
||||
} catch (e) {
|
||||
// If the exception is not due to memory confinement then rethrow it.
|
||||
if (e.message !== 'Array buffer allocation failed') throw (e);
|
||||
@ -28,5 +24,11 @@ try {
|
||||
return;
|
||||
}
|
||||
|
||||
// Ensure we have enough memory available for future allocations to succeed.
|
||||
if (!binding.ensureAllocation(2 * kStringMaxLength)) {
|
||||
console.log(skipMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
const maxString = buf.toString('binary');
|
||||
assert.equal(maxString.length, kStringMaxLength);
|
Loading…
x
Reference in New Issue
Block a user