| 46 | | I'm running my development environment in a schroot with Ubuntu in an |
| 47 | | Ubuntu host. |
| 48 | | |
| 49 | | It hapenned to me the following error when trying to run the tests |
| 50 | | |
| 51 | | {{{ |
| 52 | | $ ./Tools/Scripts/run-webkit-tests --gtk --debug |
| 53 | | Using port 'gtk' |
| 54 | | Test configuration: <, x86, debug> |
| 55 | | Placing test results in /opt/webkit/WebKit.git/WebKitBuild/Debug/layout-test-results |
| 56 | | Baseline search path: gtk -> generic |
| 57 | | Using Debug build |
| 58 | | Pixel tests disabled |
| 59 | | Regular timeout: 12000, slow test timeout: 60000 |
| 60 | | Command line: /opt/webkit/WebKit.git/WebKitBuild/Debug/Programs/DumpRenderTree - |
| 61 | | |
| 62 | | Found 31495 tests; running 28693, skipping 2802. |
| 63 | | Running 4 DumpRenderTrees in parallel over 727 shards (1 locked). |
| 64 | | |
| 65 | | Releasing server lock ... |
| 66 | | OSError raised: [Errno 38] Function not implemented |
| 67 | | File "/opt/webkit/WebKit.git/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 110, in run |
| 68 | | unexpected_result_count = manager.run(args) |
| 69 | | File "/opt/webkit/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 411, in run |
| 70 | | self._run_tests(self._test_names, result_summary, int(self._options.child_processes)) |
| 71 | | File "/opt/webkit/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py", line 464, in _run_tests |
| 72 | | return self._runner.run_tests(test_inputs, self._expectations, result_summary, num_workers, needs_http, needs_websockets, self._retrying) |
| 73 | | File "/opt/webkit/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 141, in run_tests |
| 74 | | with message_pool.get(self, self._worker_factory, num_workers, self._port.worker_startup_delay_secs(), self._port.host) as pool: |
| 75 | | File "/opt/webkit/WebKit.git/Tools/Scripts/webkitpy/common/message_pool.py", line 61, in get |
| 76 | | return _MessagePool(caller, worker_factory, num_workers, worker_startup_delay_secs, host) |
| 77 | | File "/opt/webkit/WebKit.git/Tools/Scripts/webkitpy/common/message_pool.py", line 79, in __init__ |
| 78 | | self._messages_to_worker = multiprocessing.Queue() |
| 79 | | File "/usr/lib/python2.7/multiprocessing/__init__.py", line 218, in Queue |
| 80 | | return Queue(maxsize) |
| 81 | | File "/usr/lib/python2.7/multiprocessing/queues.py", line 63, in __init__ |
| 82 | | self._rlock = Lock() |
| 83 | | File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 147, in __init__ |
| 84 | | SemLock.__init__(self, SEMAPHORE, 1, 1) |
| 85 | | File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 75, in __init__ |
| 86 | | sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue) |
| 87 | | Failed to execute Tools/Scripts/new-run-webkit-tests at ./Tools/Scripts/run-webkit-tests line 126. |
| 88 | | }}} |
| 89 | | |
| 90 | | The reason is explained in this post |
| 91 | | http://www.boris.co/2012/02/server-ubuntu-11.html |
| 92 | | |
| 93 | | Python's _multithreading requires /dev/shm to work. In Ubuntu /dev/shm |
| 94 | | points to /run/shm by default. Rename (or delete, I doubt it is |
| 95 | | necessary anymore) existing /dev/shm. |
| 96 | | |
| 97 | | Create /dev/shm directory |
| 98 | | |
| 99 | | {{{ |
| 100 | | $ sudo -i (become root) |
| 101 | | $ mkdir /dev/shm |
| 102 | | }}} |
| 103 | | |
| 104 | | Add to /etc/fstab mounting of /dev/shm command |
| 105 | | |
| 106 | | {{{ |
| 107 | | tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0 |
| 108 | | }}} |
| 109 | | |
| 110 | | Mount all unmounted filesystems from /etc/fstab. |
| 111 | | |
| 112 | | {{{ |
| 113 | | $ mount -a |
| 114 | | }}} |
| 115 | | |
| 116 | | You may need to do this into your schroot too. |
| | 46 | There are some instructions to avoid common problems derived from having a [wiki:WebKitGTK/Chroot#Runningpythonbasedtestwithmultiprocesssupport chroot based working environment]. |