aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAng Li <angli@google.com>2023-04-25 15:36:42 -0700
committerGitHub <noreply@github.com>2023-04-25 15:36:42 -0700
commit031aa94cff5e7b5392b52d65f9f4ca9ca63144c8 (patch)
tree11ba1d2d9602e503a875dd1e751457aa9113d9d9
parent791b49cbe68057c9d397430a6d76f8f4fc21465e (diff)
downloadmobly-031aa94cff5e7b5392b52d65f9f4ca9ca63144c8.tar.gz
Do not start logcat service when the Andriod device is in fastboot mode. (#881)
-rw-r--r--mobly/controllers/android_device_lib/services/logcat.py4
-rwxr-xr-xtests/mobly/controllers/android_device_lib/services/logcat_test.py17
-rwxr-xr-xtests/mobly/controllers/android_device_test.py10
3 files changed, 31 insertions, 0 deletions
diff --git a/mobly/controllers/android_device_lib/services/logcat.py b/mobly/controllers/android_device_lib/services/logcat.py
index cbd8e95..37a8454 100644
--- a/mobly/controllers/android_device_lib/services/logcat.py
+++ b/mobly/controllers/android_device_lib/services/logcat.py
@@ -201,6 +201,10 @@ class Logcat(base_service.BaseService):
The collection runs in a separate subprocess and saves logs in a file.
"""
+ if self._ad.is_bootloader:
+ self._ad.log.warning(
+ 'Skip starting logcat because the device is in fastboot mode.')
+ return
self._assert_not_running()
if self._config.clear_log:
self.clear_adb_log()
diff --git a/tests/mobly/controllers/android_device_lib/services/logcat_test.py b/tests/mobly/controllers/android_device_lib/services/logcat_test.py
index 5c951b6..df15d76 100755
--- a/tests/mobly/controllers/android_device_lib/services/logcat_test.py
+++ b/tests/mobly/controllers/android_device_lib/services/logcat_test.py
@@ -133,6 +133,23 @@ class LogcatTest(unittest.TestCase):
return_value=mock_android_device.MockAdbProxy('1'))
@mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.utils.start_standing_subprocess')
+ @mock.patch('mobly.controllers.android_device.list_fastboot_devices',
+ return_value='1')
+ def test_start_in_fastboot_mode(self, _, start_proc_mock, FastbootProxy,
+ MockAdbProxy):
+ mock_serial = '1'
+ ad = android_device.AndroidDevice(serial=mock_serial)
+ logcat_service = logcat.Logcat(ad)
+ logcat_service.start()
+ # Verify start is not performed
+ self.assertFalse(logcat_service._adb_logcat_process)
+ start_proc_mock.assert_not_called()
+
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch('mobly.utils.create_dir')
@mock.patch('mobly.utils.start_standing_subprocess', return_value='process')
@mock.patch('mobly.utils.stop_standing_subprocess')
diff --git a/tests/mobly/controllers/android_device_test.py b/tests/mobly/controllers/android_device_test.py
index 4aa5304..fc1fc76 100755
--- a/tests/mobly/controllers/android_device_test.py
+++ b/tests/mobly/controllers/android_device_test.py
@@ -581,6 +581,16 @@ class AndroidDeviceTest(unittest.TestCase):
return_value=mock_android_device.MockAdbProxy('1'))
@mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
return_value=mock_android_device.MockFastbootProxy('1'))
+ @mock.patch('mobly.controllers.android_device.list_fastboot_devices',
+ return_value='1')
+ def test_AndroidDevice_is_fastboot(self, _, MockFastboot, MockAdbProxy):
+ ad = android_device.AndroidDevice(serial='1')
+ self.assertTrue(ad.is_bootloader)
+
+ @mock.patch('mobly.controllers.android_device_lib.adb.AdbProxy',
+ return_value=mock_android_device.MockAdbProxy('1'))
+ @mock.patch('mobly.controllers.android_device_lib.fastboot.FastbootProxy',
+ return_value=mock_android_device.MockFastbootProxy('1'))
@mock.patch('mobly.logger.get_log_file_timestamp')
def test_AndroidDevice_generate_filename_default(self,
get_log_file_timestamp_mock,