Files
samios/tests/run_tests.sh
T
Sami Ahmed 658a8541e9
SamiOS CI / lint-and-test (push) Successful in 14s
v0.2.0: WSL desktop, branding, GRUB theme, CI, installer, fonts, voice architecture
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
2026-08-11 03:39:47 -07:00

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