diff options
| author | hc <hc@email.ch> | 2025-06-25 19:40:43 +0800 |
|---|---|---|
| committer | hc <hc@email.ch> | 2025-06-25 19:40:43 +0800 |
| commit | ccdde5f4424836fc8e9cc98c204510fed9612e70 (patch) | |
| tree | df1500f00b2f0b32b8729732454585c318b51110 /tests | |
| parent | d6eb567da3e6d2e64ebf22adf1fc6d21c47090f8 (diff) | |
merged setup and contaienrs
Diffstat (limited to 'tests')
| -rwxr-xr-x | tests/test_base_container.sh | 131 | ||||
| -rwxr-xr-x | tests/test_gpu_container.sh | 146 |
2 files changed, 0 insertions, 277 deletions
diff --git a/tests/test_base_container.sh b/tests/test_base_container.sh deleted file mode 100755 index b5115ec..0000000 --- a/tests/test_base_container.sh +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/bash - -# Container Test Script for rocky_dev:latest -# This script tests all the functionality of the base container - -set -e - -CONTAINER_NAME="rocky_dev_test_$$" -IMAGE_NAME="rocky_dev:latest" -TEST_PORT=$(shuf -i 30000-40000 -n 1) - -# Cleanup function -cleanup() { - echo "" - echo "Cleaning up..." - podman stop $CONTAINER_NAME >/dev/null 2>&1 || true - podman rm $CONTAINER_NAME >/dev/null 2>&1 || true - echo "Container $CONTAINER_NAME removed" -} - -# Set trap to cleanup on exit -trap cleanup EXIT - -echo "=== Rocky Dev Container Test Suite ===" -echo "Container: $CONTAINER_NAME" -echo "Port: $TEST_PORT" -echo "" - -# Function to run commands in container -run_in_container() { - podman exec $CONTAINER_NAME bash -c "$1" -} - -# Function to check if command exists -check_command() { - local cmd=$1 - echo -n "Checking $cmd... " - if run_in_container "command -v $cmd" >/dev/null 2>&1; then - echo "✓" - return 0 - else - echo "✗" - return 1 - fi -} - -# Start container -echo "1. Starting container..." -podman run -d -p ${TEST_PORT}:22 --name $CONTAINER_NAME $IMAGE_NAME -sleep 5 - -echo "" -echo "2. Testing system packages..." -# Test core development tools -check_command gcc -check_command g++ -check_command make -check_command cmake -check_command git -check_command python3 -check_command pip3 - -echo "" -echo "3. Testing system utilities..." -# Test system utilities -check_command tmux -check_command vim -check_command nano -check_command tree -check_command htop -check_command bmon -check_command wget -check_command nc -check_command bat - -echo "" -echo "4. Testing SSH configuration..." -# Check SSH daemon -run_in_container "ps aux | grep sshd | grep -v grep" && echo "✓ SSH daemon running" || echo "✗ SSH daemon not running" - -# Check SSH config -run_in_container "grep -q 'PubkeyAuthentication yes' /etc/ssh/sshd_config" && echo "✓ PubkeyAuthentication enabled" || echo "✗ PubkeyAuthentication not enabled" -run_in_container "grep -q 'PermitRootLogin yes' /etc/ssh/sshd_config" && echo "✓ PermitRootLogin enabled" || echo "✗ PermitRootLogin not enabled" - -# Check SSH directory -run_in_container "test -d /root/.ssh && test -f /root/.ssh/authorized_keys" && echo "✓ SSH directory configured" || echo "✗ SSH directory not configured" - -echo "" -echo "5. Testing Rust installation..." -# Test Rust -run_in_container "source /root/.cargo/env && cargo --version" && echo "✓ Cargo installed" || echo "✗ Cargo not installed" -run_in_container "source /root/.cargo/env && rustc --version" && echo "✓ Rust compiler installed" || echo "✗ Rust compiler not installed" - -# Test Rust tools -echo "Checking Rust tools..." -for tool in cargo-clone cargo-add cargo-info bacon dust; do - run_in_container "source /root/.cargo/env && command -v $tool" >/dev/null 2>&1 && echo " ✓ $tool" || echo " ✗ $tool" -done -# Check evcxr_jupyter separately (it's a Jupyter kernel, not a CLI tool) -run_in_container "source /root/.cargo/env && ls ~/.cargo/bin/evcxr_jupyter" >/dev/null 2>&1 && echo " ✓ evcxr_jupyter (Rust Jupyter kernel)" || echo " ✗ evcxr_jupyter" - -echo "" -echo "6. Testing Node.js installation..." -# Test Node.js -run_in_container "source /root/.nvm/nvm.sh && node --version" && echo "✓ Node.js installed" || echo "✗ Node.js not installed" -run_in_container "source /root/.nvm/nvm.sh && npm --version" && echo "✓ npm installed" || echo "✗ npm not installed" - -# Test claude-code -run_in_container "source /root/.nvm/nvm.sh && claude --version" >/dev/null 2>&1 && echo "✓ claude-code installed" || echo "✗ claude-code not installed" - -echo "" -echo "7. Testing environment configuration..." -# Test bash configuration -run_in_container "grep -q 'LS_COLORS' /etc/bashrc" && echo "✓ LS_COLORS configured" || echo "✗ LS_COLORS not configured" -run_in_container "grep -q 'PS1=' /etc/bashrc" && echo "✓ Custom prompt configured" || echo "✗ Custom prompt not configured" - -echo "" -echo "8. Testing SSH connectivity..." -# Test SSH connection (this will fail without proper keys) -echo -n "Testing SSH port accessibility... " -nc -zv localhost $TEST_PORT 2>&1 | grep -q succeeded && echo "✓" || echo "✗" - -echo "" -echo "9. Testing file system..." -# Check working directory -run_in_container "pwd" | grep -q "/root" && echo "✓ Working directory is /root" || echo "✗ Working directory incorrect" - -echo "" -echo "=== Test Summary ===" -echo "All tests completed successfully!" -echo "Container will be automatically cleaned up."
\ No newline at end of file diff --git a/tests/test_gpu_container.sh b/tests/test_gpu_container.sh deleted file mode 100755 index 593f927..0000000 --- a/tests/test_gpu_container.sh +++ /dev/null @@ -1,146 +0,0 @@ -#!/bin/bash - -# Container Test Script for rocky_dev_gpu:latest -# This script tests all the functionality of the GPU-enabled container - -set -e - -CONTAINER_NAME="rocky_dev_gpu_test_$$" -IMAGE_NAME="rocky_dev_gpu:latest" -TEST_PORT=$(shuf -i 40000-50000 -n 1) - -# Cleanup function -cleanup() { - echo "" - echo "Cleaning up..." - podman stop $CONTAINER_NAME >/dev/null 2>&1 || true - podman rm $CONTAINER_NAME >/dev/null 2>&1 || true - echo "Container $CONTAINER_NAME removed" -} - -# Set trap to cleanup on exit -trap cleanup EXIT - -echo "=== Rocky Dev GPU Container Test Suite ===" -echo "Container: $CONTAINER_NAME" -echo "Port: $TEST_PORT" -echo "" - -# Function to run commands in container -run_in_container() { - podman exec $CONTAINER_NAME bash -c "$1" -} - -# Function to check if command exists -check_command() { - local cmd=$1 - echo -n "Checking $cmd... " - if run_in_container "command -v $cmd" >/dev/null 2>&1; then - echo "✓" - return 0 - else - echo "✗" - return 1 - fi -} - -# Start container with GPU support -echo "1. Starting GPU container..." -podman run -d -p ${TEST_PORT}:22 --device nvidia.com/gpu=all --name $CONTAINER_NAME $IMAGE_NAME -sleep 5 - -echo "" -echo "2. Testing base container functionality..." -echo "(Inherited from rocky_dev:latest)" - -# Quick check of base tools -echo -n "Development tools: " -for cmd in gcc g++ make cmake git python3; do - run_in_container "command -v $cmd" >/dev/null 2>&1 || { echo "✗ Missing $cmd"; exit 1; } -done -echo "✓" - -echo -n "Rust toolchain: " -run_in_container "source /root/.cargo/env && cargo --version" >/dev/null 2>&1 && echo "✓" || echo "✗" - -echo -n "Node.js: " -run_in_container "source /root/.nvm/nvm.sh && node --version" >/dev/null 2>&1 && echo "✓" || echo "✗" - -echo "" -echo "3. Testing GPU-specific packages..." -# Check for GPU utilities -check_command lspci -check_command nvidia-smi || echo " (nvidia-smi requires actual GPU hardware)" - -# Check for kernel packages -echo -n "Checking kernel headers... " -run_in_container "rpm -q kernel-headers" >/dev/null 2>&1 && echo "✓" || echo "✗" - -echo -n "Checking kernel-devel... " -run_in_container "rpm -q kernel-devel" >/dev/null 2>&1 && echo "✓" || echo "✗" - -echo -n "Checking pciutils... " -run_in_container "rpm -q pciutils" >/dev/null 2>&1 && echo "✓" || echo "✗" - -echo "" -echo "4. Testing NVIDIA container toolkit..." -echo -n "Checking nvidia-container-toolkit... " -run_in_container "rpm -q nvidia-container-toolkit" >/dev/null 2>&1 && echo "✓" || echo "✗" - -echo "" -echo "5. Testing GPU environment variables..." -# Check environment variables -echo -n "NVIDIA_VISIBLE_DEVICES... " -run_in_container "echo \$NVIDIA_VISIBLE_DEVICES" | grep -q "all" && echo "✓ Set to 'all'" || echo "✗ Not set correctly" - -echo -n "NVIDIA_DRIVER_CAPABILITIES... " -run_in_container "echo \$NVIDIA_DRIVER_CAPABILITIES" | grep -q "compute,utility" && echo "✓ Set to 'compute,utility'" || echo "✗ Not set correctly" - -echo "" -echo "6. Testing GPU test script..." -# Check if gpu-test.sh exists and is executable -echo -n "Checking /usr/local/bin/gpu-test.sh... " -run_in_container "test -x /usr/local/bin/gpu-test.sh" && echo "✓ Exists and executable" || echo "✗ Not found or not executable" - -# Run the GPU test script -echo "" -echo "Running GPU test script:" -echo "------------------------" -run_in_container "/usr/local/bin/gpu-test.sh" || echo "Note: Some GPU tests may fail without actual GPU hardware" -echo "------------------------" - -echo "" -echo "7. Testing workspace directory..." -# Check workspace directory -echo -n "Checking /workspace directory... " -run_in_container "test -d /workspace" && echo "✓ Exists" || echo "✗ Not found" - -echo "" -echo "8. Testing PCI device detection..." -# Try to detect any NVIDIA devices -echo "PCI devices (filtered for NVIDIA/GPU):" -run_in_container "lspci 2>/dev/null | grep -iE '(nvidia|vga|3d|display)' || echo ' No GPU devices detected (this is normal without GPU hardware)'" - -echo "" -echo "9. Testing container GPU device access..." -# Check if container has GPU device access -echo -n "Checking /dev/nvidia* devices... " -if run_in_container "ls /dev/nvidia* 2>/dev/null" >/dev/null 2>&1; then - echo "✓ GPU devices found" - run_in_container "ls -la /dev/nvidia*" -else - echo "✗ No GPU devices (normal without GPU hardware)" -fi - -echo "" -echo "=== Test Summary ===" -echo "GPU Support Status:" -if run_in_container "command -v nvidia-smi && nvidia-smi" >/dev/null 2>&1; then - echo " ✓ Full GPU support detected" -else - echo " ⚠ GPU tools installed but no GPU hardware detected" - echo " This is normal when running without NVIDIA GPU" -fi -echo "" -echo "All tests completed successfully!" -echo "Container will be automatically cleaned up."
\ No newline at end of file |
