Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1094)

Unified Diff: third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux.py

Issue 2141093006: In Linux Port, make a dummy HOME directory for running tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix test and add expand comments. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux.py
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux.py
index beed25906b46949746f847f4716d56a6c0b76d23..bf984b2f09016025f3cffcb07383ba7c72083663 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux.py
@@ -27,10 +27,9 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import logging
+import os
-from webkitpy.common.webkit_finder import WebKitFinder
from webkitpy.layout_tests.breakpad.dump_reader_multipart import DumpReaderLinux
-from webkitpy.layout_tests.models import test_run_results
from webkitpy.layout_tests.port import base
from webkitpy.layout_tests.port import win
@@ -68,6 +67,9 @@ class LinuxPort(base.Port):
if not self.get_option('disable_breakpad'):
self._dump_reader = DumpReaderLinux(host, self._build_path())
+ self._original_home = os.environ['HOME']
+ self._dummy_home = None
+
def additional_driver_flag(self):
flags = super(LinuxPort, self).additional_driver_flag()
if not self.get_option('disable_breakpad'):
@@ -104,10 +106,45 @@ class LinuxPort(base.Port):
_log.error("Could not find apache. Not installed or unknown path.")
return None
+ def setup_test_run(self):
+ super(LinuxPort, self).setup_test_run()
+ self._setup_dummy_home_dir()
+
+ def clean_up_test_run(self):
+ super(LinuxPort, self).clean_up_test_run()
+ self._clean_up_dummy_home_dir()
+
#
# PROTECTED METHODS
#
+ def _setup_dummy_home_dir(self):
+ """Creates a dummy home directory for running the test.
+
+ This is a workaround for crbug.com/595504; see crbug.com/612730.
+ If crbug.com/612730 is resolved in another way, then this may be
+ unnecessary.
+ """
+ dummy_home = str(self._filesystem.mkdtemp())
+ os.environ['HOME'] = dummy_home
+ self._copy_files_to_dummy_home_dir(dummy_home)
+
+ def _copy_files_to_dummy_home_dir(self, dummy_home):
+ # Note: This may be unnecessary.
+ fs = self._filesystem
+ for filename in ['.Xauthority']:
+ original_path = fs.join(self._original_home, filename)
+ if not fs.exists(original_path):
+ continue
+ fs.copyfile(original_path, fs.join(dummy_home, filename))
+
+ def _clean_up_dummy_home_dir(self):
+ """Cleans up the dummy dir and resets the HOME environment variable."""
+ dummy_home = os.environ['HOME']
+ assert dummy_home != self._original_home
+ self._filesystem.rmtree(dummy_home)
+ os.environ['HOME'] = self._original_home
+
def _check_apache_install(self):
result = self._check_file_exists(self.path_to_apache(), "apache2")
result = self._check_file_exists(self.path_to_apache_config_file(), "apache2 config file") and result
« no previous file with comments | « no previous file | third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698