diff options
Diffstat (limited to 'tests/functional/test_vnc.py')
| -rwxr-xr-x | tests/functional/test_vnc.py | 36 |
1 files changed, 8 insertions, 28 deletions
diff --git a/tests/functional/test_vnc.py b/tests/functional/test_vnc.py index e600d75234..1916be0103 100755 --- a/tests/functional/test_vnc.py +++ b/tests/functional/test_vnc.py @@ -14,22 +14,9 @@ import socket from typing import List from qemu_test import QemuSystemTest - +from qemu_test.ports import Ports VNC_ADDR = '127.0.0.1' -VNC_PORT_START = 32768 -VNC_PORT_END = VNC_PORT_START + 1024 - - -def check_bind(port: int) -> bool: - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: - try: - sock.bind((VNC_ADDR, port)) - except OSError: - return False - - return True - def check_connect(port: int) -> bool: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: @@ -40,18 +27,6 @@ def check_connect(port: int) -> bool: return True - -def find_free_ports(count: int) -> List[int]: - result = [] - for port in range(VNC_PORT_START, VNC_PORT_END): - if check_bind(port): - result.append(port) - if len(result) >= count: - break - assert len(result) == count - return result - - class Vnc(QemuSystemTest): def test_no_vnc_change_password(self): @@ -85,8 +60,7 @@ class Vnc(QemuSystemTest): self.vm.cmd('change-vnc-password', password='new_password') - def test_change_listen(self): - a, b, c = find_free_ports(3) + def do_test_change_listen(self, a, b, c): self.assertFalse(check_connect(a)) self.assertFalse(check_connect(b)) self.assertFalse(check_connect(c)) @@ -108,5 +82,11 @@ class Vnc(QemuSystemTest): self.assertTrue(check_connect(b)) self.assertTrue(check_connect(c)) + def test_change_listen(self): + with Ports() as ports: + a, b, c = ports.find_free_ports(3) + self.do_test_change_listen(a, b, c) + + if __name__ == '__main__': QemuSystemTest.main() |