diff core/tests/Drupal/Tests/BrowserHtmlDebugTrait.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents a9cd425dd02b
children
line wrap: on
line diff
--- a/core/tests/Drupal/Tests/BrowserHtmlDebugTrait.php	Thu Feb 28 13:11:55 2019 +0000
+++ b/core/tests/Drupal/Tests/BrowserHtmlDebugTrait.php	Thu May 09 15:34:47 2019 +0100
@@ -136,9 +136,12 @@
       $this->htmlOutputClassName = str_replace("\\", "_", get_called_class());
       $this->htmlOutputDirectory = DRUPAL_ROOT . '/sites/simpletest/browser_output';
       // Do not use the file_system service so this method can be called before
-      // it is available.
-      if (!is_dir($this->htmlOutputDirectory)) {
-        mkdir($this->htmlOutputDirectory, 0775, TRUE);
+      // it is available. Checks !is_dir() twice around mkdir() because a
+      // concurrent test might have made the directory and caused mkdir() to
+      // fail. In this case we can still use the directory even though we failed
+      // to make it.
+      if (!is_dir($this->htmlOutputDirectory) && !mkdir($this->htmlOutputDirectory, 0775, TRUE) && !is_dir($this->htmlOutputDirectory)) {
+        throw new \RuntimeException(sprintf('Unable to create directory: %s', $this->htmlOutputDirectory));
       }
       if (!file_exists($this->htmlOutputDirectory . '/.htaccess')) {
         file_put_contents($this->htmlOutputDirectory . '/.htaccess', "<IfModule mod_expires.c>\nExpiresActive Off\n</IfModule>\n");