# RUN: python %s import unittest, logging, sys, copy, tempfile, io from lnt.testing.profile.profilev1impl import ProfileV1 from lnt.testing.profile.profile import Profile logging.basicConfig(level=logging.DEBUG) class ProfileV1Test(unittest.TestCase): def setUp(self): self.test_data = { 'counters': {'cycles': 12345.0, 'branch-misses': 200.0}, 'disassembly-format': 'raw', 'functions': { 'fn1': { 'counters': {'cycles': 45.0, 'branch-misses': 10.0}, 'data': [ [{}, 0x100000, 'add r0, r0, r0'], [{'cycles': 100.0}, 0x100004, 'sub r1, r0, r0'] ] } } } def test_serialize(self): p = ProfileV1(copy.deepcopy(self.test_data)) with tempfile.NamedTemporaryFile() as f: s = p.serialize(f.name) self.assertTrue(ProfileV1.checkFile(f.name)) def test_deserialize(self): p = ProfileV1(copy.deepcopy(self.test_data)) s = p.serialize() fobj = io.BytesIO(s) p2 = ProfileV1.deserialize(fobj) self.assertEqual(p2.data, self.test_data) def test_getFunctions(self): p = ProfileV1(copy.deepcopy(self.test_data)) self.assertEqual(p.getFunctions(), {'fn1': {'counters': {'cycles': 45.0, 'branch-misses': 10.0}, 'length': 2}}) def test_saveFromRendered(self): p = ProfileV1(copy.deepcopy(self.test_data)) s = Profile(p).render() with tempfile.NamedTemporaryFile() as f: Profile.saveFromRendered(s, filename=f.name) p2 = ProfileV1.deserialize(open(f.name)) self.assertEqual(p2.data, self.test_data) if __name__ == '__main__': unittest.main(argv=[sys.argv[0], ])