Title: [247642] trunk/Tools
Revision
247642
Author
clo...@igalia.com
Date
2019-07-19 02:56:43 -0700 (Fri, 19 Jul 2019)

Log Message

[GTK][WPE] run-webkit-tests should run with a temporal homedir
https://bugs.webkit.org/show_bug.cgi?id=199738

Reviewed by Michael Catanzaro.

Run the tests with an empty homedir that is created inside the driver tmpdir.
The driver tmpdir is a random directory created for each test runner that is purged after the run.

This is done to ensure that the test results are not affected by the user settings of any library.

* Scripts/webkitpy/port/driver.py:
(Driver._setup_environ_for_driver):
* Scripts/webkitpy/port/driver_unittest.py:
(DriverTest.test_setup_environ_base_vars):
(DriverTest):
(DriverTest.test_create_temporal_home_dir):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (247641 => 247642)


--- trunk/Tools/ChangeLog	2019-07-19 09:11:35 UTC (rev 247641)
+++ trunk/Tools/ChangeLog	2019-07-19 09:56:43 UTC (rev 247642)
@@ -1,3 +1,22 @@
+2019-07-19  Carlos Alberto Lopez Perez  <clo...@igalia.com>
+
+        [GTK][WPE] run-webkit-tests should run with a temporal homedir
+        https://bugs.webkit.org/show_bug.cgi?id=199738
+
+        Reviewed by Michael Catanzaro.
+
+        Run the tests with an empty homedir that is created inside the driver tmpdir.
+        The driver tmpdir is a random directory created for each test runner that is purged after the run.
+
+        This is done to ensure that the test results are not affected by the user settings of any library.
+
+        * Scripts/webkitpy/port/driver.py:
+        (Driver._setup_environ_for_driver):
+        * Scripts/webkitpy/port/driver_unittest.py:
+        (DriverTest.test_setup_environ_base_vars):
+        (DriverTest):
+        (DriverTest.test_create_temporal_home_dir):
+
 2019-07-19  Carlos Garcia Campos  <cgar...@igalia.com>
 
         Remove pywebsockets from thirdparty

Modified: trunk/Tools/Scripts/webkitpy/port/driver.py (247641 => 247642)


--- trunk/Tools/Scripts/webkitpy/port/driver.py	2019-07-19 09:11:35 UTC (rev 247641)
+++ trunk/Tools/Scripts/webkitpy/port/driver.py	2019-07-19 09:56:43 UTC (rev 247642)
@@ -437,6 +437,10 @@
             # Each worker should have it's own and it should be cleaned afterwards.
             # Set it to inside the temporary folder by prepending XDG_CACHE_HOME with DRIVER_TEMPDIR.
             environment['XDG_CACHE_HOME'] = self._port.host.filesystem.join(str(self._driver_tempdir), 'appcache')
+            # Use an empty/volatile home inside DRIVER_TEMPDIR to ensure that the test results
+            # are not affected by the user settings of any library.
+            environment['HOME'] = self._port.host.filesystem.join(str(self._driver_tempdir), 'home')
+            self._target_host.filesystem.maybe_make_directory(environment['HOME'])
 
         if self._profiler:
             environment = self._profiler.adjusted_environment(environment)

Modified: trunk/Tools/Scripts/webkitpy/port/driver_unittest.py (247641 => 247642)


--- trunk/Tools/Scripts/webkitpy/port/driver_unittest.py	2019-07-19 09:11:35 UTC (rev 247641)
+++ trunk/Tools/Scripts/webkitpy/port/driver_unittest.py	2019-07-19 09:56:43 UTC (rev 247642)
@@ -357,8 +357,7 @@
     def test_setup_environ_base_vars(self):
         # This are essential environment variables that should be copied
         # as part of base:setup_environ_for_server for all drivers
-        environ_keep_yes = {'HOME': '/home/igalia',
-                           'PATH': '/bin:/usr/sbin:/usr/bin',
+        environ_keep_yes = {'PATH': '/bin:/usr/sbin:/usr/bin',
                            'WEBKIT_TESTFONTS': '/opt/webkit/WebKitBuild/WKTestFonts',
                            'WEBKIT_OUTPUTDIR': '/opt/webkit/WebKitBuild/Release',
                            'LANG': 'en_US.utf8'}
@@ -379,3 +378,16 @@
             for var in environ_keep_yes.keys():
                     self.assertIn(var, environment_driver_test)
                     self.assertEqual(environment_driver_test[var], environ_keep_yes[var])
+
+    def test_create_temporal_home_dir(self):
+        environ_user = {'HOME': '/home/igalia'}
+        with patch('os.environ', environ_user), patch('sys.platform', 'linux2'):
+            port = self.make_port()
+            port._test_runner_process_constructor = MockServerProcess
+            driver = Driver(port, None, pixel_tests=False)
+            driver.start(True, [])
+            environ_driver = driver._setup_environ_for_test()
+            self.assertNotEquals(environ_driver['HOME'], environ_user['HOME'])
+            self.assertIn(str(driver._driver_tempdir), environ_driver['HOME'])
+            self.assertNotIn(str(driver._driver_tempdir), environ_user['HOME'])
+            self.assertTrue(port._filesystem.isdir(environ_driver['HOME']))
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to