From fc77080d8a70977e3cc4ce36f26356bc3a27773f Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Sun, 20 Feb 2022 10:09:00 +0000
Subject: [PATCH] Issue #3221507 by mxr576: mkdir can fail in
 Drupal\TestTools\PhpUnitCompatibility\PhpUnit8::flushAlteredCodeToFile()
 because of a race condition

---
 .../Drupal/TestTools/PhpUnitCompatibility/ClassWriter.php     | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/core/tests/Drupal/TestTools/PhpUnitCompatibility/ClassWriter.php b/core/tests/Drupal/TestTools/PhpUnitCompatibility/ClassWriter.php
index 5870de06ab8d..4b3f9cf92632 100644
--- a/core/tests/Drupal/TestTools/PhpUnitCompatibility/ClassWriter.php
+++ b/core/tests/Drupal/TestTools/PhpUnitCompatibility/ClassWriter.php
@@ -104,8 +104,8 @@ private static function flushAlteredCodeToFile(string $file_name, string $altere
     // Only write when necessary.
     if (!file_exists($full_path) || md5_file($full_path) !== md5($altered_code)) {
       // Create directory when necessary.
-      if (!file_exists($directory)) {
-        mkdir($directory, 0777, TRUE);
+      if (!is_dir($directory) && !@mkdir($directory, 0777, TRUE) && !is_dir($directory)) {
+        throw new \RuntimeException('Unable to create directory: ' . $directory);
       }
       file_put_contents($full_path, $altered_code);
     }
-- 
GitLab