mirror of https://github.com/nodejs/node.git
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
'use strict';
|
|
// This tests heap snapshot integration of zlib stream.
|
|
|
|
const common = require('../common');
|
|
const assert = require('assert');
|
|
const { validateByRetainingPath, validateByRetainingPathFromNodes } = require('../common/heap');
|
|
const zlib = require('zlib');
|
|
|
|
// Before zlib stream is created, no ZlibStream should be created.
|
|
{
|
|
const nodes = validateByRetainingPath('Node / ZlibStream', []);
|
|
assert.strictEqual(nodes.length, 0);
|
|
}
|
|
|
|
const gzip = zlib.createGzip();
|
|
|
|
// After zlib stream is created, a ZlibStream should be created.
|
|
{
|
|
const streams = validateByRetainingPath('Node / ZlibStream', []);
|
|
validateByRetainingPathFromNodes(streams, 'Node / ZlibStream', [
|
|
{ node_name: 'Zlib', edge_name: 'native_to_javascript' },
|
|
]);
|
|
// No entry for memory because zlib memory is initialized lazily.
|
|
const withMemory = validateByRetainingPathFromNodes(streams, 'Node / ZlibStream', [
|
|
{ node_name: 'Node / zlib_memory', edge_name: 'zlib_memory' },
|
|
], true);
|
|
assert.strictEqual(withMemory.length, 0);
|
|
}
|
|
|
|
// After zlib stream is written, zlib_memory should be created.
|
|
gzip.write('hello world', common.mustCall(() => {
|
|
validateByRetainingPath('Node / ZlibStream', [
|
|
{ node_name: 'Node / zlib_memory', edge_name: 'zlib_memory' },
|
|
]);
|
|
}));
|