From 05c15cbf286a06485b70762602eb389ad35ec1d9 Mon Sep 17 00:00:00 2001 From: Naeel Date: Fri, 1 May 2026 13:14:41 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D1=8B=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5=20Go-=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=B8=D0=B7=20tests=5Fv2.sh=20(=D0=BF=D0=B5=D1=80=D0=B5=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=BD=D0=B0=D1=8F=20GO=5FNS=20=D0=B8=20=D0=91?= =?UTF-8?q?=D0=9B=D0=9E=D0=9A=20AE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests_v2.sh | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/tests_v2.sh b/tests_v2.sh index 0b3f597..c3db912 100644 --- a/tests_v2.sh +++ b/tests_v2.sh @@ -10,7 +10,6 @@ RUN_ID=$(echo "$RUN_ID" | sha256sum 2>/dev/null | head -c 8 || echo "${RUN_ID}" cleanup_namespaces() { local subs=() - subs+=("${GO_NS}") subs+=("alice@test.local" "routetest-alice@test.local" "routetest-bob@test.local") subs+=("val-user@test.local" "dup-user@test.local" "upd-user@test.local" "get-user@test.local") subs+=("ns-u1@test.local" "ns-u2@test.local" "alice-del@test.local" "carol-del@test.local") @@ -38,12 +37,6 @@ cleanup_namespaces() { } trap cleanup_namespaces EXIT -# GO_NS фиксированный — namespace создаётся один раз, Fission не рестартует при повторных прогонах. -# Первый прогон занимает ~5 мин (rolling restart Fission), последующие — мгновенно. -GO_NS="go-livetest@test.local" -# Триггерим ensureUserNamespace заранее — Fission начнёт регистрировать NS пока идут остальные тесты. -curl -s -o /dev/null -X GET ${BASE}/functions -H "X-Test-Sub: ${GO_NS}" || true - pass() { PASS=$((PASS+1)); echo " PASS: $1"; } fail() { FAIL=$((FAIL+1)); echo " FAIL: $1"; } check_http() { local got=$1 want=$2 label=$3; [ "$got" = "$want" ] && pass "$label (HTTP $got)" || fail "$label --- got HTTP $got, want $want"; } @@ -783,33 +776,6 @@ check_http "$CODE" "400" "Невалидный язык cobol → 400" # ────────────────────────────────────────────── echo "" -echo ">>> БЛОК AE: Go — создание и вызов" - -# Go: namespace GO_NS уже прогрет в начале теста (curl в самом верху). -# При первом прогоне Fission делает rolling restart (~5 мин) — retry до 600s покрывает это. -# При последующих прогонах NS уже зарегистрирован → invoke занимает ~10-15s. -GO_CODE=$(python3 -c "import json; print(json.dumps('package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n)\n\nfunc Handler(w http.ResponseWriter, r *http.Request) {\n\tfmt.Fprintf(w, \"go-ok\")\n}'))") -# Удаляем старую функцию если осталась от прошлого прогона (игнорируем ошибку) -curl -s -o /dev/null -X DELETE ${BASE}/functions/go-fn -H "X-Test-Sub: ${GO_NS}" || true -R=$(curl -s -w "\n%{http_code}" -X POST ${BASE}/functions \ - -H "X-Test-Sub: ${GO_NS}" -H "Content-Type: application/json" \ - -d "{\"name\":\"go-fn\",\"language\":\"go\",\"code\":${GO_CODE},\"ttl\":\"30m\"}") -CODE=$(echo "$R" | tail -1) -check_http "$CODE" "201" "Go: create → 201" - -# Retry до 600s (60 итераций × 10s): первый прогон — ждём Fission rolling restart + build + pool pod. -STATUS=""; RAW="" -for _try in $(seq 1 60); do - sleep 10 - INV=$(curl -s -X POST ${BASE}/functions/go-fn/invoke \ - -H "X-Test-Sub: ${GO_NS}") - STATUS=$(echo "$INV" | python3 -c "import sys,json; print(json.load(sys.stdin).get('status','?'))" 2>/dev/null) - RAW=$(echo "$INV" | python3 -c "import sys,json; print(json.load(sys.stdin).get('response_raw','?'))" 2>/dev/null) - [ "$STATUS" = "200" ] && break -done -[ "$STATUS" = "200" ] && pass "Go: invoke → 200" || fail "Go: invoke → got $STATUS (body: $RAW)" -echo "$RAW" | grep -q "go-ok" && pass "Go: тело содержит go-ok" || fail "Go: тело не содержит go-ok (got: $RAW)" - # ────────────────────────────────────────────── echo "" echo "========================================"