Add a pid parameter to CrashLogs.find_newest_log
authoraroben@apple.com <aroben@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 Dec 2011 20:04:25 +0000 (20:04 +0000)
committeraroben@apple.com <aroben@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 6 Dec 2011 20:04:25 +0000 (20:04 +0000)
commit8d2bd345f397df8cd4fe47320e5a23535502def5
treea7698dbbcd14ad8c85134138f250e5b1537d9bdf
parentf1d5ead885eb58fd69edb37b7bddaf73489c7277
Add a pid parameter to CrashLogs.find_newest_log

When a PID is passed, only crash logs corresponding to a crashed process with that PID are
considered.

Fixes <http://webkit.org/b/73942> webkitpy provides no way to specify the PID of the crashed
process whose crash log you want to find

Reviewed by Dirk Pranke.

* Scripts/webkitpy/common/system/crashlogs.py:
(CrashLogs.find_newest_log): Added an optional pid parameter.
(CrashLogs._find_newest_log_darwin): Added a pid parameter. When specified, we look at each
candidate log's app_description extended attribute to see if that log corresponds to a
crashed process with the specified PID.

* Scripts/webkitpy/common/system/crashlogs_unittest.py:
(CrashLogsTest.test_find_newest_log_darwin): Added a few more mock crash logs with various
contents and PIDs. Added tests that show that the pid parameter to find_newest_log is
respected. Also fixed an erroneous use of assertTrue instead of assertEqual.

* Scripts/webkitpy/common/system/filesystem.py:
(FileSystem.getxattr): Added. On Darwin, calls through to the xattr module. On other
systems, raises a KeyError, mimicking the behavior on Darwin when the given attribute isn't
present.

* Scripts/webkitpy/common/system/filesystem_mock.py:
(MockFileSystem.__init__): Added an optional xattrs parameter. Documented other parameters.
(MockFileSystem.getxattr): Added. Just pulls the given attribute out of the xattrs
dictionary.

* Scripts/webkitpy/tool/commands/queries.py:
(CrashLog): Added help text. Added an optional PID parameter.
(CrashLog.execute): Pass the PID, if any, through to find_newest_log.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@102163 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tools/ChangeLog
Tools/Scripts/webkitpy/common/system/crashlogs.py
Tools/Scripts/webkitpy/common/system/crashlogs_unittest.py
Tools/Scripts/webkitpy/common/system/filesystem.py
Tools/Scripts/webkitpy/common/system/filesystem_mock.py
Tools/Scripts/webkitpy/tool/commands/queries.py