Files
fission-console/scripts/run_all.sh
T
Naeel c1e3039d15 tests: тест-скрипты v2 — полный сьют PASS=8 FAIL=0
- lib.sh: утилиты (json_field, wait_invoke, print_summary)
- run_all.sh: запуск всех скриптов + финальная сводка
- pre_cleanup.sh: очистка тест-namespace-ов перед прогоном
- test_auth.sh: 14/14 PASS — авторизация, namespace детерминизм
- test_functions_crud.sh: 29/29 PASS — CRUD, валидация, >1MB
- test_ttl.sh: 10/10 PASS — TTL=15m/1h/2d, невалидные
- test_isolation.sh: 11/11 PASS — изоляция пользователей
- test_update.sh: 10/10 PASS — PUT /code v1→v2→v3 (livetest)
- test_invoke.sh: 9/9 PASS — NodeJS/Python invoke (livetest)
- test_stress.sh: 3/3 PASS — 8 пользователей параллельно (livetest)
- test_linters.sh: 31/31 PASS — синтаксис 5 языков
2026-05-03 14:02:24 +03:00

102 lines
3.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# run_all.sh — запускает все тест-скрипты по очереди, выводит итог.
# Каждый скрипт независим и имеет собственный cleanup.
# При падении одного скрипта остальные продолжают выполняться.
#
# Запуск: bash run_all.sh
# Запуск одного: bash run_all.sh test_auth.sh
set -uo pipefail
ROOT_DIR=$(cd "$(dirname "$0")" && pwd)
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
TOTAL_PASS=0
TOTAL_FAIL=0
FAILED_SCRIPTS=()
run_script() {
local script="$1"
local name
name=$(basename "$script")
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo " ЗАПУСК: $name"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
local exit_code=0
bash "$script" || exit_code=$?
if [ "$exit_code" -eq 0 ]; then
echo -e "${GREEN}$name — PASSED${NC}"
TOTAL_PASS=$((TOTAL_PASS+1))
else
echo -e "${RED}$name — FAILED (exit $exit_code)${NC}"
TOTAL_FAIL=$((TOTAL_FAIL+1))
FAILED_SCRIPTS+=("$name")
fi
}
# Список скриптов в порядке выполнения
# (быстрые сначала, invoke/stress — последними)
SCRIPTS=(
"${ROOT_DIR}/test_auth.sh"
"${ROOT_DIR}/test_functions_crud.sh"
"${ROOT_DIR}/test_ttl.sh"
"${ROOT_DIR}/test_isolation.sh"
"${ROOT_DIR}/test_update.sh"
"${ROOT_DIR}/test_invoke.sh"
"${ROOT_DIR}/test_linters.sh"
"${ROOT_DIR}/test_stress.sh"
)
# Если передан аргумент — запускаем только его
if [ "$#" -ge 1 ]; then
SCRIPTS=("${ROOT_DIR}/$1")
fi
# Предварительная очистка тест-namespace-ов от прошлых прогонов.
# Запускается только если cleanup_test_namespaces.sh умеет wildcard.
PRE_CLEANUP="${ROOT_DIR}/pre_cleanup.sh"
if [ -x "$PRE_CLEANUP" ]; then
echo ""
echo ">>> Предварительная очистка тест-namespace-ов..."
KUBECTL_DIRECT=1 bash "$PRE_CLEANUP" 2>/dev/null || true
fi
echo ""
echo "╔══════════════════════════════════════╗"
echo "║ fission-console — полный тест-сьют ║"
echo "╚══════════════════════════════════════╝"
START_TIME=$(date +%s)
for script in "${SCRIPTS[@]}"; do
if [ ! -f "$script" ]; then
echo -e "${YELLOW} SKIP: $script не найден${NC}"
continue
fi
run_script "$script"
done
END_TIME=$(date +%s)
ELAPSED=$((END_TIME - START_TIME))
echo ""
echo "╔══════════════════════════════════════╗"
printf "║ Скриптов: PASS=%-3d FAIL=%-3d %3ds ║\n" "$TOTAL_PASS" "$TOTAL_FAIL" "$ELAPSED"
echo "╚══════════════════════════════════════╝"
if [ "${#FAILED_SCRIPTS[@]}" -gt 0 ]; then
echo ""
echo "Упавшие скрипты:"
for s in "${FAILED_SCRIPTS[@]}"; do
echo -e " ${RED}$s${NC}"
done
fi
[ "$TOTAL_FAIL" -eq 0 ]