run-webkit-tests --leaks is broken because IOSSimulatorPort does not define an is_snowleopard attribute: $ ./Tools/Scripts/run-webkit-tests --release --ios-simulator --results-directory /tmp/layout-test-results-adhoc-test --leaks [...] Process worker/22: Traceback (most recent call last): File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap worker/22: AttributeError(''IOSSimulatorPort' object has no attribute 'is_snowleopard'') raised: File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/common/message_pool.py", line 255, in run worker.handle(message.name, message.src, *message.args) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 256, in handle self._run_test(test_input, test_list_name) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 280, in _run_test result = self._run_test_with_or_without_timeout(test_input, test_timeout_sec, stop_when_done) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 323, in _run_test_with_or_without_timeout return self._run_test_in_this_thread(test_input, stop_when_done) self.run() File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 404, in _run_test_in_this_thread return self._run_single_test(self._driver, test_input, stop_when_done) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/common/message_pool.py", line 271, in run File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 408, in _run_single_test self._name, driver, test_input, stop_when_done) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py", line 46, in run_single_test return runner.run() worker.stop() File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py", line 102, in run File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 293, in stop self._kill_driver() File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py", line 318, in _kill_driver return self._run_reftest() File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py", line 291, in _run_reftest driver.stop() File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/driver.py", line 635, in stop test_output = self._driver.run_test(self._driver_input(), self._stop_when_done) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/driver.py", line 629, in run_test self._driver.stop() return self._driver.run_test(driver_input, stop_when_done) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/driver.py", line 203, in run_test File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/driver.py", line 347, in stop out, err = self._server_process.stop(self._port.driver_stop_timeout() if stop_when_done else 0.0) self._server_process.stop(self._port.driver_stop_timeout()) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/server_process.py", line 337, in stop File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/server_process.py", line 337, in stop self._port.check_for_leaks(self.name(), self.pid()) self._port.check_for_leaks(self.name(), self.pid()) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/ios.py", line 257, in check_for_leaks File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/ios.py", line 257, in check_for_leaks self._leak_detector.check_for_leaks(process_name, process_pid) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/leakdetector.py", line 133, in check_for_leaks leaks_output = self._port._run_script("run-leaks", self._leaks_args(process_pid), include_configuration_arguments=False, decode_output=False) self._leak_detector.check_for_leaks(process_name, process_pid) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/leakdetector.py", line 80, in _leaks_args for callstack in self._callstacks_to_exclude_from_leaks(): File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/leakdetector.py", line 133, in check_for_leaks File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/leakdetector.py", line 60, in _callstacks_to_exclude_from_leaks if self._port.is_snowleopard(): leaks_output = self._port._run_script("run-leaks", self._leaks_args(process_pid)AttributeError: 'IOSSimulatorPort' object has no attribute 'is_snowleopard' , include_configuration_arguments=False, decode_output=False) File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/leakdetector.py", line 80, in _leaks_args for callstack in self._callstacks_to_exclude_from_leaks(): File "/Volumes/Data/WebKit.git/Tools/Scripts/webkitpy/port/leakdetector.py", line 60, in _callstacks_to_exclude_from_leaks if self._port.is_snowleopard(): Exception AttributeError: AttributeError("'IOSSimulatorPort' object has no attribute 'is_snowleopard'",) in <bound method IOSSimulatorDriver.__del__ of <webkitpy.port.driver.IOSSimulatorDriver object at 0x10a5ddd10>> ignored
<rdar://problem/19917423>
Created attachment 247089 [details] Patch v1
Interestingly, even after this fix, run-webkit-tests --ios-simulator is checking leaks on the LayouTestRelay process, not the DumpRenderTree.app process, and MallocStackLogging=1 is not being set when launching DumpRenderTree.app. So there is more work to do here.
(In reply to comment #3) > Interestingly, even after this fix, run-webkit-tests --ios-simulator is > checking leaks on the LayouTestRelay process, not the DumpRenderTree.app > process, and MallocStackLogging=1 is not being set when launching > DumpRenderTree.app. > > So there is more work to do here. Will do the follow-up work in another bug.
Comment on attachment 247089 [details] Patch v1 Clearing flags on attachment: 247089 Committed r180509: <http://trac.webkit.org/changeset/180509>
All reviewed patches have been landed. Closing bug.