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