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 языков
This commit is contained in:
Naeel
2026-05-03 14:02:24 +03:00
parent f18508d2cb
commit c1e3039d15
11 changed files with 1152 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/env bash
# pre_cleanup.sh — удаляет ВСЕ тест-namespace-ы fission от прошлых прогонов.
# Паттерны: fission-<hex16> для namespace-ов созданных тест-субами вида
# crud-*/ttl-*/invoke-*/update-*/isolation-*/stress-*/alice-*/bob-*/
# linter-*@test.local
# Вызывается из run_all.sh с KUBECTL_DIRECT=1.
set -uo pipefail
if [ "${KUBECTL_DIRECT:-0}" != "1" ]; then
echo "pre_cleanup.sh: нужен KUBECTL_DIRECT=1 (должен запускаться на VM)" >&2
exit 1
fi
CLEANUP="${BASH_SOURCE%/*}/cleanup_test_namespaces.sh"
if [ ! -x "$CLEANUP" ]; then
echo "pre_cleanup.sh: cleanup_test_namespaces.sh не найден" >&2
exit 1
fi
# Список тест-субов создаёт namespace с именем fission-<hex16>.
# Получить все fission-namespace-ы кроме системного fission:
NS_LIST=$(kubectl get ns -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' 2>/dev/null | \
grep -E '^fission-[0-9a-f]{16}$' || true)
if [ -z "$NS_LIST" ]; then
echo "pre_cleanup.sh: тест-namespace-ы не найдены, пропускаем."
exit 0
fi
COUNT=$(echo "$NS_LIST" | wc -l)
echo "pre_cleanup.sh: найдено $COUNT тест-namespace-ов, удаляем..."
# cleanup_test_namespaces.sh принимает email-субы, а не namespace-ы.
# Но мы можем вызвать kubectl delete напрямую для namespace-ов.
echo "$NS_LIST" | xargs -r kubectl delete namespace --ignore-not-found 2>&1 | \
grep -v "^$" || true
echo "pre_cleanup.sh: очистка завершена."