Files
singbox_glue/docs/testing.md
T

43 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Тестирование
## Уровни
1. Unit: URI, policy, version, renderer, redaction.
2. Failure injection: candidate rejection, restart failure, URI/config rollback,
idempotency и manual rollback swap.
3. Real binary: `sing-box 1.13.19 check` на Linux и schema/format validation на Windows.
4. Privileged Linux: TUN, nftables, systemd и HTTP data-plane healthcheck.
5. Canary: DNS A change без endpoint CIDR и credential rotation.
6. Reboot: guard ordering, persisted config и path watcher.
## Unit tests
```bash
make check
```
Тест с реальным бинарником включается явно:
```bash
SING_BOX_1_13_19=/usr/bin/sing-box make test
```
Он предварительно проверяет exact version и `with_quic`. Windows-бинарник не
может создать Linux auto-redirect и поэтому выполняет `format` полной схемы;
обязательный `check` остаётся в Linux CI/Incus.
## Privileged acceptance
В disposable Incus-контейнере с двумя NIC:
1. установить sing-box 1.13.19 и пакет;
2. применить test URI;
3. проверить таблицу 2022 и marks;
4. подтвердить, что `eth1 -> eth0` отклоняется без sing-box;
5. подтвердить TCP/UDP/DNS через TUN при рабочем HY2;
6. сломать credential и проверить автоматический rollback;
7. изменить A-запись endpoint, не меняя URI/config;
8. перезагрузить контейнер и повторить doctor.
Production A-запись не используется для эксперимента: нужен staging hostname.