Volt CLI: source-available under AGPSL v5.0
Complete infrastructure platform CLI: - Container runtime (systemd-nspawn) - VoltVisor VMs (Neutron Stardust / QEMU) - Stellarium CAS (content-addressed storage) - ORAS Registry - GitOps integration - Landlock LSM security - Compose orchestration - Mesh networking Copyright (c) Armored Gates LLC. All rights reserved. Licensed under AGPSL v5.0
This commit is contained in:
122
scripts/test-integration.sh
Executable file
122
scripts/test-integration.sh
Executable file
@@ -0,0 +1,122 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Volt Platform - Integration Tests
|
||||
#
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
VOLT="$PROJECT_DIR/build/volt"
|
||||
|
||||
# Colors
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
pass() { echo -e "${GREEN}✓${NC} $1"; }
|
||||
fail() { echo -e "${RED}✗${NC} $1"; exit 1; }
|
||||
skip() { echo -e "${YELLOW}○${NC} $1 (skipped)"; }
|
||||
|
||||
# Test counter
|
||||
TESTS_PASSED=0
|
||||
TESTS_FAILED=0
|
||||
|
||||
run_test() {
|
||||
local name="$1"
|
||||
shift
|
||||
if "$@" >/dev/null 2>&1; then
|
||||
pass "$name"
|
||||
((TESTS_PASSED++))
|
||||
else
|
||||
fail "$name"
|
||||
((TESTS_FAILED++))
|
||||
fi
|
||||
}
|
||||
|
||||
# Check if binary exists
|
||||
if [[ ! -x "$VOLT" ]]; then
|
||||
echo "Building volt first..."
|
||||
cd "$PROJECT_DIR"
|
||||
make build
|
||||
fi
|
||||
|
||||
echo "================================"
|
||||
echo "Volt Platform Integration Tests"
|
||||
echo "================================"
|
||||
echo ""
|
||||
|
||||
# Test 1: Binary runs
|
||||
echo "=== CLI Tests ==="
|
||||
run_test "volt --help" $VOLT --help
|
||||
run_test "volt vm --help" $VOLT vm --help
|
||||
run_test "volt desktop --help" $VOLT desktop --help
|
||||
run_test "volt k8s --help" $VOLT k8s --help
|
||||
|
||||
# Test 2: VM commands (need sudo for full test)
|
||||
echo ""
|
||||
echo "=== VM Tests (sudo required) ==="
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
skip "VM creation (requires root)"
|
||||
skip "VM listing (requires root)"
|
||||
skip "VM destruction (requires root)"
|
||||
else
|
||||
# Create test VM
|
||||
TEST_VM="volt-test-$$"
|
||||
|
||||
run_test "Create VM" $VOLT vm create "$TEST_VM" --image volt/server
|
||||
run_test "List VMs" $VOLT vm list
|
||||
run_test "VM directory exists" test -d "/var/lib/volt/vms/$TEST_VM"
|
||||
run_test "SystemD unit created" test -f "/etc/systemd/system/volt-vm@${TEST_VM}.service"
|
||||
|
||||
# Cleanup
|
||||
run_test "Destroy VM" $VOLT vm destroy "$TEST_VM"
|
||||
run_test "VM directory removed" test ! -d "/var/lib/volt/vms/$TEST_VM"
|
||||
fi
|
||||
|
||||
# Test 3: Desktop commands
|
||||
echo ""
|
||||
echo "=== Desktop Tests ==="
|
||||
run_test "ODE profiles defined" grep -q "office" "$PROJECT_DIR/pkg/ode/ode.go"
|
||||
run_test "Desktop command exists" $VOLT desktop --help
|
||||
|
||||
# Test 4: K8s commands
|
||||
echo ""
|
||||
echo "=== Kubernetes Tests ==="
|
||||
run_test "K8s node --help" $VOLT k8s node --help
|
||||
run_test "K8s status" $VOLT k8s status
|
||||
|
||||
# Test 5: Configuration files
|
||||
echo ""
|
||||
echo "=== Config Tests ==="
|
||||
run_test "Server image config" test -f "$PROJECT_DIR/configs/images/server.yaml"
|
||||
run_test "Desktop image config" test -f "$PROJECT_DIR/configs/images/desktop-productivity.yaml"
|
||||
run_test "Edge image config" test -f "$PROJECT_DIR/configs/images/edge.yaml"
|
||||
run_test "K8s node config" test -f "$PROJECT_DIR/configs/images/k8s-node.yaml"
|
||||
run_test "Server kernel config" test -f "$PROJECT_DIR/configs/kernels/kernel-server.config"
|
||||
run_test "Desktop kernel config" test -f "$PROJECT_DIR/configs/kernels/kernel-desktop.config"
|
||||
run_test "Seccomp profile" test -f "$PROJECT_DIR/configs/seccomp/server.json"
|
||||
|
||||
# Test 6: Build scripts
|
||||
echo ""
|
||||
echo "=== Build Script Tests ==="
|
||||
run_test "build-kernels.sh exists" test -x "$PROJECT_DIR/scripts/build-kernels.sh"
|
||||
run_test "build-images.sh exists" test -x "$PROJECT_DIR/scripts/build-images.sh"
|
||||
run_test "install.sh exists" test -x "$PROJECT_DIR/scripts/install.sh"
|
||||
|
||||
# Summary
|
||||
echo ""
|
||||
echo "================================"
|
||||
echo "Test Summary"
|
||||
echo "================================"
|
||||
echo -e "Passed: ${GREEN}$TESTS_PASSED${NC}"
|
||||
echo -e "Failed: ${RED}$TESTS_FAILED${NC}"
|
||||
echo ""
|
||||
|
||||
if [[ $TESTS_FAILED -gt 0 ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}All tests passed!${NC}"
|
||||
Reference in New Issue
Block a user