aboutsummaryrefslogtreecommitdiffstats
path: root/ddms/libs
Commit message (Collapse)AuthorAgeFilesLines
* Enable FileListingService to properly traverse symlinks-to-directoriesOmari Stephens2012-08-231-8/+68
| | | | | Bug: 7048633 Change-Id: I85d4780286a663ab75555049f21b7215e45870d0
* Merge "Expose owner and group of FileEntry."Brian Carlstrom2012-08-231-0/+14
|\
| * Expose owner and group of FileEntry.Tsu Chiang Chuang2012-08-141-0/+14
| | | | | | | | Change-Id: Ib072508c9e00f5ac227bda89b943e217292d9640
* | junit: Rework support for parallel junit launch.Siva Velusamy2012-08-174-58/+8
|/ | | | | | | | | | | | | | | | | | | A previous commit (2c57cbea0d663b) introduced support for running Junit tests concurrently on all connected devices. It relied on changing the TestIdentifier to store device information, and having a single listener that listens to test events from all devices. The change to TestIdentifier caused issues with some users of ddmlib in cases where the device info is not available all the time. This patch reverts all the changes in ddmlib, and moves the knowledge of what device tests are being run to the listener layer in ADT. So now we have a per device test listener that knows only about tests run on that device. Change-Id: Iffedcb38cdf21e349fbe38ecf9a654060b469b04
* uitest-automator: Use ddmlib for device communications.Siva Velusamy2012-08-021-2/+12
| | | | Change-Id: I2983399832a8f64b8ac0447587233baba4774311
* Update error message shown when ddms does not find adb.Siva Velusamy2012-07-311-49/+60
| | | | Change-Id: I7e949a943694a98faab5aa475808f4f071e1ade4
* ddms fileservice: update characters that need escaping.Siva Velusamy2012-07-251-2/+4
| | | | | | | Add ampersand to the list of characters that need to be escaped. Fix for http://code.google.com/p/android/issues/detail?id=34138 Change-Id: I48bdece34d41b713b3f61211528faaedc9a2b40f
* Fix classpath for ddmuilib-testsSiva Velusamy2012-07-191-1/+2
| | | | Change-Id: Ie085ec76f9033d50acf086b89748e764b33f5f0c
* Allow junit tests to be run on multiple devices.Siva Velusamy2012-07-184-28/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we allow launching an activity on multiple devices from a single launch configuration. This CL adds support for running Junit tests on all connected devices/emulators from a single launch config. At the UI level, all test results now show up as children of per device test suites. The changes are primarily in 3 different areas: - In ddmlib, the main change is to save the device name on which a particular test was run. This information is saved in the TestIdentifier that is created per test case. - In ADT, the general launch action (IAndroidLaunchAction) is modified to support launching on multiple devices. This simply loops over the existing launch action for each device for Activity Launch or Empty Launch. The Junit Launch Action is modified to launch a single Junit UI and collects the results from all devices and passes it on to the Junit UI. - ADT's ITestRunListener's are modified to look at the device on which a test was run and add results in the appropriate per device test suite. Change-Id: I936c2db2398fcad16544794441dedc714de9bea8
* Fixed DDMS network statistics parsingMichael Wright2012-06-221-2/+3
| | | | Change-Id: I6238185edd10227a01ae2f5282de18b17edb26bc
* logcat: fix potential NPESiva Velusamy2012-06-221-3/+5
| | | | | | | Fix NPE that could happen if the device goes offline even before logcat command is issued on it, Change-Id: I334caae5e42d25eff396ce0b7b7a5e44c3ed4f61
* Provide readable device name rather than just serial numberSiva Velusamy2012-06-133-52/+71
| | | | | | | | | | | | | | | | | There are a number of places where we need to display a device name. Currently, DDMS shows the serial number + manufacturer/model if available, but in other instances, we just show the serial number. This CL provides a getName() method in the IDevice interface so that all the locations which require a human readable name can use this. The name is typically of the form manufacturer-model-serial. If the manufacturer/model strings are not available, then those fields are omitted, so it will show just the serial number. Change-Id: I80ef7b48a4c7c8587042c1227c932251e18dba2e
* Find Dialog: allow control over the default action.Siva Velusamy2012-06-081-4/+22
| | | | | | | | | | This CL allows the default action to be either of the "Find Next" or the "Find Previous" buttons in the find dialog. Typically, in logcat you want to find previous, while in gltrace view you want to find next. Change-Id: Ie11cbd8a7987b8011ec2ee3664034e9ecfc4e24b
* NetworkPanel: Update socket tag decodingSiva Velusamy2012-06-071-1/+15
| | | | Change-Id: If2e89c894f5f11104e30d892bcae2b2daec17b08
* Move base class for FindDialog to a common location.Siva Velusamy2012-06-055-8/+15
| | | | Change-Id: Ie3b2e424a7dc9df73aca1c7914497f1c9a126901
* logcat find dialog: Add missing trim()Siva Velusamy2012-06-051-1/+1
| | | | Change-Id: I137994ea4723299461c695559d664230a98b082f
* logcat: Support searching through the message list.Siva Velusamy2012-06-055-1/+425
| | | | | | | | | | | | This CL adds support for invoking a find dialog when the logcat view is in focus. The dialog can be invoked via Edit -> Find (Ctrl + F), or via the context menu. The dialog provides a way to specify a search term and allows the user to search forward or backward in the list of messages. Change-Id: I7e7c6b20a051c161f035b3b45aba5f119f2c11a9
* Merge "logcat: Fix scroll lock icon"Siva Velusamy2012-06-013-1/+1
|\
| * logcat: Fix scroll lock iconSiva Velusamy2012-06-013-1/+1
| | | | | | | | Change-Id: I3825ba3149c644e834744f347a3973e9c8cd07ce
* | Fix warningsTor Norbye2012-06-012-0/+10
|/ | | | | | | | | | | | | | | | | First, update our various project-specific Eclipse compiler settings configuration files to include the new Eclipse 4 flags. Second, turn off the "Unchecked conversion from non-annotated type to @NonNull" warnings; there are hundreds or thousands of these, and there isn't much we can do about them when they're coming from platform and library APIs. Third, make the lint projects warning-clean again by addressing various warnings Eclipse found (such as some unclosed resources and some null handling issues; yesterday's null annotation fixes only addressed errors, not warnings.) Change-Id: If75f7401a1cbeef1bf58b47ccaa9ad17bede7f91
* Fix "Resource leak: <Foo> is never closed"Tor Norbye2012-05-306-79/+113
| | | | | | | This changeset fixes various code fragments opening resources without closing them. Change-Id: I6ed48a32dc5de4c11cab394dd3883ebbb54d2938
* logcat: Allow users to set colors for different priorities.Siva Velusamy2012-05-251-14/+102
| | | | | | | | | | This patch enables users to customize the colors used for log messages of different priority levels. These settings are available in the Android -> Logcat -> Colors preference page. This fixes: http://code.google.com/p/android/issues/detail?id=31494 Change-Id: I9430f573f84f09d00bfe25d6e53eeccf4e338e9d
* Allow users more control over auto monitoring logcat.Siva Velusamy2012-05-091-2/+5
| | | | | | | | | | | | | | | | | | | To help users who don't know about logcat, we automatically monitor logcat output to see if there are any errors from a user application, and if so, display the logcat view. This patch makes this feature a bit easier to use: - The first time the logcat view is about to be displayed, a dialog is shown that allows the users to enable/disable auto monitoring. Note that this can also be done via logcat preferences. - Users can now control the message priority that will trigger auto monitoring. - Once the logcat view has been displayed, we turn off auto monitoring until the next launch. This reduces overhead and avoids unnecessary change of focus in cases where the user is already interacting with the logcat view. Change-Id: I44a9ccea9148dea7bf6dc7d7864a1bb56a7376fe
* logcat: Validate regex patterns before creating filters.Siva Velusamy2012-05-042-7/+22
| | | | | | | | | | | | | | | Currently, when users create regex based filters, any error in the regex pattern is logged. When the error is logged, context switches to the Eclipse console view. As a result, users have to switch back to the logcat view and fix the error. This patch validates the text on entry and sets the text color to be red if the pattern is incorrect. There are no context switches as a result. This fixes issue: http://code.google.com/p/android/issues/detail?id=22019 Change-Id: I5b571e34c1517b0a78046b56ad83c2aa8632abdb
* logcat: Add a device disconnected message.Siva Velusamy2012-05-042-2/+12
| | | | | | | | | | When a device is disconnected, an explicit message informing the user of this event is attached to the log. See http://code.google.com/p/android/issues/detail?id=25830 for the reason why this might be useful. Change-Id: I969004cb72b877b8319a639607f82c1c9f9a8635
* Add ability to right click on a message to create filterSiva Velusamy2012-05-041-1/+52
| | | | | | | | | | | | This patch allows users to create logcat filters based on an existing message. When a message is right clicked, it brings up a menu with an entry that says "Filter similar messages..". Selecting that will bring up the "Add new filter" dialog with its input fields prefilled based on the message contents. This fixes: http://code.google.com/p/android/issues/detail?id=25835 Change-Id: If324330cbf78b503be61c31ebcff053d0f869c1e
* logcat: Remove JFace TableViewer and use SWT Table directlySiva Velusamy2012-05-039-552/+387
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a bunch of outstanding issues related to scrolling in the presence of a full buffer. Currently, the logbuffer is provided as the input model to the TableViewer, and ViewerFilter's are used to filter the data. This patch removes the JFace toolkit and directly works on the SWT Table. When log messages arrive, rather than refreshing the entire table, we can now just delete the TableItems corresponding to the logs that were pushed out, and add new TableItems for the incoming logs. At steady state, this implementation performs far less work than the previous implementation. However, during startup, this implementation will perform more work since it does not use the SWT.VIRTUAL bit (as all TableItems are created anyway). Also, zebra striping has been removed to avoid appearance of flicker when scroll lock is on. Auto scroll lock behavior has been removed, and scroll lock button behaves exactly like the scroll lock button in an Eclipse console. Change-Id: Ic14487f7ad41338a581aed0ba2d85d292a584950
* Merge "Fixes unexpected rows are copied when LogCat paused."Siva Velusamy2012-04-202-7/+37
|\
| * Fixes unexpected rows are copied when LogCat paused.Keiji Ariyama2012-04-042-7/+37
| | | | | | | | | | | | Issue: http://code.google.com/p/android/issues/detail?id=28253 Change-Id: If7b3c2a898b30834a8e76c5aad615a41ba5ecc04
* | SDK: Fix classpath for eclipse projects.Raphael Moll2012-04-121-1/+1
| | | | | | | | | | | | | | | | | | | | swt.jar must be found relative to the out/ dir (as generated by create_all_symlinks.sh) to avoid setting a platform-specific path. swtmenubar was missing the new libs references. Change-Id: I365cfa6e011ec831c4df87cb36b0df722caac2e4
* | Get rid of the file path whitelist.Omari Stephens2012-04-111-24/+0
| | | | | | | | | | | | | | | | The whitelist doesn't seem to serve any purpose currently, but does prevent legitimate attempts to access paths that aren't in the whitelist. Bug: 6325674 Change-Id: I0fbd44bb440a2b28010a9ca5c5ebd625130de628
* | Ensure screenshots saved through DDMS end with .png.Sebastian Roth2012-04-061-0/+4
| | | | | | | | | | | | | | This patch simply makes sure that the filename will have a .png extension when saving a screenshot through DDMS. Change-Id: Idb00259ac456fcaf11ee99736663fc7ddbbc505b Signed-off-by: Sebastian Roth <sebastian.roth@gmail.com>
* | Switch libraries from Eclipse 3.4 to Eclipse 3.6.2Tor Norbye2012-04-054-10/+10
| | | | | | | | | | | | This reverts commit f3d3fa912a10e20cadae813b80a66e538f77131d. Change-Id: I72e28e21db3c7f959040c1fbb9df14e4d85d0df4
* | Update classpath for eclipse project due to prebuilt move.Xavier Ducrohet2012-04-051-2/+7
| | | | | | | | | | | | | | Don't use User Libraries. It's easier to just hardcode them with a classpath variable. Change-Id: If8c1236199dd6766d48cf9b553fa2a9ee0d236e6
* | Merge "Revert "Switch libraries from Eclipse 3.4 to Eclipse 3.6.2""Tor Norbye2012-04-033-7/+7
|\ \
| * | Revert "Switch libraries from Eclipse 3.4 to Eclipse 3.6.2"Tor Norbye2012-04-033-7/+7
| | | | | | | | | | | | This reverts commit b0c819f896b3c579633849e3fa674a30e6978dd7.
* | | Merge "Make InstrumentationResultParser#handleTestRunFailure public."Brett Chabot2012-04-031-2/+3
|\ \ \ | |/ / |/| |
| * | Make InstrumentationResultParser#handleTestRunFailure public.Brett Chabot2012-04-021-2/+3
| |/ | | | | | | | | | | Done to allow reuse. Change-Id: I7a0651bb66e51997b08af7f46b8db4da7c9a0fbf
* | Switch libraries from Eclipse 3.4 to Eclipse 3.6.2Tor Norbye2012-04-023-7/+7
|/ | | | | | | | | | | This updates the org.eclipse.core.command, org.eclipse.jface and org.eclipse.equinox libraries from Eclipse 3.4 to Eclipse 3.6.2. It also updates SWT from 3.4 to 3.6.2 (and this drops the Carbon support from the SwtMenuBar library since SWT 3.5 switched to Cocoa by default.) Change-Id: I7e8a6e3b8cb473f90eca3b90e3f3dc5fa5099b71
* logcat: support new format for "logcat -v long"Siva Velusamy2012-03-064-19/+42
| | | | | | | | The thread id's output in "logcat -v long" used to be encoded in hex, but not anymore. This fixes the logcat parser to accomodate both the old and the new formats. Change-Id: I0871a68f2f82c5e4660c404ec8970063d7b68a88
* Usec a shorter timeout for Device#getPropertySync.Brett Chabot2012-02-271-1/+2
| | | | Change-Id: Ica768daddb71664edc32e65cca6a42beff19ff1d
* ddms: fix deadlockSiva Velusamy2012-02-062-48/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A deadlock can occur between: - a thread calling handleChunk() resulting in Device.getClients() - a thread calling processIncomingJDWPData() resulting in dropClient() For a full trace resulting in deadlock, see attachments in bug 24926. This patch fixes the deadlock by moving the entire synchronization into MonitorThread. Originally, processIncomingJdwpData, performs locking as follows: synchronized(monitorThread) { synchronized(device.getClientList() { synchronized(monitorThread.mClientList) { synchronized(device.getClientList() { This patch changes the structure of locking to look like: synchronized(device.getClientList()) { } synchronized(monitorThread) { synchronized(monitorThread.mClientList) { synchronized(device.getClientList() { As a result, device.getClientList() is always locked *after* monitorThread.mClientList. This matches the order of locking performed with handleChunk(), and should solve this deadlock scenario. Change-Id: Ie7a9efa897568af4450f0e23b2175ee66e127d7d
* logcat: Fix deadlockSiva Velusamy2012-02-061-3/+29
| | | | | | | | | | | | | | | | | | | | | | LogCatReceiverFactory has a deadlock scenario that occurs like this: 1. When a device is disconnected, removeReceiverFor() is called from a DDMS device monitor thread. This thread holds certain DDMS internal locks. removeReceiverFor() is synchronized on LogCatReceiverFactory. So we have: DDMS thread - holds device lock removeReceiverFor - waiting to obtain lock for "this" object. 2. At the same time, a separate thread could call newReceiver. As part of creating a new receiver, we add a device change listener. So we have: newReceiver - holds "this" object. create device change listener - waiting for device lock. As a result, the system deadlocks. This patch fixes this condition by calling the removeReceiverFor from a non DDMS thread since we don't really care about DDMS locks here. Change-Id: Ic4ef4589acdcd7980864da23cde760debc4cfbb8
* Merge "Pause network panel by default, handle devices."Jeff Sharkey2012-02-011-65/+120
|\
| * Pause network panel by default, handle devices.Jeff Sharkey2012-02-011-65/+120
| | | | | | | | | | | | | | | | | | Always start with network panel paused, letting user control start and stop explicitly. Also pause when client is changed. Handle devices without xt_qtaguid module by showing error dialog. Change-Id: I4f6c81d8c52729c155b7f4a477bcec1857681da8
* | Merge "Show detailed network statistics from xt_qtaguid."Jeff Sharkey2012-02-011-0/+1053
|\ \ | |/
| * Show detailed network statistics from xt_qtaguid.Jeff Sharkey2012-02-011-0/+1053
| | | | | | | | | | | | | | | | | | | | | | | | | | New panel that shows live network statistics by reading xt_qtaguid proc file across adb. Shows all tags for selected UID on a chart with 30 seconds of history. Each tag is presented as unique series, with the overall usage in grey. Table below the chart shows running totals of known tags. Includes options to pause, reset, and change polling frequency. Bug: 5194997 Change-Id: I72d43ab51aaf93ecfd6d45fcd452c7230cdee5b7
* | ddms: Allow port forwarding to Unix Domain SocketsSiva Velusamy2012-01-313-14/+102
|/ | | | | | | | | adb allows forwarding to not just TCP ports, but also Unix Domain Sockets (UDS) addressed by an abstract name or file system path. This patch enables support for port forwarding to UDS in the IDevice interface. Change-Id: I23fa667b24a2b469acc04cef26304f19179dc483
* Improved ADB logging on failure to help pinpoint issuesTor Norbye2012-01-121-5/+18
| | | | Change-Id: Ic0bee3baf2c766b9c859ad6d93505bd1cfce0776
* Fix locale handling of uppercase/lowercaseTor Norbye2012-01-065-56/+66
| | | | | | | | | | | | | | | | | This changeset fixes issue 23747: i and İ character problem in turkish operating Systems... and probably many other bugs in the Turkish locale. Basically, we had a lot of String.toLowerCase() and String.toUpperCase() calls. This performs locale sensitive conversions, which in many cases is NOT what we want; for "machine readable" conversions we should be using Locale.US which performs no special cases. For more, see http://developer.android.com/reference/java/util/Locale.html#default_locale Change-Id: I996b0e70fb377e8dae484c5811deb8bc9afb684c