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

Unified Diff: build/android/pylib/device/device_utils_test.py

Issue 895853003: Update from https://crrev.com/314320 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « build/android/pylib/device/device_utils.py ('k') | build/android/pylib/forwarder.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/pylib/device/device_utils_test.py
diff --git a/build/android/pylib/device/device_utils_test.py b/build/android/pylib/device/device_utils_test.py
index e346beeac020f65d9f1249bdff10125dcdd393a7..68c8b716f2f5dfac6819ab46b47cc38219c10dd7 100755
--- a/build/android/pylib/device/device_utils_test.py
+++ b/build/android/pylib/device/device_utils_test.py
@@ -21,6 +21,7 @@ import sys
import unittest
from pylib import android_commands
+from pylib import cmd_helper
from pylib import constants
from pylib.device import adb_wrapper
from pylib.device import device_errors
@@ -105,6 +106,7 @@ class MockTempFile(object):
def __init__(self, name='/tmp/some/file'):
self.file = mock.MagicMock(spec=file)
self.file.name = name
+ self.file.name_quoted = cmd_helper.SingleQuote(name)
def __enter__(self):
return self.file
@@ -557,6 +559,30 @@ class DeviceUtilsRunShellCommandTest(DeviceUtilsNewImplTest):
self.call.adb.Shell("cd '/some test/path with/spaces' && ls"), ''):
self.device.RunShellCommand('ls', cwd='/some test/path with/spaces')
+ def testRunShellCommand_withHugeCmd(self):
+ payload = 'hi! ' * 1024
+ expected_cmd = "echo '%s'" % payload
+ with self.assertCalls(
+ (mock.call.pylib.utils.device_temp_file.DeviceTempFile(
+ self.adb, suffix='.sh'), MockTempFile('/sdcard/temp-123.sh')),
+ self.call.device._WriteFileWithPush('/sdcard/temp-123.sh', expected_cmd),
+ (self.call.adb.Shell('sh /sdcard/temp-123.sh'), payload + '\n')):
+ self.assertEquals([payload],
+ self.device.RunShellCommand(['echo', payload]))
+
+ def testRunShellCommand_withHugeCmdAmdSU(self):
+ payload = 'hi! ' * 1024
+ expected_cmd = """su -c sh -c 'echo '"'"'%s'"'"''""" % payload
+ with self.assertCalls(
+ (self.call.device.NeedsSU(), True),
+ (mock.call.pylib.utils.device_temp_file.DeviceTempFile(
+ self.adb, suffix='.sh'), MockTempFile('/sdcard/temp-123.sh')),
+ self.call.device._WriteFileWithPush('/sdcard/temp-123.sh', expected_cmd),
+ (self.call.adb.Shell('sh /sdcard/temp-123.sh'), payload + '\n')):
+ self.assertEquals(
+ [payload],
+ self.device.RunShellCommand(['echo', payload], as_root=True))
+
def testRunShellCommand_withSu(self):
with self.assertCalls(
(self.call.device.NeedsSU(), True),
@@ -1095,48 +1121,48 @@ class DeviceUtilsReadFileTest(DeviceUtilsNewImplTest):
class DeviceUtilsWriteFileTest(DeviceUtilsNewImplTest):
- def testWriteFile_withPush(self):
+ def testWriteFileWithPush_success(self):
tmp_host = MockTempFile('/tmp/file/on.host')
- contents = 'some large contents ' * 26 # 20 * 26 = 520 chars
+ contents = 'some interesting contents'
with self.assertCalls(
(mock.call.tempfile.NamedTemporaryFile(), tmp_host),
self.call.adb.Push('/tmp/file/on.host', '/path/to/device/file')):
+ self.device._WriteFileWithPush('/path/to/device/file', contents)
+ tmp_host.file.write.assert_called_once_with(contents)
+
+ def testWriteFileWithPush_rejected(self):
+ tmp_host = MockTempFile('/tmp/file/on.host')
+ contents = 'some interesting contents'
+ with self.assertCalls(
+ (mock.call.tempfile.NamedTemporaryFile(), tmp_host),
+ (self.call.adb.Push('/tmp/file/on.host', '/path/to/device/file'),
+ self.CommandError())):
+ with self.assertRaises(device_errors.CommandFailedError):
+ self.device._WriteFileWithPush('/path/to/device/file', contents)
+
+ def testWriteFile_withPush(self):
+ contents = 'some large contents ' * 26 # 20 * 26 = 520 chars
+ with self.assertCalls(
+ self.call.device._WriteFileWithPush('/path/to/device/file', contents)):
self.device.WriteFile('/path/to/device/file', contents)
- tmp_host.file.write.assert_called_once_with(contents)
def testWriteFile_withPushForced(self):
- tmp_host = MockTempFile('/tmp/file/on.host')
contents = 'tiny contents'
with self.assertCalls(
- (mock.call.tempfile.NamedTemporaryFile(), tmp_host),
- self.call.adb.Push('/tmp/file/on.host', '/path/to/device/file')):
+ self.call.device._WriteFileWithPush('/path/to/device/file', contents)):
self.device.WriteFile('/path/to/device/file', contents, force_push=True)
- tmp_host.file.write.assert_called_once_with(contents)
def testWriteFile_withPushAndSU(self):
- tmp_host = MockTempFile('/tmp/file/on.host')
contents = 'some large contents ' * 26 # 20 * 26 = 520 chars
with self.assertCalls(
- (mock.call.tempfile.NamedTemporaryFile(), tmp_host),
(self.call.device.NeedsSU(), True),
(mock.call.pylib.utils.device_temp_file.DeviceTempFile(self.adb),
- MockTempFile('/external/path/tmp/on.device')),
- self.call.adb.Push('/tmp/file/on.host', '/external/path/tmp/on.device'),
+ MockTempFile('/sdcard/tmp/on.device')),
+ self.call.device._WriteFileWithPush('/sdcard/tmp/on.device', contents),
self.call.device.RunShellCommand(
- ['cp', '/external/path/tmp/on.device', '/path/to/device/file'],
+ ['cp', '/sdcard/tmp/on.device', '/path/to/device/file'],
as_root=True, check_return=True)):
self.device.WriteFile('/path/to/device/file', contents, as_root=True)
- tmp_host.file.write.assert_called_once_with(contents)
-
- def testWriteFile_withPush_rejected(self):
- tmp_host = MockTempFile('/tmp/file/on.host')
- contents = 'some large contents ' * 26 # 20 * 26 = 520 chars
- with self.assertCalls(
- (mock.call.tempfile.NamedTemporaryFile(), tmp_host),
- (self.call.adb.Push('/tmp/file/on.host', '/path/to/device/file'),
- self.CommandError())):
- with self.assertRaises(device_errors.CommandFailedError):
- self.device.WriteFile('/path/to/device/file', contents)
def testWriteFile_withEcho(self):
with self.assertCall(self.call.adb.Shell(
« no previous file with comments | « build/android/pylib/device/device_utils.py ('k') | build/android/pylib/forwarder.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698