Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'test/pummel/test-heapsnapshot-near-heap-limit-big.js')
-rw-r--r--test/pummel/test-heapsnapshot-near-heap-limit-big.js43
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);
+ }
+}