Skip to content

Commit 080d2c8

Browse files
fixup! Improve tests
1 parent c0d937f commit 080d2c8

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

Lib/test/test_profiling/test_sampling_profiler/test_collectors.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1444,6 +1444,36 @@ def test_diff_flamegraph_empty_current(self):
14441444
self.assertIn("name", data)
14451445
self.assertEqual(data["value"], 0)
14461446

1447+
def test_diff_flamegraph_empty_baseline(self):
1448+
"""Empty baseline with non-empty current uses scale=1.0 fallback."""
1449+
diff = make_diff_collector_with_mock_baseline([])
1450+
diff.collect([
1451+
MockInterpreterInfo(0, [
1452+
MockThreadInfo(1, [
1453+
MockFrameInfo("file.py", 10, "func1"),
1454+
MockFrameInfo("file.py", 20, "func2"),
1455+
])
1456+
])
1457+
])
1458+
1459+
data = diff._convert_to_flamegraph_format()
1460+
strings = data.get("strings", [])
1461+
1462+
self.assertTrue(data["stats"]["is_differential"])
1463+
self.assertEqual(data["stats"]["baseline_samples"], 0)
1464+
self.assertEqual(data["stats"]["current_samples"], 1)
1465+
self.assertAlmostEqual(data["stats"]["baseline_scale"], 1.0)
1466+
self.assertEqual(data["stats"]["elided_count"], 0)
1467+
1468+
children = data.get("children", [])
1469+
self.assertEqual(len(children), 1)
1470+
child = children[0]
1471+
self.assertIn("func1", resolve_name(child, strings))
1472+
self.assertEqual(child["self_time"], 1)
1473+
self.assertAlmostEqual(child["baseline"], 0.0)
1474+
self.assertAlmostEqual(child["diff"], 1.0)
1475+
self.assertAlmostEqual(child["diff_pct"], 100.0)
1476+
14471477
def test_diff_flamegraph_export(self):
14481478
"""DiffFlamegraphCollector export produces differential HTML."""
14491479
test_frames = [

0 commit comments

Comments
 (0)