summaryrefslogtreecommitdiffstats
path: root/devtools/shared/heapsnapshot/tests/xpcshell/test_HeapSnapshot_takeCensus_03.js
blob: 06c574d4e0be9fc9d5f3407638d5e006a8c12da4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";

// HeapSnapshot.prototype.takeCensus behaves plausibly as we add and remove
// debuggees.
//
// Ported from js/src/jit-test/tests/debug/Memory-takeCensus-03.js

function run_test() {
  const dbg = new Debugger();

  const census0 = saveHeapSnapshotAndTakeCensus(dbg);
  Census.walkCensus(census0, "census0", Census.assertAllZeros);

  const g1 = newGlobal();
  dbg.addDebuggee(g1);
  const census1 = saveHeapSnapshotAndTakeCensus(dbg);
  Census.walkCensus(census1, "census1", Census.assertAllNotLessThan(census0));

  const g2 = newGlobal();
  dbg.addDebuggee(g2);
  const census2 = saveHeapSnapshotAndTakeCensus(dbg);
  Census.walkCensus(census2, "census2", Census.assertAllNotLessThan(census1));

  dbg.removeDebuggee(g2);
  const census3 = saveHeapSnapshotAndTakeCensus(dbg);
  Census.walkCensus(census3, "census3", Census.assertAllEqual(census1));

  dbg.removeDebuggee(g1);
  const census4 = saveHeapSnapshotAndTakeCensus(dbg);
  Census.walkCensus(census4, "census4", Census.assertAllEqual(census0));

  do_test_finished();
}