summaryrefslogtreecommitdiffstats
path: root/js/src/devtools/rootAnalysis/t/suppression/test.py
blob: 118ae422ab3e8c4fb1cff101c67d10570d809d4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# flake8: noqa: F821
test.compile("source.cpp")
test.run_analysis_script("gcTypes", upto="gcFunctions")

# The suppressions file uses mangled names.
info = test.load_funcInfo()
suppressed = [f for f, v in info.items() if v.get("limits", 0) | 1]

# Only one of these is fully suppressed (ie, *always* called within the scope
# of an AutoSuppressGC).
assert len(list(filter(lambda f: "suppressedFunction" in f, suppressed))) == 1
assert len(list(filter(lambda f: "halfSuppressedFunction" in f, suppressed))) == 0
assert len(list(filter(lambda f: "unsuppressedFunction" in f, suppressed))) == 0

# gcFunctions should be the inverse, but we get to rely on unmangled names here.
gcFunctions = test.load_gcFunctions()
assert "void GC()" in gcFunctions
assert "void suppressedFunction()" not in gcFunctions
assert "void halfSuppressedFunction()" in gcFunctions
assert "void unsuppressedFunction()" in gcFunctions
assert "void f()" in gcFunctions