# Test the SBAPI for GetStatistics() import json import lldb from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil class TestStatsAPI(TestBase): mydir = TestBase.compute_mydir(__file__) def test_stats_api(self): self.build() exe = self.getBuildArtifact("a.out") target = self.dbg.CreateTarget(exe) # Test enabling/disabling stats self.assertFalse(target.GetCollectingStats()) target.SetCollectingStats(True) self.assertTrue(target.GetCollectingStats()) target.SetCollectingStats(False) self.assertFalse(target.GetCollectingStats()) # Test the function to get the statistics in JSON'ish. stats = target.GetStatistics() stream = lldb.SBStream() res = stats.GetAsJSON(stream) stats_json = sorted(json.loads(stream.GetData())) self.assertEqual(len(stats_json), 4) self.assertTrue("Number of expr evaluation failures" in stats_json) self.assertTrue("Number of expr evaluation successes" in stats_json) self.assertTrue("Number of frame var failures" in stats_json) self.assertTrue("Number of frame var successes" in stats_json)