factory_ExternalStorage: fix ARM device names

ARM platforms have MMC device name in "mmcblk*" form (although USB stick is
still in sdX form).  We need to support that kind of devices.

BUG=chrome-os-partner:3715
TEST=in factory test, run USB and SD test; both sucess.

Change-Id: I13a624f3d00159f91f9b835316dada647f938a97
Cherry-Pick: http://gerrit.chromium.org/gerrit/750
Reviewed-on: http://gerrit.chromium.org/gerrit/753
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
diff --git a/client/site_tests/factory_ExternalStorage/factory_ExternalStorage.py b/client/site_tests/factory_ExternalStorage/factory_ExternalStorage.py
index b42895d..ac923cd 100644
--- a/client/site_tests/factory_ExternalStorage/factory_ExternalStorage.py
+++ b/client/site_tests/factory_ExternalStorage/factory_ExternalStorage.py
@@ -11,6 +11,7 @@
 
 
 import cairo
+import glob
 import gobject
 import gtk
 import pango
@@ -44,10 +45,9 @@
 
 
 def find_all_storage_dev():
-    lssys = utils.run('ls -d /sys/block/sd*')
-    devices = lssys.stdout.rsplit('\n')
-    new_devices = set(os.path.basename(d.rstrip()) for d in devices if d)
-    return new_devices
+    return set([os.path.basename(device)
+                for device in (glob.glob('/sys/block/sd[a-z]') +
+                               glob.glob('/sys/block/mmcblk[0-9]'))])
 
 
 class factory_ExternalStorage(test.test):
@@ -68,7 +68,7 @@
                 self._devices = new_devices
                 factory.log('found new devs : %s' % diff)
                 self._target_device = diff.pop()
-                devpath = '/dev/%s' % self._target_device
+                devpath = os.path.join('/dev', self._target_device)
                 self._prompt.set_text(_TESTING_FMT_STR(devpath))
                 self._image = self.testing_image
                 self._pictogram.queue_draw()