658a8541e9
SamiOS CI / lint-and-test (push) Successful in 14s
Major update adding full desktop environment support, complete branding suite, and project infrastructure: Desktop (WSL): - KDE Plasma + SDDM + Dolphin/Konsole/Kate/Firefox setup script - Windows 11 dark/light color schemes - PipeWire audio stack - WSLg-compatible launch script - SamiOS CLI tool (v0.2.0) with desktop command Branding: - Logos: face-on-pyramid with and without text (500px) - Icons: square + launcher (256/512/1024px) + SVG vector - Wallpapers: 1920x1080, 4K, clean variant (PIL-generated) - GRUB theme: full cobalt blue (#1424CE) theme with pyramid background - SDDM theme: SamiOS login screen configuration - Branding README with palette, typography, usage guidelines Fonts: - Sami Grotesk (Helvetica-like) as default system/UI font - Sami Sans as secondary - Full Sami font family support (excluding 7777 personal branding) - fontconfig rules mapping Helvetica/Arial → Sami Grotesk - Font policy enforcement in samios CLI Infrastructure: - Automated installer (samios-installer.sh): partition, format, pacstrap, bootloader - PKGBUILD for samios-branding package - Test suite: shell tests for profiledef, packages, pacman.conf, CLI, font policy - Makefile: test, lint, check, build, clean targets - Gitea Actions CI workflow - Voice integration architecture document (SamiType × SamiOS) - Updated roadmap reflecting completed phases
84 lines
2.3 KiB
Bash
Executable File
84 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# SamiOS test suite runner
|
|
# Runs all test scripts and aggregates results.
|
|
#
|
|
# Usage: ./tests/run_tests.sh [--verbose]
|
|
# Exit code: 0 if all tests pass, 1 if any fail.
|
|
|
|
set -uo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
VERBOSE=false
|
|
|
|
if [ "${1:-}" = "--verbose" ] || [ "${1:-}" = "-v" ]; then
|
|
VERBOSE=true
|
|
fi
|
|
|
|
echo "╔══════════════════════════════════════╗"
|
|
echo "║ SamiOS Test Suite Runner ║"
|
|
echo "╚══════════════════════════════════════╝"
|
|
|
|
TEST_FILES=(
|
|
"test_profiledef.sh"
|
|
"test_packages.sh"
|
|
"test_pacman_conf.sh"
|
|
"test_samios_cli.sh"
|
|
"test_font_policy.sh"
|
|
)
|
|
|
|
TOTAL_RUN=0
|
|
TOTAL_PASSED=0
|
|
TOTAL_FAILED=0
|
|
FAILED_SUITES=()
|
|
|
|
for tf in "${TEST_FILES[@]}"; do
|
|
full_path="$SCRIPT_DIR/$tf"
|
|
if [ ! -f "$full_path" ]; then
|
|
echo "WARNING: test file not found: $full_path"
|
|
continue
|
|
fi
|
|
|
|
suite_name="${tf%.sh}"
|
|
echo ""
|
|
echo ">>> Running: $suite_name"
|
|
|
|
# Run the test file in a subshell so we capture its exit code
|
|
output=$(bash "$full_path" 2>&1)
|
|
exit_code=$?
|
|
|
|
if $VERBOSE || [ $exit_code -ne 0 ]; then
|
|
echo "$output"
|
|
else
|
|
# Print just the suite headers and pass/fail lines
|
|
echo "$output" | grep -E "^=|^ [✓✗]"
|
|
fi
|
|
|
|
if [ $exit_code -ne 0 ]; then
|
|
FAILED_SUITES+=("$suite_name")
|
|
echo " >>> FAILED"
|
|
else
|
|
echo " >>> PASSED"
|
|
fi
|
|
done
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Summary
|
|
# ---------------------------------------------------------------------------
|
|
echo ""
|
|
echo "═══════════════════════════════════════"
|
|
echo "SamiOS Test Suite — Final Summary"
|
|
echo "═══════════════════════════════════════"
|
|
|
|
if [ ${#FAILED_SUITES[@]} -eq 0 ]; then
|
|
echo "All test suites PASSED ✓"
|
|
exit 0
|
|
else
|
|
echo "FAILED suites:"
|
|
for s in "${FAILED_SUITES[@]}"; do
|
|
echo " ✗ $s"
|
|
done
|
|
echo ""
|
|
echo "${#FAILED_SUITES[@]} suite(s) failed"
|
|
exit 1
|
|
fi
|