diff options
Diffstat (limited to 'test/pummel/test-heapsnapshot-near-heap-limit-big.js')
-rw-r--r-- | test/pummel/test-heapsnapshot-near-heap-limit-big.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test/pummel/test-heapsnapshot-near-heap-limit-big.js b/test/pummel/test-heapsnapshot-near-heap-limit-big.js new file mode 100644 index 00000000000..f70d562c1d1 --- /dev/null +++ b/test/pummel/test-heapsnapshot-near-heap-limit-big.js @@ -0,0 +1,43 @@ +'use strict'; + +const common = require('../common'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync } = require('child_process'); +const fixtures = require('../common/fixtures'); +const fs = require('fs'); +const env = { + ...process.env, + NODE_DEBUG_NATIVE: 'diagnostics' +}; + +if (!common.enoughTestMem) + common.skip('Insufficient memory for snapshot test'); + +{ + console.log('\nTesting limit = 3'); + tmpdir.refresh(); + const child = spawnSync(process.execPath, [ + '--heapsnapshot-near-heap-limit=3', + '--max-old-space-size=512', + fixtures.path('workload', 'grow.js') + ], { + cwd: tmpdir.path, + env: { + ...env, + TEST_CHUNK: 2000, + } + }); + const stderr = child.stderr.toString(); + console.log(stderr); + assert(common.nodeProcessAborted(child.status, child.signal), + 'process should have aborted, but did not'); + const list = fs.readdirSync(tmpdir.path) + .filter((file) => file.endsWith('.heapsnapshot')); + if (list.length === 0) { + assert(stderr.includes( + 'Not generating snapshots because it\'s too risky')); + } else { + assert(list.length > 0 && list.length <= 3); + } +} |