==========================================
SQS Operator Full Test Suite v0.1.4
2026-04-07 16:01:05
tenant: test001 ep: https://sqs.kube5s.ru/sqs/test001
==========================================
AK: SQSAK-test001-ae4dc8
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PHASE 1 — Базовые операции (T01–T11)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
--- T01 ListQueues
✅ PASS[T01]
--- T02 CreateQueue
✅ PASS[T02 (https://sqs.kube5s.ru:443/sqs/test001/test001/t-basic)]
--- T03 CreateQueue idempotent
✅ PASS[T03]
--- T04 GetQueueUrl
✅ PASS[T04]
--- T05 SendMessage
✅ PASS[T05 (id=2f9a4f6d-b833-429d-9f90-1d911697590d)]
--- T06 ReceiveMessage
✅ PASS[T06 (body=hello-world)]
--- T07 DeleteMessage
✅ PASS[T07]
--- T08 ReceiveMessage empty
✅ PASS[T08]
--- T09 GetQueueAttributes
✅ PASS[T09]
--- T10 SetQueueAttributes
✅ PASS[T10]
--- T11 DeleteQueue
✅ PASS[T11]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PHASE 2 — Ошибочные параметры (E01–E09)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
--- E01 CreateQueue invalid name (spa ces)
✅ PASS[E01]
--- E02 VisibilityTimeout > 43200
⚠️ WARN[E02]: accepted invalidTimeout:
00000000-0000-0000-0000-000000000000
--- E03 ReceiveMessage non-existent queue
✅ PASS[E03]
--- E04 DeleteMessage invalid receipt
✅ PASS[E04]
--- E05 GetQueueUrl non-existent
✅ PASS[E05]
--- E06 DeleteMessage already deleted (idempotent?)
✅ PASS[E06 (double-delete handled)]
--- E07 Wrong credentials
⚠️ WARN[E07]: ElasticMQ не проверяет подпись (known limit в strict mode)
--- E08 SendMessage empty body
✅ PASS[E08]
--- E09 SendMessage oversized 300KB
/home/naeel/terra/sless/sqs-operator/test_full_suite.sh: line 191: /usr/bin/curl: Argument list too long
⚠️ WARN[E09]: oversized принято
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PHASE 3 — Продвинутые фичи (A01–A09)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
--- A01 VisibilityTimeout (5s)
Взяли: 'will-return', ждём 6с возврата...
✅ PASS[A01 (вернулось: 'will-return')]
--- A02 ChangeMessageVisibility → 0
✅ PASS[A02]
--- A03 SendMessageBatch 10
✅ PASS[A03 (sent=10)]
--- A04 ReceiveMessageBatch MaxNumberOfMessages=10
✅ PASS[A04 (recv=10)]
--- A05 DeleteMessageBatch
✅ PASS[A05 (deleted=10)]
--- A06 Long polling 3s (пустая очередь)
⚠️ WARN[A06]: слишком быстро: 0s
--- A07 MessageAttributes
✅ PASS[A07]
--- A08 PurgeQueue
✅ PASS[A08]
Сообщений после Purge: 0
--- A09 Dead Letter Queue
DLQ ARN: arn:aws:sqs:ru-msk-1:test001:t-dlq
✅ PASS[A09]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PHASE 4 — Multi-tenant изоляция (MT01–MT05)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
--- MT01 Создаём QueueService tenant002
queueservice.sqs.kube5s.ru/test-tenant-002 created
Ждём Ready (до 90с)...
✅ PASS[MT01 (tenant002 Ready)]
✅ PASS[MT01b creds OK (AK2=SQSAK-test002-10170e)]
--- MT02 Одинаковое имя в разных тенантах
T1 URL: https://sqs.kube5s.ru:443/sqs/test001/test001/shared-q
T2 URL: https://sqs.kube5s.ru:443/sqs/test002/test002/shared-q
✅ PASS[MT02]
--- MT03 Cross-tenant message isolation
❌ FAIL[MT03]: ISOLATION BREACH: tenant002 прочитал tenant001 сообщение!
--- MT04 Независимые операции в tenant002
✅ PASS[MT04 (tenant002 работает независимо)]
--- MT05 Удаляем tenant002
queueservice.sqs.kube5s.ru "test-tenant-002" deleted from sqs-operator-system namespace
Ждём удаления ресурсов...
⚠️ WARN[MT05]: namespace ещё существует: namespace/sless-fn-test002
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PHASE 5 — Operator Self-Healing (SH01–SH04)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
--- SH01 Удаляем Deployment ElasticMQ вручную
deployment.apps "sqs-test001" deleted from sless-fn-test001 namespace
Ждём пересоздания оператором...
✅ PASS[SH01 Deployment пересоздан]
--- SH02 Удаляем Service вручную
service "sqs-svc-test001" deleted from sless-fn-test001 namespace
❌ FAIL[SH02]: Service не восстановился
--- SH03 Удаляем ConfigMap вручную
configmap "sqs-cfg-test001" deleted from sless-fn-test001 namespace
⚠️ WARN[SH03]: ConfigMap не пересоздан (оператор может не watch-ить CM)
--- SH04 Ждём RestoreReady после self-healing
pod/sqs-test001-84d46d5dcf-7s4ct condition met
❌ FAIL[SH04]: SQS недоступен:
503 Service Temporarily Unavailable
503 Service Temporarily Unavailable
nginx
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PHASE 6 — Стресс-марафон (20 минут)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Старт: 16:05:10 → конец в 16:25:10
Режимы: Send, Batch-Send, Receive, Batch-Delete, PurgeQueue, GetAttrs, ErrorCases
[01:00 | iter=507] send=0 recv=0 del=0 err=633 | q: a= b= c= | pod_restarts=0
[02:00 | iter=1059] send=0 recv=0 del=0 err=1322 | q: a= b= c= | pod_restarts=0
[03:00 | iter=1642] send=0 recv=0 del=0 err=2052 | q: a= b= c= | pod_restarts=0
[04:00 | iter=2221] send=0 recv=0 del=0 err=2776 | q: a= b= c= | pod_restarts=0
[05:00 | iter=2797] send=0 recv=0 del=0 err=3495 | q: a= b= c= | pod_restarts=0
[06:00 | iter=3388] send=0 recv=0 del=0 err=4234 | q: a= b= c= | pod_restarts=0
[07:00 | iter=3988] send=0 recv=0 del=0 err=4984 | q: a= b= c= | pod_restarts=0
[08:00 | iter=4579] send=0 recv=0 del=0 err=5722 | q: a= b= c= | pod_restarts=0
[09:00 | iter=5143] send=0 recv=0 del=0 err=6428 | q: a= b= c= | pod_restarts=0
[10:00 | iter=5721] send=0 recv=0 del=0 err=7151 | q: a= b= c= | pod_restarts=0
[11:00 | iter=6284] send=0 recv=0 del=0 err=7854 | q: a= b= c= | pod_restarts=0
[12:00 | iter=6878] send=0 recv=0 del=0 err=8596 | q: a= b= c= | pod_restarts=0
[13:00 | iter=7476] send=0 recv=0 del=0 err=9344 | q: a= b= c= | pod_restarts=0
[14:03 | iter=8048] send=0 recv=0 del=0 err=10059 | q: a= b= c= | pod_restarts=0
[15:03 | iter=8639] send=0 recv=0 del=0 err=10797 | q: a= b= c= | pod_restarts=0
[16:03 | iter=9245] send=0 recv=0 del=0 err=11556 | q: a= b= c= | pod_restarts=0
[17:03 | iter=9850] send=0 recv=0 del=0 err=12312 | q: a= b= c= | pod_restarts=0
[18:03 | iter=10444] send=0 recv=0 del=0 err=13054 | q: a= b= c= | pod_restarts=0
[19:03 | iter=11011] send=0 recv=0 del=0 err=13763 | q: a= b= c= | pod_restarts=0
Марафон завершён: 1200s, 11560 итераций
send=0 recv=0 del=0 errors=14450
❌ FAIL[ST01]: Marathon: 14450/11560 ошибок (125%)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ИТОГОВЫЙ ОТЧЁТ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Завершено: 2026-04-07 16:25:10
✅ PASS: 30
❌ FAIL: 4
⚠️ WARN: 6
TOTAL: 40
Провалившиеся:
- MT03: ISOLATION BREACH: tenant002 прочитал tenant001 сообщение!
- SH02: Service не восстановился
- SH04: SQS недоступен:
503 Service Temporarily Unavailable
503 Service Temporarily Unavailable
nginx
- ST01: Marathon: 14450/11560 ошибок (125%)
Предупреждения:
- E02: accepted invalidTimeout:
00000000-0000-0000-0000-000000000000
- E07: ElasticMQ не проверяет подпись (known limit в strict mode)
- E09: oversized принято
- A06: слишком быстро: 0s
- MT05: namespace ещё существует: namespace/sless-fn-test002
- SH03: ConfigMap не пересоздан (оператор может не watch-ить CM)
==========================================
❌ ЕСТЬ ПРОВАЛЫ
==========================================