]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] gh-136394: Fix race condition in test_zstd (GH-136432) (GH-136506)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Thu, 10 Jul 2025 13:13:34 +0000 (15:13 +0200)
committerGitHub <noreply@github.com>
Thu, 10 Jul 2025 13:13:34 +0000 (09:13 -0400)
gh-136394: Fix race condition in test_zstd (GH-136432)
(cherry picked from commit f519918ec6c125715d4efc9713ba80e83346e466)

Co-authored-by: Rogdham <3994389+Rogdham@users.noreply.github.com>
Lib/test/test_zstd.py

index e83caaf4c07b13d95f4817537c82a2e03c3cf007..cf618534add387cccda5f2b9aa5f063ed91f5417 100644 (file)
@@ -2674,8 +2674,12 @@ class FreeThreadingMethodTests(unittest.TestCase):
         input = b'a'* (16*_1K)
         num_threads = 8
 
+        # gh-136394: the first output of .compress() includes the frame header
+        # we run the first .compress() call outside of the threaded portion
+        # to make the test order-independent
+
         comp = ZstdCompressor()
-        parts = []
+        parts = [comp.compress(input, ZstdCompressor.FLUSH_BLOCK)]
         for _ in range(num_threads):
             res = comp.compress(input, ZstdCompressor.FLUSH_BLOCK)
             if res:
@@ -2684,7 +2688,7 @@ class FreeThreadingMethodTests(unittest.TestCase):
         expected = b''.join(parts) + rest1
 
         comp = ZstdCompressor()
-        output = []
+        output = [comp.compress(input, ZstdCompressor.FLUSH_BLOCK)]
         def run_method(method, input_data, output_data):
             res = method(input_data, ZstdCompressor.FLUSH_BLOCK)
             if res: