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]. |