vpp/test/asf/debug_internal.py
Pratikshya Prasai 657bdf781a tests: initial asf framework refactoring for 'make test'
Type: refactor

Change-Id: I41455b759a5d302ad5c4247c13634c471e7d49a8
Signed-off-by: Pratikshya Prasai <pratikshyaprasai2112@gmail.com>
Signed-off-by: Saima Yunus <yunus.saima.234@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
2022-11-09 21:22:33 -05:00

41 lines
1.0 KiB
Python

import gc
import pprint
import vpp_papi
from vpp_papi_provider import VppPapiProvider
import objgraph
from pympler import tracker
tr = tracker.SummaryTracker()
"""
Internal debug module
The module provides functions for debugging test framework
"""
def on_tear_down_class(cls):
gc.collect()
tr.print_diff()
objects = gc.get_objects()
counter = 0
with open(cls.tempdir + "/python_objects.txt", "w") as f:
interesting = [
o for o in objects if isinstance(o, (VppPapiProvider, vpp_papi.VPP))
]
del objects
gc.collect()
for o in interesting:
objgraph.show_backrefs(
[o], max_depth=5, filename="%s/%s.png" % (cls.tempdir, counter)
)
counter += 1
refs = gc.get_referrers(o)
pp = pprint.PrettyPrinter(indent=2)
f.write("%s\n" % pp.pformat(o))
for r in refs:
try:
f.write("%s\n" % pp.pformat(r))
except:
f.write("%s\n" % type(r))