mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
48 lines
1.5 KiB
Bash
Executable File
48 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# shellcheck disable=SC2048,SC2086
|
|
set -x
|
|
|
|
# This set of vfio tests require to be ran on a specific machine with
|
|
# specific hardware (e.g. the "vfio" bare-metal worker equipped with a
|
|
# Nvidia Tesla T4 card). So the provisioning of the running machine is
|
|
# out of the scope of this script, including the custom guest image with
|
|
# Nvidia drivers installed, and properly configured Nvidia Tesla T4 card.
|
|
|
|
# shellcheck source=/dev/null
|
|
source "$HOME"/.cargo/env
|
|
source "$(dirname "$0")"/test-util.sh
|
|
|
|
process_common_args "$@"
|
|
|
|
WORKLOADS_DIR="$HOME/workloads"
|
|
|
|
if [ ! -f "$WORKLOADS_DIR/hypervisor-fw" ]; then
|
|
echo "Missing workload asset: $WORKLOADS_DIR/hypervisor-fw"
|
|
echo "Run: python3 scripts/fetch_workloads.py --test vfio"
|
|
exit 1
|
|
fi
|
|
|
|
CFLAGS=""
|
|
if [[ "${BUILD_TARGET}" == "x86_64-unknown-linux-musl" ]]; then
|
|
# shellcheck disable=SC2034
|
|
CFLAGS="-I /usr/include/x86_64-linux-musl/ -idirafter /usr/include/"
|
|
fi
|
|
|
|
cargo build --features mshv --all --release --target "$BUILD_TARGET"
|
|
|
|
# Common configuration for every test run
|
|
export RUST_BACKTRACE=1
|
|
export RUSTFLAGS="$RUSTFLAGS"
|
|
|
|
# Run VFIO tests using legacy vfio interface with container/group
|
|
time cargo nextest run -p cloud-hypervisor --retries 3 --no-tests=pass --test-threads=1 "vfio::test_nvidia" -- ${test_binary_args[*]}
|
|
RES=$?
|
|
|
|
# Run VFIO tests using vfio cdev interface backed by iommufd
|
|
if [ $RES -eq 0 ]; then
|
|
time cargo nextest run -p cloud-hypervisor --retries 3 --no-tests=pass --test-threads=1 "vfio::test_iommufd" -- ${test_binary_args[*]}
|
|
RES=$?
|
|
fi
|
|
|
|
exit $RES
|