aboutsummaryrefslogtreecommitdiff
path: root/catapult/devil/devil/android/md5sum.py
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/devil/devil/android/md5sum.py')
-rw-r--r--catapult/devil/devil/android/md5sum.py27
1 files changed, 18 insertions, 9 deletions
diff --git a/catapult/devil/devil/android/md5sum.py b/catapult/devil/devil/android/md5sum.py
index 8adf4ef7..e67f3f60 100644
--- a/catapult/devil/devil/android/md5sum.py
+++ b/catapult/devil/devil/android/md5sum.py
@@ -3,10 +3,12 @@
# found in the LICENSE file.
import base64
+import io
import gzip
import os
import re
-import StringIO
+
+import six
from devil import devil_env
from devil.android import device_errors
@@ -38,7 +40,7 @@ def CalculateHostMd5Sums(paths):
Returns:
A dict mapping file paths to their respective md5sum checksums.
"""
- if isinstance(paths, basestring):
+ if isinstance(paths, six.string_types):
paths = [paths]
paths = list(paths)
@@ -47,13 +49,17 @@ def CalculateHostMd5Sums(paths):
raise IOError('File not built: %s' % md5sum_bin_host_path)
out = ""
for i in range(0, len(paths), _MAX_PATHS_PER_INVOCATION):
- mem_file = StringIO.StringIO()
+ mem_file = io.BytesIO()
compressed = gzip.GzipFile(fileobj=mem_file, mode="wb")
- compressed.write(";".join(
- [os.path.realpath(p) for p in paths[i:i+_MAX_PATHS_PER_INVOCATION]]))
+ data = ";".join(
+ [os.path.realpath(p) for p in paths[i:i+_MAX_PATHS_PER_INVOCATION]])
+ if six.PY3:
+ data = data.encode('utf-8')
+ compressed.write(data)
compressed.close()
compressed_paths = base64.b64encode(mem_file.getvalue())
- out += cmd_helper.GetCmdOutput([md5sum_bin_host_path, "-gz", compressed_paths])
+ out += cmd_helper.GetCmdOutput(
+ [md5sum_bin_host_path, "-gz", compressed_paths])
return dict(zip(paths, out.splitlines()))
@@ -72,7 +78,7 @@ def CalculateDeviceMd5Sums(paths, device):
if not paths:
return {}
- if isinstance(paths, basestring):
+ if isinstance(paths, six.string_types):
paths = [paths]
paths = list(paths)
@@ -97,9 +103,12 @@ def CalculateDeviceMd5Sums(paths, device):
# Make sure it can find libbase.so
md5sum_script += 'export LD_LIBRARY_PATH=%s;' % MD5SUM_DEVICE_LIB_PATH
for i in range(0, len(paths), _MAX_PATHS_PER_INVOCATION):
- mem_file = StringIO.StringIO()
+ mem_file = io.BytesIO()
compressed = gzip.GzipFile(fileobj=mem_file, mode="wb")
- compressed.write(";".join(paths[i:i+_MAX_PATHS_PER_INVOCATION]))
+ data = ";".join(paths[i:i+_MAX_PATHS_PER_INVOCATION])
+ if six.PY3:
+ data = data.encode('utf-8')
+ compressed.write(data)
compressed.close()
compressed_paths = base64.b64encode(mem_file.getvalue())
md5sum_script += '$a -gz %s;' % compressed_paths