85 lines
2.8 KiB
Bash
Executable File
85 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# ============================================================================
|
|
# ODS CLI enable GPU backend validation test
|
|
# ============================================================================
|
|
# Tests that ods-cli enable command validates GPU backend compatibility
|
|
# before enabling extensions.
|
|
#
|
|
# Usage: ./tests/test-enable-gpu-validation.sh
|
|
# ============================================================================
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
PASSED=0
|
|
FAILED=0
|
|
|
|
pass() { echo -e " ${GREEN}✓ PASS${NC} $1"; PASSED=$((PASSED + 1)); }
|
|
fail() { echo -e " ${RED}✗ FAIL${NC} $1"; FAILED=$((FAILED + 1)); }
|
|
|
|
echo ""
|
|
echo "╔═══════════════════════════════════════════════╗"
|
|
echo "║ GPU Backend Validation Test ║"
|
|
echo "╚═══════════════════════════════════════════════╝"
|
|
echo ""
|
|
|
|
# 1. SERVICE_GPU_BACKENDS array is declared in service-registry.sh
|
|
if grep -q "declare -A SERVICE_GPU_BACKENDS" "$ROOT_DIR/lib/service-registry.sh"; then
|
|
pass "SERVICE_GPU_BACKENDS array declared"
|
|
else
|
|
fail "SERVICE_GPU_BACKENDS array not declared"
|
|
fi
|
|
|
|
# 2. GPU backends are parsed from manifests
|
|
if grep -q "gpu_backends.*get.*gpu_backends" "$ROOT_DIR/lib/service-registry.sh"; then
|
|
pass "GPU backends parsing logic present"
|
|
else
|
|
fail "GPU backends parsing logic missing"
|
|
fi
|
|
|
|
# 3. GPU backends are emitted to bash
|
|
if grep -q 'SERVICE_GPU_BACKENDS.*_esc' "$ROOT_DIR/lib/service-registry.sh"; then
|
|
pass "GPU backends emitted to bash registry"
|
|
else
|
|
fail "GPU backends emission missing"
|
|
fi
|
|
|
|
# 4. cmd_enable checks GPU backend compatibility
|
|
if grep -q "SERVICE_GPU_BACKENDS.*service_id" "$ROOT_DIR/ods-cli"; then
|
|
pass "cmd_enable reads GPU backends from registry"
|
|
else
|
|
fail "cmd_enable missing GPU backend check"
|
|
fi
|
|
|
|
# 5. cmd_enable warns about incompatible backends
|
|
if grep -q "may not work with GPU backend" "$ROOT_DIR/ods-cli"; then
|
|
pass "GPU backend warning message present"
|
|
else
|
|
fail "GPU backend warning message missing"
|
|
fi
|
|
|
|
# 6. cmd_enable shows supported backends list
|
|
if grep -q "Supported backends" "$ROOT_DIR/ods-cli"; then
|
|
pass "Supported backends message present"
|
|
else
|
|
fail "Supported backends message missing"
|
|
fi
|
|
|
|
# 7. User can cancel if backend incompatible
|
|
if grep -A5 "may not work with GPU backend" "$ROOT_DIR/ods-cli" | grep -q "Continue anyway"; then
|
|
pass "User confirmation prompt present"
|
|
else
|
|
fail "User confirmation prompt missing"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Result: $PASSED passed, $FAILED failed"
|
|
[[ $FAILED -eq 0 ]]
|