1# Test the SBAPI for GetStatistics() 2 3import json 4import lldb 5from lldbsuite.test.decorators import * 6from lldbsuite.test.lldbtest import * 7from lldbsuite.test import lldbutil 8 9 10class TestStatsAPI(TestBase): 11 mydir = TestBase.compute_mydir(__file__) 12 13 def test_stats_api(self): 14 self.build() 15 exe = self.getBuildArtifact("a.out") 16 target = self.dbg.CreateTarget(exe) 17 18 # Test enabling/disabling stats 19 self.assertFalse(target.GetCollectingStats()) 20 target.SetCollectingStats(True) 21 self.assertTrue(target.GetCollectingStats()) 22 target.SetCollectingStats(False) 23 self.assertFalse(target.GetCollectingStats()) 24 25 # Test the function to get the statistics in JSON'ish. 26 stats = target.GetStatistics() 27 stream = lldb.SBStream() 28 res = stats.GetAsJSON(stream) 29 stats_json = sorted(json.loads(stream.GetData())) 30 self.assertEqual(len(stats_json), 4) 31 self.assertTrue("Number of expr evaluation failures" in stats_json) 32 self.assertTrue("Number of expr evaluation successes" in stats_json) 33 self.assertTrue("Number of frame var failures" in stats_json) 34 self.assertTrue("Number of frame var successes" in stats_json) 35