From e6a9c646e37f0acdcf0606711e22ff19eae87299 Mon Sep 17 00:00:00 2001 From: Simo Kinnunen Date: Mon, 17 Feb 2014 20:14:56 +0900 Subject: [PATCH] Provider better provider debug output and make fix killProcsByComm hanging on Xperia Z1. --- lib/roles/provider.js | 15 ++++++++++++--- lib/util/devutil.js | 6 +++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/roles/provider.js b/lib/roles/provider.js index ec00274e..782e6d53 100644 --- a/lib/roles/provider.js +++ b/lib/roles/provider.js @@ -30,7 +30,7 @@ module.exports = function(options) { function totals() { if (lists.waiting.length) { log.info( - 'Providing %d of %d device(s), and still waiting for "%s"' + 'Providing %d of %d device(s); waiting for "%s"' , lists.ready.length , lists.all.length , lists.waiting.join('", "') @@ -38,10 +38,17 @@ module.exports = function(options) { delayedTotals() } + else if (lists.ready.length < lists.all.length) { + log.info( + 'Providing all %d of %d device(s); ignoring "%s"' + , lists.ready.length + , lists.all.length + , _.difference(lists.all, lists.ready).join('", "') + ) + } else { log.info( - 'Providing all %d of %d device(s)' - , lists.ready.length + 'Providing all %d device(s)' , lists.all.length ) } @@ -298,6 +305,8 @@ module.exports = function(options) { proc.on('error', errorListener) proc.on('message', messageListener) + lists.waiting.push(device.id) + return resolver.promise .finally(function() { log.info('Cleaning up device worker "%s"', device.id) diff --git a/lib/util/devutil.js b/lib/util/devutil.js index 20f204aa..879c0096 100644 --- a/lib/util/devutil.js +++ b/lib/util/devutil.js @@ -92,6 +92,10 @@ devutil.waitForPort = function(adb, serial, port) { } devutil.listPidsByComm = function(adb, serial, comm, bin) { + var users = { + shell: true + } + return adb.shellAsync(serial, ['ps', comm]) .then(function(out) { return new Promise(function(resolve, reject) { @@ -104,7 +108,7 @@ devutil.listPidsByComm = function(adb, serial, comm, bin) { } else { var cols = chunk.toString().split(/\s+/) - if (cols.pop() === bin) { + if (cols.pop() === bin && users[cols[0]]) { pids.push(+cols[1]) } }