203 lines
9.6 KiB
Plaintext
203 lines
9.6 KiB
Plaintext
==========================================
|
||
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: <wrapper xmlns="http://queue.amazonaws.com/doc/2012-11-05/" name="SetQueueAttributesResponse">
|
||
<ResponseMetadata>
|
||
<RequestId>
|
||
00000000-0000-0000-0000-000000000000
|
||
</RequestId>
|
||
</ResponseMetadata>
|
||
</wrapper>
|
||
--- 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 недоступен: <html>
|
||
<head><title>503 Service Temporarily Unavailable</title></head>
|
||
<body>
|
||
<center><h1>503 Service Temporarily Unavailable</h1></center>
|
||
<hr><center>nginx</center>
|
||
</body>
|
||
</html>
|
||
|
||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||
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 недоступен: <html>
|
||
<head><title>503 Service Temporarily Unavailable</title></head>
|
||
<body>
|
||
<center><h1>503 Service Temporarily Unavailable</h1></center>
|
||
<hr><center>nginx</center>
|
||
</body>
|
||
</html>
|
||
- ST01: Marathon: 14450/11560 ошибок (125%)
|
||
|
||
Предупреждения:
|
||
|
||
- E02: accepted invalidTimeout: <wrapper xmlns="http://queue.amazonaws.com/doc/2012-11-05/" name="SetQueueAttributesResponse">
|
||
<ResponseMetadata>
|
||
<RequestId>
|
||
00000000-0000-0000-0000-000000000000
|
||
</RequestId>
|
||
</ResponseMetadata>
|
||
</wrapper>
|
||
- E07: ElasticMQ не проверяет подпись (known limit в strict mode)
|
||
- E09: oversized принято
|
||
- A06: слишком быстро: 0s
|
||
- MT05: namespace ещё существует: namespace/sless-fn-test002
|
||
- SH03: ConfigMap не пересоздан (оператор может не watch-ить CM)
|
||
|
||
==========================================
|
||
❌ ЕСТЬ ПРОВАЛЫ
|
||
==========================================
|