def test_random_entries(self): import random snap = ProgSnapshot(test1_str) test_obj = json.loads(test1_str) random.shuffle(test_obj["traceEvents"]) snap2 = ProgSnapshot(json.dumps(test_obj)) self.assertTrue(list(snap.get_trees())[0].is_same(list(snap2.get_trees())[0]))
def test_basic(self): snap = ProgSnapshot(test1_str) tree_len = len(list(snap.get_trees())) self.assertEqual(tree_len, 1) tree = next(snap.get_trees()) count = 0 for _ in tree.inorder_traverse(): count += 1 self.assertEqual(count, 12)
def test_multiple_process(self): data = '{"traceEvents": [{"pid":7762,"tid":7761,"ts":23668655766.343,"dur":5.8,"name":"builtins.exec","caller_lineno":147,"ph":"X","cat":"FEE"}, {"pid":7761,"tid":7761,"ts":23668655766.343,"dur":5.8,"name":"builtins.exec","caller_lineno":147,"ph":"X","cat":"FEE"}], "viztracer_metadata": {"version": "0.6.2"}}' snap = ProgSnapshot(data) self.assertEqual(len(list(snap.get_trees())), 2) # Coverage test _ = snap.list_pid()
def test_change_parent(self): data = '{"traceEvents": [{"pid":7762,"tid":7761,"ts":0,"dur":100,"name":"grandpa","caller_lineno":147,"ph":"X","cat":"FEE"}, {"pid":7762,"tid":7761,"ts":50,"dur":10,"name":"grandson","caller_lineno":147,"ph":"X","cat":"FEE"}, {"pid":7762,"tid":7761,"ts":10,"dur":80,"name":"son","caller_lineno":147,"ph":"X","cat":"FEE"}], "viztracer_metadata": {"version": "0.6.2"}}' snap = ProgSnapshot(data) tree = next(snap.get_trees()) for node in tree.inorder_traverse(): if node.parent: self.assertIn(node, node.parent.children)