[cdc_stream] Use ephemeral ports (#100)

Instead of running netstat/ss on local and remote systems, just bind
with port 0 to find an ephemeral port. This is much more robust,
simpler and a bit faster. Since the remote port is only known after
running cdc_fuse_fs, port forwarding has to be set up after running
cdc_fuse_fs.
This commit is contained in:
Lutz Justen
2023-06-23 11:19:36 +02:00
committed by GitHub
parent 678ee0ffaf
commit 370023a944
13 changed files with 214 additions and 134 deletions

View File

@@ -129,17 +129,17 @@ class CdcStreamTest(unittest.TestCase):
utils.target(self.remote_base_dir),
self.service_port_arg)
self._assert_stream_success(res)
CdcStreamTest.service_running = True
def _stop(self, ignore_not_found=False):
"""Stops streaming to the target
Args:
local_dir (string): Directory to stream. Defaults to local_base_dir.
ignore_not_found (bool): True to ignore if there's nothing to stop.
"""
if not self.service_running:
if not CdcStreamTest.service_running:
return
res = utils.run_stream('stop', utils.target(self.remote_base_dir),
self.service_port_arg)
res = utils.run_stream('stop', '*', self.service_port_arg)
if ignore_not_found and res.returncode == self.NOT_FOUND:
return
self._assert_stream_success(res)