1'use strict';
2// Flags: --expose-gc
3
4const common = require('../common');
5
6// On IBMi, the rss memory always returns zero
7if (common.isIBMi)
8  common.skip('On IBMi, the rss memory always returns zero');
9
10const v8 = require('v8');
11
12const before = process.memoryUsage.rss();
13
14for (let i = 0; i < 1000000; i++) {
15  v8.serialize('');
16}
17
18async function main() {
19  await common.gcUntil('RSS should go down', () => {
20    const after = process.memoryUsage.rss();
21    if (process.config.variables.asan) {
22      console.log(`asan: before=${before} after=${after}`);
23      return after < before * 10;
24    } else if (process.config.variables.node_builtin_modules_path) {
25      console.log(`node_builtin_modules_path: before=${before} after=${after}`);
26      return after < before * 10;
27    }
28    console.log(`before=${before} after=${after}`);
29    return after < before * 10;
30  });
31}
32
33main();
34