# Проверка 0.3.0 Проверено 2026-10-16, Linux x86_64, Rust 1.99.1 (`58cf8f9c3`, 2026-10-13). Использована чистая папка сборки, отключена инкрементальная компиляция. Для тестовой сборки отключены debug symbols; release собран с обычной оптимизацией Cargo. Исходники после проверки больше не менялись. | Проверка | Результат | |---|---| | `cargo test --locked` | 123 passed, 0 failed, 6 ignored | | `cargo clippy --locked --all-targets -- -D warnings` | Успешно, без предупреждений | | `cargo fmt --check` | Успешно | | `cargo build --release --locked` | Успешно | | Native storage/auth oracle | Успешно для SHA-1 и SHA-256, оба направления Rust ↔ настоящая Prosody | | Native PEP oracle | Настоящие mod_pep/util.pubsub читают данные Rust, публикуют замену; Rust читает результат | | Native MUC/MAM oracle | Настоящие mod_muc/mod_muc_mam восстанавливают комнату и affiliations, читают историю Rust, архивируют реальную native рассылку; Rust читает результат | | Native CSI oracle | 15 решений о важности stanza совпадают с оригинальным mod_csi_simple | | Большой архив, отдельный ignored test | Успешное потоковое чтение архива больше 128 MiB | | `scripts/smoke.py` | TLS-сертификат, пароль и отказ неверному, независимый расчёт hash, bind, ping, сообщения, поддельный from, отказ входу без TLS | | `scripts/integration_xmpp.py` | Roster/subscriptions, IQ routing, CSI/whitespace flush, MAM, блокировка, OMEMO PEP payload, MUC, offline, SM resume и корректное завершение по SIGTERM | | `tests/sasl_network.py --spawn --hash sha1` | SASL1/SASL2, SCRAM, SSDP, подпись сервера, отказ неверному паролю | | `tests/sasl_network.py --spawn --hash sha256` | То же для SHA-256; постоянный client_id, native push registration, max восстановления 259200 | | `scripts/integration_http.py` | Реальные WSS и HTTPS BOSH, auth/bind, CSI, унаследованные namespace, roster/chat, upload IQ/PUT/GET и запрет повторного PUT | | Federation TLS tests | Реальные взаимные TLS/CA/EXTERNAL, отказ подмене домена; 23 сообщения используют одно соединение, idle/EOF вызывают безопасное переподключение | | `sh -n scripts/docker-entrypoint.sh` | Успешно | | Docker image / Compose runtime | Не запускались: Docker в этой среде отсутствует | | AF_UNIX admin socket test | Не запускался здесь: окружение запрещает Unix sockets. Протокол/команды отдельно проверены через in-memory duplex | Таким образом, дополнительно к 123 обычным прошли **4 native oracle tests и 1 большой архивный тест**. Из шести отключённых по умолчанию тестов только AF_UNIX остаётся непроверенным на настоящем сокете этой сборки. Проверки формата не ограничены собственной копией парсера: oracle загружает переданную оригинальную Prosody `cafd74b9c5ea`, её настоящий modulemanager, storagemanager и скомпилированные native-библиотеки. ## Короткая нагрузочная проверка `python3 scripts/load_smoke.py --clients 500`: - 500 из 500 TLS-подключений авторизованы и получили разные ресурсы. - 1500 ping: median 12.512 ms, p95 15.492 ms, max 19.709 ms. - 500 из 500 направленных сообщений доставлены; ошибок нет. - Создание подключений: 0.604 s при параллелизме 50. - FD: 10 до нагрузки, 510 с подключениями, 10 после отключения. - Измеренный peak RSS 24352 KiB; CPU процесса после нагрузки 1.3 s. Это один аккаунт с 500 ресурсами на loopback, TLS+PLAIN, короткий прогон. Это не тест 500 независимых пользователей, не нагрузка полного набора модулей, не долговременный benchmark и не доказательство отсутствия утечек памяти. Память allocator после отключения оставалась выделенной. Сырые измерения доступны в `validation-results.json`. ## Что ещё не доказано Нет проверки настоящими Monal/Conversations/Gajim, внешним push-шлюзом, разнообразными публичными XMPP-серверами и полной копией рабочих данных. Не проверены upload 10 GiB, длительная нагрузка, Docker UID/GID/TLS и откат вашей рабочей установки. Это необходимые проверки перед утверждением «полная замена без изменений». Функциональные отличия перечислены в `COMPATIBILITY.md`. Для повторения обычных проверок — команды из README. Для native oracle — `scripts/prosody_compat/verify.sh`; для AF_UNIX на целевом Linux: ```bash cargo test --locked --test admin_socket -- --ignored ```