tests/functional: Add base classes for the upcoming pytest-based tests

The files are mostly a copy of the tests/avocado/avocado_qemu/__init__.py
file with some adjustments to get rid of the Avocado dependencies (i.e.
we also have to drop the LinuxSSHMixIn and LinuxTest for now).

The emulator binary and build directory are now passed via
environment variables that will be set via meson.build later.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-ID: <20240830133841.142644-9-thuth@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Thomas Huth 2024-08-30 15:38:02 +02:00
parent 5ec1eec110
commit fa32a63432
5 changed files with 385 additions and 0 deletions

View file

@ -0,0 +1,36 @@
# Test class and utilities for functional tests
#
# Copyright 2018, 2024 Red Hat, Inc.
#
# Original Author (Avocado-based tests):
# Cleber Rosa <crosa@redhat.com>
#
# Adaption for standalone version:
# Thomas Huth <thuth@redhat.com>
#
# This work is licensed under the terms of the GNU GPL, version 2 or
# later. See the COPYING file in the top-level directory.
import os
from pathlib import Path
def _source_dir():
# Determine top-level directory of the QEMU sources
return Path(__file__).parent.parent.parent.parent
def _build_dir():
root = os.getenv('QEMU_BUILD_ROOT')
if root is not None:
return Path(root)
# Makefile.mtest only exists in build dir, so if it is available, use CWD
if os.path.exists('Makefile.mtest'):
return Path(os.getcwd())
root = os.path.join(_source_dir(), 'build')
if os.path.exists(root):
return Path(root)
raise Exception("Cannot identify build dir, set QEMU_BUILD_ROOT")
BUILD_DIR = _build_dir()