#!/bin/bash # run-e2e.sh — Run E2E regression tests for agent outputs # Usage: bash tests/run-e2e.sh [--security] [--cost] [--summary] [--all] set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" RED='\033[0;31m' GREEN='\033[0;32m' CYAN='\033[0;36m' NC='\033[0m' # Parse arguments RUN_SECURITY=false RUN_COST=false RUN_SUMMARY=false RUN_ROS=false RUN_AI_ACT=false if [ $# -eq 0 ] || [ "${1:-}" = "--all" ]; then RUN_SECURITY=true RUN_COST=true RUN_SUMMARY=true RUN_ROS=true RUN_AI_ACT=true else while [ $# -gt 0 ]; do case "$1" in --security) RUN_SECURITY=true ;; --cost) RUN_COST=true ;; --summary) RUN_SUMMARY=true ;; --ros) RUN_ROS=true ;; --ai-act) RUN_AI_ACT=true ;; *) echo "Usage: bash tests/run-e2e.sh [--security] [--cost] [--summary] [--ros] [--ai-act] [--all]" exit 1 ;; esac shift done fi echo -e "${CYAN}╔══════════════════════════════════════════════╗${NC}" echo -e "${CYAN}║ MS AI Architect — E2E Regression Tests ║${NC}" echo -e "${CYAN}╚══════════════════════════════════════════════╝${NC}" echo "" FAILURES=0 if $RUN_SECURITY; then bash "$SCRIPT_DIR/test-security-output.sh" || FAILURES=$((FAILURES + 1)) fi if $RUN_COST; then bash "$SCRIPT_DIR/test-cost-output.sh" || FAILURES=$((FAILURES + 1)) fi if $RUN_SUMMARY; then bash "$SCRIPT_DIR/test-summary-output.sh" || FAILURES=$((FAILURES + 1)) fi if $RUN_ROS; then bash "$SCRIPT_DIR/test-ros-output.sh" || FAILURES=$((FAILURES + 1)) fi if $RUN_AI_ACT; then bash "$SCRIPT_DIR/test-ai-act-output.sh" || FAILURES=$((FAILURES + 1)) fi echo -e "${CYAN}══════════════════════════════════════════════${NC}" if [ "$FAILURES" -eq 0 ]; then echo -e "${GREEN} All E2E suites passed${NC}" else echo -e "${RED} $FAILURES suite(s) had failures${NC}" fi echo -e "${CYAN}══════════════════════════════════════════════${NC}" exit $FAILURES