#!/bin/bash # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2026 Open-IOV contributors # GSP Emulation Unit Tests # Runs kernel module tests for GSP emulation engine set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" OPEN_IOV_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" KERNEL_TEST_DIR="$OPEN_IOV_ROOT/kernel/tests" echo "=== GSP Emulation Unit Tests ===" echo "Open-IOV root: $OPEN_IOV_ROOT" echo "Kernel test dir: $KERNEL_TEST_DIR" # Check if we're root if [ "$EUID" -ne 0 ]; then echo "ERROR: This script must be run as root" exit 1 fi # Build the test module echo "Building GSP emulation test module..." cd "$KERNEL_TEST_DIR" make clean make if [ ! -f gsp_emulation_test.ko ]; then echo "ERROR: Failed to build gsp_emulation_test.ko" exit 1 fi echo "Test module built successfully" # Load the test module echo "Loading test module..." insmod gsp_emulation_test.ko # Check dmesg for test results sleep 2 echo "=== Test Results ===" dmesg -T | grep -i "gsp_emu_test" | tail -30 # Check if tests passed if dmesg -T | grep -q "vgsp-emu-test: ALL TESTS PASSED"; then echo "✓ ALL TESTS PASSED" RESULT=0 elif dmesg -T | grep -q "vgsp-emu-test:.*TEST.S. FAILED"; then echo "✗ SOME TESTS FAILED" RESULT=1 else echo "? TEST RESULT UNKNOWN" RESULT=2 fi # Unload test module echo "Unloading test module..." rmmod gsp_emulation_test 2>/dev/null || true exit $RESULT