mbox series

[v2,0/5] tests/functional: Convert tests with find_free_ports()

Message ID 20241218131439.255841-1-thuth@redhat.com (mailing list archive)
Headers show
Series tests/functional: Convert tests with find_free_ports() | expand

Message

Thomas Huth Dec. 18, 2024, 1:14 p.m. UTC
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