Convert the vnc and migration test that use a find_free_ports() function to look for a free port. Since the functional tests can be run in parallel with other tests that might look for free ports, we extract the find_free_ports() function into a helper and provide a locking mechanism so that the tests don't race for the free ports.
v2: - Use "-vnc ...,to=XYZ" in the "Do not use a hard-coded VNC port" to avoid that we have to take the lock of find_free_ports() here. - Put the lock file into the build directory (as suggested by Daniel) - Limit the port range to dynamic ports (see RFC 6335) and "randomize" the start address via the PID of the test program ==> This should make clashes much less likely Thomas Huth (5): tests/functional: Convert the vnc test tests/functional/test_vnc: Remove the test_no_vnc test tests/functional/test_vnc: Do not use a hard-coded VNC port tests/functional: Extract the find_free_ports() function into a helper file tests/functional: Convert the migration avocado test MAINTAINERS | 1 + tests/functional/meson.build | 20 +++ tests/functional/qemu_test/ports.py | 56 ++++++++ .../test_migration.py} | 121 +++++------------- .../vnc.py => functional/test_vnc.py} | 55 +++----- 5 files changed, 127 insertions(+), 126 deletions(-) create mode 100644 tests/functional/qemu_test/ports.py rename tests/{avocado/migration.py => functional/test_migration.py} (41%) mode change 100644 => 100755 rename tests/{avocado/vnc.py => functional/test_vnc.py} (74%) mode change 100644 => 100755 -- 2.47.1