nip/tests/run_multiplatform_tests.sh

112 lines
4.4 KiB
Bash
Executable File

#!/bin/bash
# run_multiplatform_tests.sh - Run tests across multiple platforms
set -e
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🌍 Multi-Platform Test Runner"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# Detect platform
OS=$(uname -s)
ARCH=$(uname -m)
echo "Platform: $OS / $ARCH"
echo ""
# Run platform detection tests
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "📋 Platform Detection Tests"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
nim c -r tests/test_multiplatform.nim
echo ""
# Run container tests if available
if command -v docker &> /dev/null || command -v podman &> /dev/null; then
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🐳 Container Tests"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
nim c -r tests/test_container_builds.nim
echo ""
fi
# Platform-specific tests
case "$OS" in
Linux)
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🐧 Linux-Specific Tests"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# Check for systemd
if command -v systemctl &> /dev/null; then
echo "✅ systemd available"
fi
# Check for package managers
if command -v apt &> /dev/null; then
echo "✅ apt available (Debian/Ubuntu)"
fi
if command -v dnf &> /dev/null; then
echo "✅ dnf available (Fedora/RHEL)"
fi
if command -v pacman &> /dev/null; then
echo "✅ pacman available (Arch)"
fi
if command -v zypper &> /dev/null; then
echo "✅ zypper available (openSUSE)"
fi
echo ""
;;
Darwin)
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🍎 macOS-Specific Tests"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# Check for Homebrew
if command -v brew &> /dev/null; then
echo "✅ Homebrew available"
fi
# Check for MacPorts
if command -v port &> /dev/null; then
echo "✅ MacPorts available"
fi
echo ""
;;
FreeBSD|OpenBSD|NetBSD|DragonFly)
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "👹 BSD-Specific Tests"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# Check for pkg
if command -v pkg &> /dev/null; then
echo "✅ pkg available"
fi
echo ""
;;
esac
# Architecture-specific tests
case "$ARCH" in
x86_64|amd64)
echo "✅ x86_64 architecture detected"
;;
aarch64|arm64)
echo "✅ ARM64 architecture detected"
;;
armv7*)
echo "✅ ARMv7 architecture detected"
;;
esac
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "✅ Multi-Platform Tests Complete"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"