Skip to content

Commit 1fcf64f

Browse files
camillobruniV8 LUCI CQ
authored andcommitted
Add dummy PortManager subclasses for SSH and ADB platforms
Change-Id: I5a6a5c286d91e175e1a99e93fcba2539777f6ef8 Reviewed-on: https://chromium-review.googlesource.com/c/crossbench/+/6652281 Reviewed-by: Patrick Thier <[email protected]> Commit-Queue: Camillo Bruni <[email protected]>
1 parent 4547443 commit 1fcf64f

File tree

4 files changed

+29
-3
lines changed

4 files changed

+29
-3
lines changed

crossbench/plt/android_adb.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from crossbench.parse import NumberParser
2121
from crossbench.plt.arch import MachineArch
2222
from crossbench.plt.base import SubprocessError
23+
from crossbench.plt.port_manager import PortManager
2324
from crossbench.plt.posix import RemotePosixPlatform
2425
from crossbench.plt.process_meminfo import ProcessMeminfo
2526

@@ -460,16 +461,26 @@ def grant_permissions(self, package_name: str) -> None:
460461
self.shell(*cmd)
461462

462463

464+
class AndroidAdbPortManager(PortManager):
465+
466+
def __init__(self, platform: AndroidAdbPlatform, adb: Adb) -> None:
467+
super().__init__(platform)
468+
self._adb = adb
469+
470+
463471
class AndroidAdbPlatform(RemotePosixPlatform):
464472

465473
def __init__(self,
466474
host_platform: Platform,
467475
device_identifier: Optional[str] = None,
468476
adb: Optional[Adb] = None) -> None:
469-
super().__init__(host_platform)
470477
assert not host_platform.is_remote, (
471478
"adb on remote platform is not supported yet")
472479
self._adb = adb or Adb(host_platform, device_identifier)
480+
super().__init__(host_platform)
481+
482+
def _create_port_manager(self) -> PortManager:
483+
return AndroidAdbPortManager(self, self._adb)
473484

474485
@property
475486
@override

crossbench/plt/base.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,10 @@ class Platform(abc.ABC):
109109
def __init__(self) -> None:
110110
self._binary_lookup_override: dict[str, pth.AnyPath] = {}
111111
self._cache_dir_root: pth.AnyPath | None = None
112-
self._default_port_manager: PortManager = PortManager(self)
112+
self._default_port_manager: PortManager = self._create_port_manager()
113+
114+
def _create_port_manager(self) -> PortManager:
115+
return PortManager(self)
113116

114117
def assert_is_local(self) -> None:
115118
if self.is_local:

crossbench/plt/linux_ssh.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@
1616
from crossbench import parse
1717
from crossbench.plt.arch import MachineArch
1818
from crossbench.plt.linux import RemoteLinuxPlatform
19-
from crossbench.plt.ssh import SshPlatformMixin
19+
from crossbench.plt.ssh import SshPlatformMixin, SshPortManager
2020

2121
if TYPE_CHECKING:
2222
from crossbench.path import AnyPath, LocalPath
2323
from crossbench.plt.base import CmdArg, CmdArgs, ListCmdArgs, Platform
24+
from crossbench.plt.port_manager import PortManager
2425

2526

2627
class LinuxSshPlatform(SshPlatformMixin, RemoteLinuxPlatform):
@@ -38,6 +39,9 @@ def __init__(self, host_platform: Platform, host: str, port: int,
3839
self._reverse_port_forward_popens: dict[int, subprocess.Popen] = {}
3940
atexit.register(self._stop_all_port_forward)
4041

42+
def _create_port_manager(self) -> PortManager:
43+
return SshPortManager(self)
44+
4145
@property
4246
@override
4347
def name(self) -> str:

crossbench/plt/ssh.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,16 @@
99
from typing import TYPE_CHECKING, Mapping, Optional
1010

1111
from crossbench.plt.base import Platform
12+
from crossbench.plt.port_manager import PortManager
1213
from crossbench.plt.remote import RemotePlatformMixin
1314

1415
if TYPE_CHECKING:
1516
from crossbench.plt.base import CmdArg, ListCmdArgs
1617

1718

19+
class SshPortManager(PortManager):
20+
pass
21+
1822
class SshPlatformMixin(RemotePlatformMixin, metaclass=abc.ABCMeta):
1923

2024
def __init__(self, host_platform: Platform, host: str, port: int,
@@ -25,6 +29,10 @@ def __init__(self, host_platform: Platform, host: str, port: int,
2529
self._ssh_port = ssh_port
2630
self._ssh_user = ssh_user
2731

32+
@abc.abstractmethod
33+
def _create_port_manager(self) -> PortManager:
34+
pass
35+
2836
@property
2937
def host(self) -> str:
3038
return self._host

0 commit comments

Comments
 (0)