diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-10-21 17:25:23 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-10-21 17:25:23 +0000 |
commit | 2a87a287685e127797106ffe684015a2371729fd (patch) | |
tree | 86f3180cc4eea397d9741a530593682404e94627 /nixpkgs/nixos/lib | |
parent | 53533fd13b70e6e78e9a63c7dad027b116335a2d (diff) | |
parent | 83b8726e5f6f85a28405c7772f75093fd9a399a3 (diff) | |
download | nixlib-2a87a287685e127797106ffe684015a2371729fd.tar nixlib-2a87a287685e127797106ffe684015a2371729fd.tar.gz nixlib-2a87a287685e127797106ffe684015a2371729fd.tar.bz2 nixlib-2a87a287685e127797106ffe684015a2371729fd.tar.lz nixlib-2a87a287685e127797106ffe684015a2371729fd.tar.xz nixlib-2a87a287685e127797106ffe684015a2371729fd.tar.zst nixlib-2a87a287685e127797106ffe684015a2371729fd.zip |
Merge commit '83b8726e5f6f85a28405c7772f75093fd9a399a3'
Diffstat (limited to 'nixpkgs/nixos/lib')
-rw-r--r-- | nixpkgs/nixos/lib/test-driver/test_driver/machine.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/nixpkgs/nixos/lib/test-driver/test_driver/machine.py b/nixpkgs/nixos/lib/test-driver/test_driver/machine.py index 7ed001a1dfce..b1688cd3b64f 100644 --- a/nixpkgs/nixos/lib/test-driver/test_driver/machine.py +++ b/nixpkgs/nixos/lib/test-driver/test_driver/machine.py @@ -791,6 +791,28 @@ class Machine: with self.nested(f"waiting for TCP port {port} on {addr}"): retry(port_is_open, timeout) + def wait_for_open_unix_socket( + self, addr: str, is_datagram: bool = False, timeout: int = 900 + ) -> None: + """ + Wait until a process is listening on the given UNIX-domain socket + (default to a UNIX-domain stream socket). + """ + + nc_flags = [ + "-z", + "-uU" if is_datagram else "-U", + ] + + def socket_is_open(_: Any) -> bool: + status, _ = self.execute(f"nc {' '.join(nc_flags)} {addr}") + return status == 0 + + with self.nested( + f"waiting for UNIX-domain {'datagram' if is_datagram else 'stream'} on '{addr}'" + ): + retry(socket_is_open, timeout) + def wait_for_closed_port( self, port: int, addr: str = "localhost", timeout: int = 900 ) -> None: |