| # Lint as: python2, python3 |
| # Copyright 2022 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import unittest |
| |
| from unittest.mock import Mock, patch |
| from autotest_lib.server.cros.tradefed import adb |
| |
| |
| class AdbTest(unittest.TestCase): |
| """Tests for ADB module.""" |
| |
| # Verify that ipv4 is put into IP:PORT format. |
| def test_get_adb_target_ipv4(self): |
| mock_host = Mock() |
| mock_host.port = 3467 |
| mock_host.hostname = '123.76.0.29' |
| target = adb.get_adb_target(mock_host) |
| self.assertEqual(target, '123.76.0.29:3467') |
| |
| # Verify that ipv6 is put into [IP]:PORT format. |
| def test_get_adb_target_ipv6(self): |
| mock_host = Mock() |
| mock_host.port = 1234 |
| mock_host.hostname = '2409::3' |
| target = adb.get_adb_target(mock_host) |
| self.assertEqual(target, '[2409::3]:1234') |
| |
| # Verify that a host name works. |
| def test_get_adb_target_hostname(self): |
| mock_host = Mock() |
| mock_host.port = 4792 |
| mock_host.hostname = 'some.hostname.cros' |
| target = adb.get_adb_target(mock_host) |
| self.assertEqual(target, 'some.hostname.cros:4792') |
| |
| # Verify that a list of hosts work. |
| def test_get_adb_targets(self): |
| mock_host1 = Mock() |
| mock_host2 = Mock() |
| mock_host3 = Mock() |
| mock_host1.port = 1111 |
| mock_host2.port = 2222 |
| mock_host3.port = 3333 |
| mock_host1.hostname = 'host1' |
| mock_host2.hostname = 'host2' |
| mock_host3.hostname = 'host3' |
| |
| targets = adb.get_adb_targets([mock_host1, mock_host2, mock_host3]) |
| self.assertEqual(targets, ['host1:1111', 'host2:2222', 'host3:3333']) |
| |
| def test_add_paths(self): |
| instance = adb.Adb() |
| instance.add_path('/some/install/path') |
| instance.add_path('/another/directory') |
| |
| self.assertEqual(set(['/some/install/path', '/another/directory']), |
| instance.get_paths()) |
| |
| @patch('autotest_lib.server.utils.run') |
| def test_run(self, mock_run): |
| instance = adb.Adb() |
| instance.add_path('/some/install/path') |
| |
| mock_host = Mock() |
| mock_host.port = 3467 |
| mock_host.hostname = '123.76.0.29' |
| |
| instance.run(mock_host, args=('some', 'command'), timeout=240) |
| mock_run.assert_called_with('adb', |
| args=('-s', '123.76.0.29:3467', 'some', |
| 'command'), |
| timeout=240, |
| extra_paths=['/some/install/path']) |
| |
| @patch('autotest_lib.server.utils.run') |
| def test_run_without_host(self, mock_run): |
| instance = adb.Adb() |
| instance.add_path('/some/install/path') |
| |
| instance.run(None, args=('some', 'command'), timeout=240) |
| mock_run.assert_called_with('adb', |
| args=('-H', 'localhost', '-P', '5037', |
| 'some', 'command'), |
| timeout=240, |
| extra_paths=['/some/install/path']) |