Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(143)

Unified Diff: build/android/pylib/utils/md5sum.py

Issue 1124763003: Update from https://crrev.com/327068 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: update nacl, buildtools, fix display_change_notifier_unittest Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: build/android/pylib/utils/md5sum.py
diff --git a/build/android/pylib/utils/md5sum.py b/build/android/pylib/utils/md5sum.py
index da3cd15c785b0da5a2382816078d6817f63fc7aa..4d7d0b0020454018821f285ad4f4acc21a7202ef 100644
--- a/build/android/pylib/utils/md5sum.py
+++ b/build/android/pylib/utils/md5sum.py
@@ -5,6 +5,7 @@
import collections
import logging
import os
+import re
import tempfile
import types
@@ -12,8 +13,6 @@ from pylib import cmd_helper
from pylib import constants
from pylib.utils import device_temp_file
-HashAndPath = collections.namedtuple('HashAndPath', ['hash', 'path'])
-
MD5SUM_DEVICE_LIB_PATH = '/data/local/tmp/md5sum/'
MD5SUM_DEVICE_BIN_PATH = MD5SUM_DEVICE_LIB_PATH + 'md5sum_bin'
@@ -21,6 +20,8 @@ MD5SUM_DEVICE_SCRIPT_FORMAT = (
'test -f {path} -o -d {path} '
'&& LD_LIBRARY_PATH={md5sum_lib} {device_pie_wrapper} {md5sum_bin} {path}')
+_STARTS_WITH_CHECKSUM_RE = re.compile(r'^\s*[0-9a-fA-f]{32}\s+')
+
def CalculateHostMd5Sums(paths):
"""Calculates the MD5 sum value for all items in |paths|.
@@ -28,7 +29,7 @@ def CalculateHostMd5Sums(paths):
Args:
paths: A list of host paths to md5sum.
Returns:
- A list of named tuples with 'hash' and 'path' attributes.
+ A dict mapping paths to their respective md5sum checksums.
"""
if isinstance(paths, basestring):
paths = [paths]
@@ -36,7 +37,8 @@ def CalculateHostMd5Sums(paths):
out = cmd_helper.GetCmdOutput(
[os.path.join(constants.GetOutDirectory(), 'md5sum_bin_host')] +
[p for p in paths])
- return [HashAndPath(*l.split(None, 1)) for l in out.splitlines()]
+
+ return _ParseMd5SumOutput(out.splitlines())
def CalculateDeviceMd5Sums(paths, device):
@@ -45,7 +47,7 @@ def CalculateDeviceMd5Sums(paths, device):
Args:
paths: A list of device paths to md5sum.
Returns:
- A list of named tuples with 'hash' and 'path' attributes.
+ A dict mapping paths to their respective md5sum checksums.
"""
if isinstance(paths, basestring):
paths = [paths]
@@ -72,5 +74,11 @@ def CalculateDeviceMd5Sums(paths, device):
device.adb.Push(md5sum_script_file.name, md5sum_device_script_file.name)
out = device.RunShellCommand(['sh', md5sum_device_script_file.name])
- return [HashAndPath(*l.split(None, 1)) for l in out if l]
+ return _ParseMd5SumOutput(out)
+
+
+def _ParseMd5SumOutput(out):
+ hash_and_path = (l.split(None, 1) for l in out
+ if l and _STARTS_WITH_CHECKSUM_RE.match(l))
+ return dict((p, h) for h, p in hash_and_path)

Powered by Google App Engine
This is Rietveld 408576698