Files
singbox_glue/docs/testing.md
T

1.7 KiB
Raw Blame History

Тестирование

Уровни

  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

make check

Тест с реальным бинарником включается явно:

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.