summaryrefslogtreecommitdiff
path: root/containers/tests/test_base_container.sh
diff options
context:
space:
mode:
Diffstat (limited to 'containers/tests/test_base_container.sh')
-rwxr-xr-xcontainers/tests/test_base_container.sh131
1 files changed, 0 insertions, 131 deletions
diff --git a/containers/tests/test_base_container.sh b/containers/tests/test_base_container.sh
deleted file mode 100755
index b5115ec..0000000
--- a/containers/tests/test_base_container.sh
+++ /dev/null
@@ -1,131 +0,0 @@
1#!/bin/bash
2
3# Container Test Script for rocky_dev:latest
4# This script tests all the functionality of the base container
5
6set -e
7
8CONTAINER_NAME="rocky_dev_test_$$"
9IMAGE_NAME="rocky_dev:latest"
10TEST_PORT=$(shuf -i 30000-40000 -n 1)
11
12# Cleanup function
13cleanup() {
14 echo ""
15 echo "Cleaning up..."
16 podman stop $CONTAINER_NAME >/dev/null 2>&1 || true
17 podman rm $CONTAINER_NAME >/dev/null 2>&1 || true
18 echo "Container $CONTAINER_NAME removed"
19}
20
21# Set trap to cleanup on exit
22trap cleanup EXIT
23
24echo "=== Rocky Dev Container Test Suite ==="
25echo "Container: $CONTAINER_NAME"
26echo "Port: $TEST_PORT"
27echo ""
28
29# Function to run commands in container
30run_in_container() {
31 podman exec $CONTAINER_NAME bash -c "$1"
32}
33
34# Function to check if command exists
35check_command() {
36 local cmd=$1
37 echo -n "Checking $cmd... "
38 if run_in_container "command -v $cmd" >/dev/null 2>&1; then
39 echo "✓"
40 return 0
41 else
42 echo "✗"
43 return 1
44 fi
45}
46
47# Start container
48echo "1. Starting container..."
49podman run -d -p ${TEST_PORT}:22 --name $CONTAINER_NAME $IMAGE_NAME
50sleep 5
51
52echo ""
53echo "2. Testing system packages..."
54# Test core development tools
55check_command gcc
56check_command g++
57check_command make
58check_command cmake
59check_command git
60check_command python3
61check_command pip3
62
63echo ""
64echo "3. Testing system utilities..."
65# Test system utilities
66check_command tmux
67check_command vim
68check_command nano
69check_command tree
70check_command htop
71check_command bmon
72check_command wget
73check_command nc
74check_command bat
75
76echo ""
77echo "4. Testing SSH configuration..."
78# Check SSH daemon
79run_in_container "ps aux | grep sshd | grep -v grep" && echo "✓ SSH daemon running" || echo "✗ SSH daemon not running"
80
81# Check SSH config
82run_in_container "grep -q 'PubkeyAuthentication yes' /etc/ssh/sshd_config" && echo "✓ PubkeyAuthentication enabled" || echo "✗ PubkeyAuthentication not enabled"
83run_in_container "grep -q 'PermitRootLogin yes' /etc/ssh/sshd_config" && echo "✓ PermitRootLogin enabled" || echo "✗ PermitRootLogin not enabled"
84
85# Check SSH directory
86run_in_container "test -d /root/.ssh && test -f /root/.ssh/authorized_keys" && echo "✓ SSH directory configured" || echo "✗ SSH directory not configured"
87
88echo ""
89echo "5. Testing Rust installation..."
90# Test Rust
91run_in_container "source /root/.cargo/env && cargo --version" && echo "✓ Cargo installed" || echo "✗ Cargo not installed"
92run_in_container "source /root/.cargo/env && rustc --version" && echo "✓ Rust compiler installed" || echo "✗ Rust compiler not installed"
93
94# Test Rust tools
95echo "Checking Rust tools..."
96for tool in cargo-clone cargo-add cargo-info bacon dust; do
97 run_in_container "source /root/.cargo/env && command -v $tool" >/dev/null 2>&1 && echo " ✓ $tool" || echo " ✗ $tool"
98done
99# Check evcxr_jupyter separately (it's a Jupyter kernel, not a CLI tool)
100run_in_container "source /root/.cargo/env && ls ~/.cargo/bin/evcxr_jupyter" >/dev/null 2>&1 && echo " ✓ evcxr_jupyter (Rust Jupyter kernel)" || echo " ✗ evcxr_jupyter"
101
102echo ""
103echo "6. Testing Node.js installation..."
104# Test Node.js
105run_in_container "source /root/.nvm/nvm.sh && node --version" && echo "✓ Node.js installed" || echo "✗ Node.js not installed"
106run_in_container "source /root/.nvm/nvm.sh && npm --version" && echo "✓ npm installed" || echo "✗ npm not installed"
107
108# Test claude-code
109run_in_container "source /root/.nvm/nvm.sh && claude --version" >/dev/null 2>&1 && echo "✓ claude-code installed" || echo "✗ claude-code not installed"
110
111echo ""
112echo "7. Testing environment configuration..."
113# Test bash configuration
114run_in_container "grep -q 'LS_COLORS' /etc/bashrc" && echo "✓ LS_COLORS configured" || echo "✗ LS_COLORS not configured"
115run_in_container "grep -q 'PS1=' /etc/bashrc" && echo "✓ Custom prompt configured" || echo "✗ Custom prompt not configured"
116
117echo ""
118echo "8. Testing SSH connectivity..."
119# Test SSH connection (this will fail without proper keys)
120echo -n "Testing SSH port accessibility... "
121nc -zv localhost $TEST_PORT 2>&1 | grep -q succeeded && echo "✓" || echo "✗"
122
123echo ""
124echo "9. Testing file system..."
125# Check working directory
126run_in_container "pwd" | grep -q "/root" && echo "✓ Working directory is /root" || echo "✗ Working directory incorrect"
127
128echo ""
129echo "=== Test Summary ==="
130echo "All tests completed successfully!"
131echo "Container will be automatically cleaned up." \ No newline at end of file