summaryrefslogtreecommitdiffstats
path: root/adb/tests
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2015-05-15 12:06:00 -0700
committerElliott Hughes <enh@google.com>2015-05-15 14:50:47 -0700
commit2181c722ceac50dde3c4a399950b37e7fd6a5893 (patch)
treed5318d4fcdaf588885f46fbea820249580f7b50c /adb/tests
parent651fae3cbc9183ea1abcccc9b64db49ff76d0e00 (diff)
downloadsystem_core-2181c722ceac50dde3c4a399950b37e7fd6a5893.zip
system_core-2181c722ceac50dde3c4a399950b37e7fd6a5893.tar.gz
system_core-2181c722ceac50dde3c4a399950b37e7fd6a5893.tar.bz2
Fix ' escaping in adb.
You can't just use \' inside a single-quoted string. Bug: http://b/20323053 Bug: http://b/3090932 Change-Id: I73754b097671d02dc11c35052f0534b6dd789e4f (cherry picked from commit 84b0bf22644b35d6b3d3f7dc96311a484c3519b3)
Diffstat (limited to 'adb/tests')
-rwxr-xr-xadb/tests/test_adb.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/adb/tests/test_adb.py b/adb/tests/test_adb.py
index 237ef47..0ff87d2 100755
--- a/adb/tests/test_adb.py
+++ b/adb/tests/test_adb.py
@@ -6,6 +6,7 @@ tests that attempt to touch all accessible attached devices.
"""
import hashlib
import os
+import pipes
import random
import re
import shlex
@@ -162,6 +163,9 @@ class AdbWrapper(object):
def shell_nocheck(self, cmd):
return call_combined(self.adb_cmd + "shell " + cmd)
+ def install(self, filename):
+ return call_checked(self.adb_cmd + "install {}".format(pipes.quote(filename)))
+
def push(self, local, remote):
return call_checked(self.adb_cmd + "push {} {}".format(local, remote))
@@ -290,6 +294,18 @@ class AdbBasic(unittest.TestCase):
self.assertEqual('t', adb.shell("FOO=a BAR=b echo t").strip())
self.assertEqual('123Linux', adb.shell("echo -n 123\;uname").strip())
+ def test_install_argument_escaping(self):
+ """Make sure that install argument escaping works."""
+ adb = AdbWrapper()
+
+ # http://b/20323053
+ tf = tempfile.NamedTemporaryFile("w", suffix="-text;ls;1.apk")
+ self.assertIn("-text;ls;1.apk", adb.install(tf.name))
+
+ # http://b/3090932
+ tf = tempfile.NamedTemporaryFile("w", suffix="-Live Hold'em.apk")
+ self.assertIn("-Live Hold'em.apk", adb.install(tf.name))
+
class AdbFile(unittest.TestCase):
SCRATCH_DIR = "/data/local/tmp"