Skip to content

Commit 497bc98

Browse files
committed
test
1 parent a9449af commit 497bc98

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

Lib/test/test_profiling/test_sampling_profiler/test_binary_format.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -932,6 +932,29 @@ def test_writer_total_samples_after_finalize_matches_reader(self):
932932
self.assertEqual(writer_collector.total_samples, len(samples))
933933
self.assertEqual(writer_collector.total_samples, replayed)
934934

935+
def test_rle_buffer_flushes_before_finalize(self):
936+
"""RLE buffer flushes before the writer is destroyed during finalize()."""
937+
with tempfile.NamedTemporaryFile(suffix=".bin", delete=False) as f:
938+
filename = f.name
939+
self.temp_files.append(filename)
940+
941+
frame = make_frame("rle_boundary.py", 1, "hot")
942+
sample = [make_interpreter(0, [make_thread(1, [frame])])]
943+
944+
writer = _remote_debugging.BinaryWriter(filename, 1000, 0, compression=0)
945+
for i in range(10_000):
946+
writer.write_sample(sample, i * 1000)
947+
self.assertGreater(writer.get_stats()["repeat_records"], 0)
948+
949+
writer.finalize()
950+
951+
reader_collector = RawCollector()
952+
with BinaryReader(filename) as reader:
953+
replayed = reader.replay_samples(reader_collector)
954+
955+
self.assertEqual(replayed, 10_000)
956+
self.assertEqual(writer.total_samples, 10_000)
957+
935958
def test_writer_total_samples_after_context_manager_matches_reader(self):
936959
"""total_samples after `with BinaryWriter(...)` matches the reader's count.
937960

0 commit comments

Comments
 (0)