From 9b5dec4ddee49dfebc9a1497744fee3521ce2d91 Mon Sep 17 00:00:00 2001 From: Naeel Date: Sun, 22 Mar 2026 15:00:55 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20multiuser=20test=20=E2=80=94=20memory=5F?= =?UTF-8?q?mb=20+=20zip=20invalid=20+=20early=20return?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- operator_multiuser_test.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/operator_multiuser_test.sh b/operator_multiuser_test.sh index 0321f6a..53e227b 100755 --- a/operator_multiuser_test.sh +++ b/operator_multiuser_test.sh @@ -51,11 +51,14 @@ make_fake_jwt() { # make_py_zip zipfile — создаёт zip с Python-функцией + requirements.txt. # Функция: CREATE TABLE IF NOT EXISTS → INSERT → SELECT COUNT(*) → return. # Таблица приходит через env TEST_TABLE (изоляция по namespace). +# Важно: zipfile не должен существовать до вызова zip (иначе zip пытается его +# открыть как существующий архив → "Zip file structure invalid"). # --------------------------------------------------------------------------- make_py_zip() { local zipfile="$1" local tmpdir tmpdir=$(mktemp -d) + rm -f "$zipfile" # гарантируем чистый файл — zip создаёт с нуля # Одинарные кавычки в EOF — чтобы bash не раскрывал $ внутри heredoc cat > "$tmpdir/pg_tester.py" << 'PYEOF' # pg_tester.py — тестовая функция: INSERT/SELECT в PG через env_vars. @@ -164,23 +167,27 @@ run_user_test() { fi # ----------------------------------------------------------------------- - # U-2: Create service с PG env_vars + # U-2: Create service с PG env_vars + memory_mb (обязательное поле, мин 1) # ----------------------------------------------------------------------- local create_json create_json=$(printf \ - '{"name":"%s","runtime":"python3.11","entrypoint":"pg_tester.handle","env_vars":{"PGHOST":"%s","PGDATABASE":"%s","PGUSER":"%s","PGPASSWORD":"%s","TEST_TABLE":"%s"}}' \ + '{"name":"%s","runtime":"python3.11","entrypoint":"pg_tester.handle","memory_mb":128,"env_vars":{"PGHOST":"%s","PGDATABASE":"%s","PGUSER":"%s","PGPASSWORD":"%s","TEST_TABLE":"%s"}}' \ "$svc" "$PG_HOST" "$PG_DB" "$PG_USER" "$PG_PASS" "$table") - code=$(curl -s -o /dev/null -w "%{http_code}" -X POST \ + local create_body + create_body=$(curl -s -w "\n%{http_code}" -X POST \ "$API_BASE/namespaces/${ns}/services" \ -H "Authorization: Bearer $token" \ -H "Content-Type: application/json" \ -d "$create_json") + code=$(printf '%s' "$create_body" | tail -1) if [[ "$code" == "201" ]]; then echo "U${n}-2 PASS create($code)" (( pass++ )) else - echo "U${n}-2 FAIL create=$code" + echo "U${n}-2 FAIL create=$code body=$(printf '%s' "$create_body" | head -1)" (( fail++ )) + printf '%d %d\n' "$pass" "$fail" > "$RESULTS_DIR/user_${n}.result" + return fi # -----------------------------------------------------------------------