blob: ad81606e7625c42f41cde74608e85e286fe063dc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
#!/bin/bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2026 Open-IOV contributors
# Comprehensive Test Suite for Open-IOV vGPU-IO
# Runs all validation tests in sequence
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
OPEN_IOV_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
echo "=== Open-IOV vGPU-IO Comprehensive Test Suite ==="
echo "Open-IOV root: $OPEN_IOV_ROOT"
echo "Date: $(date)"
echo ""
# Check if we're root
if [ "$EUID" -ne 0 ]; then
echo "ERROR: This script must be run as root"
exit 1
fi
# Parse arguments
RUN_KERNEL_TESTS=true
RUN_GUEST_TESTS=true
RUN_CUDA_TESTS=true
RUN_GRAPHICS_TESTS=true
RUN_WINDOWS_TESTS=false
while [[ $# -gt 0 ]]; do
case $1 in
--kernel-only)
RUN_GUEST_TESTS=false
RUN_CUDA_TESTS=false
RUN_GRAPHICS_TESTS=false
shift
;;
--guest-only)
RUN_KERNEL_TESTS=false
RUN_CUDA_TESTS=false
RUN_GRAPHICS_TESTS=false
shift
;;
--no-windows)
RUN_WINDOWS_TESTS=false
shift
;;
--windows)
RUN_WINDOWS_TESTS=true
shift
;;
*)
echo "Unknown option: $1"
echo "Usage: $0 [--kernel-only] [--guest-only] [--no-windows] [--windows]"
exit 1
;;
esac
done
RESULTS=()
# Test 1: Kernel GSP Emulation Tests
if [ "$RUN_KERNEL_TESTS" = true ]; then
echo ""
echo "========================================"
echo "TEST 1: Kernel GSP Emulation Unit Tests"
echo "========================================"
if "$SCRIPT_DIR/test_gsp_emu.sh"; then
RESULTS+=("Kernel GSP Emulation: PASS")
else
RESULTS+=("Kernel GSP Emulation: FAIL")
fi
fi
# Test 2: Guest Driver Integration
if [ "$RUN_GUEST_TESTS" = true ]; then
echo ""
echo "========================================"
echo "TEST 2: Guest Driver Integration"
echo "========================================"
if "$SCRIPT_DIR/test_guest_driver.sh"; then
RESULTS+=("Guest Driver Integration: PASS")
else
RESULTS+=("Guest Driver Integration: FAIL")
fi
fi
# Test 3: CUDA Workloads
if [ "$RUN_CUDA_TESTS" = true ]; then
echo ""
echo "========================================"
echo "TEST 3: CUDA Workload Validation"
echo "========================================"
if "$SCRIPT_DIR/test_cuda_workloads.sh"; then
RESULTS+=("CUDA Workloads: PASS")
else
RESULTS+=("CUDA Workloads: FAIL")
fi
fi
# Test 4: Graphics Workloads
if [ "$RUN_GRAPHICS_TESTS" = true ]; then
echo ""
echo "========================================"
echo "TEST 4: Graphics Workload Validation"
echo "========================================"
if "$SCRIPT_DIR/test_graphics_workloads.sh"; then
RESULTS+=("Graphics Workloads: PASS")
else
RESULTS+=("Graphics Workloads: FAIL")
fi
fi
# Test 5: Windows Guest (optional)
if [ "$RUN_WINDOWS_TESTS" = true ]; then
echo ""
echo "========================================"
echo "TEST 5: Windows Guest Validation"
echo "========================================"
if "$SCRIPT_DIR/test_windows_guest.sh"; then
RESULTS+=("Windows Guest: PASS")
else
RESULTS+=("Windows Guest: FAIL")
fi
fi
# Summary
echo ""
echo "========================================"
echo "TEST SUMMARY"
echo "========================================"
for result in "${RESULTS[@]}"; do
echo " $result"
done
# Check for failures
FAIL_COUNT=0
for result in "${RESULTS[@]}"; do
if [[ "$result" == *"FAIL"* ]]; then
FAIL_COUNT=$((FAIL_COUNT + 1))
fi
done
echo ""
if [ $FAIL_COUNT -eq 0 ]; then
echo "ALL TESTS PASSED ✓"
exit 0
else
echo "$FAIL_COUNT TEST(S) FAILED ✗"
exit 1
fi
|