test(sqs-operator): полный тест-сьют 30мин — результаты + 2 новых бага (MT03, SH02)
This commit is contained in:
@@ -0,0 +1,202 @@
|
||||
==========================================
|
||||
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)
|
||||
|
||||
==========================================
|
||||
❌ ЕСТЬ ПРОВАЛЫ
|
||||
==========================================
|
||||
Reference in New Issue
Block a user