initial commit
This commit is contained in:
commit
c260d7bab8
235 files changed
+49786
No files matched your search
@@ -0,0 +1,4 @@
|
||||
target
|
||||
demo
|
||||
bin
|
||||
.git
|
||||
@@ -0,0 +1,4 @@
|
||||
/target/
|
||||
*.local.*
|
||||
/demo/
|
||||
/bin/
|
||||
@@ -0,0 +1,32 @@
|
||||
# 0.6.0 — переподключение и восстановление сессий
|
||||
|
||||
Исправлена причина bind conflict при повторном входе с тем же resource:
|
||||
раньше runtime всегда отклонял новый bind, включая ресурс hibernating SM.
|
||||
Теперь используется native `conflict_resolve`: default/kick_old заменяет
|
||||
старый ресурс, kick_new возвращает conflict, increment выбирает свободный
|
||||
суффикс #N, random — независимый UUID. Ответ содержит фактически выданный JID.
|
||||
Одинаковая политика применяется к обычному bind и Bind2.
|
||||
|
||||
Старый transport получает stream conflict/close; его cleanup не удаляет новый
|
||||
ресурс. Замена отзывает прежний resume token. Очередь и счётчики SM переносятся
|
||||
только при успешном resume, а не при новой привязке ресурса.
|
||||
|
||||
SM resume допускает ещё живое старое TCP-соединение, проверяет владельца,
|
||||
токен и h до takeover. Восстановленное состояние получает отдельный Arc:
|
||||
старый обработчик не может изменять его acknowledgements, очередь и CSI.
|
||||
|
||||
Добавлен SASL2 inline SM resume. Resumed помещается в success с полным JID,
|
||||
затем повторяются неподтверждённые stanzas. Успешный resume подавляет Bind2;
|
||||
при неуспехе остаётся Bind2/обычный bind fallback. SM рекламируется в SASL2
|
||||
inline только при включённом smacks.
|
||||
|
||||
Исправлены teardown-гонки BOSH terminate и WebSocket close: транспорт даёт
|
||||
engine завершить cleanup перед fallback abort. Внезапный сетевой обрыв
|
||||
остаётся негрейсфул, сохраняя возможность SM resume.
|
||||
|
||||
Регрессии: tests/resource_sessions.rs, tests/resource_rebind.py,
|
||||
tests/sasl2_resume.py, tests/http_transport.rs и scripts/integration_http.py.
|
||||
Все сетевые fixtures используют отдельные конфиги и временные данные.
|
||||
|
||||
Не выполнена проверка на настоящем устройстве Monal/Conversations, рабочих
|
||||
данных и APNs/FCM. Флаг --experimental и пределы docs/COMPATIBILITY.md остаются.
|
||||
@@ -0,0 +1,30 @@
|
||||
# 0.6.1 — Android SASL authentication
|
||||
|
||||
Исправлена воспроизводимая несовместимость с выбором channel binding в
|
||||
Conversations при TLS 1.2. Раньше сервер рекламировал только tls-exporter
|
||||
для обеих версий TLS. Android selector выбирает exporter только при TLS 1.3,
|
||||
при TLS 1.2 без другого совместимого типа выбирает обычный SCRAM с GS2 y,,.
|
||||
Сервер отклонял это как downgrade, а клиент видел not-authorized.
|
||||
|
||||
Добавлены tls-server-end-point на TLS 1.2/1.3 и exporter на TLS 1.3. Тип из
|
||||
GS2 выбирается из фактически доступных на соединении; проверка binding и
|
||||
proof не ослаблена. SSDP подписывает полный список объявленных типов.
|
||||
Digest сертификата соответствует RFC5929: MD5/SHA1 заменяются SHA256;
|
||||
SHA224/256/384/512, RSA/DSA/ECDSA и RSA-PSS поддержаны. Неизвестные алгоритмы,
|
||||
EdDSA и неопределённые multi-hash варианты возвращают ошибку; произвольный
|
||||
SHA256 fallback не применяется. TLS1.3 exporter остаётся доступен независимо
|
||||
от возможности вычислить certificate binding.
|
||||
|
||||
Исправлен отдельный SSDP edge для WebSocket: при отсутствии CB-типа хеш
|
||||
не должен содержать пустую CB-секцию с завершающим 0x1f. При явном отключении
|
||||
всех PLUS-механизмов CB не рекламируется, обычный SCRAM с y,, допускается.
|
||||
Отказы SCRAM оставляют безопасную диагностику mechanism/stage без credentials.
|
||||
|
||||
Добавлены независимые сетевые проверки Android selector, настоящего
|
||||
TLS exporter, certificate binding, WSS SCRAM, SSDP и неправильного binding.
|
||||
Старый 0.6.0 воспроизводит обе найденные ошибки; 0.6.1 проходит новые сценарии.
|
||||
|
||||
В latest monocles есть собственный fallback через n,, и обязательный SSDP;
|
||||
поведение конкретной установленной версии на устройстве не проверено.
|
||||
Исправления не доказывают, что любой not-authorized имел эту причину.
|
||||
Рабочие пароли/данные не изменялись. Полная замена Prosody ещё не подтверждена.
|
||||
@@ -0,0 +1,27 @@
|
||||
# 0.7.0 — operational/authentication logging
|
||||
|
||||
Добавлен instance-owned logger с уровнями debug/info/warn/error, native-style
|
||||
level maps, explicit sink ranges/sets, console/file, UTC millis, plain/JSON,
|
||||
0600 append и сериализацией записей. SIGHUP переоткрывает ротируемые файлы,
|
||||
сохраняя прежние дескрипторы при ошибке. Native syslog/произвольные plugin
|
||||
sinks и полное hot reload не реализованы.
|
||||
|
||||
TCP/HTTP XMPP transports больше не теряют все ошибки без журнала. Единый ID
|
||||
прослеживает TLS, SASL features/attempt/challenge, account lookup, точный класс
|
||||
rejection, auth success, bind/resume и disconnect. Добавлены startup version,
|
||||
SM hibernation/expiry, resource replacement, maintenance и основные входящие
|
||||
S2S события. Секреты и XML переписки не передаются в logger; есть фильтр sensitive
|
||||
keys и escaping. Подробная инструкция и таблица причин — docs/LOGGING.md.
|
||||
|
||||
Исправлены подтверждённые различия: PLAIN нормализует authentication identity
|
||||
через SASLprep/nodeprep и использует canonical owner; authorization identity
|
||||
проверяется после нормализации. SCRAM abort отвечает aborted, новая auth
|
||||
может перезапустить обмен в пределах лимита попыток. Отказы proof и nonce
|
||||
получили отдельные внутренние причины; wire authentication failure остаётся
|
||||
обобщённым, чтобы не раскрывать внешнему клиенту состояние account store.
|
||||
|
||||
Новые сетевые регрессии проверяют 8 сценариев журналирования и SIGHUP,
|
||||
20 случаев normalizing/retry в TLS1.2/1.3 и SASL1/2, плюс logger unit tests.
|
||||
Оставшийся отказ конкретных Conversations/monocles на устройстве не воспроизведён;
|
||||
для него теперь можно получить server-side reason и этап. Полная замена Prosody
|
||||
не подтверждена, остальные ограничения перечислены в docs/COMPATIBILITY.md.
|
||||
@@ -0,0 +1,35 @@
|
||||
# 0.7.1 — cached SASL2 inline fallback and Gajim discovery
|
||||
|
||||
По предоставленному журналу TLS завершался успешно, а SASL2 запрос отклонялся
|
||||
inline validator до проверки SCRAM/PLAIN credentials. В исходниках обоих Android
|
||||
клиентов Quickstart использует сохранённую доступность inline Bind2 и может
|
||||
посылать bind после того, как текущая конфигурация перестала его объявлять.
|
||||
Сервер 0.7.0 возвращал malformed-request для отключённого Bind2. Дополнительная
|
||||
ошибка регистра в mapper скрывала `bind2 is disabled` за invalid-inline-fields.
|
||||
|
||||
Теперь отключённые optional Bind2/inline SM requests игнорируются, обычная
|
||||
проверка credentials выполняется, и сервер возвращает post-auth features для
|
||||
legacy bind. Модуль Bind2 остаётся явно включаемым: ложной рекламы capability
|
||||
нет. Реализованный путь соответствует проверенному fallback клиентского кода.
|
||||
Malformed requests включённых расширений по-прежнему отклоняются; wrong password
|
||||
не принимается. События sasl-attempt/inline-options доступны до validation,
|
||||
ignored extension отмечается inline-request-ignored; причины parser errors уточнены.
|
||||
|
||||
Добавлены host/account disco features XEP-0258 и XEP-0077, которые проверяют
|
||||
SecurityLabels/Register modules Gajim. Register discovery означает также
|
||||
смену пароля/отмену регистрации: allow_registration=false по-прежнему запрещает
|
||||
создание новых аккаунтов, но не управление своим существующим аккаунтом.
|
||||
Security label catalog отражает requested @to в обеих версиях. Для точной
|
||||
policy/classifications схемы предоставленного конфига добавлен catalog-only
|
||||
adapter: выбирает default_policy, показывает classification names/display/default;
|
||||
не реализует ACL или обязательное enforcement. Неизвестные policy fields
|
||||
отклоняются. Это документированное расширение относительно supplied mod_seclabels.
|
||||
|
||||
Logger объединяет одинаковые destinations и маски уровней: перекрывающиеся
|
||||
console правила больше не дублируют строки. Разные файлы сохраняют свои уровни.
|
||||
|
||||
Старый cached-inline отказ воспроизведён, новый fallback проверен реальным TLS,
|
||||
SCRAM-SHA-1/PLAIN, SSDP on/off, Bind2/SM flags и bind+ping. Gajim predicates и
|
||||
фактические catalog/password/create/delete операции проверены по TLS.
|
||||
Реальные Android/Gajim приложения в этой среде не запускались; полный runtime
|
||||
остаётся experimental с ограничениями docs/COMPATIBILITY.md.
|
||||
@@ -0,0 +1,46 @@
|
||||
# 0.7.2 — PEP operations and diagnostics
|
||||
|
||||
Предоставленный INFO-журнал версии0.7.1 подтверждает успешный SCRAM login и
|
||||
resource bind Conversations/monocles. Он не содержит PubSub IQ: конкретный
|
||||
production отказ PEP из него определить нельзя. Диагноз «данные OMEMO повреждены»
|
||||
по такому журналу не устанавливается.
|
||||
|
||||
Исправлены найденные при проверке совместимости дефекты:
|
||||
|
||||
- IQ error теперь возвращает from исходного to и исходный payload, как требуется
|
||||
для ответа от имени bare-аккаунта. Отсутствующие PEP узел/элемент по-прежнему
|
||||
возвращают item-not-found, что OMEMO-клиент обрабатывает как повод публикации.
|
||||
- Эффективные notification defaults материализуются при обработке существующих
|
||||
узлов, включая ранее сохранённые конфигурации с пропущенными полями.
|
||||
Publish-options больше не сообщает ложный precondition-not-met для опций,
|
||||
которые доставка уже считала включёнными. Реальное несовпадение по-прежнему
|
||||
возвращает conflict/precondition-not-met; чужое изменение узла запрещено.
|
||||
- INFO событие pubsub-iq-result показывает action, node_kind, status, condition,
|
||||
precondition_not_met, количество запланированных deliveries; disco дополнительно
|
||||
показывает pep_identity, persistent_items, publish_options. Никаких payload,
|
||||
node suffix, device/item/IQ IDs или ключевых данных. deliveries не является
|
||||
подтверждением получения телефоном. iq-dispatch-failed сообщает безопасный
|
||||
io_kind для ошибок хранения/модулей, не печатая их исходный текст.
|
||||
|
||||
Добавлены сценарии первого OMEMO запуска, no-to публикации avatar/devices/bundle,
|
||||
owner config recovery, TLS/restart persistence, native-like omitted defaults,
|
||||
filtered caps events и проверка redaction. Это проверки wire/storage, не запуск
|
||||
Android приложений или криптографическая проверка тестовых bundle bytes.
|
||||
|
||||
DNSSEC: публичные DS/DNSKEY wthome.ru на дату проверки отсутствуют. Инструкция
|
||||
подписания DNS-зоны и DS у регистратора — docs/DNSSEC.md. Это отдельная задача
|
||||
оператора DNS, не capability XMPP и не исправление в этой сборке.
|
||||
Полная замена Prosody пока не подтверждена: docs/COMPATIBILITY.md.
|
||||
|
||||
Проверка мигрированных форм выявила и исправила несовместимость0.7.1:
|
||||
notification_type, itemreply и native payload_type выдавались в форме, но
|
||||
не принимались parser при повторной отправке. Теперь payload_type соответствует
|
||||
wire pubsub#type; notification_type normal/headline и itemreply
|
||||
none/owner/publisher валидируются. Как в native PEP, уведомления PEP сохраняют
|
||||
headline; standalone PubSub учитывает normal/headline. itemreply=publisher
|
||||
включает bare publisher в чтение и уведомления, none/owner не раскрывают его
|
||||
(поведение предоставленного native handler). Поддержаны publish_model
|
||||
open/subscribers с проверками блокировок/outcast, без изменения owner-only
|
||||
прав на create/configure/retract. Неизвестные enum значения отвергаются.
|
||||
Baseline regression на исходниках ZIP0.7.1 воспроизводит rejected whole-form
|
||||
submission и ложные default preconditions; патч проходит эти сценарии.
|
||||
@@ -0,0 +1,38 @@
|
||||
# 0.7.3 — newest-first PEP item retrieval
|
||||
|
||||
Журнал0.7.2 показывает успешные SASL/bind, own-account PEP discovery,
|
||||
чтение и публикацию OMEMO. Ошибок на OMEMO IQ в приложенном фрагменте нет;
|
||||
есть ошибки avatar metadata у отдельных запросов, но без scope они не
|
||||
доказывают отказ на собственном аккаунте. Пользователь подтвердил полное
|
||||
завершение процессов Android-приложений; прежний latch нельзя принимать
|
||||
за установленную причину.
|
||||
|
||||
Найден и воспроизведён дефект выдачи нескольких сохранённых элементов:
|
||||
сначала выбирались последние N, затем ответ разворачивался ещё раз и
|
||||
возвращал старый элемент первым. Native Prosody archive_itemstore возвращает
|
||||
новые первыми. Проверенный monocles IqParser.getItem берёт только первый item;
|
||||
если старый item содержит пустой список, клиент видит пустой список, хотя
|
||||
в более позднем item есть устройства и весь IQ имеет type=result.
|
||||
|
||||
В0.7.3 устранено лишнее разворачивание ответа PEP/PubSub items. Поиск по ID,
|
||||
выбор последних N, права доступа, лимиты хранения и сами данные сохраняются.
|
||||
Native oracle с настоящим mod_pep подтвердил current,old на тех же данных;
|
||||
сетевая проверка повторяет первый-item parser, замену current и restart.
|
||||
Regression на исходниках ZIP0.7.2 воспроизводит old,current и ошибку parser.
|
||||
|
||||
Уточнена безопасная INFO диагностика: target_scope отличает own-account,
|
||||
other-account, server/resource/implicit/host-or-component. Для успешного
|
||||
items result добавлены items_count, first_content_kind, first_device_count.
|
||||
Имена пользователей/узлов/элементов/устройств и payload не добавляются в поля.
|
||||
Это структурные счётчики, не криптографическая проверка OMEMO. Событие выдаётся
|
||||
после local dispatch; ранние ветки routing могут не формировать его.
|
||||
|
||||
Наличие нескольких элементов и конкретное содержимое production узлов не
|
||||
были доступны. Исправленный дефект — подтверждённый сценарий совместимости,
|
||||
но не доказательство, что он единственный источник индикатора именно этого
|
||||
устройства. Не внедряется неподтверждённая гипотеза двойного item wrapper:
|
||||
предоставленный native archive хранит только payload, как и Rust.
|
||||
|
||||
DNSSEC повторно проверен публичными DS/DNSKEY запросами: нет Answer, AD=false.
|
||||
Зона/DS у регистратора не менялись. Инструкция — docs/DNSSEC.md.
|
||||
Полная замена Prosody пока не подтверждена: docs/COMPATIBILITY.md.
|
||||
@@ -0,0 +1,39 @@
|
||||
# 0.7.4 — Converse Origin, HTTP interfaces and PEP diagnostics
|
||||
|
||||
Пользователь подтвердил страницу Converse https://conversejs.wthome.ru/.
|
||||
Исходный http_cors_override.websocket.origins разрешал только
|
||||
https://wthome.ru. В изолированном TLS тесте исходная политика даёт101 для
|
||||
wthome.ru и403 для реального Origin Converse; после добавления точного Origin
|
||||
Converse получает101. examples/config.json и отдельный YAML fragment обновлены.
|
||||
Рабочий конфиг на целевом сервере нужно изменить отдельно от сборки.
|
||||
Wildcard разрешение Origin не добавляется; проверка TLS сохраняется.
|
||||
|
||||
Исправлено игнорирование http_interfaces/https_interfaces: раньше HTTP всегда
|
||||
слушал0.0.0.0. Теперь учитывается настройка соответствующего протокола, fallback
|
||||
к interfaces; * раскрывается в IPv4/IPv6, дубликаты убираются, IPv6 socket V6ONLY.
|
||||
Тест HTTPS-only с глобальным interfaces127.0.0.1 и отдельным HTTPS ::1 подтверждает
|
||||
обе привязки. INFO listener-ready показывает address/transport/route flags.
|
||||
|
||||
Добавлена диагностика HTTP с connection ID: TLS установление/отказ/таймаут,
|
||||
фиксированный класс websocket/bosh/other, HTTP status, завершение. Ни URI,
|
||||
query, Origin/header values, bodies, пароли или raw errors не печатаются.
|
||||
Новый serve_router_logged сохраняет прежний serve_router API без logger.
|
||||
|
||||
Новый RFC7395 тест выявил настоящий дефект закрытия до SASL: stream close
|
||||
разбирался как XML document и считался invalid-xml. Теперь закрытие отвечает
|
||||
stream close, штатно завершает authenticate, затем закрывает WebSocket.
|
||||
Проверены оба WS пути и browser token-list headers/subprotocol xmpp.
|
||||
|
||||
PEP: production0.7.3 own IQ replies содержат1 item и непустые списки1/2/6 устройств,
|
||||
так что прошлый multi-item порядок не объясняет текущий случай. Нет доказанного
|
||||
нового отказа сервера PEP и нет обещания исправления индикатора этим патчем.
|
||||
Добавлены legacy/OMEMO2 distinction, valid_device_count/invalid_device_count
|
||||
по inspected Android signed32 parsing и notification-generated content_present.
|
||||
Синтетический TLS тест показывает: include_payload=false даёт пустое уведомление,
|
||||
при этом IQ retrieval по-прежнему содержит устройства. Это проверка диагностики,
|
||||
а не установленная production конфигурация. ID/XML/ключи в журнал не выводятся.
|
||||
|
||||
scripts/filter-android-pep-log.py печатает только фиксированные причины из
|
||||
клиентского журнала и помогает определить фактическую ветку pepBroken.
|
||||
DNSSEC повторно: DS/DNSKEY без Answer, AD=false; изменение DNS не выполнялось.
|
||||
Полная замена Prosody всё ещё не подтверждена, см. COMPATIBILITY.md.
|
||||
@@ -0,0 +1,13 @@
|
||||
#0.7.5
|
||||
|
||||
- Настраиваемые HTTP-пути WS/BOSH/upload, HTTP Host/fallback и публичный URL
|
||||
reverse proxy с префиксом.
|
||||
- Доверенные proxy IP/CIDR, обработка X-Forwarded-For/Proto или RFC7239
|
||||
Forwarded, безопасное игнорирование заголовков недоверенного peer.
|
||||
- Проверка защищённости WS/BOSH на запросе, TLS termination без глобального
|
||||
consider_*_secure; эффективный peer в серверной диагностике.
|
||||
- Проверки кастомных маршрутов и loopback TLS reverse proxy; инструкция
|
||||
docs/HTTP-PROXY.md.
|
||||
|
||||
Полная замена Prosody ещё не подтверждена; актуальные границы —
|
||||
docs/COMPATIBILITY.md, результаты — docs/VALIDATION.md.
|
||||
@@ -0,0 +1,14 @@
|
||||
# 0.7.6
|
||||
|
||||
- MUC: hats, язык, политики PM/модераторских PM, presence broadcast по ролям,
|
||||
дополнительные формы/дискавери и отключаемые vCard/occupant-id.
|
||||
- История MUC без MAM; ограничения запроса истории и native последнее сообщение.
|
||||
- MAM открытых комнат, forced archiving, presence records, optional totals,
|
||||
очистка архива при уничтожении комнаты.
|
||||
- Native occupant checkpoints persistent/temporary комнат при штатной остановке;
|
||||
повторная аутентификация точного полного JID, проверка конфигурации и300-секундный
|
||||
grace без активации недоступных адресатов. Состояние нескольких ресурсов.
|
||||
- Защита серверных MUC identity/hats от клиентской подмены.
|
||||
|
||||
Подробные условия восстановления и отличия от native: docs/MUC-RECOVERY.md.
|
||||
Полная взаимозаменяемость сервера пока не подтверждена.
|
||||
@@ -0,0 +1,10 @@
|
||||
# 0.7.7
|
||||
|
||||
- Встроенный http_altconnect: XRD/JRD host-meta discovery, CORS, HEAD/OPTIONS.
|
||||
- Реклама включённых BOSH/WS, advertise_bosh/advertise_websocket и отключение
|
||||
discovery отдельно от транспорта.
|
||||
- Custom http_paths.altconnect, HTTP Host/fallback и публичный URL reverse proxy.
|
||||
- Публичные href из конфигурации с предпочтением HTTPS; native HTTP fallback.
|
||||
- Конфликты с transport routes и неправильные advertise-типы отвергаются.
|
||||
|
||||
Включение и пример reverse proxy — docs/HTTP-ALTCONNECT.md.
|
||||
Generated
+2182
File diff suppressed because it is too large.
Load diff
+45
@@ -0,0 +1,45 @@
|
||||
[package]
|
||||
name = "rust-xmpp"
|
||||
version = "0.7.7"
|
||||
edition = "2024"
|
||||
description = "Experimental Rust XMPP server with Prosody-compatible storage"
|
||||
license = "MIT"
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1"
|
||||
mlua = { version = "0.12", features = ["lua54", "vendored", "serde"] }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
serde_yaml_ng = "0.10"
|
||||
toml = "0.9"
|
||||
glob = "0.3"
|
||||
|
||||
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "io-util", "sync", "time", "signal", "fs"] }
|
||||
tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "tls12"] }
|
||||
rustls-pemfile = "2"
|
||||
roxmltree = "0.21"
|
||||
base64 = "0.22"
|
||||
sha1 = "0.10"
|
||||
sha2 = "0.10"
|
||||
hmac = "0.12"
|
||||
pbkdf2 = "0.12"
|
||||
hex = "0.4"
|
||||
subtle = "2"
|
||||
stringprep = "0.1"
|
||||
uuid = { version = "1", features = ["v4"] }
|
||||
|
||||
chrono = { version = "0.4", default-features = false, features = ["std", "clock"] }
|
||||
|
||||
axum = { version = "0.8", features = ["ws"] }
|
||||
futures-util = "0.3"
|
||||
tokio-util = { version = "0.7", features = ["io"] }
|
||||
http-body-util = "0.1"
|
||||
hyper-util = { version = "0.1", features = ["server-auto", "tokio", "service"] }
|
||||
|
||||
socket2 = "0.6"
|
||||
|
||||
hickory-resolver = { version = "0.24", features = ["tokio-runtime", "system-config"] }
|
||||
rustls-native-certs = "0.8"
|
||||
|
||||
[dev-dependencies]
|
||||
tempfile = "3"
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
FROM rust:1.99.1-slim AS builder
|
||||
WORKDIR /src
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
COPY src ./src
|
||||
RUN cargo build --release --locked
|
||||
|
||||
FROM debian:trixie-slim
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends ca-certificates gosu \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
COPY --from=builder /src/target/release/rust-xmpp /usr/local/bin/rust-xmpp
|
||||
RUN ln -s /usr/local/bin/rust-xmpp /usr/local/bin/prosodyctl
|
||||
COPY scripts/docker-entrypoint.sh /usr/local/bin/rust-xmpp-entrypoint
|
||||
RUN chmod 0755 /usr/local/bin/rust-xmpp-entrypoint
|
||||
WORKDIR /work
|
||||
ENTRYPOINT ["rust-xmpp-entrypoint"]
|
||||
CMD ["serve", "/etc/prosody/prosody.cfg.lua", "--experimental"]
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Rust XMPP contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,199 @@
|
||||
# Rust XMPP 0.7.7
|
||||
|
||||
Сервер на Rust, разрабатываемый для замены **Prosody 13.0 nightly 100,
|
||||
cafd74b9c5ea** с предоставленными модулями. Читает существующий Lua-конфиг,
|
||||
а также JSON, YAML/YML и TOML. Использует внутреннее файловое хранилище
|
||||
Prosody: конвертация аккаунтов и истории для проверенных сценариев не нужна.
|
||||
Nginx не требуется: HTTPS, WebSocket, BOSH и загрузка файлов обслуживаются
|
||||
самим сервером; coturn остаётся отдельным сервисом.
|
||||
|
||||
Это работающая экспериментальная реализация, **полная взаимозаменяемость
|
||||
ещё не достигнута**. Уже реализованы вход, сообщения, контакты, MAM, MUC,
|
||||
PEP/pubsub, закладки, offline, carbons, SM, push, TLS-федерация и HTTP.
|
||||
Точные ограничения перечислены в [docs/COMPATIBILITY.md](docs/COMPATIBILITY.md),
|
||||
проверки — в [docs/VALIDATION.md](docs/VALIDATION.md).
|
||||
|
||||
Нестандартные HTTP-пути и TLS reverse proxy: [docs/HTTP-PROXY.md](docs/HTTP-PROXY.md).
|
||||
Пример для слияния с действующим конфигом: `examples/reverse-proxy.fragment.yaml`.
|
||||
|
||||
MUC-расширения и условия восстановления участников: [docs/MUC-RECOVERY.md](docs/MUC-RECOVERY.md).
|
||||
|
||||
Встроенный http_altconnect: [docs/HTTP-ALTCONNECT.md](docs/HTTP-ALTCONNECT.md).
|
||||
|
||||
## Сборка и изолированный запуск
|
||||
|
||||
Нужны Rust 1.99.1 (rustup установит версию из `rust-toolchain.toml`),
|
||||
C-компилятор и make. Для тестовых сертификатов и сетевых проверок нужны
|
||||
OpenSSL CLI, Bash и Python 3; HTTP-тест дополнительно использует Python `websockets`.
|
||||
Системные CA-сертификаты нужны для проверки удалённых серверов федерации.
|
||||
Cargo.lock фиксирует зависимости; первая сборка требует их загрузки.
|
||||
|
||||
```bash
|
||||
cd rust-xmpp
|
||||
cargo build --release --locked
|
||||
bash scripts/make-demo.sh
|
||||
./target/release/rust-xmpp serve demo/config.toml --experimental
|
||||
```
|
||||
|
||||
Demo слушает только `127.0.0.1:55222` и создаёт отдельное хранилище `demo/data`.
|
||||
Аккаунты: `alice@localhost / alice-test-only` и
|
||||
`bob@localhost / bob-test-only`. Для ручного клиента используйте STARTTLS
|
||||
и доверьте сгенерированному `demo/cert.pem`. `make-demo.sh` не перезаписывает
|
||||
существующий demo. Сертификаты и аккаунты в исходный архив не включены.
|
||||
|
||||
## Существующий конфиг без редактирования
|
||||
|
||||
```bash
|
||||
./target/release/rust-xmpp check-config /etc/prosody/prosody.cfg.lua
|
||||
./target/release/rust-xmpp serve /etc/prosody/prosody.cfg.lua --experimental
|
||||
```
|
||||
|
||||
`check-config` проверяет разбор и базовые типы; ограничения runtime проверяются
|
||||
при `serve`. Существующий Lua-файл читается непосредственно, преобразовывать
|
||||
его в другой формат не требуется. Процессу нужны права на сертификат, ключ,
|
||||
каталог данных и Unix admin socket. Используйте тот же UID/GID, что и Prosody,
|
||||
чтобы сохранять доступ при возврате к нему.
|
||||
|
||||
Первую проверку выполняйте на копии данных с отдельными портами: сервер пишет
|
||||
аккаунты, историю, комнаты и другие данные в обычном режиме. Одновременно
|
||||
запускать Rust и Prosody с одним каталогом данных нельзя. Между экземплярами
|
||||
Rust действует блокировка inode каталога данных, в том числе при разных портах
|
||||
и путях-синонимах. Prosody в этой блокировке не участвует. Команда create-user
|
||||
также отказывается писать в каталог работающего Rust-сервера; для изменения
|
||||
аккаунтов во время работы используйте admin shell. Для переключения остановите один процесс и запустите
|
||||
другой. Резервная копия нужна для проверки отката до переключения рабочего
|
||||
сервера; тестирование формата не доказывает совместимость всех ваших записей.
|
||||
|
||||
## Ваш Docker Compose
|
||||
|
||||
Распакуйте каталог `rust-xmpp` рядом с исходным `docker-compose.yml`.
|
||||
Дополнительный файл заменяет образ только сервиса `prosody`. Порты, тома,
|
||||
healthcheck `prosodyctl check` и сервис coturn наследуются из исходного файла.
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f rust-xmpp/compose.override.yml config
|
||||
docker compose -f docker-compose.yml -f rust-xmpp/compose.override.yml up -d --build prosody
|
||||
```
|
||||
|
||||
Эта команда запускает сервер на томах из исходного Compose; применяйте её
|
||||
после проверки на копии. Исходные `docker-compose.yml` и `prosody.cfg.lua`
|
||||
редактировать не требуется. Образ содержит CA-сертификаты и команду
|
||||
`prosodyctl`, совместимую с указанным healthcheck. Это проверка ответа
|
||||
работающего процесса через admin socket, а не полный аналог диагностики
|
||||
`prosodyctl check`.
|
||||
|
||||
Entrypoint определяет UID/GID владельца `/var/lib/prosody` и запускает процесс
|
||||
с этими правами, не меняя рекурсивно владельцев существующих файлов. Если
|
||||
каталог принадлежит root, а файлы внутри другому UID, задайте `XMPP_UID` и
|
||||
`XMPP_GID` в окружении контейнера через дополнительный Compose-файл.
|
||||
При другом пути данных задайте также `XMPP_DATA_DIR`. Выбранный пользователь
|
||||
должен читать TLS-ключ и писать данные. Docker-образ в среде разработки
|
||||
не собирался: здесь нет Docker; состав образа и override подготовлены,
|
||||
но запуск на целевом Docker ещё предстоит проверить.
|
||||
|
||||
## Форматы конфигурации
|
||||
|
||||
Все форматы используют одну структуру: `global` и `hosts`; у хоста есть
|
||||
`options` и, для компонента, `component`. Надёжнее получить её из Lua:
|
||||
|
||||
```bash
|
||||
./target/release/rust-xmpp convert /etc/prosody/prosody.cfg.lua json config.json
|
||||
./target/release/rust-xmpp convert /etc/prosody/prosody.cfg.lua yaml config.yml
|
||||
./target/release/rust-xmpp convert /etc/prosody/prosody.cfg.lua toml config.toml
|
||||
./target/release/rust-xmpp check-config config.yml
|
||||
```
|
||||
|
||||
Конвертер сохраняет области настроек и Include, не меняет исходный файл,
|
||||
не перезаписывает существующий выходной и создаёт его с правами `0600`.
|
||||
Выходной файл содержит секреты конфигурации. Lua выполняется в ограниченной
|
||||
VM без системных библиотек; произвольные Lua-плагины не исполняются.
|
||||
Поддержка Lua в проекте также нужна для точного чтения файлов данных Prosody.
|
||||
|
||||
## Команды и проверки
|
||||
|
||||
Полный локальный прогон: `bash scripts/verify-local.sh`.
|
||||
`XMPP_LOAD_CHECK=1` добавляет нагрузочный сценарий; настройки native Prosody
|
||||
для дополнительных проверок описаны в `scripts/prosody_compat/README.md`.
|
||||
|
||||
```bash
|
||||
cargo test --locked
|
||||
cargo clippy --locked --all-targets -- -D warnings
|
||||
cargo build --release --locked
|
||||
python3 scripts/smoke.py # после make-demo.sh
|
||||
python3 scripts/integration_xmpp.py
|
||||
python3 tests/sasl_network.py --spawn --hash sha1
|
||||
python3 tests/sasl_network.py --spawn --hash sha256
|
||||
python3 tests/sasl2_bind.py target/release/rust-xmpp
|
||||
python3 scripts/integration_http.py # требует websockets
|
||||
python3 scripts/load_smoke.py --clients 500 --accounts 100 --rounds 10 --message-rounds 10 --archive
|
||||
```
|
||||
|
||||
Все сетевые тесты создают отдельные тестовые данные; кроме smoke с портом
|
||||
55222, выбирают свободные loopback-порты. Оригинальная Prosody отдельно
|
||||
проверяет формат данных и пароли: инструкции в
|
||||
[scripts/prosody_compat/README.md](scripts/prosody_compat/README.md).
|
||||
|
||||
```bash
|
||||
./target/release/rust-xmpp create-user CONFIG USER --password-stdin
|
||||
./target/release/rust-xmpp check [CONFIG]
|
||||
./target/release/rust-xmpp shell CONFIG 'server:status()'
|
||||
```
|
||||
|
||||
Пароль `create-user` принимает через stdin; существующий аккаунт не заменяет.
|
||||
Admin shell реализует ограниченный набор команд управления сервером и
|
||||
аккаунтами. Произвольный Lua-код и горячая перезагрузка модулей не поддержаны.
|
||||
|
||||
## Дополнительный SASL2 Bind2
|
||||
|
||||
Модуль `sasl2_bind2` (alias `bind2`) включает привязку ресурса внутри SASL2,
|
||||
inline SM/CSI/Carbons и MAM metadata. Добавьте его в modules_enabled вместе
|
||||
с `sasl2` только если эта функция нужна. Исходный конфиг по-прежнему работает
|
||||
без включения нового модуля. Ресурс генерируется случайно; прежние соединения
|
||||
того же аккаунта с тем же валидным UUIDv4 user-agent завершаются после успешного
|
||||
входа. Inline возобновление SM через SASL2 пока не объявляется.
|
||||
|
||||
## PEP, push и pre-authenticated roster
|
||||
|
||||
В 0.5.0 исправлены ответы disco для bare JID аккаунта. При включённых
|
||||
`pep` и `cloud_notify` (они уже есть в предоставленном конфиге) изменение
|
||||
конфига не требуется. После обновления переподключите аккаунт в клиенте,
|
||||
чтобы повторить service discovery. Push требует также настройки
|
||||
клиентского push-сервиса; реальный APNs/FCM шлюз здесь не имитируется.
|
||||
|
||||
При включённом `roster` клиент может обнаружить и вызвать контактную
|
||||
ad-hoc команду `urn:xmpp:invite#invite` на серверном JID. Она возвращает
|
||||
`xmpp:…?roster;preauth=…` и срок действия. Регистрацию аккаунта такое
|
||||
приглашение не разрешает. XEP-0379 presence tokens сохраняются даже
|
||||
для неизвестных серверу приглашений, созданных самим клиентом.
|
||||
|
||||
## Переподключение в 0.6.0
|
||||
|
||||
Повторная привязка одного ресурса по умолчанию заменяет старое соединение,
|
||||
как в Prosody. `conflict_resolve` поддерживает `kick_old`, `kick_new`,
|
||||
`increment` и `random`. Если явно задан `kick_new`, занятый ресурс по-прежнему
|
||||
получит protocol conflict — это выбранная политика.
|
||||
|
||||
SM восстанавливается при гонке со старым TCP и внутри SASL2. Исправлено
|
||||
освобождение ресурсов при BOSH/WebSocket close. Подробности:
|
||||
[CHANGELOG-0.6.0.md](CHANGELOG-0.6.0.md).
|
||||
|
||||
## Android SASL в 0.6.1
|
||||
|
||||
Добавлен `tls-server-end-point` для TLS1.2/1.3 и исправлена SSDP-проверка
|
||||
соединений WebSocket без channel binding. Причина воспроизводимого
|
||||
`not-authorized` в Conversations, область тестирования и ограничения
|
||||
описаны в [CHANGELOG-0.6.1.md](CHANGELOG-0.6.1.md) и
|
||||
[docs/ANDROID-SASL.md](docs/ANDROID-SASL.md).
|
||||
|
||||
## Логирование в 0.7.0
|
||||
|
||||
Добавлены журнал TLS/SASL/bind/SM с единым connection ID, точные причины
|
||||
отказов, файлы/console, JSON/plain и SIGHUP rotation reopen. Для диагностики
|
||||
Conversations/monocles используйте [docs/LOGGING.md](docs/LOGGING.md).
|
||||
|
||||
## Исправления 0.7.5
|
||||
|
||||
Cached SASL2 Bind2/SM requests допускают legacy fallback, XEP-0258/0077
|
||||
объявляются для Gajim; policy/classifications схема может использоваться
|
||||
как каталог labels. Дубликаты одинаковых log destinations устранены.
|
||||
Подробности — [CHANGELOG-0.7.5.md](CHANGELOG-0.7.5.md).
|
||||
@@ -0,0 +1,11 @@
|
||||
# Run from the directory holding the ORIGINAL docker-compose.yml:
|
||||
# docker compose -f docker-compose.yml -f rust-xmpp/compose.override.yml config
|
||||
# Then use up -d --build prosody after validation on copied data.
|
||||
# The base file's ports, volumes, coturn service and healthcheck are inherited.
|
||||
services:
|
||||
prosody:
|
||||
image: rust-xmpp:0.5.0
|
||||
pull_policy: never
|
||||
build:
|
||||
context: ./rust-xmpp
|
||||
dockerfile: Dockerfile
|
||||
@@ -0,0 +1,55 @@
|
||||
# Источники проверки Android SASL
|
||||
Проверено 2026-10-20. Java source использовался для анализа выбора механизма;
|
||||
Android-приложения на устройстве не запускались. Python regression повторяет
|
||||
выбор из Conversations, не всю реализацию приложения.
|
||||
|
||||
- https://xmpp.org/extensions/xep-0440.html (1.0.0)
|
||||
- https://xmpp.org/extensions/xep-0474.html
|
||||
- https://www.rfc-editor.org/rfc/rfc5929.html
|
||||
- https://www.rfc-editor.org/rfc/rfc9266.html
|
||||
- https://codeberg.org/iNPUTmice/Conversations
|
||||
- https://codeberg.org/monocles/monocles_chat
|
||||
|
||||
Файлы fetched с mutable master. Следующие branch-head значения получены
|
||||
после fetch; это не доказательство скачивания каждого файла по commit pin:
|
||||
|
||||
Retrieved 2026-10-20 UTC from mutable master; no commit pin confirmed.
|
||||
https://codeberg.org/iNPUTmice/Conversations/raw/branch/master/src/main/java/eu/siacs/conversations/crypto/sasl/
|
||||
API master commit observed after source fetch: bf3269cd128d4dbf0e479c091477fd9544a798b0
|
||||
monocles master commit: 0bc8473a5d4597d1ffe5545055da692ef8b89d37
|
||||
|
||||
Локальные SHA256 загруженных исходников:
|
||||
|
||||
- ChannelBinding.java: 88723522ed5bb53e947ad7afbc8cd0f8712ea4747d847347c3e5cd7b9aa41389
|
||||
- ChannelBindingMechanism.java: e8a492de0eb866fc93d673cbc46bd5fae18ecf4b7bb46e272e6dca9e8c086937
|
||||
- DowngradeProtection.java: a3fe98c2ccad998deb46f5748411a1a26506215cabb2a4e1d7adce0f51f2ac03
|
||||
- SaslMechanism.java: 9bec637e7d62cc86a7b09cb8353e6272c80fd7b5d94e305b936bcf8c5a611e73
|
||||
- ScramMechanism.java: aa5b2cdc5389a12e8de8fef562f0ee2de45fbdf61fa8fdbd33ea63a5b9299ae8
|
||||
- monocles-ChannelBinding.java: 88723522ed5bb53e947ad7afbc8cd0f8712ea4747d847347c3e5cd7b9aa41389
|
||||
- monocles-ScramMechanism.java: fea3687a12260d9280e204cc003d689043654950118e2d1dc84c058c736234e7
|
||||
|
||||
Conversations selector предпочитает exporter только на TLS1.3, затем
|
||||
unique на TLS≤1.2, затем endpoint. При отсутствии совместимого объявленного
|
||||
типа старый путь использует NONE/y,,. Monocles master содержит дополнительный
|
||||
continueWithoutChannelBinding с n,, и обязательным downgrade protection;
|
||||
его поведение зависит от версии и не полностью моделируется Python тестом.
|
||||
|
||||
## Cached inline requests в 0.7.1
|
||||
|
||||
Полученный серверный журнал показывал TLS1.3 success и inline-request-malformed
|
||||
до sasl-attempt. В server 0.7.0 строка `bind2 is disabled` не совпадала с
|
||||
`Bind2 is disabled` в diagnostic mapper. В supplied конфигурации Bind2 явно
|
||||
не включён. Quickstart constructor в клиентских XmppConnection.java использует
|
||||
QUICKSTART_FEATURES, даже если на новом соединении Bind2 уже не объявлен.
|
||||
Это воспроизведено новым tests/sasl2_cached_inline.py на binary0.7.0.
|
||||
|
||||
В0.7.1 unavailable optional bind/resume не отклоняет credentials exchange.
|
||||
Bare authorization identifier и post-auth legacy bind позволяют клиентскому
|
||||
fallback продолжить вход; available Bind2 работает по прежнему. Это решение
|
||||
совместимости с фактическим client fallback, а не ссылка на явное MUST-ignore
|
||||
из XEP-0388. Wrong password и malformed enabled extensions не разрешаются.
|
||||
|
||||
Источники: Conversations и monocles `src/main/java/eu/siacs/conversations/
|
||||
xmpp/XmppConnection.java`, `im/conversations/android/xmpp/model/sm/Enable.java`,
|
||||
полученные с mutable master 2026-10-20. Authentication success handler оставляет
|
||||
isBound=false без bound, затем processSecureStreamFeatures делает обычный bind.
|
||||
@@ -0,0 +1,39 @@
|
||||
# 0.4.0
|
||||
|
||||
Экспериментальная версия; полная взаимозаменяемость с Prosody не заявляется.
|
||||
|
||||
- SASL2 Bind2: опциональный модуль `sasl2_bind2` (alias `bind2`), inline SM,
|
||||
CSI, Carbons, MAM metadata, случайные ресурсы и замена сессии того же
|
||||
аккаунта с тем же валидным UUIDv4 устройства. SASL2 inline resume пока нет.
|
||||
- PubSub/PEP: full-JID blocklist во всех путях доставки и replay, соблюдение
|
||||
`include_payload` при replay, native deliver_notifications/deliver_payloads,
|
||||
независимые правила notify_retract, корректные publish-options ошибки и
|
||||
сравнение native строковых лимитов max_items.
|
||||
- MUC: защита от понижения/исключения равного модератора без admin/owner,
|
||||
сохранность бинарной occupant_id_salt и приоритет native _affiliations.
|
||||
Нативные MUC-блокировки домена запрещают вход и исключают текущих участников.
|
||||
- Федерация: общий deadline аутентификации, проверка положения TLS/SASL
|
||||
features в XML, нормализация регистра доменов, проверка DNS labels и
|
||||
безопасное переподключение до передачи stanza актору записи.
|
||||
- Push: только текст настоящего body/subject в namespace сообщения включается
|
||||
в summary/importance; содержимое чужих XML extensions не раскрывается.
|
||||
- Сообщения: fallback отсутствующего full JID на активные ресурсы, native
|
||||
правила headline/error/groupchat; offline-доставка bodyless receipts и
|
||||
no-permanent-store без сохранения последнего в MAM.
|
||||
- HTTP: обрезка допустимого byte range до конца файла, квоты просроченных
|
||||
незагруженных слотов, синхронизация PUT с очисткой, регистронезависимый
|
||||
Bearer и сохранение XML namespaces WebSocket/BOSH. Поддержаны URL с завершающим
|
||||
слешем и WS CORS OPTIONS. BOSH продолжает обработку RID после HTTP disconnect,
|
||||
сохраняет ответ для повторного запроса и не выполняет stanza дважды.
|
||||
Число обработчиков и время выполнения ограничены.
|
||||
- Каталог данных блокируется между процессами Rust, включая CLI create-user.
|
||||
Блокировка не защищает от одновременно работающей Prosody.
|
||||
- Нагрузочный сценарий поддерживает несколько аккаунтов и несколько раундов
|
||||
сообщений; проверяется также адрес реального отправителя.
|
||||
- `bash scripts/verify-local.sh` повторяет сборку и доступные локальные
|
||||
протокольные проверки. HTTP-тест требует Python package `websockets`.
|
||||
|
||||
Изменений формата пользовательских файлов не требуется. Существующий конфиг
|
||||
не включает Bind2 автоматически. Для переключения рабочего сервера всё ещё
|
||||
требуются проверка копии данных и проверки целевых клиентов/окружения;
|
||||
актуальные пределы перечислены в COMPATIBILITY.md.
|
||||
@@ -0,0 +1,26 @@
|
||||
# 0.5.0
|
||||
|
||||
Исправлены клиентские проверки PEP и push:
|
||||
|
||||
- Account disco на bare JID: identity account/registered, pubsub/pep при PEP,
|
||||
automatic/filtered PubSub features. Серверный адрес остаётся server/im.
|
||||
- Push feature urn:xmpp:push:0 появляется на своём аккаунте с cloud_notify,
|
||||
независимо от PEP. Не объявляется identity внешнего push-шлюза pubsub/push.
|
||||
- При раннем PEP reply сохраняются MAM и остальные account features, включая
|
||||
поддерживаемые bookmarks/vCard conversions; leaf disco/ACL не подменяются.
|
||||
- Регрессия воспроизводит predicates handleAccountDiscoInfo из исходника Monal.
|
||||
- XEP-0379: preauth сохраняется в пересылке и pending presence для неизвестного
|
||||
серверу токена; валидный серверный token однократный, с expiry/owner scope,
|
||||
приводит к подтверждению и обратному запросу подписки.
|
||||
- XEP-0401: реализована контактная ad-hoc команда urn:xmpp:invite#invite и её
|
||||
discovery на серверном JID; выдаётся URI и expiry. Нет прав регистрации,
|
||||
нет ibr=y, landing page и account-creation command.
|
||||
- RFC6121 preapproval объявляется в stream features вместе с roster versioning.
|
||||
- Unscoped invite_token совместим с настоящим mod_invites; native test
|
||||
проверяет создание/использование токенов в обе стороны и изоляцию scope.
|
||||
|
||||
Текущий конфиг с roster, pep, cloud_notify не требует редактирования для этих
|
||||
исправлений. Клиенту нужно повторить discovery после переподключения аккаунта.
|
||||
Доставка push на физическое устройство зависит от используемого шлюза;
|
||||
проверена серверная регистрация и сериализация, а не реальный APNs/FCM цикл.
|
||||
Функциональные пределы полной замены остаются в COMPATIBILITY.md.
|
||||
@@ -0,0 +1,23 @@
|
||||
# Клиентские признаки и проверки
|
||||
|
||||
Проверено 2026-10-20 по официальным XEP и исходнику Monal develop:
|
||||
https://github.com/monal-im/Monal/blob/develop/Monal/Classes/MLIQProcessor.m
|
||||
|
||||
handleAccountDiscoInfo требует для PEP identity pubsub/pep и features
|
||||
filtered-notifications, publish-options, publish, subscribe, create-nodes,
|
||||
delete-items, delete-nodes, persistent-items, retrieve-items, auto-create.
|
||||
Для modern PEP дополнительно проверяет item-ids/multi-items; для max-items
|
||||
проверяет config-node-max. Push включается по urn:xmpp:push:0 на аккаунте.
|
||||
Эти predicates воспроизведены в tests/push_discovery.py. Само приложение
|
||||
в среде разработки не запускалось.
|
||||
|
||||
Стандарты:
|
||||
- https://xmpp.org/extensions/xep-0163.html §6.1
|
||||
- https://xmpp.org/extensions/xep-0357.html §4.1
|
||||
- https://xmpp.org/extensions/xep-0379.html §3–5
|
||||
- https://xmpp.org/extensions/xep-0401.html §3, §5.1
|
||||
|
||||
XEP-0379 определяет токен в presence и URI. Генерация серверной ссылки
|
||||
использует контактную ad-hoc команду XEP-0401, не выдуманный IQ PARS.
|
||||
Истёкший/неизвестный токен не даёт автоматических прав и сохраняет ручной
|
||||
workflow. tests/preauth_network.py проверяет весь контактный flow через TLS.
|
||||
@@ -0,0 +1,141 @@
|
||||
# Совместимость с предоставленной установкой
|
||||
|
||||
Цель — конкретная Prosody `cafd74b9c5ea` и предоставленные community/custom
|
||||
модули ревизии `dddb6c34b964`, а не все существующие модули Prosody.
|
||||
Реализация содержит рабочие обработчики всех явно включённых имён модулей
|
||||
из конфига. Это не означает полного совпадения их поведения.
|
||||
|
||||
| Область | Что реализовано | Существенные пределы |
|
||||
|---|---|---|
|
||||
| Конфигурация | Lua/JSON/YAML/YML/TOML, Include, глобальные и локальные области, наследование модулей | Lua VM ограничена; не все функции окружения конфигуратора Prosody доступны. Runtime обслуживает один VirtualHost и его компоненты |
|
||||
| Хранилище | internal `.dat`, `.list`, бинарные строки, смешанные ключи Lua, атомарные записи, потоковые архивы, инвалидирование `.lidx` | SQL, external storage и произвольные драйверы не реализованы. Каталог блокируется между процессами Rust; Prosody в блокировке не участвует |
|
||||
| Аккаунты, saslauth | internal_hashed SHA-1/SHA-256, SASLprep, PLAIN внутри TLS, SCRAM и PLUS с tls-exporter/tls-server-end-point, SSDP, SASL2 | Только internal_hashed; опциональный sasl2_bind2 (alias bind2) поддерживает inline bind/SM/CSI/Carbons. SASL2 inline SM resume и takeover живого транспорта реализованы; MAM metadata при Bind2 читает весь архив синхронно |
|
||||
| Сообщения и presence | локальная маршрутизация, приоритеты ресурсов, контакты/подписки/probes, offline, carbons, блокировки | Полная совместимость всех пограничных сценариев маршрутизации ещё не подтверждена |
|
||||
| MAM | личный и комнатный MAM2, prefs, формы, RSM, фильтры времени/контакта/ID, extended queries, metadata, stanza-id, expiry | Нет доказательства совпадения каждой ошибки и порядка результатов при всех комбинациях запроса |
|
||||
| MUC | комнаты, несколько ресурсов, роли/affiliations, owner/admin, конфигурация, приглашения, история без MAM и MAM, occupant-id/avatar, hats, язык, PM policies, presence broadcast, native metadata/state checkpoints и восстановление после штатной остановки | Восстановление после повторной аутентификации точного полного JID в300-секундном grace и при неизменной конфигурации. Нет сохранения TCP/SM между процессами и checkpoint на SIGKILL. Произвольные community-расширения не запускаются; MUC-RECOVERY.md |
|
||||
| PEP/pubsub | persistent nodes/items, ACL, subscriptions, publish/retract/purge/delete, owner/configuration, caps, OMEMO XML как payload | Не все необязательные политики узлов Prosody реализованы; OMEMO шифруют клиенты, криптография OMEMO не часть сервера |
|
||||
| private/bookmarks/vCard | private XML, старые и новые закладки, vCard/temp-vCard4 и avatar-переходы | Межклиентное поведение нужно дополнительно проверить настоящими клиентами |
|
||||
| SM/push | acknowledgements, resumable sessions, replay, ограниченные очереди, native регистрации push и ответы сервисов | Есть coalescing и watchdog первого push; полный цикл с настоящим APNs/FCM шлюзом не проверен. Состояние живых сессий не переживает перезапуск процесса |
|
||||
| CSI | active/inactive, ограниченный буфер, native importance rules, delay, flush при клиентской активности и grace period | Событие socket drain приближено завершением записи; необязательные расширенные XPath-фильтры поддержаны не полностью |
|
||||
| Федерация | входящие/исходящие STARTTLS, CA/DNS-ID, SASL EXTERNAL, DNS SRV, проверка домена каждого stanza, ограниченный пул соединений | Нет dialback/DANE/OtherName-only/SRV-ID/bidi/direct TLS |
|
||||
| HTTP upload | слоты XEP-0363, streaming PUT, GET/HEAD/range/conditional, лимиты/квоты/expiry, native metadata, JWT slots | Один upload-компонент; внешнее объектное хранилище не реализовано. Фактический upload 10 GiB не прогонялся |
|
||||
| WebSocket/BOSH | WS/WSS и HTTP/HTTPS, общая XMPP-сессия, origin rules, BOSH RID/retry/hold/reorder/restart; http_altconnect XRD/JRD discovery; http_paths, HTTP Host/fallback, внешний URL, доверенные IP/CIDR и forwarded headers для TLS reverse proxy | Один VirtualHost с компонентами; нет PROXYv1/v2, произвольных Lua HTTP-приложений и горячей перенастройки. См. HTTP-PROXY.md |
|
||||
| admin_shell | протокол admin socket, status/version/uptime, списки, основные операции аккаунтов | Нет произвольного Lua, горячей загрузки модулей и полного набора prosodyctl |
|
||||
| Остальные модули | disco, ping, time, version, uptime, register, TURN extdisco/HMAC, каталог seclabels | Нет встроенного TURN. Coturn работает отдельно. `pep_simple` пуст в предоставленном исходнике |
|
||||
|
||||
## Особенности именно вашего конфига
|
||||
|
||||
- `allow_registration = true` действительно разрешает регистрацию, несмотря
|
||||
на противоречащий этому комментарий в исходном файле.
|
||||
- Личная история настроена `never`, комнатная — на неделю. Очистка выполняется
|
||||
периодически; append не переписывает весь архив.
|
||||
- Лимит отдельного файла — 10 GiB, общий — 100 GiB. Сетевой тест проверяет
|
||||
потоковую загрузку меньшего файла; это не проверка фактической загрузки 10 GiB.
|
||||
- Структура `security_labels.default_policy/policies/classifications` отличается
|
||||
от native `mod_seclabels`. С0.7.1 её точная schema может использоваться как
|
||||
catalog metadata: выбранный default_policy и его classifications. ACL и
|
||||
обязательное enforcement не реализуются; неизвестные поля отвергаются.
|
||||
- Настройки `limits` сами по себе не включают `mod_limits`; он не указан
|
||||
среди включённых модулей исходного конфига и не является autoload-модулем
|
||||
предоставленной Prosody. В этой реализации транспортного rate limiting пока нет.
|
||||
- Чужие Lua-плагины из каталога `custom_plugins` автоматически не запускаются.
|
||||
Наличие исходников 479 каталогов не означает, что все они были включены.
|
||||
|
||||
## Что осталось для утверждения «полная замена»
|
||||
|
||||
Нужны подтверждённый запуск на копии реальных данных, проверки настоящими
|
||||
Monal/Conversations/Gajim и используемым push-шлюзом, совместимость с внешними
|
||||
XMPP-доменами и сертификатами, проверка целевого Docker/UID/TLS, откат, долгий
|
||||
нагрузочный прогон и устранение оставшихся различий из таблицы.
|
||||
Текущие автоматические проверки покрывают конкретные сценарии и не заменяют
|
||||
эти критерии. Проект намеренно сохраняет флаг `--experimental`.
|
||||
|
||||
## Исправления discovery и pre-auth в 0.5.0
|
||||
|
||||
PEP описывается identity `pubsub/pep` на bare JID аккаунта. Push feature
|
||||
`urn:xmpp:push:0` возвращается на собственном bare JID при включённом
|
||||
`cloud_notify`, в том числе без PEP. Серверный JID остаётся `server/im`.
|
||||
PEP leaf nodes сохраняют `node`, собственные ACL и ошибки отсутствующего узла.
|
||||
Функции MAM, блокировок и другие account features не теряются в раннем PEP reply.
|
||||
|
||||
С `roster` доступны RFC6121 subscription preapproval и контактная часть
|
||||
XEP-0379/XEP-0401: ad-hoc `urn:xmpp:invite#invite`, одноразовые токены
|
||||
с истечением срока, автоматическое подтверждение и обратная подписка.
|
||||
Неизвестный клиентский preauth сохраняется при пересылке и в pending presence,
|
||||
чтобы владелец мог подтвердить подписку вручную или в своём клиенте.
|
||||
|
||||
Нет приглашений на создание/сброс аккаунта и landing page; `ibr=y` не выдаётся.
|
||||
Unscoped токены используют native per-user `invite_token` map; scoped токены
|
||||
хранятся отдельно, чтобы Prosody без поддержки scope не мог выдать лишние права.
|
||||
Токен потребляется до нескольких roster-записей: при дисковой ошибке между
|
||||
записями нет multistore rollback, ошибка передаётся вызывающему коду, токен
|
||||
повторно автоматически не авторизует подписку. Возможен ручной fallback.
|
||||
|
||||
## Переподключение в 0.6.0
|
||||
|
||||
`conflict_resolve` следует native sessionmanager: default/kick_old, kick_new,
|
||||
increment и random. Новая привязка отзывает прежний resume token при замене;
|
||||
она не наследует старые SM acknowledgements. Успешный resume сохраняет SM,
|
||||
Carbons, push identifier и очередь, изолируя старый transport от нового состояния.
|
||||
|
||||
BOSH terminate ждёт engine cleanup, WebSocket close/EOF закрывает input и
|
||||
даёт engine завершиться перед ограниченным timeout abort. Сетевой тест
|
||||
использует kick_new, чтобы случайное hibernation не скрылось takeover-политикой.
|
||||
|
||||
## Android SASL в 0.6.1
|
||||
|
||||
На TLS1.2 предлагается certificate endpoint binding, на TLS1.3 также exporter.
|
||||
Проверены SHA1/256, SASL1/2, SSDP on/off, tampered bindings, WSS без CB и
|
||||
явно отключённый PLUS. Monocles имеет версионные различия fallback; настоящие
|
||||
устройства не запускались. Certificate signature algorithms EdDSA/unknown
|
||||
не используются для endpoint binding; TLS1.3 exporter при этом сохраняется.
|
||||
|
||||
## Логирование в 0.7.0
|
||||
|
||||
Native-style log level maps и explicit sinks, console/file, JSON/plain, UTC
|
||||
millis и SIGHUP reopen реализованы. В scope входят TLS/SASL/bind/SM, startup,
|
||||
maintenance и основные входящие S2S события. Syslog/plugin sinks, mixed Lua
|
||||
log tables, полный hot reload и журналы всех модулей не реализованы.
|
||||
PLAIN теперь нормализует имя/authorization identity; wire abort/retry проверены
|
||||
отдельно. Журнал нужен для диагностики оставшегося реального Android отказа.
|
||||
|
||||
## Cached SASL2 и Gajim в 0.7.1
|
||||
|
||||
Bind2 остаётся явно включаемым. Сохранённый Quickstart request к недоступному
|
||||
optional extension не мешает credentials exchange и последующей обычной
|
||||
привязке. Inline SM при отключённом smacks также не обрабатывается.
|
||||
Host/account discovery объявляет seclabels/register по наличию реальных
|
||||
обработчиков; создание новых аккаунтов по-прежнему зависит от allow_registration.
|
||||
Gajim predicates проверены по python source, реальные приложения не запускались.
|
||||
Policy catalog adapter — расширение для supplied config, а не ACL implementation.
|
||||
|
||||
## PEP и DNSSEC в 0.7.2
|
||||
|
||||
Добавлены проверки OMEMO/аватаров с публикацией без to, recoverable missing
|
||||
bundles, publish-options/config retry, сохранением после restart и скрытой
|
||||
от журнала полезной нагрузкой. IQ errors адресуются от имени исходной цели;
|
||||
notification defaults совпадают с эффективной конфигурацией при preconditions.
|
||||
Конкретный production IQ отказ из INFO-лога0.7.1 неизвестен.
|
||||
DNSSEC клиент проверяет до XMPP; текущая зона wthome.ru не имеет обнаруженных
|
||||
DS/DNSKEY. Требуется настройка DNS/регистратора, docs/DNSSEC.md. Эта сборка не
|
||||
добавляет DNSSEC validation в outbound federation.
|
||||
|
||||
## PEP порядок в 0.7.3
|
||||
|
||||
PEP/PubSub items выдаются newest-first, как реальный supplied mod_pep.
|
||||
Протокольный regression сохраняет старую пустую и новую populated devicelist,
|
||||
проверяет первый item как Android parser, замену current и restart. Native
|
||||
oracle отдельно подтверждает порядок. Это не гарантирует исправления каждого
|
||||
production индикатора: реальная конфигурация/содержимое узлов не предоставлены.
|
||||
|
||||
## HTTP и диагностика0.7.4
|
||||
|
||||
HTTPS учитывает https_interfaces (включая* → IPv4+IPv6), HTTP — http_interfaces,
|
||||
с fallback к interfaces. Добавлена безопасная HTTP/TLS/status диагностика.
|
||||
Закрытие до SASL обрабатывается штатно и завершает WebSocket. Для подтверждённой
|
||||
страницы Converse https://conversejs.wthome.ru добавлен точный allowed Origin
|
||||
в примеры; рабочий конфиг требуется обновить отдельно. Runtime wire test
|
||||
подтверждает original403 → configured101, IPv4/IPv6 и TLS validation.
|
||||
PEP production причина по-прежнему не доказана; новая диагностика различает
|
||||
parser-valid IDs и форму уведомлений. Нет подтверждения Android UI, живого
|
||||
production WSS, DNSSEC signing или полной замены Prosody.
|
||||
@@ -0,0 +1,50 @@
|
||||
# Converse.js: https://conversejs.wthome.ru → WSS5281
|
||||
|
||||
Страница браузера и endpoint имеют разные роли:
|
||||
|
||||
- Страница: https://conversejs.wthome.ru/ → Origin https://conversejs.wthome.ru.
|
||||
- XMPP endpoint: wss://wthome.ru:5281/xmpp-websocket.
|
||||
|
||||
В рабочий YAML конфиг под global добавьте точный Origin, сохранив остальные
|
||||
настройки http_cors_override и текущие origins:
|
||||
|
||||
```yaml
|
||||
global:
|
||||
http_cors_override:
|
||||
websocket:
|
||||
enabled: true
|
||||
origins:
|
||||
- https://wthome.ru
|
||||
- https://conversejs.wthome.ru
|
||||
```
|
||||
|
||||
Это fragment, не полный конфиг: не заменяйте им hosts/data_path/SSL и прочие
|
||||
параметры. examples/converse-origin.fragment.yaml содержит тот же фрагмент;
|
||||
полный examples/config.json тоже обновлён. Примените изменение к вашему
|
||||
prosody.rust-xmpp.cfg.yaml и перезапустите процесс после пересборки0.7.4.
|
||||
Endpoint можно оставить прежним. В настройке клиента websocket_url должен
|
||||
указывать полный WSS URL с путём. Сертификат endpoint должен быть доверенным
|
||||
и действительным для wthome.ru; Origins не меняют TLS hostname validation.
|
||||
|
||||
Изолированный test воспроизводит исходный403 для нужного Origin и исправленный101.
|
||||
Он использует настоящую проверку тестового CA/hostname, оба endpoint paths,
|
||||
HTTP/1.1 Connection token list, обязательный subprotocol xmpp, отсутствие/неверный
|
||||
subprotocol400, посторонние origins403, неизвестный путь404, invalid CA rejection,
|
||||
RFC7395 open/features/close до SASL. Параметры auth/bind отдельно проверяются
|
||||
sasl_web_network и integration_http. Интерфейсы127.0.0.1 и::1 подтверждены по TLS.
|
||||
|
||||
## Как читать новый журнал
|
||||
|
||||
- http listener-ready address=[::]:5281/0.0.0.0:5281, transport=https и
|
||||
websocket=enabled — настроенная доступность listener/route.
|
||||
- http request-complete route=websocket status=403 — запрос отклонён политикой.
|
||||
Сопоставляйте Origin именно страницы с конфигом. В журнале значение Origin
|
||||
скрыто, чтобы не писать произвольные заголовки.
|
||||
- status=101 — выполнен Upgrade; дальнейшие auth/bind события идут в c2s.
|
||||
- 400 — отсутствующий/неверный xmpp subprotocol или некорректный Upgrade.
|
||||
- 404 — endpoint не найден; phase=tls-handshake указывает на TLS этап.
|
||||
|
||||
Журнал не доказывает browser connectivity через ваш firewall/proxy/DNS.
|
||||
Попытка read-only проверки production endpoint в среде разработки не смогла
|
||||
разрешить имя, поэтому живой wss://wthome.ru:5281 здесь не проверен.
|
||||
Origin не расширяется до wildcard и TLS не отключается.
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
# DNSSEC и индикатор monocles
|
||||
|
||||
Проверено 2026-10-20 UTC. Выполнены только чтение исходников клиентов и
|
||||
публичные DNS-запросы; DNS-зона, регистратор и production не изменялись.
|
||||
Приложения на Android не запускались.
|
||||
|
||||
## Что именно показывает клиент
|
||||
|
||||
В monocles `EditAccountActivity.java` выбирает `not_dnssec_verified`, если
|
||||
нет соединения или `XmppConnection.resolverAuthenticated()` возвращает false.
|
||||
Последний метод возвращает `currentResolverResult != null &&
|
||||
currentResolverResult.isAuthenticated()`. Проверка DANE отдельная и выполняется
|
||||
только внутри положительной ветки DNSSEC; наличие TLS-сертификата само по себе
|
||||
не делает этот индикатор положительным.
|
||||
|
||||
В обычном пути SRV + IP (`Resolver.resolveIpsAsFuture`) флаг равен
|
||||
`SRV.isAuthenticData() && addressResult.isAuthenticData()`. Для hostname-only
|
||||
fallback достаточно authentic SRV; для пути без SRV monocles переносит authentic
|
||||
флаг A/AAAA. MiniDNS сначала пытается проверить DNSSEC через DNS текущей сети,
|
||||
при ошибках может перейти к обычному DNS. Поэтому даже после корректного
|
||||
подписания зоны результат зависит от версии приложения и DNS сети телефона.
|
||||
Ручной hostname (`fromHardCoded`) устанавливает authenticated=true без DNSSEC;
|
||||
его нельзя использовать как доказательство подписи зоны или как исправление DNSSEC.
|
||||
|
||||
Эти детали относятся к проверенному monocles master. В проверенном Conversations
|
||||
master DNS-запросы выполняются через AndroidDNSClient, а `ResolverResult` создаётся
|
||||
с null DNSSEC metadata; нельзя автоматически переносить поведение индикатора между
|
||||
версиями и форками клиентов.
|
||||
|
||||
## Публичная зона wthome.ru
|
||||
|
||||
Google DNS JSON API с `do=1` дал следующие результаты:
|
||||
|
||||
| Запрос | Результат |
|
||||
| --- | --- |
|
||||
| `wthome.ru DS` | NOERROR, без DS в Answer |
|
||||
| `wthome.ru DNSKEY` | NOERROR, без DNSKEY в Answer |
|
||||
| `_xmpp-client._tcp.wthome.ru SRV` | `5 0 5222 wthome.ru.` |
|
||||
| `_xmpps-client._tcp.wthome.ru SRV` | NXDOMAIN |
|
||||
| `wthome.ru A` | `88.204.18.107` |
|
||||
|
||||
Во всех этих ответах `AD=false`; у ответов зоны wthome.ru нет RRSIG.
|
||||
Cloudflare DNS JSON API независимо подтвердил отсутствие DS. Совокупность
|
||||
результатов указывает на неподписанную зону без цепочки доверия из .ru,
|
||||
а не на ошибку SASL или отсутствие XMPP stream feature. Это снимок DNS на дату
|
||||
проверки, а не постоянная гарантия состояния зоны.
|
||||
|
||||
## Что нужно настроить оператору
|
||||
|
||||
1. Включить DNSSEC у авторитетного DNS-провайдера зоны, убедиться, что DNSKEY и
|
||||
RRSIG опубликованы и действительны. Если текущий тариф/провайдер этого не
|
||||
поддерживает, сначала перенести зону с сохранением всех записей.
|
||||
2. Получить DS из реально работающего подписанного ключа и опубликовать его
|
||||
через регистратора в родительской зоне .ru. Не придумывать DS вручную и не
|
||||
публиковать DS до готовности подписанной зоны.
|
||||
3. Проверить валидатором цепочку root → ru → wthome.ru и подписи SRV + A/AAAA
|
||||
фактически используемого target. Для target в другой зоне проверить и её
|
||||
цепочку. Дождаться обновления DNS-кэшей.
|
||||
4. Переподключить клиент через DNS-сеть, передающую нужные DNSSEC-записи, проверить
|
||||
его resolver log и индикатор. Отдельный DANE-индикатор потребует корректных
|
||||
TLSA и их DNSSEC-проверки; для одного DNSSEC-индикатора TLSA не обязателен.
|
||||
|
||||
Диагностика с установленным BIND tools:
|
||||
|
||||
```sh
|
||||
dig +dnssec wthome.ru DS
|
||||
dig +dnssec wthome.ru DNSKEY
|
||||
dig +dnssec _xmpp-client._tcp.wthome.ru SRV
|
||||
dig +dnssec wthome.ru A
|
||||
delv _xmpp-client._tcp.wthome.ru SRV
|
||||
delv wthome.ru A
|
||||
```
|
||||
|
||||
`+dnssec` только запрашивает записи DNSSEC и само по себе не проверяет подписи;
|
||||
для проверки нужен валидирующий resolver или delv. Обычный DoH AD=false тоже
|
||||
не различает все причины отсутствия проверки без анализа DS/DNSKEY/ответов.
|
||||
|
||||
## Почему это не исправляется кодом c2s-сервера
|
||||
|
||||
Клиент проверяет DNS до TCP/TLS/XMPP. Сервер не может передать ему DNSSEC-флаг
|
||||
через XML, SASL2, Bind2 или TLS. Текущий `src/federation.rs` использует
|
||||
`TokioAsyncResolver::tokio_from_system_conf()` только для исходящего s2s SRV;
|
||||
Cargo.toml не включает dnssec feature Hickory. Проверка TLS при этом использует
|
||||
JID-домен назначения, а не неподтверждённый SRV target. Добавление DNSSEC в s2s
|
||||
resolver было бы отдельной задачей и не исправит DNSSEC-индикатор Android-клиента.
|
||||
|
||||
## Источники и воспроизводимость
|
||||
|
||||
Исходники прочитаны с mutable master; commit pin для этих загрузок не подтверждён.
|
||||
Пути внутри `src/main/java/eu/siacs/conversations/`:
|
||||
|
||||
- https://codeberg.org/monocles/monocles_chat — `ui/EditAccountActivity.java`,
|
||||
`utils/Resolver.java`, `xmpp/XmppConnection.java`.
|
||||
- https://codeberg.org/iNPUTmice/Conversations — `utils/Resolver.java`.
|
||||
- https://dns.google/resolve?name=wthome.ru&type=DS&do=1
|
||||
- https://dns.google/resolve?name=wthome.ru&type=DNSKEY&do=1
|
||||
- https://dns.google/resolve?name=_xmpp-client._tcp.wthome.ru&type=SRV&do=1
|
||||
- https://cloudflare-dns.com/dns-query?name=wthome.ru&type=DS
|
||||
(заголовок `Accept: application/dns-json`).
|
||||
|
||||
SHA256 прочитанных Java-файлов:
|
||||
|
||||
- `monocles-AccountActivity.java`: `96af8f891a8e6dbf647c34e07a19dd6782aeeba3fa6ec2de5d6b3332121ce56d`
|
||||
- `monocles-Resolver.java`: `890856ea1221cf09aa951612e6fce2f27d2aea5c5e7c03b27af0a9a8d5977e79`
|
||||
- `monocles-XmppConnection.java`: `37a2cd5c62242b47eaab5023c48807870428a053cbc1586408ba51e1b8dee6fd`
|
||||
- `conv-Resolver.java`: `892bc1a346102798dc502bfa8c4c061a2f5fec7bffde1b4c78fba45d4383557b`
|
||||
@@ -0,0 +1,24 @@
|
||||
# Gajim discovery verification — 0.7.1
|
||||
|
||||
Upstream sources read 2026-10-20 (mutable master, not pinned):
|
||||
|
||||
- https://raw.githubusercontent.com/gajim/gajim/master/src/gajim/common/modules/security_labels.py
|
||||
- https://raw.githubusercontent.com/gajim/gajim/master/src/gajim/common/modules/register.py
|
||||
- https://raw.githubusercontent.com/gajim/gajim/master/src/gajim/gtk/preference/server_info.py
|
||||
- https://raw.githubusercontent.com/gajim/python-nbxmpp/master/nbxmpp/modules/security_labels.py
|
||||
- https://xmpp.org/extensions/xep-0258.html
|
||||
- https://xmpp.org/extensions/xep-0077.html
|
||||
|
||||
Gajim sets SecLabels.supported from sec-label:0 in info.features and Register.supported
|
||||
from jabber:iq:register. The server-info window uses those values, not only the
|
||||
pre-auth registration stream feature. nbxmpp catalog queries use catalog:2 with
|
||||
@to; server replies preserve the target attribute.
|
||||
|
||||
Server now advertises sec-label:0/catalog:2/catalog:0 on domain and current account
|
||||
security features on own bare JID. Registration discovery is gated by register,
|
||||
whereas creating a new account remains gated by allow_registration.
|
||||
|
||||
Tests exercise real TLS account management and catalogs, enabled/disabled modules,
|
||||
registration gate, password login after change and rejection after cancellation.
|
||||
The sample policy schema is a catalog metadata adapter only. Names classify labels;
|
||||
they confer no access or enforcement. Unknown policy fields fail explicitly.
|
||||
@@ -0,0 +1,97 @@
|
||||
# http_altconnect (0.7.7)
|
||||
|
||||
Встроенный модуль публикует альтернативные XMPP connection methods:
|
||||
|
||||
- GET `/.well-known/host-meta`: XRD, Content-Type application/xrd+xml.
|
||||
- GET `/.well-known/host-meta.json`: JRD, Content-Type application/json.
|
||||
|
||||
Оба ответа содержат Access-Control-Allow-Origin: *. HEAD возвращает те же
|
||||
заголовки без тела; OPTIONS разрешён; остальные методы дают405. Неизвестные
|
||||
пути и неразрешённый HTTP Host не обслуживаются. Query не изменяет формат
|
||||
и не включает JSONP. В логах запрос классифицируется как altconnect.
|
||||
|
||||
Реализация сверена с supplied plugins/mod_http_altconnect.lua cafd74b9c5ea.
|
||||
Источник протокола: https://xmpp.org/extensions/xep-0156.html.
|
||||
|
||||
## Включение
|
||||
|
||||
Добавьте `http_altconnect` в существующий modules_enabled, сохранив остальные
|
||||
модули. В Lua, например:
|
||||
|
||||
```lua
|
||||
modules_enabled = {
|
||||
-- остальные существующие модули
|
||||
"websocket";
|
||||
"bosh";
|
||||
"http_altconnect";
|
||||
}
|
||||
advertise_bosh = true;
|
||||
advertise_websocket = true;
|
||||
```
|
||||
|
||||
Это фрагмент: не заменяйте им весь рабочий список modules_enabled.
|
||||
Оба advertise-параметра по умолчанию true; false скрывает соответствующий Link.
|
||||
Выключенный/неподключённый транспорт не рекламируется. Если нет ни одного
|
||||
транспорта, XRD пустой, JSON содержит links: []. Отключение http_altconnect
|
||||
убирает discovery endpoints, сохраняя работу WS/BOSH.
|
||||
|
||||
Адреса учитывают http_host, http_paths.bosh/websocket и http_external_url.
|
||||
При отсутствии внешнего URL выбирается первый настроенный HTTPS listener,
|
||||
затем первый HTTP listener; значения не зависят от Host/Forwarded в запросе.
|
||||
Пустой interfaces список не считается действующим listener.
|
||||
|
||||
Пример для HTTPS proxy с удаляемым публичным префиксом /xmpp/:
|
||||
|
||||
```lua
|
||||
http_external_url = "https://wthome.ru/xmpp/";
|
||||
http_paths = {
|
||||
websocket = "/ws";
|
||||
bosh = "/bind";
|
||||
}
|
||||
```
|
||||
|
||||
Опубликованные href: https://wthome.ru/xmpp/bind и wss://wthome.ru/xmpp/ws.
|
||||
http_external_url меняет публичные адреса, внутренние пути остаются /bind и /ws.
|
||||
`http_paths.altconnect` меняет внутреннюю базу discovery, например `/discover`:
|
||||
в этом случае endpoint — `/discover/host-meta[.json]`. `$host` поддерживается.
|
||||
Путь transport, конфликтующий с активным host-meta endpoint, отвергается при
|
||||
check-config/startup вместо неоднозначной маршрутизации.
|
||||
|
||||
## Публичный discovery
|
||||
|
||||
Клиент запрашивает well-known на HTTPS origin XMPP-домена, например
|
||||
https://wthome.ru/.well-known/host-meta. HTTPS listener5281 сам по себе не
|
||||
создаёт публикацию на443: используйте существующий reverse proxy или port mapping.
|
||||
Пример дополнительных location внутри TLS server Nginx, если backendHTTP5280:
|
||||
|
||||
```nginx
|
||||
location = /.well-known/host-meta {
|
||||
proxy_pass http://127.0.0.1:5280;
|
||||
proxy_set_header Host wthome.ru;
|
||||
}
|
||||
location = /.well-known/host-meta.json {
|
||||
proxy_pass http://127.0.0.1:5280;
|
||||
proxy_set_header Host wthome.ru;
|
||||
}
|
||||
```
|
||||
|
||||
Эти location публикуют discovery без transport-префикса /xmpp/; соответствующие
|
||||
WS/BOSH location по-прежнему настраиваются согласно HTTP-PROXY.md.
|
||||
При custom altconnect mount proxy должен переписать well-known на него.
|
||||
|
||||
XEP-0156 требует HTTPS загрузку metadata и только https/wss href. Для native
|
||||
совместимости supplied module HTTP/WS fallback также сохранён: если настроен
|
||||
только HTTP, ссылки будут http/ws. Для стандартного защищённого discovery
|
||||
настройте HTTPS listener или HTTPS http_external_url. Автоматическое изменение
|
||||
production DNS, proxy или TLS-сертификатов не выполняется.
|
||||
|
||||
Проверка с действительным CA (для self-signed добавьте --cacert cert.pem):
|
||||
|
||||
```bash
|
||||
curl -i https://wthome.ru/.well-known/host-meta
|
||||
curl -i https://wthome.ru/.well-known/host-meta.json
|
||||
```
|
||||
|
||||
Модуль включается на единственном runtime VirtualHost. Host Meta2/XEP-0487,
|
||||
DNS TXT/SRV changes, redirects на чужие Host и автоматический запуск браузера
|
||||
не являются частью этого плагина. Результаты локальных проверок — VALIDATION.md.
|
||||
@@ -0,0 +1,92 @@
|
||||
# HTTP-пути и reverse proxy
|
||||
|
||||
С0.7.5 WS/BOSH используют настройки `http_paths.websocket` и `http_paths.bosh`.
|
||||
`http_paths.file_share` задаёт внутренний путь upload-компонента. Настройки
|
||||
VirtualHost/Component имеют приоритет над глобальными; `$host` заменяется именем
|
||||
XMPP-хоста. Дефолты: `/xmpp-websocket`, `/http-bind`, `/file_share`.
|
||||
HTTP-пути задаются без query/fragment; конечный `/` допускается. Поддержаны
|
||||
литеральные RFC3986 path-символы и percent encoding, например `/v1:ws` и
|
||||
`/bind%20endpoint`. Закодированные slash/backslash, control и dot segments
|
||||
отвергаются, чтобы избежать неоднозначного переписывания прокси.
|
||||
|
||||
`http_host` задаёт HTTP Host, который proxy должен отправлять backend.
|
||||
`http_default_host` глобально выбирает fallback для неизвестного HTTP Host.
|
||||
Runtime по-прежнему обслуживает один VirtualHost и его компоненты.
|
||||
|
||||
`http_external_url` задаёт публичный HTTP(S) origin и необязательный префикс.
|
||||
Например, `https://chat.example.org/xmpp/` вместе с `http_paths.bosh: /bind`
|
||||
соответствует публичному `https://chat.example.org/xmpp/bind` и внутреннему `/bind`.
|
||||
Прокси должен удалить `/xmpp/` перед отправкой backend. Эта настройка сама по
|
||||
себе не меняет внутренние маршруты и не включает автоматическое discovery.
|
||||
Для WebSocket клиент использует эквивалентный `wss://` URL.
|
||||
|
||||
## TLS на прокси
|
||||
|
||||
Пример фрагмента YAML для существующего конфига (сохраните остальные параметры):
|
||||
|
||||
```yaml
|
||||
global:
|
||||
http_ports: [5280]
|
||||
http_interfaces: [127.0.0.1]
|
||||
trusted_proxies: [127.0.0.1, '::1']
|
||||
http_legacy_x_forwarded: true
|
||||
http_default_host: wthome.ru
|
||||
http_external_url: https://wthome.ru/xmpp/
|
||||
http_paths:
|
||||
websocket: /ws
|
||||
bosh: /bind
|
||||
http_cors_override:
|
||||
websocket:
|
||||
origins: [https://conversejs.wthome.ru]
|
||||
bosh:
|
||||
origins: [https://conversejs.wthome.ru]
|
||||
```
|
||||
|
||||
Nginx: переменная map задаётся внутри `http`, location — внутри TLS server.
|
||||
|
||||
```nginx
|
||||
map $http_upgrade $xmpp_connection {
|
||||
default upgrade;
|
||||
'' close;
|
||||
}
|
||||
|
||||
location /xmpp/ {
|
||||
proxy_pass http://127.0.0.1:5280/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host wthome.ru;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $xmpp_connection;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_buffering off;
|
||||
proxy_read_timeout 120s;
|
||||
}
|
||||
```
|
||||
|
||||
Публичные адреса: `wss://wthome.ru/xmpp/ws` и
|
||||
`https://wthome.ru/xmpp/bind`. Для прежнего прямого WSS5281 настройка
|
||||
прокси не требуется. Origin — адрес страницы Converse, а не WSS endpoint.
|
||||
|
||||
IP/CIDR в `trusted_proxies` разрешают доверять forwarded-данным только от
|
||||
указанных socket peers. По умолчанию доверены loopback127.0.0.1 и::1.
|
||||
Пустой список отключает доверие. Не задавайте `0.0.0.0/0` для публичного backend.
|
||||
X-Forwarded-For разбирается справа налево до первого недоверенного адреса.
|
||||
X-Forwarded-Proto=https разрешает HTTP WS/BOSH без consider_*_secure только
|
||||
для доверенного прокси. Прямой HTTP без такого подтверждения получает403,
|
||||
если `consider_websocket_secure`/`consider_bosh_secure` не включены явно.
|
||||
Не включайте consider_*_secure на открытом внешнем HTTP listener.
|
||||
|
||||
При `http_legacy_x_forwarded: false` используются RFC7239 `Forwarded`
|
||||
с IP, bracketed IPv6/port, `proto=https` и цепочками доверенных прокси.
|
||||
В RFC-режиме защищённость TLS termination принимается от ближайшего доверенного
|
||||
прокси; каждый следующий разобранный hop также должен иметь `proto=https`. Это
|
||||
намеренно отличается от консервативного `secure AND proto` supplied native
|
||||
revision, не позволявшего так отметить HTTP backend защищённым.
|
||||
`X-Forwarded-Host`/`Forwarded host` не заменяют HTTP Host: настройте Host на прокси.
|
||||
|
||||
Поддержаны HTTP reverse proxies, сохраняющие WebSocket Upgrade и BOSH body.
|
||||
HAProxy PROXYv1/v2, произвольные Lua HTTP-приложения и горячая перенастройка
|
||||
маршрутов не реализованы. Nginx-конфигурация дана для оператора; настоящий
|
||||
Nginx и production-сертификат в локальном прогоне не запускались.
|
||||
|
||||
Основание семантики: https://prosody.im/doc/http и supplied mod_http.lua.
|
||||
+144
@@ -0,0 +1,144 @@
|
||||
# Журнал сервера и диагностика авторизации — 0.7.4
|
||||
|
||||
После сборки/перезапуска строка `starting`/`ready` должна показывать 0.7.4.
|
||||
Это позволяет проверить, что запущен новый binary/container image.
|
||||
Без настройки журнал пишет info/warn/error в stderr (виден в Docker logs).
|
||||
|
||||
Для диагностики одной попытки входа добавьте в Lua-конфиг:
|
||||
|
||||
```lua
|
||||
log = { debug = "*console" }
|
||||
log_format = "json"
|
||||
```
|
||||
|
||||
В JSON-конфиге это поля `global.log = {"debug":"*console"}` и
|
||||
`global.log_format = "json"`. Обычный текст: `log_format = "plain"`.
|
||||
`debug = true` включает debug по умолчанию, если `log` не задан.
|
||||
Настройки наследуются из global, локальный `log` VirtualHost имеет приоритет.
|
||||
|
||||
Файлы в стиле Prosody:
|
||||
|
||||
```lua
|
||||
log = {
|
||||
info = "/var/log/prosody/rust-xmpp.log";
|
||||
error = "/var/log/prosody/rust-xmpp.err";
|
||||
debug = "*console";
|
||||
}
|
||||
log_format = "plain"
|
||||
```
|
||||
|
||||
Каталоги должны существовать и быть доступны UID процесса. Файлы открываются
|
||||
append с правами 0600. Level-map включает указанный уровень и старшие уровни.
|
||||
Explicit sinks поддерживают диапазон и точный набор уровней:
|
||||
|
||||
```lua
|
||||
log = {
|
||||
{ to = "file"; filename = "/var/log/prosody/debug.log";
|
||||
levels = { min = "debug"; max = "warn" } };
|
||||
{ to = "console"; levels = { "error" } };
|
||||
}
|
||||
```
|
||||
|
||||
`levels = "warn"` в explicit sink — только warn, как у native loggingmanager.
|
||||
`log = "*console"` и `log = { "*console" }` включают debug и старше.
|
||||
Дополнительное сокращение runtime `log = "debug"` также пишет debug в консоль.
|
||||
Вся строка JSON/plain записывается под общим mutex, ID не смешиваются.
|
||||
|
||||
Файлы ротируются внешним logrotate: после rename отправьте процессу SIGHUP.
|
||||
Журнал переоткроет destinations и запишет `logs-reopened`. При ошибке
|
||||
переоткрытия старые файловые дескрипторы сохраняются. SIGHUP здесь не означает
|
||||
горячую перезагрузку конфигурации или Lua-модулей. Автоматической ротации и
|
||||
retention нет. Native syslog sink, mixed Lua tables, timestamp templates и
|
||||
произвольные plugin sinks пока не реализованы.
|
||||
|
||||
## Как собрать одну попытку
|
||||
|
||||
В JSON есть `timestamp`, `level`, `module`, `connection`, `event`, `fields`.
|
||||
`connection` — случайный ID одного transport, не SM resume token. Поля в
|
||||
`fields` — массив `{key,value}`, который можно преобразовать через jq
|
||||
`from_entries`. Проследите один ID от `connection-open` до `connection-closed`:
|
||||
|
||||
1. `connection-open`: host, transport, peer.
|
||||
2. `tls-established`: фактическая версия TLS и cipher.
|
||||
3. `sasl-features`: объявленные механизмы, CB-типы, account_hash и SSDP.
|
||||
4. `sasl-attempt`: номер попытки, механизм, SASL1/SASL2.
|
||||
5. `account-lookup`: нормализованный user, hash и состояние записи.
|
||||
6. `sasl-challenge`, затем `auth-success` либо `sasl-rejected`.
|
||||
7. `resource-bound`/`session-resumed`, затем `connection-closed`.
|
||||
|
||||
При закрытии есть phase, reason, duration_ms и io_kind. Если клиент отключился
|
||||
после challenge, сервер видит только `phase=sasl-client-final` и disconnect;
|
||||
его внутреннюю причину (например, локальное отклонение SSDP) сервер узнать
|
||||
не может. Для этого потребуется клиентский журнал. Для HTTP adapter peer
|
||||
помечается not-forwarded: внутренний duplex не получает адрес HTTP-запроса.
|
||||
|
||||
| Событие/причина | Что проверять |
|
||||
|---|---|
|
||||
| account-lookup: missing-or-disabled | Правильный host, data_path/volume, наличие и enabled-состояние аккаунта |
|
||||
| account-record-invalid | Lua account record повреждён или не поддержан |
|
||||
| account-hash-or-record-invalid | stored/server key length и настроенный SHA-1/SHA-256 должны соответствовать |
|
||||
| invalid-client-proof | Proof не проверилась: пароль, устаревшие credentials либо несовместимый расчёт клиента; это не доказательство конкретно неверного пароля |
|
||||
| channel-binding-mismatch | Выбранный CB не соответствует данному TLS-сеансу/сертификату |
|
||||
| channel-binding-downgrade-detected | Клиент отправил y при доступном серверном CB |
|
||||
| mechanism-not-offered | Клиент выбрал механизм, которого нет в sasl-features |
|
||||
| invalid-authzid | Authorization identity не совпадает с нормализованным владельцем |
|
||||
| client-aborted-after-challenge | Клиент явно отменил обмен; wire-ответ aborted |
|
||||
| inline-request-malformed | Ошибка Bind2/resume, поле detail уточняет класс |
|
||||
| bind-rejected/resource-conflict | Авторизация прошла, проблема уже на этапе ресурса |
|
||||
|
||||
Дополнительно пишутся listener-ready, resource-replaced, session-disconnected
|
||||
(removed/hibernating и unacked count), session-expired, maintenance-failed,
|
||||
базовые открытия/закрытия входящих S2S и shutdown-requested. Это начальное
|
||||
покрытие операций, не полная замена всех журналов модулей Prosody.
|
||||
|
||||
В журнал не передаются пароли, соль/ключи, SASL base64, nonce/proof, resume/push
|
||||
токены и XML/тела сообщений. Имена аккаунтов и peer-адреса присутствуют для
|
||||
диагностики, как в Prosody. Дополнительный фильтр редактирует sensitive field
|
||||
keys; escaping исключает вставку новых строк/control characters в запись.
|
||||
|
||||
Нужен фрагмент одной неуспешной попытки Conversations/monocles, включая version
|
||||
и перечисленные события. До получения этого фрагмента причина конкретного
|
||||
оставшегося отказа на вашей установке не установлена.
|
||||
|
||||
## Изменения 0.7.1
|
||||
|
||||
Одинаковые console destinations (включая aliases) и одинаковые строки путей
|
||||
файлов объединяются с union уровней; overlapping rules не создают дубликаты.
|
||||
Разные destinations получают независимые копии записи согласно своим уровням.
|
||||
|
||||
`sasl-attempt` теперь записывается до inline validation. `sasl-inline-options`
|
||||
содержит только requested/available flags без payload. Необъявленный cached
|
||||
Bind2/SM логируется как `inline-request-ignored` с причиной bind2-disabled или
|
||||
sm-disabled и fallback=post-auth-stream-features. Это не ошибка пароля.
|
||||
Malformed enabled inline extensions сохраняют rejection и более точный detail.
|
||||
|
||||
## PEP/PubSub в 0.7.2
|
||||
|
||||
INFO pubsub-iq-result содержит классифицированные action/node_kind/status/condition,
|
||||
precondition_not_met и счётчик deliveries. Для disco — pep_identity,
|
||||
persistent_items, publish_options. Идентификаторы устройства/элемента/запроса,
|
||||
полные имена узлов и payload не печатаются. WARN iq-dispatch-failed содержит
|
||||
безопасный io_kind. Значение deliveries не доказывает получение клиентом.
|
||||
Интерпретация ошибок и проверка после обновления — PEP-DIAGNOSTICS.md.
|
||||
|
||||
## Содержимое результата PEP в 0.7.3
|
||||
|
||||
`target_scope` классифицирует цель запроса без её адреса. У successful items
|
||||
result `items_count` — число непосредственных item, `first_content_kind` —
|
||||
известный класс первого payload или none/other/nested-item, `first_device_count`
|
||||
— количество непосредственных device в распознанном списке первого item.
|
||||
Никаких значений device ID или bundle bytes. Это структура XML, не проверка
|
||||
валидности ключей, доверия или числовых ID. Для других операций этих счётчиков нет.
|
||||
`implicit` означает отсутствие to; сам по себе он не утверждает выбор аккаунта.
|
||||
|
||||
## HTTP и PEP0.7.4
|
||||
|
||||
HTTP diagnostics: listener-ready, connection-open, tls-established,
|
||||
request-complete route/status, connection-closed phase/reason. Routes ограничены
|
||||
websocket/bosh/other; raw URLs, queries, Origin/headers/bodies не пишутся.
|
||||
Для подключения Converse: CONVERSE-WSS.md.
|
||||
|
||||
PEP IQ: device_protocol legacy/omemo2/other, valid_device_count и
|
||||
invalid_device_count. notification-generated: content_present и такие же
|
||||
счётчики локально созданного сообщения ДО routing, не подтверждение доставки.
|
||||
ID/JID/ключевые данные не добавляются. Подробности — PEP-DIAGNOSTICS.md.
|
||||
@@ -0,0 +1,68 @@
|
||||
# MUC: расширения и восстановление0.7.6
|
||||
|
||||
Сопоставление выполнено с предоставленной Prosody cafd74b9c5ea: plugins/muc
|
||||
и mod_muc_mam.lua. Поддержка относится к встроенным расширениям этой ревизии,
|
||||
а не к произвольным community Lua plugins.
|
||||
|
||||
Добавлены hats из affiliation data, язык комнаты, политики PM/модераторских PM,
|
||||
фильтрация presence по ролям и формы конфигурации. Поддельные occupant-id/hats
|
||||
и MUC user identity из клиентского сообщения удаляются. muc_vcard и
|
||||
muc_occupant_id можно отключить. Настройки MAM включают muc_log_all_rooms,
|
||||
muc_log_presences, muc_log_include_total; presence хранится отдельными событиями,
|
||||
обычный MAM-запрос выбирает groupchat сообщения как в native.
|
||||
|
||||
История работает без MAM: ограниченный буфер, maxstanzas/maxchars/seconds/since,
|
||||
delay и раздельный subject. Архив MAM продолжает поддерживать историю persistent
|
||||
комнат. Удаление комнаты очищает её MAM-архив.
|
||||
|
||||
## Как восстанавливается членство
|
||||
|
||||
При SIGTERM/Ctrl-C сервер сначала сохраняет метаданные комнаты и native
|
||||
`state/<roomnode>.dat`, затем завершает соединения. Сохраняются nick, полный JID,
|
||||
роль, show/status/priority и последнее сообщение истории. Это относится также
|
||||
к временным комнатам с участниками. Транспортное отключение во время shutdown
|
||||
не считается добровольным выходом из комнаты и не удаляет checkpoint.
|
||||
|
||||
После запуска сохранённые участники ожидают восстановления до300 секунд.
|
||||
Они не становятся активными адресатами маршрутизации автоматически. Когда
|
||||
тот же полный JID проходит SASL, bind и отправляет общую available presence,
|
||||
сервер повторно проверяет комнату и восстанавливает членство, nick, роль и
|
||||
presence. Одного совпадения bare JID или resource недостаточно.
|
||||
Клиент может по-прежнему явно войти обычной MUC presence.
|
||||
|
||||
Отпечаток конфигурации должен совпасть с сохранённым: изменение пароля или
|
||||
прав комнаты отменяет автоматическое восстановление; требуется обычный вход
|
||||
с актуальными параметрами. В presence state не записываются MUC-пароли и
|
||||
произвольные расширения. Пароль комнаты остаётся в исходной native config,
|
||||
как и до этого. Тот же checkpoint не продлевает grace при повторных перезапусках. Успешно использованная запись восстановления
|
||||
погашается на диске до отправки результата клиенту, чтобы авария не вернула
|
||||
старую роль после выхода или снятия модератора.
|
||||
Неактивированные временные комнаты очищаются после истечения срока.
|
||||
|
||||
Native формат читается/пишется и проверяется настоящей Prosody в обе стороны.
|
||||
Для автоматического восстановления используются checkpoint с отпечатком и
|
||||
временем Rust; старый native state без этих полей сам по себе не является
|
||||
разрешением на автоматический вход. Обычное повторное присоединение доступно.
|
||||
|
||||
Это восстановление XMPP-членства в комнате: старые TCP/TLS-сокеты после
|
||||
остановки процесса не существуют. SM resume между процессами не реализован.
|
||||
Аварийный SIGKILL/отказ питания не создаёт новый checkpoint: гарантируется
|
||||
проверенный штатный shutdown, а не полный crash recovery.
|
||||
|
||||
История ограничена `max_history_messages`: по умолчанию100, допустимый внутренний
|
||||
предел4096. Состояние комнаты ограничено4096 ресурсами. Необязательные presence
|
||||
поля слишком большого размера и последнее сообщение больше16KiB не включаются
|
||||
в checkpoint; это не мешает сохранить членство. Текущие сообщения доставляются
|
||||
по обычным транспортным лимитам.
|
||||
|
||||
## Проверка и границы
|
||||
|
||||
Автоматические тесты используют отдельные временные данные. Сетевой сценарий
|
||||
останавливает процесс с живыми клиентскими socket, запускает его повторно,
|
||||
проверяет persistent и temporary комнаты, запрет чужих identity/resource,
|
||||
восстановленные роли/presence и доставку сообщений. Native oracle проверяет
|
||||
перенос state с несколькими ресурсами туда и обратно.
|
||||
|
||||
Полная production-миграция, непрерывные федеративные reconnect и все community
|
||||
расширения не проверены. Конкретные результаты — VALIDATION.md; общие пределы
|
||||
сервера — COMPATIBILITY.md. Реальные клиенты должны повторно аутентифицироваться.
|
||||
@@ -0,0 +1,131 @@
|
||||
# PEP «повреждено»: проверка 0.7.4
|
||||
|
||||
В предоставленном журнале0.7.1 monocles и Conversations успешно авторизовались.
|
||||
Содержимого PubSub запросов/ответов в INFO-журнале не было. Поэтому изменения
|
||||
0.7.2 устраняют воспроизведённые ошибки совместимости и добавляют нужные данные
|
||||
для следующей диагностики, но не доказывают причину именно вашего индикатора.
|
||||
|
||||
## Предикаты клиента
|
||||
|
||||
В проверенном monocles AccountActivity ветка PEP broken использует
|
||||
AxolotlService.isPepBroken(), а не только bare-account disco. Флаг устанавливается
|
||||
при ответе с ошибкой, отличной от item-not-found, на чтение own bundle, при
|
||||
ошибках публикации device list, кроме ожидаемого precondition-not-met, и при
|
||||
повторяющихся пустых device list. Отсутствие узла при первом запуске нормально:
|
||||
сервер должен ответить item-not-found, затем принять публикацию. Источник master
|
||||
может отличаться от версии установленного приложения.
|
||||
|
||||
## После обновления
|
||||
|
||||
1. Пересобрать и перезапустить сервер. События starting/ready должны показывать
|
||||
0.7.4. Выполнить переподключение клиента; если статус сохраняется только в
|
||||
текущем процессе приложения, полностью закрыть и снова открыть приложение.
|
||||
Удалять аккаунт, локальные ключи, device list или серверное хранилище не нужно.
|
||||
2. Включить существующий INFO sink (JSON или plain), воспроизвести открытие
|
||||
настроек аккаунта/обновление аватара/публикацию OMEMO.
|
||||
3. Проверять pubsub-iq-result для того же connection. node_kind различает
|
||||
omemo-bundle, omemo-devices, avatar-data, avatar-metadata, bookmarks, custom;
|
||||
неизвестное имя не записывается. status=result означает успешный ответ на IQ.
|
||||
4. items/item-not-found до первой публикации ожидаем. conflict +
|
||||
precondition_not_met=true допускает owner configure GET/SET и повтор publish.
|
||||
forbidden, feature-not-implemented или internal-server-error на собственном
|
||||
узле требует разбора; iq-dispatch-failed io_kind=PermissionDenied указывает
|
||||
на ошибку доступа к данным. io_kind=none означает не-I/O ошибку; её текст
|
||||
намеренно не печатается, чтобы не раскрыть содержимое данных.
|
||||
|
||||
Событие формируется для IQ, прошедших локальный dispatch. Ранние ветки
|
||||
блокировки/удалённой маршрутизации могут его не формировать; отсутствие события
|
||||
само по себе не доказывает, что клиент не отправил запрос.
|
||||
|
||||
Disco flags подтверждают рекламу features, но не доступность каждого узла.
|
||||
deliveries — количество созданных маршрутизаций, не доставки/ACK. Чтение и
|
||||
публикация PEP не требуют согласия на раскрытие XML или OMEMO данных в журнале:
|
||||
диагностические поля ограничены известными значениями протокола.
|
||||
|
||||
Автоматические проверки: tests/pep_client_interop.rs, tests/pep_client_network.py,
|
||||
tests/pep_discovery.rs, tests/pubsub_persistence.rs, tests/iq_errors.rs. Network
|
||||
fixtures используют синтетические ключевые bytes, не настоящие приватные ключи.
|
||||
Полная миграция реальных данных и поведение Android приложения пока не проверены.
|
||||
|
||||
Источники: https://codeberg.org/monocles/monocles_chat —
|
||||
src/main/java/eu/siacs/conversations/ui/AccountActivity.java,
|
||||
crypto/axolotl/AxolotlService.java, generator/IqGenerator.java,
|
||||
xmpp/pep/PublishOptions.java; https://xmpp.org/extensions/xep-0060.html;
|
||||
https://xmpp.org/rfcs/rfc6120.html. Master mutable; дата проверки 2026-10-20.
|
||||
|
||||
Проверка мигрированных форм выявила и исправила несовместимость0.7.1:
|
||||
notification_type, itemreply и native payload_type выдавались в форме, но
|
||||
не принимались parser при повторной отправке. Теперь payload_type соответствует
|
||||
wire pubsub#type; notification_type normal/headline и itemreply
|
||||
none/owner/publisher валидируются. Как в native PEP, уведомления PEP сохраняют
|
||||
headline; standalone PubSub учитывает normal/headline. itemreply=publisher
|
||||
включает bare publisher в чтение и уведомления, none/owner не раскрывают его
|
||||
(поведение предоставленного native handler). Поддержаны publish_model
|
||||
open/subscribers с проверками блокировок/outcast, без изменения owner-only
|
||||
прав на create/configure/retract. Неизвестные enum значения отвергаются.
|
||||
Baseline regression на исходниках ZIP0.7.1 воспроизводит rejected whole-form
|
||||
submission и ложные default preconditions; патч проходит эти сценарии.
|
||||
|
||||
Старый Rust config.type нормализуется в native payload_type при обработке
|
||||
узла; это предотвращает дублирование pubsub#type при смешанной миграции.
|
||||
|
||||
## Успешный IQ, но старый первый item
|
||||
|
||||
Исправлен порядок выдачи: новые элементы теперь первые, как в supplied native
|
||||
Prosody. Старые0.7.2 ответы на multi-item node могли содержать пустой old item
|
||||
перед populated current item. IqParser.getItem monocles выбирает первый item.
|
||||
Это отдельный дефект от malformed/error ответов; type=result недостаточно
|
||||
для доказательства корректного состояния, видимого клиенту.
|
||||
|
||||
С0.7.3 для self-account/implicit items проверяйте items_count,
|
||||
first_content_kind=omemo-devices и first_device_count. Если счётчик устройств0,
|
||||
первый список структурно пуст; если items_count>1, узел хранит несколько записей.
|
||||
Сам по себе пустой список допустим и не означает поломку OMEMO. Другие аккаунты
|
||||
могут законно отвечать forbidden из-за ACL. Диагностические поля не раскрывают
|
||||
ID, XML или ключевые данные. Для подтверждения прежней production причины
|
||||
нужна структура реальных данных; в текущем журнале0.7.2 этих счётчиков нет.
|
||||
|
||||
Regression: tests/pep_item_order.rs и tests/pep_order_network.py. Дополнительный
|
||||
ignored oracle запускает настоящий mod_pep и подтверждает порядок current,old.
|
||||
Источник parser: monocles IqParser.java getItem180-190/deviceIds193-228
|
||||
(проверенный mutable master); native source: plugins/mod_pubsub/pubsub.lib.lua
|
||||
archive_itemstore:items reverse=true, util/pubsub.lua service:get_items.
|
||||
|
||||
## Что установлено по production0.7.3
|
||||
|
||||
Own-account PEP discovery успешен; own devices replies имеют1 item и
|
||||
непустые XML списки1/2/6. Исправление порядка нескольких items не объясняет
|
||||
этот случай. Элементы device ещё не означают успешно разобранные Android ID.
|
||||
Теперь valid_device_count считает уникальные signed32 ID по inspected Java
|
||||
Integer.valueOf (без whitespace trimming), invalid_device_count — пропущенные/
|
||||
некорректные/выходящие за диапазон. device_protocol различает legacy/omemo2/other.
|
||||
Это client-parser diagnostics, не полная валидность XEP0384 или криптографии.
|
||||
|
||||
notification-generated показывает структуру локально сгенерированного события,
|
||||
items_count, content_present, device_protocol и счётчики. Событие пишется ДО routing,
|
||||
без transport connection ID и без адресата: оно не доказывает получение клиентом.
|
||||
Не все remote delivery ветки проходят через этот logger. Payload suppression
|
||||
include_payload=false может давать пустой item event при непустом IQ; тест покрывает
|
||||
этот случай. Флаг false здесь не доказывает, что именно ваш узел настроен так.
|
||||
|
||||
Для определения ветки клиентской ошибки используйте отфильтрованный клиентский
|
||||
журнал, а не полный XML/ключи. При доступном adb:
|
||||
|
||||
```sh
|
||||
adb logcat -v brief | python3 scripts/filter-android-pep-log.py
|
||||
```
|
||||
|
||||
Для сохранённого клиентского журнала:
|
||||
|
||||
```sh
|
||||
python3 scripts/filter-android-pep-log.py < client.log
|
||||
```
|
||||
|
||||
Выход содержит только фиксированные причины: empty-device-list-retry-limit,
|
||||
device-list-publish-error, bundle-read-error, bundle-publish-error,
|
||||
empty-device-list-publish. Строки без этих известных фраз не выводятся. Версия
|
||||
клиента может использовать другие сообщения; отсутствие вывода не доказывает
|
||||
отсутствие проблемы. Пароли/JID/ID/произвольный текст/XML не копируются в выход.
|
||||
Нужны одна такая причина и соответствующие notification-generated/own-account
|
||||
IQ события для дальнейшего конкретного исправления. Текущий источник master
|
||||
не гарантирует совпадение с установленной версией приложения.
|
||||
@@ -0,0 +1,115 @@
|
||||
7136ea911bb6b6d352f703f80efeebde921028ea9dc39cd0d2cd55ea465f8c37 examples/config.json
|
||||
8a65739eb5c24f10b9f2c509f0bd050fb1115706e6a41fdf804b9e0e44f583fd examples/config.toml
|
||||
ca86274bcf4dc5daebbf69c9f003854afca92954719aff068f810e0a3d615dea examples/config.yaml
|
||||
bbc2591581d382fef5fb918a480e6c338c7e3e3f2025df5509f51708534631e7 examples/converse-origin.fragment.yaml
|
||||
66ea9e2b58f6a39b70911b9981cae5e99625483af7a41168e24923464de8ae56 examples/reverse-proxy.fragment.yaml
|
||||
16e476e50c5802efcbb7d1aa68141c183c60f5ab17037d697dce720c209141f4 scripts/docker-entrypoint.sh
|
||||
6fcb8a4977fee840d826951b0c30a3f2477c55d00860c79e99f635ca6e215e2b scripts/filter-android-pep-log.py
|
||||
a83cfdb6d910af1add9a14df7b0bd43fb0e2a23342f1a1eec831d47c659bba6f scripts/integration_http.py
|
||||
b1018e1b279c89f6cf14b4017e4f1b14e9165afef2f668cec6ac8bbe0c710d85 scripts/integration_xmpp.py
|
||||
89e3fc6202656363712f2605efcfe1669a5ae77e5b08da790e4e481772a85e00 scripts/load_smoke.py
|
||||
86089451e83f881b4496b3cd7157e25d2285e511696283075287177b4a46550a scripts/make-demo.sh
|
||||
038052022c9b38f59fc0a6f91b0ef36911b0a023e467be359affd469d7015c04 scripts/native-federation.sh
|
||||
6d8423de4f2db9198c8f6c19175f0fef4502f34002103f88cca7d8661100d073 scripts/prosody_compat/README.md
|
||||
e08ac6136cce27cda2ddbd510da0f25750766ab0150a9f4b8f87c953276d16e9 scripts/prosody_compat/oracle.lua
|
||||
2c7a2c946885205e9df38b97305073a8ac72f58ac8ff84fc6f9af320c35bbc96 scripts/prosody_compat/verify.sh
|
||||
1b9ed063daf3e0320819b4fe0135c96dd27e49877044aa2f5093b8ab4fbda41d scripts/smoke.py
|
||||
4d9702d73fab7c20f1e5b9798c0f53c6e1e77aab15074c1c8118df9ae5abd795 scripts/verify-local.sh
|
||||
a2e47f547ab9349f84ee6c4f8e51c147b7110b41a82c17cdb938027a84d82ef3 src/account_modules.rs
|
||||
5637f816586f0613b83e14d0ed478bd539f325b70ccbfc9fdf893adbe494453d src/admin.rs
|
||||
89d7e29d8f8daab614c9c836864b166fdaa324ca035c2d3d5f95639c24b2a9e1 src/archive.rs
|
||||
e15b079a420227ee59e3b7ac305783c51eb59d76a8fb5dd12760547b0f812107 src/auth.rs
|
||||
83ac35a4c9d20debf006fe80fba8e423c09806fb2526ff384b188ca28d612a5e src/config.rs
|
||||
6574ad70d5c60c4acf7e01e66dadaa7cd2d09d3b184a611418aeb271f27ebc3c src/csi.rs
|
||||
834ebe4a1f2d46ab932c14c0a2c7be3375873a71ef56026d372c86e60ef041fc src/data_lock.rs
|
||||
1c8aa5cb816a32a0f9f24589ac00beba27544a83c3d9aad771523a1d1cbcd4c8 src/extras.rs
|
||||
dca8959effb123b94e1fbd42c561a79c721178c4b612a004db9f9fccb3b8950d src/federation.rs
|
||||
46a59bc6689f0931670547e26b3dc4beae3aa210eee1aae832070925b377499c src/http_altconnect.rs
|
||||
43ab37be4b6ad41e51c3918c8806d91650c1ee2b62977caade639920abf7aa44 src/http_config.rs
|
||||
3fa73ae129fe552bd7de7afca0617a1c18bf4d3b36a39023bfec036bca17ffc5 src/http_proxy.rs
|
||||
9366d1aaa7e13d06cf7547cfb1e10461091ba876413927e0ad49df41c3661e6f src/http_service.rs
|
||||
c4fd5046b55510f87a1c87e2b293500f0a01b76f22dacfa6d145e857e857fc09 src/http_transport.rs
|
||||
9f27d509f7e58467c92e1f7ac9175deeb7347c61a45664bb35d17ed4ad0d0d0e src/lib.rs
|
||||
a21e1119ea0271b63935e92eb106ab6076f0035e6d3a06c21a352f152b9b37db src/logging.rs
|
||||
58ce2a9daa36ac26b39c8f263a16f4fa8cc4e57c91bbbf5b24a6aad3f1a326e0 src/lua.rs
|
||||
85616b8aa8e6fc7ac9aeaa75f256463ee9c2527a590832b243481720caabbe42 src/main.rs
|
||||
71d5d185900b9cde190e10e2f28371cd5042d98b5900b4385d823f724234fced src/mam.rs
|
||||
0f780d95523b41c4ae242bd4a1fb6b65ff57826dca6d23ac73a1a1459609ec0a src/muc.rs
|
||||
d8263eb28f5cdff362512a6b13217aa8f7574f4a3d54b7bcb6ba7930f8c353d8 src/muc_history.rs
|
||||
4c151ffcdc36e4a3e680f859d4dc7ba16b0162d4f1fe6fb470df4c5e21197e5a src/muc_recovery.rs
|
||||
7d7114a22ef3bf02f9caaf578f0a50d4f75b4dcd4b335b4cb8425d9716c97e71 src/pep_diagnostics.rs
|
||||
f09a6479b76c9c601a169b5f1f9cf1364e82df5ae27e4bab8d1b1428b5cad457 src/preauth.rs
|
||||
a7333b31a57780c57f2d30620cdfaeb7b1215808865960bb7e5b595d3ad98f7c src/protocol.rs
|
||||
761e29d6431fac5c2a4a24bcfca1f393949a5c55585fd6b0dd7a4f6e9f94a10d src/pubsub.rs
|
||||
913cd033f60a68f6c7cf9b3adbaf76db1c5c9bc88a0599196d373b16b64c0a1e src/push.rs
|
||||
bec477f2520af6a9d7ca54e43eb12158b53e3cf09057653e504dfdeab956885e src/sasl.rs
|
||||
46b532fa98cfe8d5d6878ea7bdcc535132a678906caf5f84e7e8feb726048a25 src/server.rs
|
||||
894f11389bfc3fddc3508396d106146261376999f7adcef5a049458f6b4028cf src/sessions.rs
|
||||
71d7ce1036a091d8c27016ea7ce4cffedf904dfca9d1cc4891b7dc66a1e06a4e src/storage.rs
|
||||
462b00edb2c1e02dd34524bafe4f82b5ef902028b44310ba31b085d31f4dc2aa src/tls_binding.rs
|
||||
f9b023565711e0217238b53fb678c5fb14849cdcd2efcd0fce249018274fad69 src/wire.rs
|
||||
b4eb7a230570dfde0fd0d301a6ace36559a5eae3e1402e42c76f014f61739c24 tests/_wire_client.py
|
||||
45613ad6c53087a50c6c3a7969b30783578c334499bc6baceadb2d18b0b3ea4e tests/admin_socket.rs
|
||||
0645fda01bede4362d998ef22aefdd2c02578dd2c2aae3878d0cff87b3679835 tests/android_sasl_network.py
|
||||
366b315521bd4f4448c0bac17bf74ddb77a728ff41fc48e29d46377625e0330f tests/archive_mam.rs
|
||||
cb6b7bbcd1bc7ee01a4ccf892d4b6074765685c56c4b8bb46e0381b834577b6a tests/auth.rs
|
||||
b3c3470f0b9b64584abf98c26a4578b0b90089086d00f7b07187aa5f6db6a417 tests/cli.rs
|
||||
cc58adbb0fc867802b09cf7bd0d25397a273e721fbd0d0cb0ce30c19e80c13a2 tests/config.rs
|
||||
ba364e9ea561624b2c649cd0dda559e213c75e6d7080ae85f0c23f1f13d117e1 tests/csi.rs
|
||||
3f5b4558cf380e5e9e849baf6935b267598f33d8614dfe960068471fba2f240a tests/csi_native.rs
|
||||
d4d8d982c6f4ab96a809b598ea9ead7f64fa9d916547f1eb9d797aa71db64fdb tests/data_lock.rs
|
||||
be18a83fb5884cfdbd2ddc542cb25fd07b70f139cbdce1ae67562568df42a2e2 tests/debug_legacy.rs
|
||||
63753c2e3524e8e7826bc2d48e2bd78e36e1cc56fde9da19950d5c35e1c38f77 tests/federation_tls.rs
|
||||
1aaf06ba872cb5dbe0545afffdd8efddd0eae7305de06f3b3b75c19289581865 tests/fixtures/prosody.cfg.lua
|
||||
19d570b92075d1355257c3798e4c52e404cc356dfe5dfd0c8fb384e4e7150682 tests/gajim_discovery_network.py
|
||||
4398bf0639c31f0df328f0b0f1a5df17f2e69d2df84514845bba882146de06bc tests/gajim_features.rs
|
||||
a346e70af3657fbf56e0bb1c39c427f630de8c349e6858b8933c52f42a21ab46 tests/http_altconnect.rs
|
||||
e124050689fd712fa5dce058add7d9f0b6b51ad163a11e835a650bed2513461e tests/http_altconnect_network.py
|
||||
f1ea3eb78d5c716f4281cf17cb41b9fb22e08dbb4cf08ed9c8477c79b7d2382b tests/http_proxy_paths_network.py
|
||||
7c599c83eb999cd8776f0ce6811db8f478366b840311f2e513823f70b5d7cd30 tests/http_transport.rs
|
||||
278db32ba0dec882b0af8f1969da87670ff3d2d749d32320154dabef51cff191 tests/http_upload.rs
|
||||
da2fc65e931ec74fbcdcd26d04f2cb073e2dc1e354139135166c79580973a477 tests/iq_errors.rs
|
||||
05160f17f8098466a67c9b069c165dc9d94a84ab03a49896169f110baf8e869a tests/logging.rs
|
||||
dfc3429e3e755d4c99ec1bd8ee6fb0f1f6aaf86414d5adaca7e9e3b18c7fe3f7 tests/logging_network.py
|
||||
329ccbd4faee6cbbfa92d2fa0248844721b7ffc033baae4ec2570e9893f5df9f tests/message_routing.rs
|
||||
dafc2dd1e1d9e860482eb5bdf98c293842dea6a2790d27b94bf1885be3324690 tests/muc_access.rs
|
||||
c28c7e9128cd1483df90dbccc7af0d756a5edc813bdff604b4560a349a844754 tests/muc_domain_bans.rs
|
||||
b7d16e15e069649b9f0b055f0e0227117bb6d167c3a76cc713bd99fa19a6a60e tests/muc_extensions.rs
|
||||
59561f914274b437497ff35be00ed535ea012d18c99b589c8f944ea365b7112d tests/muc_flow.rs
|
||||
b24bd920f096576c2009ff1ccc0366eb8734c5f0b2feb39f04ad7087268a94b9 tests/muc_history.rs
|
||||
1f3df5f3f39143adc2b2a419fac0cd74b2229337ffa86570261d1f6ac61137a1 tests/muc_native.rs
|
||||
ac1caa62a3cd91e74bd7100a5e542c404e97aec61a34e9627900b458c2ee3806 tests/muc_recovery.rs
|
||||
b5c2e179ee61287a8ec8b6bc593d8c960ca4f87cc71f2230e0c033fadd701ed3 tests/muc_restart_network.py
|
||||
e89a1ec8bfd4608795f6457710622b12a1520628184bc3f033cc6062e01c25d4 tests/muc_restart_state.rs
|
||||
13349e35ebaf65242cfb0bdbbccf0ea83acd80a1251312975141c2b74cccc1d7 tests/muc_state_native.rs
|
||||
cd13d1481dba7725986c47b5e5eb606241c8bbc32ab05d53f536f4431d6f7a3d tests/pep_client_interop.rs
|
||||
741cbcbf5552a8c3e5e7757a29de76ecd29da58f9d1184a35a075f1ed7aa5af9 tests/pep_client_network.py
|
||||
dd68c50d7d7cfd7871f69331a2787e0336dcab73762a82c599cee2a39920ae95 tests/pep_diagnostics.rs
|
||||
2dbcdf8887762f6977618c267bb9c880351f9927462b05321bbbfa651eb16ff5 tests/pep_discovery.rs
|
||||
42b6c19d14e60b0c93193b4df473a0dd7cfcdb19250245ab94a7e1a237608395 tests/pep_item_order.rs
|
||||
3e349f9219da20602a239a6c4ce71dc045faf9afb1c36599e2b41e90b2423508 tests/pep_notifications_network.py
|
||||
83cea7164e5e6aadfc126b6b8349eb242bc113ba638385fa13c51ffda32aa57a tests/pep_order_network.py
|
||||
6a078c3fbddff07131f3247d01fb1e13bc923888d93ea30175adda471cbece2f tests/preauth.rs
|
||||
b4048d34620bd0726cfb79d4d1cca9635f27ca8e58c8ad61d619af63672a2e09 tests/preauth_native.rs
|
||||
06a66caa73c179b9d3b239e6f4deac6fc876d8c8dfeafe302f043d85d9f4beb9 tests/preauth_network.py
|
||||
fa1eae49717ca9fb8b118f40058dff0c068c8f28823ea1b0ac42fd0c3e935bda tests/pubsub_native.rs
|
||||
359de6dd2d960e63296f1109617f139bed2eac40409e50f72ff745897ba943ac tests/pubsub_persistence.rs
|
||||
6fb7475ca7359ad870a83d5f143a1994c7bd34e9b56e275f7496ba8da291ee17 tests/push.rs
|
||||
b8dd71798f96931f7ab4489cdb1e258556f41411815ef38d3a03e80e4e8fbdfc tests/push_discovery.py
|
||||
abf5e6a32ab542ccba5861eaaf7aed9a86b8306abfe2c329646d54e43176dc0c tests/reference/COPYING
|
||||
1ecd0a5c122910cbd066922c95ff0c32e945a07e2c9b0a37a30e5f035b5ecea6 tests/reference/configmanager.lua
|
||||
f407c6565fa73b6653e7e73204daa65ae1d87111e82c6b96154aea76497ad65d tests/reference_prosody.rs
|
||||
5ab78e9319d6004d65d35cd4d04dbb99d4ea5ffd8da00473d874bb26000fce35 tests/resource_rebind.py
|
||||
2e79de5ef8d3be81ac8f715bb96797b6e8e39cdcd61c13d8d873a96b53cb52e4 tests/resource_sessions.rs
|
||||
cefd1001c9619456402223fa89e449f65599c4397f523860e965ca192a4fd915 tests/sasl2_bind.py
|
||||
e14450fee2a25e5917682d9b71395adf76ef82c2a627060a4bb33aa839b6a280 tests/sasl2_cached_inline.py
|
||||
198cfa72ece0124e5ac992e30dbabeb4b60df87bada33999ba66d62220082bc6 tests/sasl2_resume.py
|
||||
ddd9d5b46dc943138a334c64477fb11970b3d45e4cfbeaafc7348754f1e5e29e tests/sasl_accounts.rs
|
||||
a7d1519f4f44cc7bfad3d20bcfdf455e92abdd084feed493ffc9e0267a387740 tests/sasl_network.py
|
||||
4748fa227743686f78a0fa0364735d2dda5995f8d70a79ad03c1aa1decb42978 tests/sasl_retry_network.py
|
||||
d8882b8aabd6ff603c81fbbc259eefa68772afb2b3eec2e003ac29efd65d146b tests/sasl_web_network.py
|
||||
72f2d60e47e5295b82d497289b78925a64a1d986c70c277015ae228d211d32bb tests/storage_accounts.rs
|
||||
5c38afd5f77b5774552d12c461902ffaae21de11735560c6f0088e3dda8afa58 tests/storage_compat.rs
|
||||
8724991fdf22471952cf1a0fac863abe837069c93d3c8d2fa751af4f6bbc3e38 tests/tls_binding.rs
|
||||
5bea9b5546d3a6ae4fe78d17acbc3f6e6a1d5e1d13b32f2aa88d0e320892b7c5 tests/tls_plus_network.rs
|
||||
e454204af26d5a356cb6aa838c3b46f4d13c552b5bd36d6b01bcd6f604821ff2 tests/wss_interop.py
|
||||
@@ -0,0 +1,10 @@
|
||||
The original Prosody configuration loader in tests/reference/configmanager.lua
|
||||
is from commit cafd74b9c5ead46eb58910359eb266e1732b0aa1, supplied by the user.
|
||||
It is used for differential testing only. Its copyright notices are preserved;
|
||||
its MIT/X11 license is in tests/reference/COPYING.
|
||||
Rust runtime code is a new implementation. Dependency licenses remain with
|
||||
those dependencies; Cargo.lock records exact versions used.
|
||||
|
||||
API references consulted:
|
||||
- https://docs.rs/mlua/0.12.2/mlua/struct.Lua.html
|
||||
- https://docs.rs/serde_yaml_ng/0.10.0/serde_yaml_ng/
|
||||
@@ -0,0 +1,68 @@
|
||||
# Проверка 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
|
||||
```
|
||||
@@ -0,0 +1,63 @@
|
||||
# Проверка 0.4.0
|
||||
|
||||
Проверено 2026-10-20 в Linux x86_64, Rust 1.99.1. После всех изменений
|
||||
артефакты самого проекта удалены через `cargo clean -p rust-xmpp`;
|
||||
сборка и проверки выполнены заново. Старый отчёт сохранён отдельно в
|
||||
VALIDATION-0.3.0.md. Машинные результаты находятся в validation-results.json.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| `cargo test --locked` | 148 passed, 0 failed, 8 ignored |
|
||||
| `cargo clippy --locked --all-targets -- -D warnings` | Успешно, без предупреждений |
|
||||
| `cargo fmt --check` | Успешно |
|
||||
| `cargo build --release --locked` | Успешно |
|
||||
| Native storage/auth oracle | Оригинальная Prosody читает и изменяет Rust данные и пароли SHA-1/SHA-256; Rust читает результат |
|
||||
| Native PEP, MUC/MAM, CSI | Оригинальные модули работают с тестовыми данными Rust; правила CSI сверяются с оригиналом |
|
||||
| Native push body lookup | Оригинальный util.stanza подтверждает исключение foreign namespace и вложенного extension body |
|
||||
| Native federation | Настоящая Prosody cafd74b9c5ea обменивается сообщениями с Rust по двум TCP STARTTLS + SASL EXTERNAL соединениям; trust и identity включены |
|
||||
| Большой архив | Потоковое чтение архива больше 128 MiB, отдельный ignored test |
|
||||
| TCP integration | Контакты/подписки, IQ routing, CSI, MAM, блокировки, OMEMO PEP, MUC, offline, SM resume и SIGTERM |
|
||||
| Offline/routing regression | Отсутствующий ресурс использует bare-JID fallback; no-permanent-store доставляется offline и исключается из MAM; bodyless receipt доставляется; offline headline не создаёт ошибку |
|
||||
| SASL network SHA-1/SHA-256 | Независимый SCRAM, SASL1/SASL2, SSDP, подпись сервера, неверный пароль |
|
||||
| SASL2 Bind2 | Канонический модуль, inline SM/CSI/Carbons/MAM, tag/resource privacy, malformed/auth failures, same UUIDv4 replacement и изоляция аккаунтов |
|
||||
| WSS/HTTPS BOSH/upload | Авторизация, bind, CSI, namespaces, контакты, сообщения, upload PUT/GET/reuse |
|
||||
| BOSH disconnected retry | Настоящий TCP reset до ответа; RID повторяется во время обработки и после неё, stanza выполняется однократно |
|
||||
| Data directory lock | Межпроцессный отказ, тот же inode через symlink, освобождение guard и сохранность существующих файлов |
|
||||
| Shell/Python syntax | Проверено для новых/изменённых сценариев |
|
||||
|
||||
Из восьми ignored tests отдельно успешно выполнены семь: пять native
|
||||
storage/module checks, federation с настоящей Prosody и большой архив.
|
||||
Оставшийся AF_UNIX admin socket test попытались выполнить: среда запретила
|
||||
bind с `Operation not permitted`. Это не проверка готовности Unix socket
|
||||
на целевом Docker/хосте. In-memory admin protocol tests проходят обычно.
|
||||
|
||||
## Нагрузочные сценарии
|
||||
|
||||
Оба сценария используют отдельное тестовое хранилище, 100 настоящих тестовых
|
||||
аккаунтов и 500 TLS-соединений с разными ресурсами. Авторизация — TLS + PLAIN.
|
||||
Проверяются адреса отправителей, IDs и содержимое направленных сообщений.
|
||||
|
||||
- Без MAM: 100 раундов ping и сообщений — 50 000 ping и 50 000 доставок.
|
||||
- С MAM: 10 раундов — 5000 ping, 5000 доставок и ровно 10 000 записей
|
||||
в архивах отправителей/получателей, распределённых между 100 файлами.
|
||||
|
||||
Сырые задержки, CPU/RSS и количество дескрипторов записаны в JSON.
|
||||
Это короткие loopback-прогоны на машине разработки; они не подтверждают
|
||||
длительную работу полного набора модулей или отсутствие утечек памяти.
|
||||
MUC/PEP/push не нагружаются этим сценарием на всех 500 соединениях.
|
||||
|
||||
## Воспроизведение
|
||||
|
||||
```bash
|
||||
bash scripts/verify-local.sh
|
||||
python3 scripts/load_smoke.py --clients 500 --accounts 100 --rounds 100 --message-rounds 100
|
||||
python3 scripts/load_smoke.py --clients 500 --accounts 100 --rounds 10 --message-rounds 10 --archive
|
||||
```
|
||||
|
||||
Для native проверок нужны присланные исходники Prosody и Lua dependencies:
|
||||
инструкции в scripts/prosody_compat/README.md. Docker в среде разработки
|
||||
отсутствует: образ, UID/GID и Compose на целевом хосте не запускались.
|
||||
Не проверены реальные Monal/Conversations/Gajim, APNs/FCM push-шлюз,
|
||||
рабочие сертификаты/данные, загрузка 10 GiB, длительная нагрузка и откат
|
||||
конкретной установки. Функциональные ограничения остаются в COMPATIBILITY.md.
|
||||
Это экспериментальный сервер, а не подтверждённая полная замена Prosody.
|
||||
@@ -0,0 +1,39 @@
|
||||
# Проверка 0.5.0
|
||||
|
||||
Проверено 2026-10-20, Linux x86_64, Rust 1.99.1. Машинный отчёт:
|
||||
validation-results.json. Предыдущие версии отчётов сохранены отдельно.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo test --locked | 162 passed, 0 failed, 9 ignored |
|
||||
| Clippy all-targets с -D warnings | Успешно |
|
||||
| cargo fmt --check | Успешно |
|
||||
| Release build --locked | Успешно |
|
||||
| PEP discovery | Bare-account identity и полный набор feature predicates из Monal; leaf node echo/ACL/errors |
|
||||
| Push discovery | Четыре комбинации PEP × cloud_notify, правильная область identity/features, реальные enable/options/disable |
|
||||
| Pre-auth TLS | Command discovery, invitation URI/expiry, RFC preapproval, взаимная подписка, single-use replay denial и account isolation |
|
||||
| Unknown preauth | Forwarding и replay из pending после offline; graceful manual fallback |
|
||||
| Native invitation oracle | Настоящий mod_invites читает/использует Rust token, Rust использует native token; scoped token native не принимает |
|
||||
| Остальные native oracles | storage/auth SHA-1/SHA-256, PEP, MUC/MAM, CSI, push body lookup |
|
||||
| Federation | Двусторонний STARTTLS + SASL EXTERNAL с настоящей Prosody cafd74b9c5ea |
|
||||
| TCP, WSS, HTTPS BOSH, upload | Повторены на release 0.5.0; также SCRAM/SSDP, SASL2/Bind2, offline/SM и SIGTERM |
|
||||
| Нагрузка с MAM | 100 аккаунтов, 500 TLS-соединений, 5000 ping, 5000 доставок и ровно 10 000 архивных записей |
|
||||
| Большой архив | Отдельный ignored test архива больше 128 MiB |
|
||||
|
||||
Восемь дополнительных ignored tests выполняются отдельно: шесть native
|
||||
module/storage checks, native federation и большой архив. AF_UNIX admin
|
||||
socket остаётся зависимым от разрешений среды; результат попытки сохранён
|
||||
в validation-logs-0.5.0. In-memory admin protocol tests входят в обычный набор.
|
||||
|
||||
Полный запуск: bash scripts/verify-local.sh. Новые сценарии:
|
||||
|
||||
```bash
|
||||
python3 tests/push_discovery.py target/release/rust-xmpp
|
||||
python3 tests/preauth_network.py target/release/rust-xmpp
|
||||
```
|
||||
|
||||
Native инструкции — scripts/prosody_compat/README.md. Проверено соответствие
|
||||
тестируемым клиентским predicates по исходникам, но реальные Monal/Conversations
|
||||
и APNs/FCM шлюзы не запускались. Docker, UID/GID/TLS целевого хоста и копия
|
||||
рабочих данных не проверены. Короткий loopback load не является длительным
|
||||
benchmark полного набора модулей. Полная замена Prosody пока не подтверждена.
|
||||
@@ -0,0 +1,31 @@
|
||||
# Проверка 0.6.0
|
||||
|
||||
Проверено 2026-10-20, Linux x86_64, Rust 1.99.1. Полный лог:
|
||||
validation-logs-0.6.0/verify.txt. Машинный отчёт: validation-results.json.
|
||||
Предыдущие отчёты сохранены отдельно.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo test --locked | 172 passed, 0 failed, 9 ignored |
|
||||
| Clippy all-targets с -D warnings, fmt | Успешно |
|
||||
| Release build --locked | Успешно |
|
||||
| Resource conflict TLS | default/kick_old/kick_new/increment/random; live и hibernating SM; old cleanup isolation; старый token отзывается при замене |
|
||||
| SM active takeover | Владелец/id/h проверяются до замены; partial replay и отдельное состояние старого транспорта |
|
||||
| SASL2 inline resume | Full JID, replay после success, Bind2 suppression/fallback, неверная авторизация/owner/token/h и malformed requests |
|
||||
| HTTP transport | 10 тестов BOSH/WS, включая async cleanup и graceful/abrupt disconnect |
|
||||
| HTTPS BOSH + WSS | Настоящий engine, SM close и повторный вход с тем же resource под kick_new; chat, CSI, roster и upload |
|
||||
| Остальные сетевые сценарии | TCP modules, offline/SM, SIGTERM, SCRAM SHA-1/SHA-256, SASL1/2/Bind2, PEP/push discovery и preauth |
|
||||
| Native module oracles | 6 дополнительных ignored tests: auth/storage, PEP, MUC/MAM, CSI, push body lookup, invitation tokens |
|
||||
| Native federation | Дополнительный ignored test: двусторонний STARTTLS + SASL EXTERNAL с Prosody cafd74b9c5ea |
|
||||
| Нагрузка с MAM | 100 аккаунтов, 500 TLS-соединений, 5000 ping, 5000 сообщений, 10000 архивных записей; failures=[] |
|
||||
|
||||
Полный запуск: XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh.
|
||||
Для native проверок нужны переменные PROSODY_REFERENCE_SOURCE и
|
||||
PROSODY_REFERENCE_LUA; инструкции в scripts/prosody_compat/README.md.
|
||||
Большой архив проверен в 0.5.0 и в этом прогоне не повторялся.
|
||||
AF_UNIX admin требует разрешений среды, ранее bind был запрещён.
|
||||
|
||||
Проверки проходят на изолированных временных данных. Настоящие Monal и
|
||||
Conversations, APNs/FCM, рабочие данные, Docker/UID/TLS целевого хоста и
|
||||
длительная эксплуатация не проверены. Полная замена Prosody не подтверждена;
|
||||
оставшиеся функциональные различия перечислены в COMPATIBILITY.md.
|
||||
@@ -0,0 +1,32 @@
|
||||
# Проверка 0.6.1
|
||||
|
||||
Проверено 2026-10-20, Linux x86_64, Rust 1.99.1.
|
||||
Полный лог: validation-logs-0.6.1/verify.txt.
|
||||
Машинный отчёт: validation-results.json. Предыдущие отчёты сохранены отдельно.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo test --locked | 178 passed, 0 failed, 9 ignored |
|
||||
| Clippy all-targets -D warnings; fmt; release build | Успешно |
|
||||
| Android SASL | 32 сочетания TLS1.2/1.3 × SHA1/256 × SASL1/2 × SSDP on/off × valid/invalid binding |
|
||||
| Настоящий TLS exporter/endpoint | 14 обменов: SASL1/2, exporter TLS1.3, endpoint TLS1.2/1.3, full SSDP lists, server signature, tampered binding и отключённый PLUS |
|
||||
| WSS SCRAM | SASL1/2 с y,,, отсутствие CB/PLUS, правильный SSDP без пустого CB separator, server signature, bind и ping |
|
||||
| Certificate digest | 4 теста с OpenSSL fixtures: weak-hash upgrade, SHA2, RSA-PSS, ECDSA, malformed/unsupported DER |
|
||||
| Старый 0.6.0 | 4 Android TLS1.2 отказа воспроизведены; WSS SSDP mismatch воспроизведён отдельно |
|
||||
| Остальная сеть | TCP modules, offline/SM, SIGTERM, SCRAM, Bind2, inline resume, PEP/push discovery, preauth, resource policies, HTTPS BOSH/WSS и upload — успешно |
|
||||
| Native Prosody | 6 module/storage ignored tests + 1 двусторонний TLS EXTERNAL federation test — успешно |
|
||||
| Нагрузка с MAM | 100 аккаунтов, 500 TLS-соединений, 5000 ping, 5000 сообщений, 10000 архивных записей; failures=[] |
|
||||
|
||||
Запуск: XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh.
|
||||
Native проверки требуют PROSODY_REFERENCE_SOURCE и PROSODY_REFERENCE_LUA;
|
||||
инструкции в scripts/prosody_compat/README.md. Большой архив проверен в 0.5.0
|
||||
и сейчас не повторялся; AF_UNIX admin требует разрешений целевого хоста.
|
||||
|
||||
Android selector в Python повторяет исследованный путь Conversations, а не
|
||||
всё приложение. TLS1.3 exporter проверяется настоящим Rust/rustls клиентом;
|
||||
Python на TLS1.3 использует endpoint binding, поскольку stdlib не даёт exporter.
|
||||
У current monocles есть дополнительный fallback; детали в ANDROID-SASL.md.
|
||||
|
||||
Реальные Monal/Conversations/monocles на устройствах, APNs/FCM, production data,
|
||||
Docker/UID/TLS целевого хоста и длительная эксплуатация не проверены. Остаточные
|
||||
различия — COMPATIBILITY.md. Полная замена Prosody пока не подтверждена.
|
||||
@@ -0,0 +1,28 @@
|
||||
# Проверка 0.7.0
|
||||
|
||||
Проверено 2026-10-20, Linux x86_64, Rust 1.99.1.
|
||||
Полный лог: validation-logs-0.7.0/verify.txt.
|
||||
Машинный отчёт: validation-results.json. Предыдущие отчёты сохранены отдельно.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo test --locked | 187 passed, 0 failed, 9 ignored |
|
||||
| Clippy all-targets -D warnings; fmt; release build | Успешно |
|
||||
| Logger unit | 8 тестов: levels/maps/ranges/sets, append0600, JSON/plain, redaction/escaping, threads, rotate и failed-reopen atomicity |
|
||||
| Logging network | 8 сценариев с настоящим TLS и JSON-файлом: корреляция, успешный вход, wrong password/proof/binding, client disconnect, unknown/corrupt account, SIGHUP reopen и повторный вход |
|
||||
| Секреты в журнале | В тестовых записях нет отправленных паролей, SASL payload/proof и body сообщения |
|
||||
| SASL normalization/retry | 20 TLS1.2/1.3 × SASL1/2 случаев canonical PLAIN/authz/bind, invalid authz, aborted retry и active restart |
|
||||
| Предыдущие сетевые сценарии | SCRAM/PLUS/SSDP/Android, WSS, TCP/SM/offline, SIGTERM, Bind2/inline resume, discovery/preauth, resource policies, HTTPS BOSH/WSS/upload — успешно |
|
||||
| Native Prosody | 6 module/storage checks + 1 двусторонний STARTTLS/SASL EXTERNAL federation — успешно |
|
||||
| Нагрузка | 100 аккаунтов, 500 TLS-соединений, 5000 ping, 5000 сообщений, 10000 MAM записей, failures=[] |
|
||||
|
||||
Запуск: XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh. Native инструкции:
|
||||
scripts/prosody_compat/README.md; нужны PROSODY_REFERENCE_SOURCE и
|
||||
PROSODY_REFERENCE_LUA. Большой архив проверен в0.5.0; AF_UNIX admin требует
|
||||
разрешений целевого хоста, ранее среда запрещала bind.
|
||||
|
||||
Тесты используют временные fixtures. На устройствах Conversations/monocles
|
||||
оставшийся отказ не воспроизведён; для следующей диагностики нужен server log
|
||||
одной попытки по docs/LOGGING.md. Реальные APNs/FCM, production data, Docker/UID/TLS
|
||||
целевого хоста и длительная эксплуатация не проверены. Полная замена Prosody
|
||||
не подтверждена; остаточные различия — docs/COMPATIBILITY.md.
|
||||
@@ -0,0 +1,30 @@
|
||||
# Проверка 0.7.1
|
||||
|
||||
Проверено 2026-10-20, Linux x86_64, Rust 1.99.1.
|
||||
Полный лог: validation-logs-0.7.1/verify.txt. Машинный отчёт: validation-results.json.
|
||||
Предыдущие отчёты сохранены отдельно.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo test --locked | 196 passed, 0 failed, 9 ignored |
|
||||
| Clippy all-targets -D warnings; fmt; release build | Успешно |
|
||||
| Cached SASL2 inline | 6 конфигураций: SCRAM-SHA-1/PLAIN, good/wrong password, SSDP off/on, Bind2 on/off, SM disabled cached resume, legacy bind+ping |
|
||||
| Auth baseline | Поведение0.7.0 воспроизводит отказ до SCRAM challenge;0.7.1 проходит fallback |
|
||||
| Gajim TLS | 4 сочетания modules on/off × allow_registration on/off; domain/ownbare disco, два каталога @to, account/password GET/SET, создание и удаление с проверкой fresh logins |
|
||||
| Label catalog | 6 unit tests: оба namespace, actual example policy schema, mapping, 15 malformed/unknown schema cases; no implicit ACL |
|
||||
| Logger | Объединение одинаковых destinations, независимые файлы, console aliases; прежние escaping/redaction/rotation regressions проходят |
|
||||
| Предыдущие сети | TLS/PLUS/SSDP/Android, logging+SIGHUP, normalization/retry, TCP/SM/offline, Bind2/resume, discovery/preauth, resource policies, HTTPS BOSH/WSS/upload — успешно |
|
||||
| Native Prosody | 6 module/storage checks + 1 двусторонний STARTTLS/SASL EXTERNAL federation — успешно |
|
||||
| Нагрузка | 100 аккаунтов, 500 TLS-соединений, 5000 ping, 5000 сообщений, 10000 MAM записей; failures=[] |
|
||||
|
||||
Запуск: XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh. Native инструкции:
|
||||
scripts/prosody_compat/README.md. Нужны PROSODY_REFERENCE_SOURCE и
|
||||
PROSODY_REFERENCE_LUA. Большой архив последний раз проверен в0.5.0;
|
||||
AF_UNIX admin ранее был запрещён средой и требует проверки на целевом хосте.
|
||||
|
||||
Проверки работают с временными данными. Исходники Conversations/monocles и
|
||||
Gajim проверены, но сами приложения на устройствах не запускались. Runtime
|
||||
metadata catalog adapter не реализует access-control enforcement. Production
|
||||
data/deployment, APNs/FCM, Docker/UID/TLS целевого хоста и длительная
|
||||
эксплуатация не проверены. Полная замена Prosody пока не подтверждена;
|
||||
оставшиеся различия — COMPATIBILITY.md.
|
||||
@@ -0,0 +1,36 @@
|
||||
# Проверка 0.7.2
|
||||
|
||||
Проверено 2026-10-20, Linux x86_64, Rust 1.99.1.
|
||||
Полный лог: validation-logs-0.7.2/verify.txt; машинный отчёт: validation-results.json.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo test --locked | 206 passed, 0 failed, 9 ignored |
|
||||
| fmt, Clippy all-targets -D warnings, release build | Успешно |
|
||||
| Baseline0.7.1 | Из исходников предыдущего ZIP воспроизведены неверное IQ error addressing, ложный конфликт notification defaults, отказ native whole-form config submit |
|
||||
| PEP unit | 7 сценариев: first own missing bundle, no-to publish/read/caps, implicit defaults, native config roundtrip + stale type canonicalization, notification style, publisher visibility, open/subscriber models + outcast/blocklist |
|
||||
| PEP STARTTLS | Fresh + migrated metadata, legacy/OMEMO2 item selectors, no-to publish, native form GET/SET/retry, restart persistence, owner restriction, INFO JSON protocol-only diagnostics |
|
||||
| Предыдущие сети | TLS/PLUS/SSDP/Android SASL1/2, retry/normalization, logging/rotation, Bind2/resume, disco/push, IBR/seclabels, preauth, resource rebinding, HTTP/HTTPS BOSH/WSS/upload — успешно |
|
||||
| Native Prosody | 6 module/storage tests + 1 двусторонняя STARTTLS/SASL EXTERNAL федерация — успешно |
|
||||
| Нагрузка | 100 аккаунтов, 500 TLS-соединений, 5000 ping, 5000 сообщений, 10000 MAM записей; failures=[] |
|
||||
| Публичный DNS | У wthome.ru не обнаружены DS/DNSKEY, AD=false. Google/Cloudflare read-only; production не менялся |
|
||||
|
||||
Запуск: XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh; native checks требуют
|
||||
PROSODY_REFERENCE_SOURCE и PROSODY_REFERENCE_LUA, см. scripts/prosody_compat/README.md.
|
||||
Весь итоговый прогон сделан после изменений исходников; последующие изменения
|
||||
касаются только отчётов и упаковки.
|
||||
|
||||
Первый baseline roundtrip проверяет ошибку wire name payload_type; повторный
|
||||
baseline убирает только ранние assert имени поля, чтобы независимо показать
|
||||
feature-not-implemented на whole-form SET. Остальные baseline тесты не менялись.
|
||||
Лог содержит намеренно упавшие regression tests на0.7.1, а не ошибки0.7.2.
|
||||
|
||||
Предоставленный INFO0.7.1 журнал не содержит конкретных отказавших PubSub IQ;
|
||||
причина именно пользовательского Android индикатора пока не доказана. Реальные
|
||||
приложения не запускались; тестовые bundle bytes синтетические. Shared OMEMO2
|
||||
multi-item test явно запрашивает max_items=max: это не утверждение, что клиент,
|
||||
запрашивающий только open access, автоматически хранит все устройства при
|
||||
native default max_items=1. Native-like metadata fixtures не заменяют полную
|
||||
миграцию production. Крупный архив последний раз проверен0.5.0; AF_UNIX admin
|
||||
нуждается в разрешённом хосте. Полная замена Prosody, APNs/FCM, целевое окружение
|
||||
Docker/UID/TLS и длительная эксплуатация пока не подтверждены.
|
||||
@@ -0,0 +1,39 @@
|
||||
# Проверка 0.7.3
|
||||
|
||||
Проверено 2026-10-20, Linux x86_64, Rust 1.99.1.
|
||||
Итоговый лог: validation-logs-0.7.3/verify.txt; validation-results.json.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo test --locked | 208 passed, 0 failed, 10 ignored |
|
||||
| fmt, Clippy all-targets -D warnings, release build | Успешно |
|
||||
| Baseline ZIP0.7.2 | Новый regression на исходниках предыдущего архива воспроизводит successful IQ old,current: первый список пуст, новый populated item второй |
|
||||
| PEP порядок | All/recent2/recent1 читают current первым; старый item сохраняется |
|
||||
| Android wire | Реальный STARTTLS, первый item как IqParser.getItem, no-to current replacement, повтор после restart; XML/ID не печатаются |
|
||||
| Native порядок | Настоящий mod_pep читает те же файлы и подтверждает current,old |
|
||||
| Диагностика | Unit + INFO JSON wire assertions: scope self-account, items2, first content omemo-devices, first devices2, отсутствие device IDs/raw node |
|
||||
| Предыдущие проверки | SASL1/2, PLUS/SSDP, Bind2/resume, logging/rotation, Gajim discovery/register/labels, PEP/push/preauth, resource, CSI/MAM/MUC/offline, HTTP/HTTPS/BOSH/WSS/upload — успешно |
|
||||
| Native Prosody | 7 module/storage/order tests +1 двусторонняя STARTTLS/SASL EXTERNAL федерация — успешно |
|
||||
| Нагрузка | 100 аккаунтов, 500 TLS-соединений, 5000 ping, 5000 сообщений, 10000 MAM записей; failures=[] |
|
||||
| DNSSEC | Повторный Google DS/DNSKEY read-only: NOERROR без Answer, AD=false. DNS не изменялся |
|
||||
|
||||
Запуск: XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh; native checks требуют
|
||||
PROSODY_REFERENCE_SOURCE и PROSODY_REFERENCE_LUA, инструкции
|
||||
scripts/prosody_compat/README.md. Итоговый прогон выполнен после всех изменений
|
||||
исходников; позже менялись только отчёты и упаковка.
|
||||
|
||||
В новом production журнале0.7.2: 9 auth-success, 126 PubSub IQ events,
|
||||
41 OMEMO IQ и 0 OMEMO IQ errors. Это не доказывает корректное содержимое IQ.
|
||||
Пользователь подтвердил полное завершение Android процессов. Мы не подменяем
|
||||
диагностику рекомендацией просто переподключиться. Исправлен воспроизведённый
|
||||
дефект, но реальные max_items/содержимое production узлов пока недоступны;
|
||||
нельзя утверждать, что устранена единственная причина индикатора на устройстве.
|
||||
|
||||
Baseline log содержит намеренно упавший тест на0.7.2, а не ошибку0.7.3.
|
||||
Native источник подтверждает payload-only archive, поэтому неподтверждённая
|
||||
гипотеза двойного item wrapper отвергнута и не меняет данные. Синтетические
|
||||
bundle bytes проверяют wire/storage, не криптографию. Native default retention1
|
||||
и явные конфигурации не менялись. Реальные Android/Monal/Gajim, полная миграция,
|
||||
production Docker/UID/TLS/APNs/FCM и длительная эксплуатация не проверены.
|
||||
Большой архив последний раз проверен0.5.0; AF_UNIX admin требует разрешённого
|
||||
хоста. Полная замена Prosody пока не подтверждена.
|
||||
@@ -0,0 +1,40 @@
|
||||
# Проверка0.7.4
|
||||
|
||||
Проверено2026-10-20, Linux x86_64, Rust1.99.1 (восстановлен exact toolchain).
|
||||
Итоговый лог validation-logs-0.7.4/verify.txt; JSON validation-results.json.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo test --locked | 215 passed, 0 failed, 10 ignored |
|
||||
| fmt, Clippy all-targets -D warnings, release | Успешно |
|
||||
| Converse Origin | Исходная политика: wthome.ru101, actual conversejs.wthome.ru403; исправленная: actual101 |
|
||||
| HTTPS binding | HTTPS-only startup, отдельные127.0.0.1 и::1 при global interfaces127.0.0.1; wildcard/override/fallback unit |
|
||||
| WSS | Проверка CA/hostname, обязательный xmpp, browser headers, оба пути,403/400/404/101, preauth open/features/close, закрытие WebSocket |
|
||||
| HTTP privacy | Фиксированные route/status/TLS outcomes, никакого request URL/query/Origin/header/body в журнале |
|
||||
| PEP unit | 6 новых tests: invalid IDs, signed32/duplicates, legacy/OMEMO2, payloadless event, direct first-item, privacy |
|
||||
| PEP wire | STARTTLS replay/live: valid1invalid1, suppression empty event + непустой IQ, diagnostic redaction |
|
||||
| Предыдущие сети | SASL/PLUS/SSDP/retry, Bind2/resume, PEP order+config migration, Gajim IBR/labels, preauth/push, logging/rotation, resource, CSI/MAM/MUC/offline, BOSH/WSS/upload — успешно |
|
||||
| Native | 7 storage/module/order tests +1 двусторонняя STARTTLS/SASL EXTERNAL федерация — успешно |
|
||||
| Нагрузка | 100 аккаунтов,500 TLS-соединений,5000 ping,5000 сообщений,10000 MAM записей; failures=[] |
|
||||
| Client log filter | Синтетический ввод с приватными маркерами выдаёт только фиксированные причины, без XML/ID/token |
|
||||
| DNSSEC | Повторные DS/DNSKEY: NOERROR без Answer, AD=false; production DNS не менялся |
|
||||
|
||||
Итоговый прогон выполнен после изменений исходников; последующие изменения
|
||||
касаются отчётов/упаковки. Scripts/*.sh сохранены executable в ZIP.
|
||||
Native reference заново извлечён из supplied archive и собран с настоящими
|
||||
Lua5.4.6/LuaSec/LuaSocket/ICU/OpenSSL модулями в private prefix. Запуск:
|
||||
XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh с PROSODY_REFERENCE_SOURCE,
|
||||
PROSODY_REFERENCE_LUA и native prefix env из scripts/prosody_compat/README.md.
|
||||
|
||||
Серверный журнал0.7.3:12 own OMEMO IQ,0 own errors, XML device counts1/2/6.
|
||||
Этот факт не доказывает валидность IDs/содержимое уведомлений и не устанавливает
|
||||
причину Android pepBroken. Клиентского журнала у пользователя нет. Текущий патч
|
||||
НЕ объявляет PEP проблему устранённой; добавлена необходимая безопасная диагностика.
|
||||
Converse origin подтверждён пользователем; пример updated, рабочий YAML на
|
||||
целевом сервере требует явного добавления Origin. Прямой read-only probe live
|
||||
WSS не смог разрешить production DNS из этой среды. Браузерный UI не запускался.
|
||||
|
||||
No wildcard Origin/TLS bypass. Нельзя утверждать полную замену Prosody:
|
||||
не проверены полная production миграция, настоящие приложения/APNs/FCM,
|
||||
целевой Docker/UID/TLS и длительная эксплуатация. Большой архив последний раз
|
||||
проверен0.5.0, AF_UNIX admin требует разрешённого хоста. COMPATIBILITY.md.
|
||||
@@ -0,0 +1,32 @@
|
||||
# Проверка0.7.5
|
||||
|
||||
Linux x86_64, Rust1.99.1,2026-10-20. Итоговый лог:
|
||||
validation-logs-0.7.5/verify.txt; структурированный итог — validation-results.json.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo test --locked | 229 passed,0 failed,10 ignored |
|
||||
| fmt / Clippy all-targets -D warnings / release | Успешно |
|
||||
| HTTP config | Наследование путей по приложениям, $host, Host/fallback, внешний префикс/порт, literal pchars/percent, отказ конфликтам/невалидным путям |
|
||||
| Proxy trust | IPv4/IPv6 CIDR, пустой Lua table, недоверенные заголовки, цепочки и malformed RFC7239, защита от повторного повышения secure после HTTP hop |
|
||||
| Настоящий TLS proxy | Verified HTTPS→HTTP, переписывание публичного пути, WS и BOSH auth/restart/bind/ping, legacy и RFC7239; cached RID reply |
|
||||
| Ограничения входа | Origin, старые пути404, insecure/spoofed/untrusted403, IPv6 когда доступен |
|
||||
| Upload | Отдельный внутренний путь и публичный prefix в unit PUT/GET; integrated custom $host path IQ/PUT/GET/reuse |
|
||||
| Прежние сетевые сценарии | SASL/PLUS/SSDP/retry/Bind2/resume, WSS, PEP/push/preauth, logging/resource/CSI/MAM/MUC/offline — успешно |
|
||||
| Native | 7 storage/module/order +1 bidirectional TLS/SASL EXTERNAL federation — успешно |
|
||||
| Нагрузка | 100 аккаунтов,500 TLS клиентов,5000 ping,5000 сообщений,10000 MAM; failures=[] |
|
||||
|
||||
Полный итоговый прогон выполнен после изменений кода с CARGO_INCREMENTAL=0;
|
||||
предварительный Clippy выявил три замечания, исправленные перед этим прогоном.
|
||||
Ранее устаревшие compiler artifacts были удалены cargo clean -p rust-xmpp.
|
||||
Исходные данные production не изменялись. После проверки обновлены только
|
||||
инструкция, отчёт и упаковка. Команда: XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh
|
||||
с native reference env согласно scripts/prosody_compat/README.md.
|
||||
|
||||
Прокси в сетевом тесте — отдельный настоящий TLS socket forwarder с переписыванием
|
||||
пути и HTTP metadata. Nginx/production proxy и настоящий Converse UI не запускались.
|
||||
Изменения рабочего YAML и proxy выполняет оператор; пример — HTTP-PROXY.md.
|
||||
Новые возможности не устраняют непроверенные границы из COMPATIBILITY.md.
|
||||
PEP Android и DNSSEC из предыдущего сообщения остаются отдельными нерешёнными
|
||||
задачами; этот выпуск их исправленными не объявляет. Прежние проверки DNSSEC
|
||||
и логи0.7.4 сохранены в историческом отчёте. Нельзя заявлять полную замену Prosody.
|
||||
@@ -0,0 +1,37 @@
|
||||
# Проверка0.7.6
|
||||
|
||||
Linux x86_64, Rust1.99.1,2026-10-20. Итоговый лог:
|
||||
validation-logs-0.7.6/verify.txt; структурированный итог — validation-results.json.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo test --locked | 259 passed,0 failed,11 ignored |
|
||||
| fmt / Clippy all-targets -D warnings / release | Успешно |
|
||||
| MUC extension tests | PM policies, hats/identity privacy, presence role transitions, язык/config/disco, offline affiliates, optional flags, MAM ACL/all/presences/totals/purge |
|
||||
| История | 10 tests: count/time/char constraints, combined limits, subject/hints, ordering/delay, last-message snapshot |
|
||||
| Recovery | Native state filtering/roundtrip, exact resource, expiry, persisted deadline, changed config/password deny, no stale-role replay, explicit nick change, temporary-room retention |
|
||||
| Bounds | Oversized4KiB/256KiB presence status omitted;20KiB last message does not prevent membership checkpoint |
|
||||
| MUC wire restart | Настоящий SIGTERM с живыми STARTTLS sockets; temporary/persistent rooms, role/show/status, чужой account/resource отказ, nick theft отказ, groupchat после восстановления |
|
||||
| Native occupant state | Настоящая Prosody восстанавливает Rust state с3 sessions/2 resources; native freeze меняет роль/status, Rust читает результат |
|
||||
| Прежние сети | SASL/PLUS/SSDP/Bind2/resume, PEP/push/preauth, WSS/BOSH/proxy paths/upload, logging/resource/CSI/MAM/MUC/offline — успешно |
|
||||
| Native total | 8 module/storage/MUC tests +1 bidirectional TLS/SASL EXTERNAL federation — успешно |
|
||||
| Нагрузка | 100 аккаунтов,500 TLS клиентов,5000 ping,5000 сообщений,10000 MAM; failures=[] |
|
||||
|
||||
Итоговый прогон выполнен после заморозки исходников с CARGO_INCREMENTAL=0
|
||||
и очисткой package artifacts. Предварительные проверки нашли исправленные
|
||||
проблемы cleanup временных комнат, повторного использования checkpoint,
|
||||
необязательных oversized полей и двух Clippy замечаний. Дополнительно проверен канонический отпечаток конфигурации,
|
||||
независимый от порядка ключей Lua VM. Здесь сохранён только
|
||||
полный успешный прогон. После него менялись отчёты и упаковка.
|
||||
|
||||
Команда: XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh с native reference env
|
||||
согласно scripts/prosody_compat/README.md. Native source cafd74b9c5ea используется
|
||||
непосредственно с Lua5.4/LuaSec/LuaSocket и compiled ICU/OpenSSL модулями.
|
||||
|
||||
Не проверены production migration, реальные Monal/Conversations/Gajim, SIGKILL
|
||||
crash recovery и все community-модули. Контроль штатного восстановления не
|
||||
означает сохранение старых TCP-сокетов или SM между процессами. Условия300s /
|
||||
полный JID / неизменный config описаны в MUC-RECOVERY.md. Нативное состояние без
|
||||
Rust fingerprint не даёт автоматического разрешения на восстановление.
|
||||
Предыдущие PEP/DNSSEC сообщения этот выпуск не объявляет исправленными.
|
||||
Полная взаимозаменяемость сервера не подтверждена: COMPATIBILITY.md.
|
||||
@@ -0,0 +1,31 @@
|
||||
# Проверка0.7.7
|
||||
|
||||
Linux x86_64, Rust1.99.1,2026-10-20. Итоговый лог:
|
||||
validation-logs-0.7.7/verify.txt; структурированный итог — validation-results.json.
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo test --locked | 262 passed,0 failed,11 ignored |
|
||||
| fmt / Clippy all-targets -D warnings / release | Успешно |
|
||||
| Новый module unit | Link порядок/schemes, загруженные/disabled модули, flags, наследование custom paths/public prefix, неправильные типы и path collisions |
|
||||
| http_altconnect wire | 10 изолированных конфигураций: настоящий HTTP и CA-verified HTTPS, XRD/JRD parity, MIME, CORS, HEAD/OPTIONS/405, query/JSONP, Host, custom mount/public prefix, HTTPS preference, HTTP fallback |
|
||||
| Транспортная регрессия | WSS framing работает до и после отключения discovery; старые WS/BOSH/proxy paths/upload сценарии прошли |
|
||||
| Остальные регрессии | SASL/PLUS/SSDP/Bind2/resume, PEP/push/preauth, logging/resource/CSI/MAM/MUC/offline, MUC restart — успешно |
|
||||
| Native total | 8 module/storage tests +1 TLS/SASL EXTERNAL federation — успешно |
|
||||
| Нагрузка | 100 аккаунтов,500 TLS клиентов,5000 ping,5000 сообщений,10000 MAM; failures=[] |
|
||||
|
||||
Итоговый прогон выполнен после исправления проверки Host с портом вне диапазона,
|
||||
которую обнаружил новый сетевой тест. Все тесты запускают отдельные loopback
|
||||
listeners и временные данные. После прогона менялись только отчёты и упаковка.
|
||||
Native reference suite прежних модулей пройдена; непосредственно http_altconnect
|
||||
проверен Rust unit/network и сопоставлением с supplied Lua source, без отдельного
|
||||
native differential oracle этого модуля.
|
||||
|
||||
Команда: XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh с native reference env
|
||||
согласно scripts/prosody_compat/README.md. Точный скрипт включает новый wire test.
|
||||
|
||||
Рабочие конфиги/DNS/proxy/certificates production не изменялись; оператор должен
|
||||
добавить http_altconnect и опубликовать HTTPS well-known. Инструкция:
|
||||
HTTP-ALTCONNECT.md. Native HTTP/WS fallback сохранён; для строгого XEP0156 нужны
|
||||
HTTPS/WSS URLs. Настоящие Converse/Monal/Conversations UI и полный production
|
||||
rollout не проверены. Общие ограничения сервера — COMPATIBILITY.md.
|
||||
@@ -0,0 +1,475 @@
|
||||
{
|
||||
"prosody_revision": "cafd74b9c5ea",
|
||||
"community_revision_reported": "dddb6c34b964",
|
||||
"note": "Literal dependency/source inventory for supplied revisions; status refers to implemented handlers, not complete module parity. See COMPATIBILITY.md and VALIDATION.md. Conditional dependencies and runtime load order not exhaustively resolved.",
|
||||
"modules": [
|
||||
{
|
||||
"module": "admin_shell",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_admin_shell.lua",
|
||||
"sha256": "e0a11e78a26a415f508e0487141a3d66086a408670e97d1363fd8f024fdd2160",
|
||||
"literal_dependencies": [
|
||||
"admin_socket"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "auth_internal_hashed",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_auth_internal_hashed.lua",
|
||||
"sha256": "c6bbaede99e34c838afbb514780fb7fd40be3102d364cd586fe8f05a3c7b368d",
|
||||
"literal_dependencies": [
|
||||
"tokenauth"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "blocklist",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_blocklist.lua",
|
||||
"sha256": "de7c95f1f988fc281560361a8eb14081e3efdeebebf89741fcb1bba25202931a",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "bookmarks",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_bookmarks.lua",
|
||||
"sha256": "e08745b43a0b6d0b344aaca5cc1888e20022d4de9cec54135eecf36a573ab01d",
|
||||
"literal_dependencies": [
|
||||
"pep"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "bosh",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_bosh.lua",
|
||||
"sha256": "cc5cb45d49467465d65629e5da46be226abdb1a2012ef4792afdabc2243d7b0c",
|
||||
"literal_dependencies": [
|
||||
"c2s",
|
||||
"http",
|
||||
"http_altconnect"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "carbons",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_carbons.lua",
|
||||
"sha256": "0af69b32eb636bbd63757cdb5f0bf729d1304c4b5e527bb6baa2094872517db7",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "cloud_notify",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_cloud_notify.lua",
|
||||
"sha256": "ffaaabc9e4a7a2e08f744937a85a91af61fa7043a41d6559e26209d49467eb46",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "csi_simple",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_csi_simple.lua",
|
||||
"sha256": "170958270a8502fa92117daee20cb9f5b656d6098b4b8d2eb545ab4d723700bc",
|
||||
"literal_dependencies": [
|
||||
"csi"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "disco",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_disco.lua",
|
||||
"sha256": "4bb50c2552248f852ea7ba63bc535b81f7ae1ec2fc627645987a97c70c10be6f",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "http_file_share",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_http_file_share.lua",
|
||||
"sha256": "f4bded677570e6d6fff2fd3278a222457278b0509d53bca2492495bd37eb806a",
|
||||
"literal_dependencies": [
|
||||
"disco",
|
||||
"http"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "mam",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_mam/mod_mam.lua",
|
||||
"sha256": "fde9d1820b8fb10c8848089987c776a682d0972112b8a664fbaf8ab21489176b",
|
||||
"literal_dependencies": [
|
||||
"muc_mam"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "muc",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/muc/mod_muc.lua",
|
||||
"sha256": "e808268c7af15f29501672adf77e9552397db89d0a5e25d6ce0b17455f3cd9ed",
|
||||
"literal_dependencies": [
|
||||
"adhoc",
|
||||
"disco",
|
||||
"muc_unique"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "muc_mam",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_muc_mam.lua",
|
||||
"sha256": "3d432674daa67babbcb836c12df6d3ca34f574fbbe084549f54f24de7034ee31",
|
||||
"literal_dependencies": [
|
||||
"muc"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "pep",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_pep.lua",
|
||||
"sha256": "b28ec7965480de6a62aecca3dd6ef48eae2a37b24bb288ae637c8d676a929919",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "pep_simple",
|
||||
"rust_status": "empty_upstream_noop",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_pep_simple.lua",
|
||||
"sha256": "1d80b3e3d5dd37564847286272e0ee6323d58bb481bb366697fb2316411843b5",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "ping",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_ping.lua",
|
||||
"sha256": "587f3b3791d453ea8538505aa0734474ff77686f18a76ff78253c957e6fd4673",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "private",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_private.lua",
|
||||
"sha256": "257c8cc571e2ca5d1d9a726ffb9b8db73874dc2c7da4e2354a9198683c88c77a",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "pubsub",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_pubsub/mod_pubsub.lua",
|
||||
"sha256": "e6a8de1d70bf4705953716f64388dec1df2b8617eb3fa7eababa2e24f735e335",
|
||||
"literal_dependencies": [
|
||||
"disco"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "register",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_register.lua",
|
||||
"sha256": "20e01f67dc69d0987071e24b3a0e49cf51bd0daa4682eb7209beb5a654e0155c",
|
||||
"literal_dependencies": [
|
||||
"register_ibr",
|
||||
"user_account_management",
|
||||
"watchregistrations"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "roster",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_roster.lua",
|
||||
"sha256": "8521a32488415481f4f06af714898f80767a87e992e1d185bbf711af4e63d030",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "s2s",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_s2s.lua",
|
||||
"sha256": "ff5a322bf0e7e679a9b467c8c4af998856abdb49f0fa9e4dd2879e7ccdde369a",
|
||||
"literal_dependencies": [
|
||||
"s2s_auth_dane_in"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "s2s_auth_certs",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_s2s_auth_certs.lua",
|
||||
"sha256": "8e08b302687fac666cc74d188af79606304b67e42901125e7b5b1e0b7974bec0",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "sasl2",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "community",
|
||||
"path": "custom_plugins/mod_sasl2/mod_sasl2.lua",
|
||||
"sha256": "825e967420cc59c7b943da62b5f22c8901121d858c88d359aed93fbe9efc2f36",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "sasl_ssdp",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "community",
|
||||
"path": "custom_plugins/mod_sasl_ssdp/mod_sasl_ssdp.lua",
|
||||
"sha256": "a9340b988a4de73167aa166082d036d1ae44f33e5640c305c7a0279c1605b83f",
|
||||
"literal_dependencies": []
|
||||
},
|
||||
{
|
||||
"source": "community",
|
||||
"path": "custom_plugins/share/lua/5.4/mod_sasl_ssdp.lua",
|
||||
"sha256": "a9340b988a4de73167aa166082d036d1ae44f33e5640c305c7a0279c1605b83f",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "saslauth",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_saslauth.lua",
|
||||
"sha256": "9c2403d7271fcd73cc1dea63fcf05b10059467f3ae3ebaf26a42e3b682c8e3ea",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "seclabels",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "community",
|
||||
"path": "custom_plugins/mod_seclabels/mod_seclabels.lua",
|
||||
"sha256": "d6226f251edbab1e10371b655c4ab8ce0b6d2a40710a9b6f1c9e520c8f0a14d7",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "smacks",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_smacks.lua",
|
||||
"sha256": "5c978b69b24a8a96042c2a52225995ada33956721083a925ff12bedea779f313",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "storage_internal",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_storage_internal.lua",
|
||||
"sha256": "48daddc50dfbd310bf19c9ae04cdf47523a87ae3d7c66d6e5ba894e5135fe129",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "time",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_time.lua",
|
||||
"sha256": "606571ee5960b98683f03a94bf693a010d76e505f12b77e1d222cb78beef5adf",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "tls",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_tls.lua",
|
||||
"sha256": "c14fde3023f4080546c9f8a61f6e0b08dd0ee6854ddc9c685560987be548dd55",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "turn_external",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_turn_external.lua",
|
||||
"sha256": "9ac80a1b85fcea9b43022293cd09127bb26c5f8ea96446ab97579abee995765f",
|
||||
"literal_dependencies": [
|
||||
"external_services"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "uptime",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_uptime.lua",
|
||||
"sha256": "d34df20d7e4e114060584667bdc80fd2f407921b4c78e1de1d150fb4c6730854",
|
||||
"literal_dependencies": [
|
||||
"adhoc"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "vcard_legacy",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_vcard_legacy.lua",
|
||||
"sha256": "7f4697723ce6803f58158390fc3b49428451336a61d9ab2a4b0035b681fa5baf",
|
||||
"literal_dependencies": [
|
||||
"pep"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "version",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_version.lua",
|
||||
"sha256": "7664626d35c3b6d0a0a872f6daaf66255aeeae80a65e1f560c17ac56e69b8db1",
|
||||
"literal_dependencies": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"module": "websocket",
|
||||
"rust_status": "implemented_with_limits_see_COMPATIBILITY",
|
||||
"candidates": [
|
||||
{
|
||||
"source": "core",
|
||||
"path": "prosody-cafd74b9c5ea/plugins/mod_websocket.lua",
|
||||
"sha256": "fc596425939d94a7843dbe5e188b8e4b9ee896822c88e43e4d34ee51b4cd6184",
|
||||
"literal_dependencies": [
|
||||
"c2s",
|
||||
"http",
|
||||
"http_altconnect"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"runtime_version": "0.3.0"
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
Checking rust-xmpp v0.4.0 (/workspace/scratch/362577cdf2e0/rust-xmpp)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.09s
|
||||
@@ -0,0 +1,2 @@
|
||||
Compiling rust-xmpp v0.4.0 (/workspace/scratch/362577cdf2e0/rust-xmpp)
|
||||
Finished `release` profile [optimized] target(s) in 19.43s
|
||||
@@ -0,0 +1,320 @@
|
||||
Compiling rust-xmpp v0.4.0 (/workspace/scratch/362577cdf2e0/rust-xmpp)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 16.63s
|
||||
Running unittests src/lib.rs (target/debug/deps/rust_xmpp-e35239525a452455)
|
||||
|
||||
running 24 tests
|
||||
test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok
|
||||
test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok
|
||||
test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok
|
||||
test federation::tests::stream_restarts_compare_canonical_domains ... ok
|
||||
test http_transport::tests::bosh_processing_capacity_is_bounded ... ok
|
||||
test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok
|
||||
test sasl::tests::reject_malformed_and_downgrade ... ok
|
||||
test http_transport::tests::independent_framing ... ok
|
||||
test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok
|
||||
test sessions::tests::acknowledgement_wraps ... ok
|
||||
test sessions::tests::graceful_disconnect_is_not_resumable ... ok
|
||||
test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok
|
||||
test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok
|
||||
test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok
|
||||
test wire::tests::declarations_rejected ... ok
|
||||
test wire::tests::fragmented_and_pipelined ... ok
|
||||
test wire::tests::invalid_namespace_and_declarations_rejected ... ok
|
||||
test sasl::tests::rfc5802_sha1_vector ... ok
|
||||
test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok
|
||||
test sasl::tests::sha256_independent_python_vector ... ok
|
||||
test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok
|
||||
test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok
|
||||
test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok
|
||||
test admin::tests::real_admin_xml_protocol_over_duplex ... ok
|
||||
|
||||
test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/rust_xmpp-2bce05be4db51fc4)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/admin_socket.rs (target/debug/deps/admin_socket-fab6f1412fe32176)
|
||||
|
||||
running 1 test
|
||||
test prosody_wire_commands_password_prompt_and_safe_errors ... ignored, requires AF_UNIX socket permission; run on target host with --ignored
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-28547367898e6a30)
|
||||
|
||||
running 14 tests
|
||||
test archive_larger_than_128mib_streams ... ignored, large-file scalability regression; run explicitly
|
||||
test mam_preferences_persist ... ok
|
||||
test corrupt_archive_reports_server_error_and_namespace_stripping_is_precise ... ok
|
||||
test legacy_records_binary_cache_and_roundtrip ... ok
|
||||
test append_is_incremental_and_recovers_torn_tail ... ok
|
||||
test archive_roundtrip_preserves_default_namespace_resets ... ok
|
||||
test smart_enable_and_message_selection ... ok
|
||||
test equal_cursors_and_normalized_query_jids ... ok
|
||||
test real_archive_sid_and_sender_privacy ... ok
|
||||
test muc_archive_filters_stanza_kind_instead_of_sender_jid ... ok
|
||||
test zero_page_dates_and_invalid_forms ... ok
|
||||
test mam_paging_filters_and_forbidden ... ok
|
||||
test extended_ids_ranges_flip_and_metadata ... ok
|
||||
test namespaces_expiry_and_concurrent_append ... ok
|
||||
|
||||
test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/auth.rs (target/debug/deps/auth-1f5f13ca9abe0947)
|
||||
|
||||
running 2 tests
|
||||
test traversal_and_malicious_account_records_rejected ... ok
|
||||
test create_and_read_hashed_accounts ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.69s
|
||||
|
||||
Running tests/cli.rs (target/debug/deps/cli-60b3380ae4ed4cfb)
|
||||
|
||||
running 2 tests
|
||||
test server_cannot_be_mistaken_for_running_service ... ok
|
||||
test conversion_preserves_source_and_refuses_overwrite ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/config.rs (target/debug/deps/config-00f0036749bc58da)
|
||||
|
||||
running 12 tests
|
||||
test component_can_explicitly_enable_global_modules ... ok
|
||||
test include_has_own_global_scope_and_parent_scope_is_restored ... ok
|
||||
test storage_paths_encode_like_prosody ... ok
|
||||
test include_cycles_rejected ... ok
|
||||
test declarations_and_overrides ... ok
|
||||
test supplied_configuration_scopes_arithmetic_and_modules ... ok
|
||||
test tables_cannot_recurse_forever ... ok
|
||||
test supplied_config_matches_original_prosody_loader ... ok
|
||||
test runtime_capabilities_are_unavailable ... ok
|
||||
test all_formats_round_trip_actual_config ... ok
|
||||
test malformed_values_rejected ... ok
|
||||
test loops_are_bounded ... ok
|
||||
|
||||
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/csi.rs (target/debug/deps/csi-7423d59484b1f328)
|
||||
|
||||
running 2 tests
|
||||
test bounded_queue_flush_delay_activity_and_grace ... ok
|
||||
test native_importance_rules ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-295ef60d9761ac35)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/data_lock.rs (target/debug/deps/data_lock-06c96afda506be83)
|
||||
|
||||
running 2 tests
|
||||
test child_process_probe ... ok
|
||||
test excludes_another_process_and_releases_on_drop ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/debug_legacy.rs (target/debug/deps/debug_legacy-51387f71e0080e24)
|
||||
|
||||
running 1 test
|
||||
test debug_empty_legacy_bind ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
|
||||
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-8eaeecccd4759bb4)
|
||||
|
||||
running 3 tests
|
||||
test native_prosody_tls_external_bidirectional ... ignored, requires native Prosody cafd74b9c5ea and Lua TLS dependencies
|
||||
test mutual_tls_external_delivery_and_certificate_identity_rejection ... ok
|
||||
test reuses_connections_serializes_writes_and_retires_idle_or_closed_peers ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.15s
|
||||
|
||||
Running tests/http_transport.rs (target/debug/deps/http_transport-fb9e1bc0b9cc3c07)
|
||||
|
||||
running 7 tests
|
||||
test configured_origin_is_enforced ... ok
|
||||
test bosh_preserves_namespace_inherited_from_body ... ok
|
||||
test transport_paths_and_cors_preflight_match_prosody ... ok
|
||||
test bosh_session_retries_restart_termination ... ok
|
||||
test bosh_reorders_two_requests_without_replaying_stanzas ... ok
|
||||
test websocket_frames_are_independent_xml ... ok
|
||||
test bosh_retry_survives_aborted_http_request_without_replaying_stanzas ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
|
||||
|
||||
Running tests/http_upload.rs (target/debug/deps/http_upload-826d9cdb6f07c106)
|
||||
|
||||
running 5 tests
|
||||
test https_endpoint_uses_real_tls ... ok
|
||||
test percent_escape_case_and_equivalent_url_spelling ... ok
|
||||
test persisted_prosody_archive_and_hs256_slot_survive_without_sidecar ... ok
|
||||
test expired_upload_releases_quota ... ok
|
||||
test upload_authorization_streaming_ranges_and_restart ... ok
|
||||
|
||||
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
|
||||
|
||||
Running tests/message_routing.rs (target/debug/deps/message_routing-300d1f16a0279559)
|
||||
|
||||
running 2 tests
|
||||
test headline_uses_all_nonnegative_available_resources_and_errors_never_fallback ... ok
|
||||
test unknown_resource_falls_back_to_available_bare_jid ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_access.rs (target/debug/deps/muc_access-6094a40d7e4e9fd4)
|
||||
|
||||
running 3 tests
|
||||
test moderators_cannot_kick_or_demote_other_moderators ... ok
|
||||
test nested_affiliations_do_not_fall_back_to_obsolete_flat_entries ... ok
|
||||
test binary_occupant_id_salt_survives_saves_and_restarts ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_domain_bans.rs (target/debug/deps/muc_domain_bans-f7d401e9bdda6874)
|
||||
|
||||
running 2 tests
|
||||
test applying_domain_ban_removes_remote_occupants_and_blocks_rejoin ... ok
|
||||
test native_domain_bans_block_remote_users_but_allow_explicit_members ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_flow.rs (target/debug/deps/muc_flow-c3519d804f557b73)
|
||||
|
||||
running 18 tests
|
||||
test configured_lock_timeout_expires_without_owner_submission ... ok
|
||||
test authorization_and_conflict ... ok
|
||||
test iq_response_requires_expected_sender ... ok
|
||||
test join_lock_chat_leave ... ok
|
||||
test nick_invite_destroy_and_local_creation ... ok
|
||||
test multiple_resources_share_nick_and_private_delivery ... ok
|
||||
test occupant_id_is_stable_and_spoofed_ids_removed ... ok
|
||||
test persistence_roundtrip ... ok
|
||||
test restored_temporary_room_is_deleted_after_last_disconnect ... ok
|
||||
test room_vcard_owner_only_and_avatar_presence ... ok
|
||||
test switching_to_members_only_removes_unaffiliated_users ... ok
|
||||
test visitor_voice_request_cannot_spoof_identity_or_grant_itself_voice ... ok
|
||||
test preserves_unknown_binary_mixed_room_fields ... ok
|
||||
test persistent_destroy_creates_prosody_tombstone ... ok
|
||||
test archive_history_and_permissions ... ok
|
||||
test reserved_nickname_blocks_other_users ... ok
|
||||
test native_muc_archive_type_and_anonymity_are_preserved ... ok
|
||||
test maintenance_expires_idle_archives_and_tombstones ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-5a83afb0c392f358)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-452af5a83e8c375b)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_persistence.rs (target/debug/deps/pubsub_persistence-d9aa4e5ae21f08f0)
|
||||
|
||||
running 18 tests
|
||||
test native_string_max_items_satisfies_numeric_publish_precondition ... ok
|
||||
test modern_bookmarks_notify_legacy_capability ... ok
|
||||
test configurable_limits_component_creation_and_publisher ... ok
|
||||
test capability_discovery_replays_and_filters_notifications ... ok
|
||||
test configure_requires_owner ... ok
|
||||
test nonpersistent_items_stay_in_memory_and_can_be_made_persistent ... ok
|
||||
test open_model_and_notifications ... ok
|
||||
test reads_prosody_legacy_fixture ... ok
|
||||
test full_jid_block_applies_to_reads_subscription_replays_and_events ... ok
|
||||
test publish_options_conflict_is_recoverable_and_preserves_item ... ok
|
||||
test pep_persists_namespaces_and_enforces_owner ... ok
|
||||
test remote_unavailable_is_scoped_to_addressed_owner_and_cancels_pending ... ok
|
||||
test roster_presence_access_and_foreign_subscription_denied ... ok
|
||||
test remote_caps_replay_and_open_node_privacy_revoke ... ok
|
||||
test payload_policy_applies_to_subscription_and_caps_replays ... ok
|
||||
test subscription_options_disable_events_and_require_subscriber ... ok
|
||||
test native_notification_fields_and_retract_policy_are_independent ... ok
|
||||
test component_default_retention_matches_prosody_twenty_items ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-50e169110c02e394)
|
||||
|
||||
running 7 tests
|
||||
test native_push_body_lookup_excludes_extensions ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test foreign_account_cannot_register ... ok
|
||||
test push_summary_never_copies_foreign_namespace_body ... ok
|
||||
test queue_coalesces_and_importance_matches_native ... ok
|
||||
test stable_client_registration_and_targeted_notification ... ok
|
||||
test reenable_cancels_old_errors_and_failure_counts_are_per_account ... ok
|
||||
test registrations_notifications_and_authenticated_errors ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-84c92c3ddfcfccb6)
|
||||
|
||||
running 1 test
|
||||
test real_prosody_storage_and_auth_roundtrip ... ignored, requires native supplied Prosody source; run scripts/prosody_compat/verify.sh
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/sasl_accounts.rs (target/debug/deps/sasl_accounts-3f676750cb5e4878)
|
||||
|
||||
running 1 test
|
||||
test disabled_legacy_and_unicode_accounts ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.58s
|
||||
|
||||
Running tests/storage_accounts.rs (target/debug/deps/storage_accounts-c4b373401915ee8a)
|
||||
|
||||
running 20 tests
|
||||
test broken_roster_is_not_overwritten ... ok
|
||||
test inbound_subscription_requires_pending_to_grant_to ... ok
|
||||
test account_purge_refuses_symlink_store_without_touching_other_files ... ok
|
||||
test domain_roster_and_block_jid_normalization ... ok
|
||||
test malformed_roster_iq_never_mutates ... ok
|
||||
test blocklist_enforcement_api ... ok
|
||||
test malformed_legacy_vcard_and_private_bookmarks_rejected ... ok
|
||||
test private_and_vcard_authorization ... ok
|
||||
test privacy_migration_only_default_deny_jids ... ok
|
||||
test reads_timestamp_blocklist_and_keeps_metadata ... ok
|
||||
test roster_empty_name_and_foreign_group_ignored ... ok
|
||||
test roster_preserves_subscription_and_metadata ... ok
|
||||
test purge_account_exact_files_preserves_others_and_extras ... ok
|
||||
test bookmarks_private_pep_bidirectional_and_private ... ok
|
||||
test subscription_handshake_and_cancel ... ok
|
||||
test legacy_bookmarks_respect_host_limit_and_read_over_256 ... ok
|
||||
test legacy_migration_clears_source_after_success ... ok
|
||||
test vcard_pep_conversion_and_avatar ... ok
|
||||
test password_change_after_purge_never_recreates_account ... ok
|
||||
test creation_and_purge_are_serialized ... ok
|
||||
|
||||
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.27s
|
||||
|
||||
Running tests/storage_compat.rs (target/debug/deps/storage_compat-4e29b17b141e97a4)
|
||||
|
||||
running 6 tests
|
||||
test empty_namespace_preserved ... ok
|
||||
test mixed_binary_roundtrip ... ok
|
||||
test stanza_roundtrip ... ok
|
||||
test path_and_atomic_update ... ok
|
||||
test concurrent_updates_do_not_lose_entries ... ok
|
||||
test rejects_cycles_code_and_bad_files ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Doc-tests rust_xmpp
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
|
||||
Running tests/admin_socket.rs (target/debug/deps/admin_socket-fab6f1412fe32176)
|
||||
|
||||
running 1 test
|
||||
test prosody_wire_commands_password_prompt_and_safe_errors ... FAILED
|
||||
|
||||
failures:
|
||||
|
||||
---- prosody_wire_commands_password_prompt_and_safe_errors stdout ----
|
||||
|
||||
thread 'prosody_wire_commands_password_prompt_and_safe_errors' (29) panicked at tests/admin_socket.rs:25:62:
|
||||
called `Result::unwrap()` on an `Err` value: create admin Unix socket
|
||||
|
||||
Caused by:
|
||||
Operation not permitted (os error 1)
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
|
||||
|
||||
failures:
|
||||
prosody_wire_commands_password_prompt_and_safe_errors
|
||||
|
||||
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
error: test failed, to rerun pass `--test admin_socket`
|
||||
@@ -0,0 +1 @@
|
||||
PASS: SASL2 Bind2 TLS flow, inline SM/CSI/Carbons, private random resource, malformed requests, authentication failure and fallback
|
||||
@@ -0,0 +1 @@
|
||||
PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse
|
||||
@@ -0,0 +1,12 @@
|
||||
Blocking waiting for file lock on package cache
|
||||
Blocking waiting for file lock on package cache
|
||||
Blocking waiting for file lock on package cache
|
||||
Blocking waiting for file lock on build directory
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-28547367898e6a30)
|
||||
|
||||
running 1 test
|
||||
test archive_larger_than_128mib_streams ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 13 filtered out; finished in 0.86s
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-8eaeecccd4759bb4)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_tls_external_bidirectional ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.74s
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
Blocking waiting for file lock on package cache
|
||||
Blocking waiting for file lock on package cache
|
||||
Blocking waiting for file lock on package cache
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-295ef60d9761ac35)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-5a83afb0c392f358)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-452af5a83e8c375b)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-50e169110c02e394)
|
||||
|
||||
running 1 test
|
||||
test native_push_body_lookup_excludes_extensions ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-84c92c3ddfcfccb6)
|
||||
|
||||
running 1 test
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-1
|
||||
PROSODY_NATIVE_FINAL_OK SHA-1
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-256
|
||||
PROSODY_NATIVE_FINAL_OK SHA-256
|
||||
test real_prosody_storage_and_auth_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.22s
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
PASS: integrated TCP roster/subscriptions, client IQ routing, CSI buffering/keepalive flush, MAM, blocking, OMEMO PEP, MUC, offline replay and SM resumption
|
||||
PASS: graceful SIGTERM shutdown
|
||||
@@ -0,0 +1 @@
|
||||
PASS: independent SCRAM-SHA-1 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
@@ -0,0 +1 @@
|
||||
PASS: independent SCRAM-SHA-256 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
@@ -0,0 +1,25 @@
|
||||
Compiling rust-xmpp v0.5.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 1.82s
|
||||
Running tests/admin_socket.rs (target/debug/deps/admin_socket-572bc055bcf12a3a)
|
||||
|
||||
running 1 test
|
||||
test prosody_wire_commands_password_prompt_and_safe_errors ... FAILED
|
||||
|
||||
failures:
|
||||
|
||||
---- prosody_wire_commands_password_prompt_and_safe_errors stdout ----
|
||||
|
||||
thread 'prosody_wire_commands_password_prompt_and_safe_errors' (996) panicked at tests/admin_socket.rs:25:62:
|
||||
called `Result::unwrap()` on an `Err` value: create admin Unix socket
|
||||
|
||||
Caused by:
|
||||
Operation not permitted (os error 1)
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
|
||||
|
||||
failures:
|
||||
prosody_wire_commands_password_prompt_and_safe_errors
|
||||
|
||||
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
error: test failed, to rerun pass `--test admin_socket`
|
||||
@@ -0,0 +1 @@
|
||||
PASS: SASL2 Bind2 TLS flow, inline SM/CSI/Carbons, private random resource, malformed requests, authentication failure and fallback
|
||||
@@ -0,0 +1,2 @@
|
||||
Checking rust-xmpp v0.5.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.01s
|
||||
@@ -0,0 +1,9 @@
|
||||
Compiling rust-xmpp v0.5.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.09s
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-1d17c1cfea5f4714)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_tls_external_bidirectional ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 1.65s
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse
|
||||
@@ -0,0 +1,9 @@
|
||||
Compiling rust-xmpp v0.5.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 1.79s
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-973755ec43c22385)
|
||||
|
||||
running 1 test
|
||||
test archive_larger_than_128mib_streams ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 13 filtered out; finished in 0.86s
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
Compiling rust-xmpp v0.5.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 3.12s
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-ccb4b485a667f0f8)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
Blocking waiting for file lock on build directory
|
||||
Compiling rust-xmpp v0.5.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 11.11s
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-eba98d9cb4d5f495)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-addf0f4a2dc96ddd)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-ccb4b485a667f0f8)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-28e6095e22e2420b)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-99eb4de72a25a307)
|
||||
|
||||
running 1 test
|
||||
test native_push_body_lookup_excludes_extensions ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-1275958eb2356dc6)
|
||||
|
||||
running 1 test
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-1
|
||||
PROSODY_NATIVE_FINAL_OK SHA-1
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-256
|
||||
PROSODY_NATIVE_FINAL_OK SHA-256
|
||||
test real_prosody_storage_and_auth_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.09s
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
PASS: TLS invitation command discovery, preapproval, single-use mutual roster, replay denial, unknown preauth forwarding/offline pending, account isolation
|
||||
@@ -0,0 +1 @@
|
||||
PASS: TLS account/domain discovery with PEP and push enabled/disabled; real push enable, publish options, per-node and service-wide disable
|
||||
@@ -0,0 +1,2 @@
|
||||
Compiling rust-xmpp v0.5.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `release` profile [optimized] target(s) in 21.78s
|
||||
@@ -0,0 +1 @@
|
||||
PASS: independent SCRAM-SHA-1 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
@@ -0,0 +1 @@
|
||||
PASS: independent SCRAM-SHA-256 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
@@ -0,0 +1,2 @@
|
||||
PASS: integrated TCP roster/subscriptions, client IQ routing, CSI buffering/keepalive flush, MAM, blocking, OMEMO PEP, MUC, offline replay and SM resumption
|
||||
PASS: graceful SIGTERM shutdown
|
||||
@@ -0,0 +1,353 @@
|
||||
Compiling rust-xmpp v0.5.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 9.46s
|
||||
Running unittests src/lib.rs (target/debug/deps/rust_xmpp-587bbb396e7c5a05)
|
||||
|
||||
running 24 tests
|
||||
test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok
|
||||
test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok
|
||||
test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok
|
||||
test federation::tests::stream_restarts_compare_canonical_domains ... ok
|
||||
test http_transport::tests::bosh_processing_capacity_is_bounded ... ok
|
||||
test http_transport::tests::independent_framing ... ok
|
||||
test sasl::tests::reject_malformed_and_downgrade ... ok
|
||||
test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok
|
||||
test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok
|
||||
test sessions::tests::acknowledgement_wraps ... ok
|
||||
test sessions::tests::graceful_disconnect_is_not_resumable ... ok
|
||||
test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok
|
||||
test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok
|
||||
test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok
|
||||
test wire::tests::declarations_rejected ... ok
|
||||
test wire::tests::fragmented_and_pipelined ... ok
|
||||
test wire::tests::invalid_namespace_and_declarations_rejected ... ok
|
||||
test sasl::tests::rfc5802_sha1_vector ... ok
|
||||
test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok
|
||||
test sasl::tests::sha256_independent_python_vector ... ok
|
||||
test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok
|
||||
test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok
|
||||
test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok
|
||||
test admin::tests::real_admin_xml_protocol_over_duplex ... ok
|
||||
|
||||
test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/rust_xmpp-43dc57ea24368ad6)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/admin_socket.rs (target/debug/deps/admin_socket-572bc055bcf12a3a)
|
||||
|
||||
running 1 test
|
||||
test prosody_wire_commands_password_prompt_and_safe_errors ... ignored, requires AF_UNIX socket permission; run on target host with --ignored
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-973755ec43c22385)
|
||||
|
||||
running 14 tests
|
||||
test archive_larger_than_128mib_streams ... ignored, large-file scalability regression; run explicitly
|
||||
test mam_preferences_persist ... ok
|
||||
test corrupt_archive_reports_server_error_and_namespace_stripping_is_precise ... ok
|
||||
test legacy_records_binary_cache_and_roundtrip ... ok
|
||||
test append_is_incremental_and_recovers_torn_tail ... ok
|
||||
test smart_enable_and_message_selection ... ok
|
||||
test archive_roundtrip_preserves_default_namespace_resets ... ok
|
||||
test equal_cursors_and_normalized_query_jids ... ok
|
||||
test real_archive_sid_and_sender_privacy ... ok
|
||||
test muc_archive_filters_stanza_kind_instead_of_sender_jid ... ok
|
||||
test zero_page_dates_and_invalid_forms ... ok
|
||||
test mam_paging_filters_and_forbidden ... ok
|
||||
test extended_ids_ranges_flip_and_metadata ... ok
|
||||
test namespaces_expiry_and_concurrent_append ... ok
|
||||
|
||||
test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.04s
|
||||
|
||||
Running tests/auth.rs (target/debug/deps/auth-bd49e01cf4c2f281)
|
||||
|
||||
running 2 tests
|
||||
test traversal_and_malicious_account_records_rejected ... ok
|
||||
test create_and_read_hashed_accounts ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.72s
|
||||
|
||||
Running tests/cli.rs (target/debug/deps/cli-b896cdfe001bea67)
|
||||
|
||||
running 2 tests
|
||||
test server_cannot_be_mistaken_for_running_service ... ok
|
||||
test conversion_preserves_source_and_refuses_overwrite ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/config.rs (target/debug/deps/config-1478d42081f7ab0f)
|
||||
|
||||
running 12 tests
|
||||
test component_can_explicitly_enable_global_modules ... ok
|
||||
test include_has_own_global_scope_and_parent_scope_is_restored ... ok
|
||||
test declarations_and_overrides ... ok
|
||||
test storage_paths_encode_like_prosody ... ok
|
||||
test supplied_configuration_scopes_arithmetic_and_modules ... ok
|
||||
test include_cycles_rejected ... ok
|
||||
test tables_cannot_recurse_forever ... ok
|
||||
test runtime_capabilities_are_unavailable ... ok
|
||||
test all_formats_round_trip_actual_config ... ok
|
||||
test supplied_config_matches_original_prosody_loader ... ok
|
||||
test malformed_values_rejected ... ok
|
||||
test loops_are_bounded ... ok
|
||||
|
||||
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/csi.rs (target/debug/deps/csi-72cb213d3dbb7d6c)
|
||||
|
||||
running 2 tests
|
||||
test bounded_queue_flush_delay_activity_and_grace ... ok
|
||||
test native_importance_rules ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-eba98d9cb4d5f495)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/data_lock.rs (target/debug/deps/data_lock-c5d9714de0c98247)
|
||||
|
||||
running 2 tests
|
||||
test child_process_probe ... ok
|
||||
test excludes_another_process_and_releases_on_drop ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/debug_legacy.rs (target/debug/deps/debug_legacy-ff48fac0b9f28fda)
|
||||
|
||||
running 1 test
|
||||
test debug_empty_legacy_bind ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
|
||||
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-1d17c1cfea5f4714)
|
||||
|
||||
running 3 tests
|
||||
test native_prosody_tls_external_bidirectional ... ignored, requires native Prosody cafd74b9c5ea and Lua TLS dependencies
|
||||
test mutual_tls_external_delivery_and_certificate_identity_rejection ... ok
|
||||
test reuses_connections_serializes_writes_and_retires_idle_or_closed_peers ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.61s
|
||||
|
||||
Running tests/http_transport.rs (target/debug/deps/http_transport-c4d9ba6090cac490)
|
||||
|
||||
running 7 tests
|
||||
test configured_origin_is_enforced ... ok
|
||||
test bosh_preserves_namespace_inherited_from_body ... ok
|
||||
test transport_paths_and_cors_preflight_match_prosody ... ok
|
||||
test bosh_session_retries_restart_termination ... ok
|
||||
test bosh_reorders_two_requests_without_replaying_stanzas ... ok
|
||||
test websocket_frames_are_independent_xml ... ok
|
||||
test bosh_retry_survives_aborted_http_request_without_replaying_stanzas ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
|
||||
|
||||
Running tests/http_upload.rs (target/debug/deps/http_upload-a7eb3b455efd4574)
|
||||
|
||||
running 5 tests
|
||||
test https_endpoint_uses_real_tls ... ok
|
||||
test percent_escape_case_and_equivalent_url_spelling ... ok
|
||||
test persisted_prosody_archive_and_hs256_slot_survive_without_sidecar ... ok
|
||||
test expired_upload_releases_quota ... ok
|
||||
test upload_authorization_streaming_ranges_and_restart ... ok
|
||||
|
||||
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
|
||||
|
||||
Running tests/message_routing.rs (target/debug/deps/message_routing-f782bf5ad5366e9d)
|
||||
|
||||
running 2 tests
|
||||
test unknown_resource_falls_back_to_available_bare_jid ... ok
|
||||
test headline_uses_all_nonnegative_available_resources_and_errors_never_fallback ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_access.rs (target/debug/deps/muc_access-aeab2ef041578295)
|
||||
|
||||
running 3 tests
|
||||
test moderators_cannot_kick_or_demote_other_moderators ... ok
|
||||
test nested_affiliations_do_not_fall_back_to_obsolete_flat_entries ... ok
|
||||
test binary_occupant_id_salt_survives_saves_and_restarts ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_domain_bans.rs (target/debug/deps/muc_domain_bans-2cf55e8d47991b19)
|
||||
|
||||
running 2 tests
|
||||
test applying_domain_ban_removes_remote_occupants_and_blocks_rejoin ... ok
|
||||
test native_domain_bans_block_remote_users_but_allow_explicit_members ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_flow.rs (target/debug/deps/muc_flow-a4be20068ea0d649)
|
||||
|
||||
running 18 tests
|
||||
test configured_lock_timeout_expires_without_owner_submission ... ok
|
||||
test join_lock_chat_leave ... ok
|
||||
test authorization_and_conflict ... ok
|
||||
test iq_response_requires_expected_sender ... ok
|
||||
test multiple_resources_share_nick_and_private_delivery ... ok
|
||||
test occupant_id_is_stable_and_spoofed_ids_removed ... ok
|
||||
test nick_invite_destroy_and_local_creation ... ok
|
||||
test restored_temporary_room_is_deleted_after_last_disconnect ... ok
|
||||
test persistence_roundtrip ... ok
|
||||
test switching_to_members_only_removes_unaffiliated_users ... ok
|
||||
test visitor_voice_request_cannot_spoof_identity_or_grant_itself_voice ... ok
|
||||
test preserves_unknown_binary_mixed_room_fields ... ok
|
||||
test room_vcard_owner_only_and_avatar_presence ... ok
|
||||
test persistent_destroy_creates_prosody_tombstone ... ok
|
||||
test reserved_nickname_blocks_other_users ... ok
|
||||
test archive_history_and_permissions ... ok
|
||||
test maintenance_expires_idle_archives_and_tombstones ... ok
|
||||
test native_muc_archive_type_and_anonymity_are_preserved ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-addf0f4a2dc96ddd)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pep_discovery.rs (target/debug/deps/pep_discovery-e81fd010a9642251)
|
||||
|
||||
running 4 tests
|
||||
test standalone_component_does_not_claim_pep_automatic_subscriptions ... ok
|
||||
test account_disco_advertises_pep_without_requiring_a_node ... ok
|
||||
test node_discovery_keeps_node_identity_errors_and_access_checks ... ok
|
||||
test account_discovery_does_not_intercept_server_or_resource_caps ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
|
||||
|
||||
Running tests/preauth.rs (target/debug/deps/preauth-0088370dd8976061)
|
||||
|
||||
running 10 tests
|
||||
test duplicate_or_wrong_namespace_tokens_do_not_qualify ... ok
|
||||
test unknown_tokens_do_not_create_invite_stores_and_disabled_accounts_cannot_issue ... ok
|
||||
test standard_adhoc_command_returns_contact_uri ... ok
|
||||
test prosody_numeric_expiry_is_consumed_and_other_entries_preserved ... ok
|
||||
test unknown_client_token_is_preserved_on_remote_and_pending_delivery ... ok
|
||||
test concurrent_redemption_has_exactly_one_winner ... ok
|
||||
test valid_token_autoapproves_and_sends_reciprocal_request ... ok
|
||||
test identity_scope_does_not_burn_on_wrong_sender_or_leak_to_prosody ... ok
|
||||
test invitations_expire_are_single_use_and_owner_scoped ... ok
|
||||
test local_invitation_updates_both_rosters_without_granting_reverse_subscription ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-ccb4b485a667f0f8)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-28e6095e22e2420b)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_persistence.rs (target/debug/deps/pubsub_persistence-102bbd30c0a0e29d)
|
||||
|
||||
running 18 tests
|
||||
test modern_bookmarks_notify_legacy_capability ... ok
|
||||
test native_string_max_items_satisfies_numeric_publish_precondition ... ok
|
||||
test configurable_limits_component_creation_and_publisher ... ok
|
||||
test capability_discovery_replays_and_filters_notifications ... ok
|
||||
test configure_requires_owner ... ok
|
||||
test nonpersistent_items_stay_in_memory_and_can_be_made_persistent ... ok
|
||||
test full_jid_block_applies_to_reads_subscription_replays_and_events ... ok
|
||||
test open_model_and_notifications ... ok
|
||||
test reads_prosody_legacy_fixture ... ok
|
||||
test pep_persists_namespaces_and_enforces_owner ... ok
|
||||
test publish_options_conflict_is_recoverable_and_preserves_item ... ok
|
||||
test remote_unavailable_is_scoped_to_addressed_owner_and_cancels_pending ... ok
|
||||
test roster_presence_access_and_foreign_subscription_denied ... ok
|
||||
test remote_caps_replay_and_open_node_privacy_revoke ... ok
|
||||
test subscription_options_disable_events_and_require_subscriber ... ok
|
||||
test payload_policy_applies_to_subscription_and_caps_replays ... ok
|
||||
test native_notification_fields_and_retract_policy_are_independent ... ok
|
||||
test component_default_retention_matches_prosody_twenty_items ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-99eb4de72a25a307)
|
||||
|
||||
running 7 tests
|
||||
test native_push_body_lookup_excludes_extensions ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test foreign_account_cannot_register ... ok
|
||||
test push_summary_never_copies_foreign_namespace_body ... ok
|
||||
test queue_coalesces_and_importance_matches_native ... ok
|
||||
test reenable_cancels_old_errors_and_failure_counts_are_per_account ... ok
|
||||
test stable_client_registration_and_targeted_notification ... ok
|
||||
test registrations_notifications_and_authenticated_errors ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-1275958eb2356dc6)
|
||||
|
||||
running 1 test
|
||||
test real_prosody_storage_and_auth_roundtrip ... ignored, requires native supplied Prosody source; run scripts/prosody_compat/verify.sh
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/sasl_accounts.rs (target/debug/deps/sasl_accounts-c5837c508cc81fd7)
|
||||
|
||||
running 1 test
|
||||
test disabled_legacy_and_unicode_accounts ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.63s
|
||||
|
||||
Running tests/storage_accounts.rs (target/debug/deps/storage_accounts-8a7eb307d9ed32f8)
|
||||
|
||||
running 20 tests
|
||||
test broken_roster_is_not_overwritten ... ok
|
||||
test account_purge_refuses_symlink_store_without_touching_other_files ... ok
|
||||
test inbound_subscription_requires_pending_to_grant_to ... ok
|
||||
test blocklist_enforcement_api ... ok
|
||||
test malformed_legacy_vcard_and_private_bookmarks_rejected ... ok
|
||||
test malformed_roster_iq_never_mutates ... ok
|
||||
test domain_roster_and_block_jid_normalization ... ok
|
||||
test private_and_vcard_authorization ... ok
|
||||
test privacy_migration_only_default_deny_jids ... ok
|
||||
test roster_empty_name_and_foreign_group_ignored ... ok
|
||||
test reads_timestamp_blocklist_and_keeps_metadata ... ok
|
||||
test roster_preserves_subscription_and_metadata ... ok
|
||||
test purge_account_exact_files_preserves_others_and_extras ... ok
|
||||
test subscription_handshake_and_cancel ... ok
|
||||
test legacy_bookmarks_respect_host_limit_and_read_over_256 ... ok
|
||||
test bookmarks_private_pep_bidirectional_and_private ... ok
|
||||
test legacy_migration_clears_source_after_success ... ok
|
||||
test vcard_pep_conversion_and_avatar ... ok
|
||||
test password_change_after_purge_never_recreates_account ... ok
|
||||
test creation_and_purge_are_serialized ... ok
|
||||
|
||||
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.43s
|
||||
|
||||
Running tests/storage_compat.rs (target/debug/deps/storage_compat-1e1d2b48f1bf84f1)
|
||||
|
||||
running 6 tests
|
||||
test empty_namespace_preserved ... ok
|
||||
test stanza_roundtrip ... ok
|
||||
test mixed_binary_roundtrip ... ok
|
||||
test path_and_atomic_update ... ok
|
||||
test rejects_cycles_code_and_bad_files ... ok
|
||||
test concurrent_updates_do_not_lose_entries ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Doc-tests rust_xmpp
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"total_load_wall_seconds": 7.117,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.599,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 54.78,
|
||||
"p95_ms": 73.082,
|
||||
"max_ms": 85.834
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 12.17,
|
||||
"p95_ms": 24.847,
|
||||
"max_ms": 28.831
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 4.239,
|
||||
"metrics_before": {
|
||||
"rss_kib": 6804,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 24808,
|
||||
"cpu_seconds": 1.02,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 25508,
|
||||
"cpu_seconds": 8.02,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 25636,
|
||||
"cpu_seconds": 8.04,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 25636,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,498 @@
|
||||
Compiling rust-xmpp v0.6.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 7.38s
|
||||
Running unittests src/lib.rs (target/debug/deps/rust_xmpp-8e6956f919afb7dd)
|
||||
|
||||
running 24 tests
|
||||
test http_transport::tests::bosh_processing_capacity_is_bounded ... ok
|
||||
test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok
|
||||
test http_transport::tests::independent_framing ... ok
|
||||
test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok
|
||||
test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok
|
||||
test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok
|
||||
test federation::tests::stream_restarts_compare_canonical_domains ... ok
|
||||
test sasl::tests::reject_malformed_and_downgrade ... ok
|
||||
test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok
|
||||
test sessions::tests::acknowledgement_wraps ... ok
|
||||
test sessions::tests::graceful_disconnect_is_not_resumable ... ok
|
||||
test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok
|
||||
test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok
|
||||
test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok
|
||||
test wire::tests::declarations_rejected ... ok
|
||||
test wire::tests::fragmented_and_pipelined ... ok
|
||||
test wire::tests::invalid_namespace_and_declarations_rejected ... ok
|
||||
test sasl::tests::rfc5802_sha1_vector ... ok
|
||||
test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok
|
||||
test sasl::tests::sha256_independent_python_vector ... ok
|
||||
test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok
|
||||
test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok
|
||||
test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok
|
||||
test admin::tests::real_admin_xml_protocol_over_duplex ... ok
|
||||
|
||||
test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/rust_xmpp-3e14cc5e7aa0895f)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/admin_socket.rs (target/debug/deps/admin_socket-8c2b01cbac1302f6)
|
||||
|
||||
running 1 test
|
||||
test prosody_wire_commands_password_prompt_and_safe_errors ... ignored, requires AF_UNIX socket permission; run on target host with --ignored
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-fa7aa68472eca402)
|
||||
|
||||
running 14 tests
|
||||
test archive_larger_than_128mib_streams ... ignored, large-file scalability regression; run explicitly
|
||||
test mam_preferences_persist ... ok
|
||||
test legacy_records_binary_cache_and_roundtrip ... ok
|
||||
test corrupt_archive_reports_server_error_and_namespace_stripping_is_precise ... ok
|
||||
test append_is_incremental_and_recovers_torn_tail ... ok
|
||||
test smart_enable_and_message_selection ... ok
|
||||
test real_archive_sid_and_sender_privacy ... ok
|
||||
test archive_roundtrip_preserves_default_namespace_resets ... ok
|
||||
test muc_archive_filters_stanza_kind_instead_of_sender_jid ... ok
|
||||
test zero_page_dates_and_invalid_forms ... ok
|
||||
test equal_cursors_and_normalized_query_jids ... ok
|
||||
test mam_paging_filters_and_forbidden ... ok
|
||||
test extended_ids_ranges_flip_and_metadata ... ok
|
||||
test namespaces_expiry_and_concurrent_append ... ok
|
||||
|
||||
test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.06s
|
||||
|
||||
Running tests/auth.rs (target/debug/deps/auth-eebaaafbf6ac0386)
|
||||
|
||||
running 2 tests
|
||||
test traversal_and_malicious_account_records_rejected ... ok
|
||||
test create_and_read_hashed_accounts ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.74s
|
||||
|
||||
Running tests/cli.rs (target/debug/deps/cli-21d91f9b255982aa)
|
||||
|
||||
running 2 tests
|
||||
test server_cannot_be_mistaken_for_running_service ... ok
|
||||
test conversion_preserves_source_and_refuses_overwrite ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/config.rs (target/debug/deps/config-91531c799cda7652)
|
||||
|
||||
running 12 tests
|
||||
test include_cycles_rejected ... ok
|
||||
test declarations_and_overrides ... ok
|
||||
test component_can_explicitly_enable_global_modules ... ok
|
||||
test include_has_own_global_scope_and_parent_scope_is_restored ... ok
|
||||
test storage_paths_encode_like_prosody ... ok
|
||||
test tables_cannot_recurse_forever ... ok
|
||||
test runtime_capabilities_are_unavailable ... ok
|
||||
test supplied_configuration_scopes_arithmetic_and_modules ... ok
|
||||
test malformed_values_rejected ... ok
|
||||
test all_formats_round_trip_actual_config ... ok
|
||||
test supplied_config_matches_original_prosody_loader ... ok
|
||||
test loops_are_bounded ... ok
|
||||
|
||||
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/csi.rs (target/debug/deps/csi-69485b32335fb875)
|
||||
|
||||
running 2 tests
|
||||
test bounded_queue_flush_delay_activity_and_grace ... ok
|
||||
test native_importance_rules ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-10dd4e4347920cda)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/data_lock.rs (target/debug/deps/data_lock-ec340cd291ffc214)
|
||||
|
||||
running 2 tests
|
||||
test child_process_probe ... ok
|
||||
test excludes_another_process_and_releases_on_drop ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/debug_legacy.rs (target/debug/deps/debug_legacy-8473fc8f96b99004)
|
||||
|
||||
running 1 test
|
||||
test debug_empty_legacy_bind ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
|
||||
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-3893c914190e6790)
|
||||
|
||||
running 3 tests
|
||||
test native_prosody_tls_external_bidirectional ... ignored, requires native Prosody cafd74b9c5ea and Lua TLS dependencies
|
||||
test mutual_tls_external_delivery_and_certificate_identity_rejection ... ok
|
||||
test reuses_connections_serializes_writes_and_retires_idle_or_closed_peers ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.41s
|
||||
|
||||
Running tests/http_transport.rs (target/debug/deps/http_transport-52d4995a1a8bfae2)
|
||||
|
||||
running 10 tests
|
||||
test configured_origin_is_enforced ... ok
|
||||
test bosh_preserves_namespace_inherited_from_body ... ok
|
||||
test transport_paths_and_cors_preflight_match_prosody ... ok
|
||||
test bosh_session_retries_restart_termination ... ok
|
||||
test bosh_termination_waits_for_graceful_cleanup_before_reconnect ... ok
|
||||
test bosh_reorders_two_requests_without_replaying_stanzas ... ok
|
||||
test websocket_frames_are_independent_xml ... ok
|
||||
test websocket_close_allows_graceful_engine_cleanup ... ok
|
||||
test websocket_disconnect_delivers_eof_without_graceful_close ... ok
|
||||
test bosh_retry_survives_aborted_http_request_without_replaying_stanzas ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
|
||||
|
||||
Running tests/http_upload.rs (target/debug/deps/http_upload-10d3b973882378f6)
|
||||
|
||||
running 5 tests
|
||||
test https_endpoint_uses_real_tls ... ok
|
||||
test percent_escape_case_and_equivalent_url_spelling ... ok
|
||||
test expired_upload_releases_quota ... ok
|
||||
test persisted_prosody_archive_and_hs256_slot_survive_without_sidecar ... ok
|
||||
test upload_authorization_streaming_ranges_and_restart ... ok
|
||||
|
||||
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
|
||||
|
||||
Running tests/message_routing.rs (target/debug/deps/message_routing-633d3d5413f5f3ab)
|
||||
|
||||
running 2 tests
|
||||
test headline_uses_all_nonnegative_available_resources_and_errors_never_fallback ... ok
|
||||
test unknown_resource_falls_back_to_available_bare_jid ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_access.rs (target/debug/deps/muc_access-5acc3b2816c611e4)
|
||||
|
||||
running 3 tests
|
||||
test moderators_cannot_kick_or_demote_other_moderators ... ok
|
||||
test binary_occupant_id_salt_survives_saves_and_restarts ... ok
|
||||
test nested_affiliations_do_not_fall_back_to_obsolete_flat_entries ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_domain_bans.rs (target/debug/deps/muc_domain_bans-5ec5d23a3e219c75)
|
||||
|
||||
running 2 tests
|
||||
test applying_domain_ban_removes_remote_occupants_and_blocks_rejoin ... ok
|
||||
test native_domain_bans_block_remote_users_but_allow_explicit_members ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_flow.rs (target/debug/deps/muc_flow-d851ccc84dafeffd)
|
||||
|
||||
running 18 tests
|
||||
test join_lock_chat_leave ... ok
|
||||
test configured_lock_timeout_expires_without_owner_submission ... ok
|
||||
test multiple_resources_share_nick_and_private_delivery ... ok
|
||||
test iq_response_requires_expected_sender ... ok
|
||||
test authorization_and_conflict ... ok
|
||||
test occupant_id_is_stable_and_spoofed_ids_removed ... ok
|
||||
test nick_invite_destroy_and_local_creation ... ok
|
||||
test persistence_roundtrip ... ok
|
||||
test restored_temporary_room_is_deleted_after_last_disconnect ... ok
|
||||
test switching_to_members_only_removes_unaffiliated_users ... ok
|
||||
test visitor_voice_request_cannot_spoof_identity_or_grant_itself_voice ... ok
|
||||
test persistent_destroy_creates_prosody_tombstone ... ok
|
||||
test preserves_unknown_binary_mixed_room_fields ... ok
|
||||
test room_vcard_owner_only_and_avatar_presence ... ok
|
||||
test reserved_nickname_blocks_other_users ... ok
|
||||
test maintenance_expires_idle_archives_and_tombstones ... ok
|
||||
test native_muc_archive_type_and_anonymity_are_preserved ... ok
|
||||
test archive_history_and_permissions ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-aa6750b2ebee43c8)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pep_discovery.rs (target/debug/deps/pep_discovery-3104ee43a0080af3)
|
||||
|
||||
running 4 tests
|
||||
test standalone_component_does_not_claim_pep_automatic_subscriptions ... ok
|
||||
test account_disco_advertises_pep_without_requiring_a_node ... ok
|
||||
test node_discovery_keeps_node_identity_errors_and_access_checks ... ok
|
||||
test account_discovery_does_not_intercept_server_or_resource_caps ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
|
||||
|
||||
Running tests/preauth.rs (target/debug/deps/preauth-3aa913bdaa6593d6)
|
||||
|
||||
running 10 tests
|
||||
test duplicate_or_wrong_namespace_tokens_do_not_qualify ... ok
|
||||
test unknown_client_token_is_preserved_on_remote_and_pending_delivery ... ok
|
||||
test unknown_tokens_do_not_create_invite_stores_and_disabled_accounts_cannot_issue ... ok
|
||||
test prosody_numeric_expiry_is_consumed_and_other_entries_preserved ... ok
|
||||
test concurrent_redemption_has_exactly_one_winner ... ok
|
||||
test standard_adhoc_command_returns_contact_uri ... ok
|
||||
test identity_scope_does_not_burn_on_wrong_sender_or_leak_to_prosody ... ok
|
||||
test valid_token_autoapproves_and_sends_reciprocal_request ... ok
|
||||
test local_invitation_updates_both_rosters_without_granting_reverse_subscription ... ok
|
||||
test invitations_expire_are_single_use_and_owner_scoped ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-23e5663ef0756bc1)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-a4cb06be28318f35)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_persistence.rs (target/debug/deps/pubsub_persistence-3639e617b2b52513)
|
||||
|
||||
running 18 tests
|
||||
test configure_requires_owner ... ok
|
||||
test modern_bookmarks_notify_legacy_capability ... ok
|
||||
test configurable_limits_component_creation_and_publisher ... ok
|
||||
test native_string_max_items_satisfies_numeric_publish_precondition ... ok
|
||||
test capability_discovery_replays_and_filters_notifications ... ok
|
||||
test open_model_and_notifications ... ok
|
||||
test nonpersistent_items_stay_in_memory_and_can_be_made_persistent ... ok
|
||||
test pep_persists_namespaces_and_enforces_owner ... ok
|
||||
test reads_prosody_legacy_fixture ... ok
|
||||
test publish_options_conflict_is_recoverable_and_preserves_item ... ok
|
||||
test full_jid_block_applies_to_reads_subscription_replays_and_events ... ok
|
||||
test remote_unavailable_is_scoped_to_addressed_owner_and_cancels_pending ... ok
|
||||
test roster_presence_access_and_foreign_subscription_denied ... ok
|
||||
test subscription_options_disable_events_and_require_subscriber ... ok
|
||||
test remote_caps_replay_and_open_node_privacy_revoke ... ok
|
||||
test native_notification_fields_and_retract_policy_are_independent ... ok
|
||||
test payload_policy_applies_to_subscription_and_caps_replays ... ok
|
||||
test component_default_retention_matches_prosody_twenty_items ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-ec027616ed738bd1)
|
||||
|
||||
running 7 tests
|
||||
test native_push_body_lookup_excludes_extensions ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test foreign_account_cannot_register ... ok
|
||||
test push_summary_never_copies_foreign_namespace_body ... ok
|
||||
test queue_coalesces_and_importance_matches_native ... ok
|
||||
test reenable_cancels_old_errors_and_failure_counts_are_per_account ... ok
|
||||
test stable_client_registration_and_targeted_notification ... ok
|
||||
test registrations_notifications_and_authenticated_errors ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-f61d2cf0ed75c5f6)
|
||||
|
||||
running 1 test
|
||||
test real_prosody_storage_and_auth_roundtrip ... ignored, requires native supplied Prosody source; run scripts/prosody_compat/verify.sh
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/resource_sessions.rs (target/debug/deps/resource_sessions-741d9a64d370399a)
|
||||
|
||||
running 7 tests
|
||||
test increment_skips_occupied_suffixes_and_preserves_sessions ... ok
|
||||
test invalid_resume_owner_or_ack_does_not_evict_active_session ... ok
|
||||
test random_conflicts_get_distinct_resources_for_same_owner ... ok
|
||||
test replacement_revokes_hibernating_resume_and_survives_old_cleanup ... ok
|
||||
test kick_new_leaves_existing_session_unchanged ... ok
|
||||
test concurrent_default_binds_replace_atomically ... ok
|
||||
test active_resume_preserves_state_and_replaces_transport_notifier ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/sasl_accounts.rs (target/debug/deps/sasl_accounts-009861adf6f23d85)
|
||||
|
||||
running 1 test
|
||||
test disabled_legacy_and_unicode_accounts ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.62s
|
||||
|
||||
Running tests/storage_accounts.rs (target/debug/deps/storage_accounts-5f102e29d7d67bfc)
|
||||
|
||||
running 20 tests
|
||||
test broken_roster_is_not_overwritten ... ok
|
||||
test account_purge_refuses_symlink_store_without_touching_other_files ... ok
|
||||
test inbound_subscription_requires_pending_to_grant_to ... ok
|
||||
test malformed_legacy_vcard_and_private_bookmarks_rejected ... ok
|
||||
test domain_roster_and_block_jid_normalization ... ok
|
||||
test malformed_roster_iq_never_mutates ... ok
|
||||
test blocklist_enforcement_api ... ok
|
||||
test private_and_vcard_authorization ... ok
|
||||
test privacy_migration_only_default_deny_jids ... ok
|
||||
test reads_timestamp_blocklist_and_keeps_metadata ... ok
|
||||
test roster_empty_name_and_foreign_group_ignored ... ok
|
||||
test roster_preserves_subscription_and_metadata ... ok
|
||||
test purge_account_exact_files_preserves_others_and_extras ... ok
|
||||
test subscription_handshake_and_cancel ... ok
|
||||
test legacy_bookmarks_respect_host_limit_and_read_over_256 ... ok
|
||||
test bookmarks_private_pep_bidirectional_and_private ... ok
|
||||
test legacy_migration_clears_source_after_success ... ok
|
||||
test vcard_pep_conversion_and_avatar ... ok
|
||||
test password_change_after_purge_never_recreates_account ... ok
|
||||
test creation_and_purge_are_serialized ... ok
|
||||
|
||||
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.42s
|
||||
|
||||
Running tests/storage_compat.rs (target/debug/deps/storage_compat-27729d166567a13d)
|
||||
|
||||
running 6 tests
|
||||
test empty_namespace_preserved ... ok
|
||||
test stanza_roundtrip ... ok
|
||||
test mixed_binary_roundtrip ... ok
|
||||
test path_and_atomic_update ... ok
|
||||
test concurrent_updates_do_not_lose_entries ... ok
|
||||
test rejects_cycles_code_and_bad_files ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Doc-tests rust_xmpp
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Checking rust-xmpp v0.6.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.46s
|
||||
Compiling rust-xmpp v0.6.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `release` profile [optimized] target(s) in 21.75s
|
||||
PASS: integrated TCP roster/subscriptions, client IQ routing, CSI buffering/keepalive flush, MAM, blocking, OMEMO PEP, MUC, offline replay and SM resumption
|
||||
PASS: graceful SIGTERM shutdown
|
||||
PASS: independent SCRAM-SHA-1 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: independent SCRAM-SHA-256 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: SASL2 Bind2 TLS flow, inline SM/CSI/Carbons, private random resource, malformed requests, authentication failure and fallback
|
||||
PASS: SASL2 inline SM active/EOF resume, authenticated owner/id/h checks, replay ordering, full JID, Bind2 fallback and malformed requests
|
||||
PASS: TLS account/domain discovery with PEP and push enabled/disabled; real push enable, publish options, per-node and service-wide disable
|
||||
PASS: TLS invitation command discovery, preapproval, single-use mutual roster, replay denial, unknown preauth forwarding/offline pending, account isolation
|
||||
PASS: TLS conflict_resolve=default, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_old, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_new, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=increment, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=random, live and hibernating SM resources
|
||||
PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse, graceful SM close and same-resource relogin under kick_new
|
||||
{
|
||||
"total_load_wall_seconds": 7.117,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.599,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 54.78,
|
||||
"p95_ms": 73.082,
|
||||
"max_ms": 85.834
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 12.17,
|
||||
"p95_ms": 24.847,
|
||||
"max_ms": 28.831
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 4.239,
|
||||
"metrics_before": {
|
||||
"rss_kib": 6804,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 24808,
|
||||
"cpu_seconds": 1.02,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 25508,
|
||||
"cpu_seconds": 8.02,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 25636,
|
||||
"cpu_seconds": 8.04,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 25636,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
Compiling rust-xmpp v0.6.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.49s
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-10dd4e4347920cda)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-aa6750b2ebee43c8)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-23e5663ef0756bc1)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-a4cb06be28318f35)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-ec027616ed738bd1)
|
||||
|
||||
running 1 test
|
||||
test native_push_body_lookup_excludes_extensions ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-f61d2cf0ed75c5f6)
|
||||
|
||||
running 1 test
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-1
|
||||
PROSODY_NATIVE_FINAL_OK SHA-1
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-256
|
||||
PROSODY_NATIVE_FINAL_OK SHA-256
|
||||
test real_prosody_storage_and_auth_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.97s
|
||||
|
||||
Compiling rust-xmpp v0.6.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.15s
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-3893c914190e6790)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_tls_external_bidirectional ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 1.05s
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"total_load_wall_seconds": 6.467,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.617,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 55.521,
|
||||
"p95_ms": 80.465,
|
||||
"max_ms": 104.211
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 12.434,
|
||||
"p95_ms": 21.835,
|
||||
"max_ms": 28.842
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 3.583,
|
||||
"metrics_before": {
|
||||
"rss_kib": 6984,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 24764,
|
||||
"cpu_seconds": 1.15,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 25300,
|
||||
"cpu_seconds": 7.55,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 25364,
|
||||
"cpu_seconds": 7.57,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 25364,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
PASS: reproduced 0.6.0 TLS1.2 Android y,, rejection
|
||||
@@ -0,0 +1,23 @@
|
||||
SERVER LOG:
|
||||
Rust XMPP experimental: localhost; configured listeners started
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "/workspace/scratch/362577cdf2e0/rust-xmpp-next/tests/sasl_web_network.py", line 172, in <module>
|
||||
main()
|
||||
File "/workspace/scratch/362577cdf2e0/rust-xmpp-next/tests/sasl_web_network.py", line 155, in main
|
||||
asyncio.run(exercise(https_port, ssl.create_default_context(cafile=str(cert))))
|
||||
File "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/asyncio/runners.py", line 195, in run
|
||||
return runner.run(main)
|
||||
^^^^^^^^^^^^^^^^
|
||||
File "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/asyncio/runners.py", line 118, in run
|
||||
return self._loop.run_until_complete(task)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/opt/codex/runtimes/codex-primary-runtime/dependencies/python/lib/python3.12/asyncio/base_events.py", line 691, in run_until_complete
|
||||
return future.result()
|
||||
^^^^^^^^^^^^^^^
|
||||
File "/workspace/scratch/362577cdf2e0/rust-xmpp-next/tests/sasl_web_network.py", line 118, in exercise
|
||||
await authenticate(ws, sasl2)
|
||||
File "/workspace/scratch/362577cdf2e0/rust-xmpp-next/tests/sasl_web_network.py", line 82, in authenticate
|
||||
assert attrs.get('h') == expected_ssdp, (attrs.get('h'), expected_ssdp)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
AssertionError: ('UzQajgapjuoNRETKCNV1g1zapAbBiaY9mIhExQJWVpQ=', 'Rgy1OtqF8B/re2ip4rVzs2herVHnECfKbsLqKQgUMgo=')
|
||||
@@ -0,0 +1,518 @@
|
||||
Compiling rust-xmpp v0.6.1 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 6.46s
|
||||
Running unittests src/lib.rs (target/debug/deps/rust_xmpp-0d50b3846665d98d)
|
||||
|
||||
running 24 tests
|
||||
test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok
|
||||
test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok
|
||||
test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok
|
||||
test federation::tests::stream_restarts_compare_canonical_domains ... ok
|
||||
test http_transport::tests::bosh_processing_capacity_is_bounded ... ok
|
||||
test http_transport::tests::independent_framing ... ok
|
||||
test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok
|
||||
test sasl::tests::reject_malformed_and_downgrade ... ok
|
||||
test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok
|
||||
test sessions::tests::acknowledgement_wraps ... ok
|
||||
test sessions::tests::graceful_disconnect_is_not_resumable ... ok
|
||||
test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok
|
||||
test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok
|
||||
test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok
|
||||
test wire::tests::declarations_rejected ... ok
|
||||
test wire::tests::fragmented_and_pipelined ... ok
|
||||
test wire::tests::invalid_namespace_and_declarations_rejected ... ok
|
||||
test sasl::tests::rfc5802_sha1_vector ... ok
|
||||
test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok
|
||||
test sasl::tests::sha256_independent_python_vector ... ok
|
||||
test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok
|
||||
test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok
|
||||
test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok
|
||||
test admin::tests::real_admin_xml_protocol_over_duplex ... ok
|
||||
|
||||
test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/rust_xmpp-8259f7125d6ef3c7)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/admin_socket.rs (target/debug/deps/admin_socket-d604f5168a5bd15e)
|
||||
|
||||
running 1 test
|
||||
test prosody_wire_commands_password_prompt_and_safe_errors ... ignored, requires AF_UNIX socket permission; run on target host with --ignored
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-3e1178e10bc00cb9)
|
||||
|
||||
running 14 tests
|
||||
test archive_larger_than_128mib_streams ... ignored, large-file scalability regression; run explicitly
|
||||
test mam_preferences_persist ... ok
|
||||
test append_is_incremental_and_recovers_torn_tail ... ok
|
||||
test corrupt_archive_reports_server_error_and_namespace_stripping_is_precise ... ok
|
||||
test legacy_records_binary_cache_and_roundtrip ... ok
|
||||
test archive_roundtrip_preserves_default_namespace_resets ... ok
|
||||
test smart_enable_and_message_selection ... ok
|
||||
test equal_cursors_and_normalized_query_jids ... ok
|
||||
test real_archive_sid_and_sender_privacy ... ok
|
||||
test zero_page_dates_and_invalid_forms ... ok
|
||||
test muc_archive_filters_stanza_kind_instead_of_sender_jid ... ok
|
||||
test mam_paging_filters_and_forbidden ... ok
|
||||
test extended_ids_ranges_flip_and_metadata ... ok
|
||||
test namespaces_expiry_and_concurrent_append ... ok
|
||||
|
||||
test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.04s
|
||||
|
||||
Running tests/auth.rs (target/debug/deps/auth-793ffbaabad50035)
|
||||
|
||||
running 2 tests
|
||||
test traversal_and_malicious_account_records_rejected ... ok
|
||||
test create_and_read_hashed_accounts ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.84s
|
||||
|
||||
Running tests/cli.rs (target/debug/deps/cli-873bc4e47b8a4c2f)
|
||||
|
||||
running 2 tests
|
||||
test server_cannot_be_mistaken_for_running_service ... ok
|
||||
test conversion_preserves_source_and_refuses_overwrite ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/config.rs (target/debug/deps/config-c02c199093267002)
|
||||
|
||||
running 12 tests
|
||||
test include_cycles_rejected ... ok
|
||||
test include_has_own_global_scope_and_parent_scope_is_restored ... ok
|
||||
test component_can_explicitly_enable_global_modules ... ok
|
||||
test declarations_and_overrides ... ok
|
||||
test storage_paths_encode_like_prosody ... ok
|
||||
test tables_cannot_recurse_forever ... ok
|
||||
test supplied_configuration_scopes_arithmetic_and_modules ... ok
|
||||
test runtime_capabilities_are_unavailable ... ok
|
||||
test supplied_config_matches_original_prosody_loader ... ok
|
||||
test malformed_values_rejected ... ok
|
||||
test all_formats_round_trip_actual_config ... ok
|
||||
test loops_are_bounded ... ok
|
||||
|
||||
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/csi.rs (target/debug/deps/csi-1437a4fce5b30727)
|
||||
|
||||
running 2 tests
|
||||
test bounded_queue_flush_delay_activity_and_grace ... ok
|
||||
test native_importance_rules ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-eefc40693c54ec61)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/data_lock.rs (target/debug/deps/data_lock-a22a1a0222784e58)
|
||||
|
||||
running 2 tests
|
||||
test child_process_probe ... ok
|
||||
test excludes_another_process_and_releases_on_drop ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/debug_legacy.rs (target/debug/deps/debug_legacy-b301f540f3b4b403)
|
||||
|
||||
running 1 test
|
||||
test debug_empty_legacy_bind ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
|
||||
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-9cdad036fb137095)
|
||||
|
||||
running 3 tests
|
||||
test native_prosody_tls_external_bidirectional ... ignored, requires native Prosody cafd74b9c5ea and Lua TLS dependencies
|
||||
test mutual_tls_external_delivery_and_certificate_identity_rejection ... ok
|
||||
test reuses_connections_serializes_writes_and_retires_idle_or_closed_peers ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.85s
|
||||
|
||||
Running tests/http_transport.rs (target/debug/deps/http_transport-b487f7015d7f989c)
|
||||
|
||||
running 10 tests
|
||||
test configured_origin_is_enforced ... ok
|
||||
test bosh_preserves_namespace_inherited_from_body ... ok
|
||||
test transport_paths_and_cors_preflight_match_prosody ... ok
|
||||
test bosh_session_retries_restart_termination ... ok
|
||||
test bosh_termination_waits_for_graceful_cleanup_before_reconnect ... ok
|
||||
test bosh_reorders_two_requests_without_replaying_stanzas ... ok
|
||||
test websocket_frames_are_independent_xml ... ok
|
||||
test websocket_disconnect_delivers_eof_without_graceful_close ... ok
|
||||
test websocket_close_allows_graceful_engine_cleanup ... ok
|
||||
test bosh_retry_survives_aborted_http_request_without_replaying_stanzas ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
|
||||
|
||||
Running tests/http_upload.rs (target/debug/deps/http_upload-455ac757029487d1)
|
||||
|
||||
running 5 tests
|
||||
test https_endpoint_uses_real_tls ... ok
|
||||
test percent_escape_case_and_equivalent_url_spelling ... ok
|
||||
test persisted_prosody_archive_and_hs256_slot_survive_without_sidecar ... ok
|
||||
test expired_upload_releases_quota ... ok
|
||||
test upload_authorization_streaming_ranges_and_restart ... ok
|
||||
|
||||
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
|
||||
|
||||
Running tests/message_routing.rs (target/debug/deps/message_routing-2f6634bf8501e870)
|
||||
|
||||
running 2 tests
|
||||
test unknown_resource_falls_back_to_available_bare_jid ... ok
|
||||
test headline_uses_all_nonnegative_available_resources_and_errors_never_fallback ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_access.rs (target/debug/deps/muc_access-68237955d6a9d6c6)
|
||||
|
||||
running 3 tests
|
||||
test moderators_cannot_kick_or_demote_other_moderators ... ok
|
||||
test nested_affiliations_do_not_fall_back_to_obsolete_flat_entries ... ok
|
||||
test binary_occupant_id_salt_survives_saves_and_restarts ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_domain_bans.rs (target/debug/deps/muc_domain_bans-19bc3fcc28c85e9a)
|
||||
|
||||
running 2 tests
|
||||
test applying_domain_ban_removes_remote_occupants_and_blocks_rejoin ... ok
|
||||
test native_domain_bans_block_remote_users_but_allow_explicit_members ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_flow.rs (target/debug/deps/muc_flow-75175b044a10141c)
|
||||
|
||||
running 18 tests
|
||||
test configured_lock_timeout_expires_without_owner_submission ... ok
|
||||
test authorization_and_conflict ... ok
|
||||
test iq_response_requires_expected_sender ... ok
|
||||
test join_lock_chat_leave ... ok
|
||||
test multiple_resources_share_nick_and_private_delivery ... ok
|
||||
test nick_invite_destroy_and_local_creation ... ok
|
||||
test occupant_id_is_stable_and_spoofed_ids_removed ... ok
|
||||
test restored_temporary_room_is_deleted_after_last_disconnect ... ok
|
||||
test persistence_roundtrip ... ok
|
||||
test switching_to_members_only_removes_unaffiliated_users ... ok
|
||||
test visitor_voice_request_cannot_spoof_identity_or_grant_itself_voice ... ok
|
||||
test preserves_unknown_binary_mixed_room_fields ... ok
|
||||
test persistent_destroy_creates_prosody_tombstone ... ok
|
||||
test room_vcard_owner_only_and_avatar_presence ... ok
|
||||
test reserved_nickname_blocks_other_users ... ok
|
||||
test archive_history_and_permissions ... ok
|
||||
test maintenance_expires_idle_archives_and_tombstones ... ok
|
||||
test native_muc_archive_type_and_anonymity_are_preserved ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-dd2a34b938a462e6)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pep_discovery.rs (target/debug/deps/pep_discovery-20c6d4b031101804)
|
||||
|
||||
running 4 tests
|
||||
test standalone_component_does_not_claim_pep_automatic_subscriptions ... ok
|
||||
test account_discovery_does_not_intercept_server_or_resource_caps ... ok
|
||||
test node_discovery_keeps_node_identity_errors_and_access_checks ... ok
|
||||
test account_disco_advertises_pep_without_requiring_a_node ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
|
||||
|
||||
Running tests/preauth.rs (target/debug/deps/preauth-1adba20c5e7bdc71)
|
||||
|
||||
running 10 tests
|
||||
test duplicate_or_wrong_namespace_tokens_do_not_qualify ... ok
|
||||
test unknown_tokens_do_not_create_invite_stores_and_disabled_accounts_cannot_issue ... ok
|
||||
test standard_adhoc_command_returns_contact_uri ... ok
|
||||
test prosody_numeric_expiry_is_consumed_and_other_entries_preserved ... ok
|
||||
test unknown_client_token_is_preserved_on_remote_and_pending_delivery ... ok
|
||||
test concurrent_redemption_has_exactly_one_winner ... ok
|
||||
test identity_scope_does_not_burn_on_wrong_sender_or_leak_to_prosody ... ok
|
||||
test invitations_expire_are_single_use_and_owner_scoped ... ok
|
||||
test valid_token_autoapproves_and_sends_reciprocal_request ... ok
|
||||
test local_invitation_updates_both_rosters_without_granting_reverse_subscription ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-6cf664c184a325ba)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-fe86a689c0fe3e49)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_persistence.rs (target/debug/deps/pubsub_persistence-2d16475df2cbcbf9)
|
||||
|
||||
running 18 tests
|
||||
test modern_bookmarks_notify_legacy_capability ... ok
|
||||
test native_string_max_items_satisfies_numeric_publish_precondition ... ok
|
||||
test configurable_limits_component_creation_and_publisher ... ok
|
||||
test capability_discovery_replays_and_filters_notifications ... ok
|
||||
test nonpersistent_items_stay_in_memory_and_can_be_made_persistent ... ok
|
||||
test configure_requires_owner ... ok
|
||||
test open_model_and_notifications ... ok
|
||||
test publish_options_conflict_is_recoverable_and_preserves_item ... ok
|
||||
test reads_prosody_legacy_fixture ... ok
|
||||
test full_jid_block_applies_to_reads_subscription_replays_and_events ... ok
|
||||
test pep_persists_namespaces_and_enforces_owner ... ok
|
||||
test roster_presence_access_and_foreign_subscription_denied ... ok
|
||||
test remote_unavailable_is_scoped_to_addressed_owner_and_cancels_pending ... ok
|
||||
test remote_caps_replay_and_open_node_privacy_revoke ... ok
|
||||
test subscription_options_disable_events_and_require_subscriber ... ok
|
||||
test payload_policy_applies_to_subscription_and_caps_replays ... ok
|
||||
test native_notification_fields_and_retract_policy_are_independent ... ok
|
||||
test component_default_retention_matches_prosody_twenty_items ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-4696fd1434eda878)
|
||||
|
||||
running 7 tests
|
||||
test native_push_body_lookup_excludes_extensions ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test foreign_account_cannot_register ... ok
|
||||
test push_summary_never_copies_foreign_namespace_body ... ok
|
||||
test queue_coalesces_and_importance_matches_native ... ok
|
||||
test reenable_cancels_old_errors_and_failure_counts_are_per_account ... ok
|
||||
test stable_client_registration_and_targeted_notification ... ok
|
||||
test registrations_notifications_and_authenticated_errors ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-819c2ec87bfa7698)
|
||||
|
||||
running 1 test
|
||||
test real_prosody_storage_and_auth_roundtrip ... ignored, requires native supplied Prosody source; run scripts/prosody_compat/verify.sh
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/resource_sessions.rs (target/debug/deps/resource_sessions-307ed03439280c4e)
|
||||
|
||||
running 7 tests
|
||||
test increment_skips_occupied_suffixes_and_preserves_sessions ... ok
|
||||
test kick_new_leaves_existing_session_unchanged ... ok
|
||||
test invalid_resume_owner_or_ack_does_not_evict_active_session ... ok
|
||||
test replacement_revokes_hibernating_resume_and_survives_old_cleanup ... ok
|
||||
test random_conflicts_get_distinct_resources_for_same_owner ... ok
|
||||
test concurrent_default_binds_replace_atomically ... ok
|
||||
test active_resume_preserves_state_and_replaces_transport_notifier ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/sasl_accounts.rs (target/debug/deps/sasl_accounts-977514f680e30a4e)
|
||||
|
||||
running 1 test
|
||||
test disabled_legacy_and_unicode_accounts ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.63s
|
||||
|
||||
Running tests/storage_accounts.rs (target/debug/deps/storage_accounts-b74657400e2100a6)
|
||||
|
||||
running 20 tests
|
||||
test broken_roster_is_not_overwritten ... ok
|
||||
test inbound_subscription_requires_pending_to_grant_to ... ok
|
||||
test account_purge_refuses_symlink_store_without_touching_other_files ... ok
|
||||
test blocklist_enforcement_api ... ok
|
||||
test malformed_legacy_vcard_and_private_bookmarks_rejected ... ok
|
||||
test malformed_roster_iq_never_mutates ... ok
|
||||
test domain_roster_and_block_jid_normalization ... ok
|
||||
test private_and_vcard_authorization ... ok
|
||||
test privacy_migration_only_default_deny_jids ... ok
|
||||
test reads_timestamp_blocklist_and_keeps_metadata ... ok
|
||||
test purge_account_exact_files_preserves_others_and_extras ... ok
|
||||
test roster_empty_name_and_foreign_group_ignored ... ok
|
||||
test roster_preserves_subscription_and_metadata ... ok
|
||||
test subscription_handshake_and_cancel ... ok
|
||||
test bookmarks_private_pep_bidirectional_and_private ... ok
|
||||
test legacy_bookmarks_respect_host_limit_and_read_over_256 ... ok
|
||||
test password_change_after_purge_never_recreates_account ... ok
|
||||
test legacy_migration_clears_source_after_success ... ok
|
||||
test vcard_pep_conversion_and_avatar ... ok
|
||||
test creation_and_purge_are_serialized ... ok
|
||||
|
||||
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.40s
|
||||
|
||||
Running tests/storage_compat.rs (target/debug/deps/storage_compat-954181747a0c2595)
|
||||
|
||||
running 6 tests
|
||||
test empty_namespace_preserved ... ok
|
||||
test stanza_roundtrip ... ok
|
||||
test mixed_binary_roundtrip ... ok
|
||||
test path_and_atomic_update ... ok
|
||||
test rejects_cycles_code_and_bad_files ... ok
|
||||
test concurrent_updates_do_not_lose_entries ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/tls_binding.rs (target/debug/deps/tls_binding-a4012b293cfa1d84)
|
||||
|
||||
running 4 tests
|
||||
test unknown_and_eddsa_algorithms_fail_closed ... ok
|
||||
test malformed_der_and_pss_parameters_fail_closed ... ok
|
||||
test ecdsa_uses_certificate_signature_hash ... ok
|
||||
test rsa_signature_digest_and_weak_hash_upgrade ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s
|
||||
|
||||
Running tests/tls_plus_network.rs (target/debug/deps/tls_plus_network-4fd51f9ace6103de)
|
||||
|
||||
running 2 tests
|
||||
test disabling_plus_hides_bindings_and_accepts_scram_y_with_mechanisms_only_ssdp ... ok
|
||||
test starttls_scram_plus_binds_real_tls_and_authenticates_ssdp_sasl1_and_sasl2 ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.55s
|
||||
|
||||
Doc-tests rust_xmpp
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Checking rust-xmpp v0.6.1 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.80s
|
||||
Compiling rust-xmpp v0.6.1 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `release` profile [optimized] target(s) in 23.08s
|
||||
PASS: integrated TCP roster/subscriptions, client IQ routing, CSI buffering/keepalive flush, MAM, blocking, OMEMO PEP, MUC, offline replay and SM resumption
|
||||
PASS: graceful SIGTERM shutdown
|
||||
PASS: independent SCRAM-SHA-1 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: independent SCRAM-SHA-256 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: Android TLS1.2 selector, TLS1.2/1.3 SCRAM SHA1/256 PLUS, SASL1/2, SSDP on/off and invalid binding rejection
|
||||
PASS: WSS SCRAM-SHA-256 SASL1/SASL2 with GS2 y, absent CB/PLUS, SSDP without CB separator, server signatures, bind and ping
|
||||
PASS: SASL2 Bind2 TLS flow, inline SM/CSI/Carbons, private random resource, malformed requests, authentication failure and fallback
|
||||
PASS: SASL2 inline SM active/EOF resume, authenticated owner/id/h checks, replay ordering, full JID, Bind2 fallback and malformed requests
|
||||
PASS: TLS account/domain discovery with PEP and push enabled/disabled; real push enable, publish options, per-node and service-wide disable
|
||||
PASS: TLS invitation command discovery, preapproval, single-use mutual roster, replay denial, unknown preauth forwarding/offline pending, account isolation
|
||||
PASS: TLS conflict_resolve=default, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_old, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_new, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=increment, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=random, live and hibernating SM resources
|
||||
PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse, graceful SM close and same-resource relogin under kick_new
|
||||
{
|
||||
"total_load_wall_seconds": 6.467,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.617,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 55.521,
|
||||
"p95_ms": 80.465,
|
||||
"max_ms": 104.211
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 12.434,
|
||||
"p95_ms": 21.835,
|
||||
"max_ms": 28.842
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 3.583,
|
||||
"metrics_before": {
|
||||
"rss_kib": 6984,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 24764,
|
||||
"cpu_seconds": 1.15,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 25300,
|
||||
"cpu_seconds": 7.55,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 25364,
|
||||
"cpu_seconds": 7.57,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 25364,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
Compiling rust-xmpp v0.6.1 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.46s
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-eefc40693c54ec61)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-dd2a34b938a462e6)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-6cf664c184a325ba)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-fe86a689c0fe3e49)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-4696fd1434eda878)
|
||||
|
||||
running 1 test
|
||||
test native_push_body_lookup_excludes_extensions ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-819c2ec87bfa7698)
|
||||
|
||||
running 1 test
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-1
|
||||
PROSODY_NATIVE_FINAL_OK SHA-1
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-256
|
||||
PROSODY_NATIVE_FINAL_OK SHA-256
|
||||
test real_prosody_storage_and_auth_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.04s
|
||||
|
||||
Compiling rust-xmpp v0.6.1 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 1.98s
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-9cdad036fb137095)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_tls_external_bidirectional ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 1.07s
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"total_load_wall_seconds": 7.064,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.696,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 66.672,
|
||||
"p95_ms": 83.122,
|
||||
"max_ms": 91.585
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 14.572,
|
||||
"p95_ms": 23.767,
|
||||
"max_ms": 26.397
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 4.058,
|
||||
"metrics_before": {
|
||||
"rss_kib": 7508,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 25632,
|
||||
"cpu_seconds": 1.22,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 26264,
|
||||
"cpu_seconds": 7.95,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 26328,
|
||||
"cpu_seconds": 7.98,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 26328,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,535 @@
|
||||
Compiling rust-xmpp v0.7.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 19.66s
|
||||
Running unittests src/lib.rs (target/debug/deps/rust_xmpp-94408acd7a0ac611)
|
||||
|
||||
running 24 tests
|
||||
test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok
|
||||
test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok
|
||||
test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok
|
||||
test http_transport::tests::independent_framing ... ok
|
||||
test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok
|
||||
test federation::tests::stream_restarts_compare_canonical_domains ... ok
|
||||
test http_transport::tests::bosh_processing_capacity_is_bounded ... ok
|
||||
test sasl::tests::reject_malformed_and_downgrade ... ok
|
||||
test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok
|
||||
test sessions::tests::acknowledgement_wraps ... ok
|
||||
test sessions::tests::graceful_disconnect_is_not_resumable ... ok
|
||||
test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok
|
||||
test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok
|
||||
test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok
|
||||
test wire::tests::declarations_rejected ... ok
|
||||
test wire::tests::fragmented_and_pipelined ... ok
|
||||
test wire::tests::invalid_namespace_and_declarations_rejected ... ok
|
||||
test sasl::tests::rfc5802_sha1_vector ... ok
|
||||
test sasl::tests::sha256_independent_python_vector ... ok
|
||||
test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok
|
||||
test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok
|
||||
test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok
|
||||
test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok
|
||||
test admin::tests::real_admin_xml_protocol_over_duplex ... ok
|
||||
|
||||
test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.62s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/rust_xmpp-5eaae65862e46c47)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/admin_socket.rs (target/debug/deps/admin_socket-1c75663c5ae506f4)
|
||||
|
||||
running 1 test
|
||||
test prosody_wire_commands_password_prompt_and_safe_errors ... ignored, requires AF_UNIX socket permission; run on target host with --ignored
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-035bbe3cb222446b)
|
||||
|
||||
running 14 tests
|
||||
test archive_larger_than_128mib_streams ... ignored, large-file scalability regression; run explicitly
|
||||
test corrupt_archive_reports_server_error_and_namespace_stripping_is_precise ... ok
|
||||
test append_is_incremental_and_recovers_torn_tail ... ok
|
||||
test mam_preferences_persist ... ok
|
||||
test legacy_records_binary_cache_and_roundtrip ... ok
|
||||
test archive_roundtrip_preserves_default_namespace_resets ... ok
|
||||
test equal_cursors_and_normalized_query_jids ... ok
|
||||
test mam_paging_filters_and_forbidden ... ok
|
||||
test real_archive_sid_and_sender_privacy ... ok
|
||||
test muc_archive_filters_stanza_kind_instead_of_sender_jid ... ok
|
||||
test zero_page_dates_and_invalid_forms ... ok
|
||||
test smart_enable_and_message_selection ... ok
|
||||
test extended_ids_ranges_flip_and_metadata ... ok
|
||||
test namespaces_expiry_and_concurrent_append ... ok
|
||||
|
||||
test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/auth.rs (target/debug/deps/auth-07519da82829159b)
|
||||
|
||||
running 3 tests
|
||||
test traversal_and_malicious_account_records_rejected ... ok
|
||||
test create_and_read_hashed_accounts ... ok
|
||||
test authentication_prepares_names_without_relaxing_account_management ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.14s
|
||||
|
||||
Running tests/cli.rs (target/debug/deps/cli-940750580900fbea)
|
||||
|
||||
running 2 tests
|
||||
test server_cannot_be_mistaken_for_running_service ... ok
|
||||
test conversion_preserves_source_and_refuses_overwrite ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/config.rs (target/debug/deps/config-82b0e76391ea092f)
|
||||
|
||||
running 12 tests
|
||||
test component_can_explicitly_enable_global_modules ... ok
|
||||
test declarations_and_overrides ... ok
|
||||
test storage_paths_encode_like_prosody ... ok
|
||||
test include_cycles_rejected ... ok
|
||||
test include_has_own_global_scope_and_parent_scope_is_restored ... ok
|
||||
test supplied_configuration_scopes_arithmetic_and_modules ... ok
|
||||
test tables_cannot_recurse_forever ... ok
|
||||
test runtime_capabilities_are_unavailable ... ok
|
||||
test malformed_values_rejected ... ok
|
||||
test supplied_config_matches_original_prosody_loader ... ok
|
||||
test all_formats_round_trip_actual_config ... ok
|
||||
test loops_are_bounded ... ok
|
||||
|
||||
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/csi.rs (target/debug/deps/csi-dd5889487f938bdb)
|
||||
|
||||
running 2 tests
|
||||
test bounded_queue_flush_delay_activity_and_grace ... ok
|
||||
test native_importance_rules ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-3f1ca0e0fdaf0c90)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/data_lock.rs (target/debug/deps/data_lock-66fa553d6f7053c7)
|
||||
|
||||
running 2 tests
|
||||
test child_process_probe ... ok
|
||||
test excludes_another_process_and_releases_on_drop ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/debug_legacy.rs (target/debug/deps/debug_legacy-d8e65d6e85abde37)
|
||||
|
||||
running 1 test
|
||||
test debug_empty_legacy_bind ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
|
||||
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-5961140cd6f418c0)
|
||||
|
||||
running 3 tests
|
||||
test native_prosody_tls_external_bidirectional ... ignored, requires native Prosody cafd74b9c5ea and Lua TLS dependencies
|
||||
test mutual_tls_external_delivery_and_certificate_identity_rejection ... ok
|
||||
test reuses_connections_serializes_writes_and_retires_idle_or_closed_peers ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.48s
|
||||
|
||||
Running tests/http_transport.rs (target/debug/deps/http_transport-3aa1f7eba52556d6)
|
||||
|
||||
running 10 tests
|
||||
test configured_origin_is_enforced ... ok
|
||||
test bosh_preserves_namespace_inherited_from_body ... ok
|
||||
test transport_paths_and_cors_preflight_match_prosody ... ok
|
||||
test bosh_session_retries_restart_termination ... ok
|
||||
test bosh_termination_waits_for_graceful_cleanup_before_reconnect ... ok
|
||||
test bosh_reorders_two_requests_without_replaying_stanzas ... ok
|
||||
test websocket_frames_are_independent_xml ... ok
|
||||
test websocket_disconnect_delivers_eof_without_graceful_close ... ok
|
||||
test websocket_close_allows_graceful_engine_cleanup ... ok
|
||||
test bosh_retry_survives_aborted_http_request_without_replaying_stanzas ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
|
||||
|
||||
Running tests/http_upload.rs (target/debug/deps/http_upload-a48ab84ef35b8806)
|
||||
|
||||
running 5 tests
|
||||
test https_endpoint_uses_real_tls ... ok
|
||||
test percent_escape_case_and_equivalent_url_spelling ... ok
|
||||
test persisted_prosody_archive_and_hs256_slot_survive_without_sidecar ... ok
|
||||
test expired_upload_releases_quota ... ok
|
||||
test upload_authorization_streaming_ranges_and_restart ... ok
|
||||
|
||||
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/logging.rs (target/debug/deps/logging-47d7193857972196)
|
||||
|
||||
running 8 tests
|
||||
test rejects_malformed_configuration ... ok
|
||||
test filters_appends_escapes_and_redacts ... ok
|
||||
test reopen_rotated_files_updates_clones ... ok
|
||||
test explicit_sink_levels_select_exactly_and_deduplicate ... ok
|
||||
test failed_reopen_keeps_all_original_handles ... ok
|
||||
test native_console_shorthands_are_accepted ... ok
|
||||
test json_records_and_bounded_ranges ... ok
|
||||
test cloned_loggers_serialize_records ... ok
|
||||
|
||||
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/message_routing.rs (target/debug/deps/message_routing-f9d46600407b3493)
|
||||
|
||||
running 2 tests
|
||||
test unknown_resource_falls_back_to_available_bare_jid ... ok
|
||||
test headline_uses_all_nonnegative_available_resources_and_errors_never_fallback ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_access.rs (target/debug/deps/muc_access-1eb80572b618c9db)
|
||||
|
||||
running 3 tests
|
||||
test moderators_cannot_kick_or_demote_other_moderators ... ok
|
||||
test nested_affiliations_do_not_fall_back_to_obsolete_flat_entries ... ok
|
||||
test binary_occupant_id_salt_survives_saves_and_restarts ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_domain_bans.rs (target/debug/deps/muc_domain_bans-8e86b3b767458721)
|
||||
|
||||
running 2 tests
|
||||
test applying_domain_ban_removes_remote_occupants_and_blocks_rejoin ... ok
|
||||
test native_domain_bans_block_remote_users_but_allow_explicit_members ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_flow.rs (target/debug/deps/muc_flow-d860f607a708653f)
|
||||
|
||||
running 18 tests
|
||||
test iq_response_requires_expected_sender ... ok
|
||||
test configured_lock_timeout_expires_without_owner_submission ... ok
|
||||
test join_lock_chat_leave ... ok
|
||||
test multiple_resources_share_nick_and_private_delivery ... ok
|
||||
test authorization_and_conflict ... ok
|
||||
test occupant_id_is_stable_and_spoofed_ids_removed ... ok
|
||||
test nick_invite_destroy_and_local_creation ... ok
|
||||
test restored_temporary_room_is_deleted_after_last_disconnect ... ok
|
||||
test persistence_roundtrip ... ok
|
||||
test preserves_unknown_binary_mixed_room_fields ... ok
|
||||
test switching_to_members_only_removes_unaffiliated_users ... ok
|
||||
test visitor_voice_request_cannot_spoof_identity_or_grant_itself_voice ... ok
|
||||
test room_vcard_owner_only_and_avatar_presence ... ok
|
||||
test persistent_destroy_creates_prosody_tombstone ... ok
|
||||
test reserved_nickname_blocks_other_users ... ok
|
||||
test archive_history_and_permissions ... ok
|
||||
test maintenance_expires_idle_archives_and_tombstones ... ok
|
||||
test native_muc_archive_type_and_anonymity_are_preserved ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-11459f1318ad17b6)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pep_discovery.rs (target/debug/deps/pep_discovery-cd58b8684a06459f)
|
||||
|
||||
running 4 tests
|
||||
test standalone_component_does_not_claim_pep_automatic_subscriptions ... ok
|
||||
test account_disco_advertises_pep_without_requiring_a_node ... ok
|
||||
test account_discovery_does_not_intercept_server_or_resource_caps ... ok
|
||||
test node_discovery_keeps_node_identity_errors_and_access_checks ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
|
||||
|
||||
Running tests/preauth.rs (target/debug/deps/preauth-8c162eaae149f65c)
|
||||
|
||||
running 10 tests
|
||||
test duplicate_or_wrong_namespace_tokens_do_not_qualify ... ok
|
||||
test unknown_tokens_do_not_create_invite_stores_and_disabled_accounts_cannot_issue ... ok
|
||||
test standard_adhoc_command_returns_contact_uri ... ok
|
||||
test prosody_numeric_expiry_is_consumed_and_other_entries_preserved ... ok
|
||||
test concurrent_redemption_has_exactly_one_winner ... ok
|
||||
test identity_scope_does_not_burn_on_wrong_sender_or_leak_to_prosody ... ok
|
||||
test unknown_client_token_is_preserved_on_remote_and_pending_delivery ... ok
|
||||
test invitations_expire_are_single_use_and_owner_scoped ... ok
|
||||
test valid_token_autoapproves_and_sends_reciprocal_request ... ok
|
||||
test local_invitation_updates_both_rosters_without_granting_reverse_subscription ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-2d454afd474bb9c6)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-5344fbb8f3e05c43)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_persistence.rs (target/debug/deps/pubsub_persistence-b3edae88ed37aae5)
|
||||
|
||||
running 18 tests
|
||||
test modern_bookmarks_notify_legacy_capability ... ok
|
||||
test native_string_max_items_satisfies_numeric_publish_precondition ... ok
|
||||
test configure_requires_owner ... ok
|
||||
test configurable_limits_component_creation_and_publisher ... ok
|
||||
test capability_discovery_replays_and_filters_notifications ... ok
|
||||
test nonpersistent_items_stay_in_memory_and_can_be_made_persistent ... ok
|
||||
test pep_persists_namespaces_and_enforces_owner ... ok
|
||||
test open_model_and_notifications ... ok
|
||||
test full_jid_block_applies_to_reads_subscription_replays_and_events ... ok
|
||||
test reads_prosody_legacy_fixture ... ok
|
||||
test publish_options_conflict_is_recoverable_and_preserves_item ... ok
|
||||
test roster_presence_access_and_foreign_subscription_denied ... ok
|
||||
test remote_unavailable_is_scoped_to_addressed_owner_and_cancels_pending ... ok
|
||||
test remote_caps_replay_and_open_node_privacy_revoke ... ok
|
||||
test subscription_options_disable_events_and_require_subscriber ... ok
|
||||
test native_notification_fields_and_retract_policy_are_independent ... ok
|
||||
test payload_policy_applies_to_subscription_and_caps_replays ... ok
|
||||
test component_default_retention_matches_prosody_twenty_items ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-f4ff9c794e3ba53f)
|
||||
|
||||
running 7 tests
|
||||
test native_push_body_lookup_excludes_extensions ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test foreign_account_cannot_register ... ok
|
||||
test queue_coalesces_and_importance_matches_native ... ok
|
||||
test push_summary_never_copies_foreign_namespace_body ... ok
|
||||
test stable_client_registration_and_targeted_notification ... ok
|
||||
test reenable_cancels_old_errors_and_failure_counts_are_per_account ... ok
|
||||
test registrations_notifications_and_authenticated_errors ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-496913b1642f9356)
|
||||
|
||||
running 1 test
|
||||
test real_prosody_storage_and_auth_roundtrip ... ignored, requires native supplied Prosody source; run scripts/prosody_compat/verify.sh
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/resource_sessions.rs (target/debug/deps/resource_sessions-17de9192f8a764f2)
|
||||
|
||||
running 7 tests
|
||||
test increment_skips_occupied_suffixes_and_preserves_sessions ... ok
|
||||
test invalid_resume_owner_or_ack_does_not_evict_active_session ... ok
|
||||
test kick_new_leaves_existing_session_unchanged ... ok
|
||||
test replacement_revokes_hibernating_resume_and_survives_old_cleanup ... ok
|
||||
test random_conflicts_get_distinct_resources_for_same_owner ... ok
|
||||
test concurrent_default_binds_replace_atomically ... ok
|
||||
test active_resume_preserves_state_and_replaces_transport_notifier ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/sasl_accounts.rs (target/debug/deps/sasl_accounts-32232f5f8fb067d5)
|
||||
|
||||
running 1 test
|
||||
test disabled_legacy_and_unicode_accounts ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s
|
||||
|
||||
Running tests/storage_accounts.rs (target/debug/deps/storage_accounts-5f62739bd7c74ebb)
|
||||
|
||||
running 20 tests
|
||||
test broken_roster_is_not_overwritten ... ok
|
||||
test account_purge_refuses_symlink_store_without_touching_other_files ... ok
|
||||
test inbound_subscription_requires_pending_to_grant_to ... ok
|
||||
test malformed_legacy_vcard_and_private_bookmarks_rejected ... ok
|
||||
test malformed_roster_iq_never_mutates ... ok
|
||||
test blocklist_enforcement_api ... ok
|
||||
test domain_roster_and_block_jid_normalization ... ok
|
||||
test private_and_vcard_authorization ... ok
|
||||
test privacy_migration_only_default_deny_jids ... ok
|
||||
test purge_account_exact_files_preserves_others_and_extras ... ok
|
||||
test reads_timestamp_blocklist_and_keeps_metadata ... ok
|
||||
test roster_empty_name_and_foreign_group_ignored ... ok
|
||||
test roster_preserves_subscription_and_metadata ... ok
|
||||
test subscription_handshake_and_cancel ... ok
|
||||
test legacy_bookmarks_respect_host_limit_and_read_over_256 ... ok
|
||||
test bookmarks_private_pep_bidirectional_and_private ... ok
|
||||
test legacy_migration_clears_source_after_success ... ok
|
||||
test vcard_pep_conversion_and_avatar ... ok
|
||||
test password_change_after_purge_never_recreates_account ... ok
|
||||
test creation_and_purge_are_serialized ... ok
|
||||
|
||||
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.35s
|
||||
|
||||
Running tests/storage_compat.rs (target/debug/deps/storage_compat-935fba296da8d62f)
|
||||
|
||||
running 6 tests
|
||||
test empty_namespace_preserved ... ok
|
||||
test stanza_roundtrip ... ok
|
||||
test mixed_binary_roundtrip ... ok
|
||||
test path_and_atomic_update ... ok
|
||||
test rejects_cycles_code_and_bad_files ... ok
|
||||
test concurrent_updates_do_not_lose_entries ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/tls_binding.rs (target/debug/deps/tls_binding-80687cc90f5936fc)
|
||||
|
||||
running 4 tests
|
||||
test unknown_and_eddsa_algorithms_fail_closed ... ok
|
||||
test malformed_der_and_pss_parameters_fail_closed ... ok
|
||||
test ecdsa_uses_certificate_signature_hash ... ok
|
||||
test rsa_signature_digest_and_weak_hash_upgrade ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
|
||||
|
||||
Running tests/tls_plus_network.rs (target/debug/deps/tls_plus_network-ca5afdc80bbf006f)
|
||||
|
||||
running 2 tests
|
||||
test disabling_plus_hides_bindings_and_accepts_scram_y_with_mechanisms_only_ssdp ... ok
|
||||
test starttls_scram_plus_binds_real_tls_and_authenticates_ssdp_sasl1_and_sasl2 ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.18s
|
||||
|
||||
Doc-tests rust_xmpp
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Checking rust-xmpp v0.7.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.18s
|
||||
Compiling rust-xmpp v0.7.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `release` profile [optimized] target(s) in 25.05s
|
||||
PASS: integrated TCP roster/subscriptions, client IQ routing, CSI buffering/keepalive flush, MAM, blocking, OMEMO PEP, MUC, offline replay and SM resumption
|
||||
PASS: graceful SIGTERM shutdown
|
||||
PASS: independent SCRAM-SHA-1 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: independent SCRAM-SHA-256 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: Android TLS1.2 selector, TLS1.2/1.3 SCRAM SHA1/256 PLUS, SASL1/2, SSDP on/off and invalid binding rejection
|
||||
PASS: JSON file logging, TLS/auth/bind correlation, rejection reasons, secret redaction and SIGHUP rotation
|
||||
PASS: 20 TLS1.2/1.3 SASL1/2 cases: prepared PLAIN identities and canonical binds, invalid authz rejection, SCRAM abort/retry and active exchange restart
|
||||
PASS: WSS SCRAM-SHA-256 SASL1/SASL2 with GS2 y, absent CB/PLUS, SSDP without CB separator, server signatures, bind and ping
|
||||
PASS: SASL2 Bind2 TLS flow, inline SM/CSI/Carbons, private random resource, malformed requests, authentication failure and fallback
|
||||
PASS: SASL2 inline SM active/EOF resume, authenticated owner/id/h checks, replay ordering, full JID, Bind2 fallback and malformed requests
|
||||
PASS: TLS account/domain discovery with PEP and push enabled/disabled; real push enable, publish options, per-node and service-wide disable
|
||||
PASS: TLS invitation command discovery, preapproval, single-use mutual roster, replay denial, unknown preauth forwarding/offline pending, account isolation
|
||||
PASS: TLS conflict_resolve=default, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_old, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_new, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=increment, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=random, live and hibernating SM resources
|
||||
PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse, graceful SM close and same-resource relogin under kick_new
|
||||
{
|
||||
"total_load_wall_seconds": 7.064,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.696,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 66.672,
|
||||
"p95_ms": 83.122,
|
||||
"max_ms": 91.585
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 14.572,
|
||||
"p95_ms": 23.767,
|
||||
"max_ms": 26.397
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 4.058,
|
||||
"metrics_before": {
|
||||
"rss_kib": 7508,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 25632,
|
||||
"cpu_seconds": 1.22,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 26264,
|
||||
"cpu_seconds": 7.95,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 26328,
|
||||
"cpu_seconds": 7.98,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 26328,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
Compiling rust-xmpp v0.7.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 3.57s
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-3f1ca0e0fdaf0c90)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-11459f1318ad17b6)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-2d454afd474bb9c6)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-5344fbb8f3e05c43)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-f4ff9c794e3ba53f)
|
||||
|
||||
running 1 test
|
||||
test native_push_body_lookup_excludes_extensions ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-496913b1642f9356)
|
||||
|
||||
running 1 test
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-1
|
||||
PROSODY_NATIVE_FINAL_OK SHA-1
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-256
|
||||
PROSODY_NATIVE_FINAL_OK SHA-256
|
||||
test real_prosody_storage_and_auth_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.13s
|
||||
|
||||
Compiling rust-xmpp v0.7.0 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.29s
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-5961140cd6f418c0)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_tls_external_bidirectional ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.77s
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
PASS: reproduced 0.7.0 cached Bind2 rejection before SASL
|
||||
@@ -0,0 +1,6 @@
|
||||
PASS: bind2-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-enabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-enabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: sm-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: sm-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
@@ -0,0 +1,5 @@
|
||||
PASS: enabled-False-registration-False
|
||||
PASS: enabled-False-registration-True
|
||||
PASS: enabled-True-registration-False
|
||||
PASS: enabled-True-registration-True
|
||||
PASS: Gajim domain/account discovery, both label catalogs, authenticated password changes, IBR registration gates and fresh logins
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"total_load_wall_seconds": 7.969,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.842,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 72.641,
|
||||
"p95_ms": 134.723,
|
||||
"max_ms": 156.502
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 13.945,
|
||||
"p95_ms": 22.704,
|
||||
"max_ms": 26.79
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 4.825,
|
||||
"metrics_before": {
|
||||
"rss_kib": 7284,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 25952,
|
||||
"cpu_seconds": 1.09,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 26672,
|
||||
"cpu_seconds": 8.34,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 26736,
|
||||
"cpu_seconds": 8.38,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 26736,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,561 @@
|
||||
Compiling rust-xmpp v0.7.1 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 21.93s
|
||||
Running unittests src/lib.rs (target/debug/deps/rust_xmpp-cb3b5faf47b90be4)
|
||||
|
||||
running 25 tests
|
||||
test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok
|
||||
test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok
|
||||
test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok
|
||||
test http_transport::tests::bosh_processing_capacity_is_bounded ... ok
|
||||
test federation::tests::stream_restarts_compare_canonical_domains ... ok
|
||||
test logging::tests::console_aliases_share_one_sink_with_combined_levels ... ok
|
||||
test http_transport::tests::independent_framing ... ok
|
||||
test sasl::tests::reject_malformed_and_downgrade ... ok
|
||||
test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok
|
||||
test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok
|
||||
test sessions::tests::acknowledgement_wraps ... ok
|
||||
test sessions::tests::graceful_disconnect_is_not_resumable ... ok
|
||||
test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok
|
||||
test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok
|
||||
test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok
|
||||
test wire::tests::declarations_rejected ... ok
|
||||
test wire::tests::fragmented_and_pipelined ... ok
|
||||
test wire::tests::invalid_namespace_and_declarations_rejected ... ok
|
||||
test sasl::tests::rfc5802_sha1_vector ... ok
|
||||
test sasl::tests::sha256_independent_python_vector ... ok
|
||||
test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok
|
||||
test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok
|
||||
test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok
|
||||
test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok
|
||||
test admin::tests::real_admin_xml_protocol_over_duplex ... ok
|
||||
|
||||
test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.74s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/rust_xmpp-04dd784ebbdc6a22)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/admin_socket.rs (target/debug/deps/admin_socket-270a654d656f20bc)
|
||||
|
||||
running 1 test
|
||||
test prosody_wire_commands_password_prompt_and_safe_errors ... ignored, requires AF_UNIX socket permission; run on target host with --ignored
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-74c0c3a2d787e108)
|
||||
|
||||
running 14 tests
|
||||
test archive_larger_than_128mib_streams ... ignored, large-file scalability regression; run explicitly
|
||||
test mam_preferences_persist ... ok
|
||||
test legacy_records_binary_cache_and_roundtrip ... ok
|
||||
test corrupt_archive_reports_server_error_and_namespace_stripping_is_precise ... ok
|
||||
test append_is_incremental_and_recovers_torn_tail ... ok
|
||||
test smart_enable_and_message_selection ... ok
|
||||
test archive_roundtrip_preserves_default_namespace_resets ... ok
|
||||
test equal_cursors_and_normalized_query_jids ... ok
|
||||
test muc_archive_filters_stanza_kind_instead_of_sender_jid ... ok
|
||||
test real_archive_sid_and_sender_privacy ... ok
|
||||
test zero_page_dates_and_invalid_forms ... ok
|
||||
test mam_paging_filters_and_forbidden ... ok
|
||||
test extended_ids_ranges_flip_and_metadata ... ok
|
||||
test namespaces_expiry_and_concurrent_append ... ok
|
||||
|
||||
test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/auth.rs (target/debug/deps/auth-15bdf52311e4d125)
|
||||
|
||||
running 3 tests
|
||||
test traversal_and_malicious_account_records_rejected ... ok
|
||||
test create_and_read_hashed_accounts ... ok
|
||||
test authentication_prepares_names_without_relaxing_account_management ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.18s
|
||||
|
||||
Running tests/cli.rs (target/debug/deps/cli-bd3db818e79c9ba7)
|
||||
|
||||
running 2 tests
|
||||
test server_cannot_be_mistaken_for_running_service ... ok
|
||||
test conversion_preserves_source_and_refuses_overwrite ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/config.rs (target/debug/deps/config-3d3b807f59da864b)
|
||||
|
||||
running 12 tests
|
||||
test declarations_and_overrides ... ok
|
||||
test storage_paths_encode_like_prosody ... ok
|
||||
test component_can_explicitly_enable_global_modules ... ok
|
||||
test include_cycles_rejected ... ok
|
||||
test include_has_own_global_scope_and_parent_scope_is_restored ... ok
|
||||
test tables_cannot_recurse_forever ... ok
|
||||
test supplied_configuration_scopes_arithmetic_and_modules ... ok
|
||||
test runtime_capabilities_are_unavailable ... ok
|
||||
test supplied_config_matches_original_prosody_loader ... ok
|
||||
test malformed_values_rejected ... ok
|
||||
test all_formats_round_trip_actual_config ... ok
|
||||
test loops_are_bounded ... ok
|
||||
|
||||
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/csi.rs (target/debug/deps/csi-4621faf9c6106e3c)
|
||||
|
||||
running 2 tests
|
||||
test bounded_queue_flush_delay_activity_and_grace ... ok
|
||||
test native_importance_rules ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-bd792c168a73fc16)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/data_lock.rs (target/debug/deps/data_lock-9ea0a5b322af4953)
|
||||
|
||||
running 2 tests
|
||||
test child_process_probe ... ok
|
||||
test excludes_another_process_and_releases_on_drop ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/debug_legacy.rs (target/debug/deps/debug_legacy-82313e923ea22366)
|
||||
|
||||
running 1 test
|
||||
test debug_empty_legacy_bind ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
|
||||
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-a0331520383db8c9)
|
||||
|
||||
running 3 tests
|
||||
test native_prosody_tls_external_bidirectional ... ignored, requires native Prosody cafd74b9c5ea and Lua TLS dependencies
|
||||
test mutual_tls_external_delivery_and_certificate_identity_rejection ... ok
|
||||
test reuses_connections_serializes_writes_and_retires_idle_or_closed_peers ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.45s
|
||||
|
||||
Running tests/gajim_features.rs (target/debug/deps/gajim_features-4a809f0acb5472cf)
|
||||
|
||||
running 6 tests
|
||||
test unsupported_security_policy_configuration_returns_explicit_error ... ok
|
||||
test policy_catalog_selects_default_policy_and_maps_display_and_explicit_label ... ok
|
||||
test security_catalog_default_is_a_real_label_and_module_can_be_disabled ... ok
|
||||
test security_catalogs_serve_both_versions_and_preserve_requested_target ... ok
|
||||
test actual_example_policy_configuration_exposes_classifications_as_catalog_labels ... ok
|
||||
test malformed_or_unknown_policy_catalog_schemas_are_rejected ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/http_transport.rs (target/debug/deps/http_transport-bb64b91ad4c22400)
|
||||
|
||||
running 10 tests
|
||||
test configured_origin_is_enforced ... ok
|
||||
test bosh_preserves_namespace_inherited_from_body ... ok
|
||||
test transport_paths_and_cors_preflight_match_prosody ... ok
|
||||
test bosh_session_retries_restart_termination ... ok
|
||||
test bosh_termination_waits_for_graceful_cleanup_before_reconnect ... ok
|
||||
test bosh_reorders_two_requests_without_replaying_stanzas ... ok
|
||||
test websocket_frames_are_independent_xml ... ok
|
||||
test websocket_disconnect_delivers_eof_without_graceful_close ... ok
|
||||
test websocket_close_allows_graceful_engine_cleanup ... ok
|
||||
test bosh_retry_survives_aborted_http_request_without_replaying_stanzas ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
|
||||
|
||||
Running tests/http_upload.rs (target/debug/deps/http_upload-0d7ad267ae1d5e2c)
|
||||
|
||||
running 5 tests
|
||||
test https_endpoint_uses_real_tls ... ok
|
||||
test percent_escape_case_and_equivalent_url_spelling ... ok
|
||||
test persisted_prosody_archive_and_hs256_slot_survive_without_sidecar ... ok
|
||||
test expired_upload_releases_quota ... ok
|
||||
test upload_authorization_streaming_ranges_and_restart ... ok
|
||||
|
||||
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/logging.rs (target/debug/deps/logging-ad40995f295543fc)
|
||||
|
||||
running 10 tests
|
||||
test json_records_and_bounded_ranges ... ok
|
||||
test explicit_sink_levels_select_exactly_and_deduplicate ... ok
|
||||
test filters_appends_escapes_and_redacts ... ok
|
||||
test failed_reopen_keeps_all_original_handles ... ok
|
||||
test native_console_shorthands_are_accepted ... ok
|
||||
test overlapping_shorthand_destinations_receive_each_record_once ... ok
|
||||
test rejects_malformed_configuration ... ok
|
||||
test reopen_rotated_files_updates_clones ... ok
|
||||
test shared_sink_unions_levels_and_preserves_distinct_destinations ... ok
|
||||
test cloned_loggers_serialize_records ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/message_routing.rs (target/debug/deps/message_routing-0093c2e215e8e639)
|
||||
|
||||
running 2 tests
|
||||
test unknown_resource_falls_back_to_available_bare_jid ... ok
|
||||
test headline_uses_all_nonnegative_available_resources_and_errors_never_fallback ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_access.rs (target/debug/deps/muc_access-2bb809ce73d21bce)
|
||||
|
||||
running 3 tests
|
||||
test moderators_cannot_kick_or_demote_other_moderators ... ok
|
||||
test nested_affiliations_do_not_fall_back_to_obsolete_flat_entries ... ok
|
||||
test binary_occupant_id_salt_survives_saves_and_restarts ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_domain_bans.rs (target/debug/deps/muc_domain_bans-e3eb4bb6fd095840)
|
||||
|
||||
running 2 tests
|
||||
test applying_domain_ban_removes_remote_occupants_and_blocks_rejoin ... ok
|
||||
test native_domain_bans_block_remote_users_but_allow_explicit_members ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_flow.rs (target/debug/deps/muc_flow-d6a4356d70f79304)
|
||||
|
||||
running 18 tests
|
||||
test configured_lock_timeout_expires_without_owner_submission ... ok
|
||||
test authorization_and_conflict ... ok
|
||||
test iq_response_requires_expected_sender ... ok
|
||||
test nick_invite_destroy_and_local_creation ... ok
|
||||
test multiple_resources_share_nick_and_private_delivery ... ok
|
||||
test join_lock_chat_leave ... ok
|
||||
test occupant_id_is_stable_and_spoofed_ids_removed ... ok
|
||||
test persistence_roundtrip ... ok
|
||||
test restored_temporary_room_is_deleted_after_last_disconnect ... ok
|
||||
test switching_to_members_only_removes_unaffiliated_users ... ok
|
||||
test preserves_unknown_binary_mixed_room_fields ... ok
|
||||
test visitor_voice_request_cannot_spoof_identity_or_grant_itself_voice ... ok
|
||||
test room_vcard_owner_only_and_avatar_presence ... ok
|
||||
test persistent_destroy_creates_prosody_tombstone ... ok
|
||||
test reserved_nickname_blocks_other_users ... ok
|
||||
test archive_history_and_permissions ... ok
|
||||
test maintenance_expires_idle_archives_and_tombstones ... ok
|
||||
test native_muc_archive_type_and_anonymity_are_preserved ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-6501fca139d4ea41)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pep_discovery.rs (target/debug/deps/pep_discovery-8efde2f8f7390fd3)
|
||||
|
||||
running 4 tests
|
||||
test standalone_component_does_not_claim_pep_automatic_subscriptions ... ok
|
||||
test account_discovery_does_not_intercept_server_or_resource_caps ... ok
|
||||
test node_discovery_keeps_node_identity_errors_and_access_checks ... ok
|
||||
test account_disco_advertises_pep_without_requiring_a_node ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
|
||||
|
||||
Running tests/preauth.rs (target/debug/deps/preauth-c5a32fecffd69807)
|
||||
|
||||
running 10 tests
|
||||
test duplicate_or_wrong_namespace_tokens_do_not_qualify ... ok
|
||||
test unknown_client_token_is_preserved_on_remote_and_pending_delivery ... ok
|
||||
test standard_adhoc_command_returns_contact_uri ... ok
|
||||
test prosody_numeric_expiry_is_consumed_and_other_entries_preserved ... ok
|
||||
test concurrent_redemption_has_exactly_one_winner ... ok
|
||||
test unknown_tokens_do_not_create_invite_stores_and_disabled_accounts_cannot_issue ... ok
|
||||
test identity_scope_does_not_burn_on_wrong_sender_or_leak_to_prosody ... ok
|
||||
test invitations_expire_are_single_use_and_owner_scoped ... ok
|
||||
test valid_token_autoapproves_and_sends_reciprocal_request ... ok
|
||||
test local_invitation_updates_both_rosters_without_granting_reverse_subscription ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-abc0cfe2a0307998)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-e221f58aa7e06c7c)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_persistence.rs (target/debug/deps/pubsub_persistence-80f3b89ef1cc628e)
|
||||
|
||||
running 18 tests
|
||||
test configurable_limits_component_creation_and_publisher ... ok
|
||||
test native_string_max_items_satisfies_numeric_publish_precondition ... ok
|
||||
test configure_requires_owner ... ok
|
||||
test modern_bookmarks_notify_legacy_capability ... ok
|
||||
test nonpersistent_items_stay_in_memory_and_can_be_made_persistent ... ok
|
||||
test capability_discovery_replays_and_filters_notifications ... ok
|
||||
test open_model_and_notifications ... ok
|
||||
test publish_options_conflict_is_recoverable_and_preserves_item ... ok
|
||||
test pep_persists_namespaces_and_enforces_owner ... ok
|
||||
test full_jid_block_applies_to_reads_subscription_replays_and_events ... ok
|
||||
test reads_prosody_legacy_fixture ... ok
|
||||
test remote_unavailable_is_scoped_to_addressed_owner_and_cancels_pending ... ok
|
||||
test roster_presence_access_and_foreign_subscription_denied ... ok
|
||||
test remote_caps_replay_and_open_node_privacy_revoke ... ok
|
||||
test subscription_options_disable_events_and_require_subscriber ... ok
|
||||
test payload_policy_applies_to_subscription_and_caps_replays ... ok
|
||||
test native_notification_fields_and_retract_policy_are_independent ... ok
|
||||
test component_default_retention_matches_prosody_twenty_items ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-213e567bc780ee4f)
|
||||
|
||||
running 7 tests
|
||||
test native_push_body_lookup_excludes_extensions ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test foreign_account_cannot_register ... ok
|
||||
test queue_coalesces_and_importance_matches_native ... ok
|
||||
test push_summary_never_copies_foreign_namespace_body ... ok
|
||||
test reenable_cancels_old_errors_and_failure_counts_are_per_account ... ok
|
||||
test stable_client_registration_and_targeted_notification ... ok
|
||||
test registrations_notifications_and_authenticated_errors ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.11s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-78881b51cbfb907f)
|
||||
|
||||
running 1 test
|
||||
test real_prosody_storage_and_auth_roundtrip ... ignored, requires native supplied Prosody source; run scripts/prosody_compat/verify.sh
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/resource_sessions.rs (target/debug/deps/resource_sessions-2bb513cbfef8c6db)
|
||||
|
||||
running 7 tests
|
||||
test increment_skips_occupied_suffixes_and_preserves_sessions ... ok
|
||||
test invalid_resume_owner_or_ack_does_not_evict_active_session ... ok
|
||||
test replacement_revokes_hibernating_resume_and_survives_old_cleanup ... ok
|
||||
test random_conflicts_get_distinct_resources_for_same_owner ... ok
|
||||
test kick_new_leaves_existing_session_unchanged ... ok
|
||||
test concurrent_default_binds_replace_atomically ... ok
|
||||
test active_resume_preserves_state_and_replaces_transport_notifier ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/sasl_accounts.rs (target/debug/deps/sasl_accounts-aeaf27d25390f848)
|
||||
|
||||
running 1 test
|
||||
test disabled_legacy_and_unicode_accounts ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.71s
|
||||
|
||||
Running tests/storage_accounts.rs (target/debug/deps/storage_accounts-71820de6fca29c8b)
|
||||
|
||||
running 20 tests
|
||||
test broken_roster_is_not_overwritten ... ok
|
||||
test account_purge_refuses_symlink_store_without_touching_other_files ... ok
|
||||
test inbound_subscription_requires_pending_to_grant_to ... ok
|
||||
test blocklist_enforcement_api ... ok
|
||||
test malformed_legacy_vcard_and_private_bookmarks_rejected ... ok
|
||||
test malformed_roster_iq_never_mutates ... ok
|
||||
test domain_roster_and_block_jid_normalization ... ok
|
||||
test private_and_vcard_authorization ... ok
|
||||
test privacy_migration_only_default_deny_jids ... ok
|
||||
test reads_timestamp_blocklist_and_keeps_metadata ... ok
|
||||
test purge_account_exact_files_preserves_others_and_extras ... ok
|
||||
test roster_empty_name_and_foreign_group_ignored ... ok
|
||||
test roster_preserves_subscription_and_metadata ... ok
|
||||
test subscription_handshake_and_cancel ... ok
|
||||
test legacy_bookmarks_respect_host_limit_and_read_over_256 ... ok
|
||||
test bookmarks_private_pep_bidirectional_and_private ... ok
|
||||
test legacy_migration_clears_source_after_success ... ok
|
||||
test vcard_pep_conversion_and_avatar ... ok
|
||||
test password_change_after_purge_never_recreates_account ... ok
|
||||
test creation_and_purge_are_serialized ... ok
|
||||
|
||||
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.58s
|
||||
|
||||
Running tests/storage_compat.rs (target/debug/deps/storage_compat-d2ac6ecb752b8632)
|
||||
|
||||
running 6 tests
|
||||
test empty_namespace_preserved ... ok
|
||||
test mixed_binary_roundtrip ... ok
|
||||
test stanza_roundtrip ... ok
|
||||
test path_and_atomic_update ... ok
|
||||
test rejects_cycles_code_and_bad_files ... ok
|
||||
test concurrent_updates_do_not_lose_entries ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/tls_binding.rs (target/debug/deps/tls_binding-b49894c170e72ed4)
|
||||
|
||||
running 4 tests
|
||||
test unknown_and_eddsa_algorithms_fail_closed ... ok
|
||||
test malformed_der_and_pss_parameters_fail_closed ... ok
|
||||
test ecdsa_uses_certificate_signature_hash ... ok
|
||||
test rsa_signature_digest_and_weak_hash_upgrade ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.42s
|
||||
|
||||
Running tests/tls_plus_network.rs (target/debug/deps/tls_plus_network-7561eb91fa3ea268)
|
||||
|
||||
running 2 tests
|
||||
test disabling_plus_hides_bindings_and_accepts_scram_y_with_mechanisms_only_ssdp ... ok
|
||||
test starttls_scram_plus_binds_real_tls_and_authenticates_ssdp_sasl1_and_sasl2 ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.31s
|
||||
|
||||
Doc-tests rust_xmpp
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Checking rust-xmpp v0.7.1 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.87s
|
||||
Compiling rust-xmpp v0.7.1 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `release` profile [optimized] target(s) in 25.73s
|
||||
PASS: integrated TCP roster/subscriptions, client IQ routing, CSI buffering/keepalive flush, MAM, blocking, OMEMO PEP, MUC, offline replay and SM resumption
|
||||
PASS: graceful SIGTERM shutdown
|
||||
PASS: independent SCRAM-SHA-1 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: independent SCRAM-SHA-256 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: Android TLS1.2 selector, TLS1.2/1.3 SCRAM SHA1/256 PLUS, SASL1/2, SSDP on/off and invalid binding rejection
|
||||
PASS: JSON file logging, TLS/auth/bind correlation, rejection reasons, secret redaction and SIGHUP rotation
|
||||
PASS: 20 TLS1.2/1.3 SASL1/2 cases: prepared PLAIN identities and canonical binds, invalid authz rejection, SCRAM abort/retry and active exchange restart
|
||||
PASS: WSS SCRAM-SHA-256 SASL1/SASL2 with GS2 y, absent CB/PLUS, SSDP without CB separator, server signatures, bind and ping
|
||||
PASS: SASL2 Bind2 TLS flow, inline SM/CSI/Carbons, private random resource, malformed requests, authentication failure and fallback
|
||||
PASS: bind2-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-enabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-enabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: sm-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: sm-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: enabled-False-registration-False
|
||||
PASS: enabled-False-registration-True
|
||||
PASS: enabled-True-registration-False
|
||||
PASS: enabled-True-registration-True
|
||||
PASS: Gajim domain/account discovery, both label catalogs, authenticated password changes, IBR registration gates and fresh logins
|
||||
PASS: SASL2 inline SM active/EOF resume, authenticated owner/id/h checks, replay ordering, full JID, Bind2 fallback and malformed requests
|
||||
PASS: TLS account/domain discovery with PEP and push enabled/disabled; real push enable, publish options, per-node and service-wide disable
|
||||
PASS: TLS invitation command discovery, preapproval, single-use mutual roster, replay denial, unknown preauth forwarding/offline pending, account isolation
|
||||
PASS: TLS conflict_resolve=default, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_old, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_new, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=increment, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=random, live and hibernating SM resources
|
||||
PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse, graceful SM close and same-resource relogin under kick_new
|
||||
{
|
||||
"total_load_wall_seconds": 7.969,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.842,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 72.641,
|
||||
"p95_ms": 134.723,
|
||||
"max_ms": 156.502
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 13.945,
|
||||
"p95_ms": 22.704,
|
||||
"max_ms": 26.79
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 4.825,
|
||||
"metrics_before": {
|
||||
"rss_kib": 7284,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 25952,
|
||||
"cpu_seconds": 1.09,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 26672,
|
||||
"cpu_seconds": 8.34,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 26736,
|
||||
"cpu_seconds": 8.38,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 26736,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
Compiling rust-xmpp v0.7.1 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.66s
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-bd792c168a73fc16)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-6501fca139d4ea41)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-abc0cfe2a0307998)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-e221f58aa7e06c7c)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-213e567bc780ee4f)
|
||||
|
||||
running 1 test
|
||||
test native_push_body_lookup_excludes_extensions ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-78881b51cbfb907f)
|
||||
|
||||
running 1 test
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-1
|
||||
PROSODY_NATIVE_FINAL_OK SHA-1
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-256
|
||||
PROSODY_NATIVE_FINAL_OK SHA-256
|
||||
test real_prosody_storage_and_auth_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.00s
|
||||
|
||||
Compiling rust-xmpp v0.7.1 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.38s
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-a0331520383db8c9)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_tls_external_bidirectional ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 1.07s
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
Compiling rust-xmpp v0.7.1 (/tmp/xmpp071-authbaseline)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 13.63s
|
||||
Running tests/iq_errors.rs (target/debug/deps/iq_errors-9f3d8fea07105697)
|
||||
|
||||
running 2 tests
|
||||
test server_errors_without_target_remain_unaddressed_and_escape_attributes ... FAILED
|
||||
test pep_errors_identify_the_account_and_echo_the_request ... FAILED
|
||||
|
||||
failures:
|
||||
|
||||
---- server_errors_without_target_remain_unaddressed_and_escape_attributes stdout ----
|
||||
|
||||
thread 'server_errors_without_target_remain_unaddressed_and_escape_attributes' (519) panicked at tests/iq_errors.rs:29:9:
|
||||
assertion `left == right` failed
|
||||
left: None
|
||||
right: Some("alice&bob@example.test")
|
||||
|
||||
---- pep_errors_identify_the_account_and_echo_the_request stdout ----
|
||||
|
||||
thread 'pep_errors_identify_the_account_and_echo_the_request' (518) panicked at tests/iq_errors.rs:9:5:
|
||||
assertion `left == right` failed
|
||||
left: None
|
||||
right: Some("alice@example.test")
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
|
||||
|
||||
failures:
|
||||
pep_errors_identify_the_account_and_echo_the_request
|
||||
server_errors_without_target_remain_unaddressed_and_escape_attributes
|
||||
|
||||
test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
error: test failed, to rerun pass `--test iq_errors`
|
||||
Blocking waiting for file lock on build directory
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 7.24s
|
||||
Running tests/pep_client_interop.rs (target/debug/deps/pep_client_interop-56e0c80e02b9bca7)
|
||||
|
||||
running 3 tests
|
||||
test publish_options_match_implicit_notification_defaults_on_old_nodes ... FAILED
|
||||
test missing_own_omemo_bundle_returns_recoverable_item_not_found ... ok
|
||||
test avatar_and_omemo_publish_options_support_readback_and_caps_notifications ... ok
|
||||
|
||||
failures:
|
||||
|
||||
---- publish_options_match_implicit_notification_defaults_on_old_nodes stdout ----
|
||||
|
||||
thread 'publish_options_match_implicit_notification_defaults_on_old_nodes' (19) panicked at tests/pep_client_interop.rs:198:5:
|
||||
["<iq xmlns='jabber:client' type='error' id='publish'><error type='cancel'><conflict xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><precondition-not-met xmlns='http://jabber.org/protocol/pubsub#errors'/></error></iq>"]
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
|
||||
|
||||
failures:
|
||||
publish_options_match_implicit_notification_defaults_on_old_nodes
|
||||
|
||||
test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
|
||||
|
||||
error: test failed, to rerun pass `--test pep_client_interop`
|
||||
Compiling rust-xmpp v0.7.1 (/tmp/xmpp071-authbaseline)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.65s
|
||||
Running tests/pep_client_interop.rs (target/debug/deps/pep_client_interop-56e0c80e02b9bca7)
|
||||
|
||||
running 1 test
|
||||
test migrated_native_configuration_can_roundtrip_access_model_edit ... FAILED
|
||||
|
||||
failures:
|
||||
|
||||
---- migrated_native_configuration_can_roundtrip_access_model_edit stdout ----
|
||||
|
||||
thread 'migrated_native_configuration_can_roundtrip_access_model_edit' (106) panicked at tests/pep_client_interop.rs:241:5:
|
||||
assertion failed: !get.replies[0].contains("pubsub#payload_type")
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
|
||||
|
||||
failures:
|
||||
migrated_native_configuration_can_roundtrip_access_model_edit
|
||||
|
||||
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.10s
|
||||
|
||||
error: test failed, to rerun pass `--test pep_client_interop`
|
||||
Compiling rust-xmpp v0.7.1 (/tmp/xmpp071-authbaseline)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.66s
|
||||
Running tests/pep_client_interop.rs (target/debug/deps/pep_client_interop-56e0c80e02b9bca7)
|
||||
|
||||
running 1 test
|
||||
test migrated_native_configuration_can_roundtrip_access_model_edit ... FAILED
|
||||
|
||||
failures:
|
||||
|
||||
---- migrated_native_configuration_can_roundtrip_access_model_edit stdout ----
|
||||
|
||||
thread 'migrated_native_configuration_can_roundtrip_access_model_edit' (106) panicked at tests/pep_client_interop.rs:258:5:
|
||||
["<iq xmlns='jabber:client' type='error' id='set-config'><error type='cancel'><feature-not-implemented xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq>"]
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
|
||||
|
||||
failures:
|
||||
migrated_native_configuration_can_roundtrip_access_model_edit
|
||||
|
||||
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.11s
|
||||
|
||||
error: test failed, to rerun pass `--test pep_client_interop`
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"total_load_wall_seconds": 6.652,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.558,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 51.57,
|
||||
"p95_ms": 70.794,
|
||||
"max_ms": 90.506
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 13.511,
|
||||
"p95_ms": 22.338,
|
||||
"max_ms": 26.333
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 3.813,
|
||||
"metrics_before": {
|
||||
"rss_kib": 7756,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 26100,
|
||||
"cpu_seconds": 1.05,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 26844,
|
||||
"cpu_seconds": 7.63,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 26844,
|
||||
"cpu_seconds": 7.67,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 26844,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,584 @@
|
||||
Compiling rust-xmpp v0.7.2 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 7.18s
|
||||
Running unittests src/lib.rs (target/debug/deps/rust_xmpp-8ec155c80b6dfeaf)
|
||||
|
||||
running 26 tests
|
||||
test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok
|
||||
test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok
|
||||
test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok
|
||||
test http_transport::tests::bosh_processing_capacity_is_bounded ... ok
|
||||
test federation::tests::stream_restarts_compare_canonical_domains ... ok
|
||||
test logging::tests::console_aliases_share_one_sink_with_combined_levels ... ok
|
||||
test sasl::tests::reject_malformed_and_downgrade ... ok
|
||||
test http_transport::tests::independent_framing ... ok
|
||||
test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok
|
||||
test server::authorization_tests::pep_diagnostics_exclude_payloads_and_identifiers ... ok
|
||||
test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok
|
||||
test sessions::tests::acknowledgement_wraps ... ok
|
||||
test sessions::tests::graceful_disconnect_is_not_resumable ... ok
|
||||
test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok
|
||||
test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok
|
||||
test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok
|
||||
test wire::tests::declarations_rejected ... ok
|
||||
test wire::tests::fragmented_and_pipelined ... ok
|
||||
test wire::tests::invalid_namespace_and_declarations_rejected ... ok
|
||||
test sasl::tests::rfc5802_sha1_vector ... ok
|
||||
test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok
|
||||
test sasl::tests::sha256_independent_python_vector ... ok
|
||||
test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok
|
||||
test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok
|
||||
test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok
|
||||
test admin::tests::real_admin_xml_protocol_over_duplex ... ok
|
||||
|
||||
test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.56s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/rust_xmpp-316204254fe9a06d)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/admin_socket.rs (target/debug/deps/admin_socket-54969f77ebe78f0e)
|
||||
|
||||
running 1 test
|
||||
test prosody_wire_commands_password_prompt_and_safe_errors ... ignored, requires AF_UNIX socket permission; run on target host with --ignored
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-4f1e3e981d589aa6)
|
||||
|
||||
running 14 tests
|
||||
test archive_larger_than_128mib_streams ... ignored, large-file scalability regression; run explicitly
|
||||
test mam_preferences_persist ... ok
|
||||
test legacy_records_binary_cache_and_roundtrip ... ok
|
||||
test corrupt_archive_reports_server_error_and_namespace_stripping_is_precise ... ok
|
||||
test append_is_incremental_and_recovers_torn_tail ... ok
|
||||
test smart_enable_and_message_selection ... ok
|
||||
test real_archive_sid_and_sender_privacy ... ok
|
||||
test archive_roundtrip_preserves_default_namespace_resets ... ok
|
||||
test equal_cursors_and_normalized_query_jids ... ok
|
||||
test muc_archive_filters_stanza_kind_instead_of_sender_jid ... ok
|
||||
test zero_page_dates_and_invalid_forms ... ok
|
||||
test mam_paging_filters_and_forbidden ... ok
|
||||
test extended_ids_ranges_flip_and_metadata ... ok
|
||||
test namespaces_expiry_and_concurrent_append ... ok
|
||||
|
||||
test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/auth.rs (target/debug/deps/auth-0b0ae2335249fb23)
|
||||
|
||||
running 3 tests
|
||||
test traversal_and_malicious_account_records_rejected ... ok
|
||||
test create_and_read_hashed_accounts ... ok
|
||||
test authentication_prepares_names_without_relaxing_account_management ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.94s
|
||||
|
||||
Running tests/cli.rs (target/debug/deps/cli-094eb9ac60021a27)
|
||||
|
||||
running 2 tests
|
||||
test server_cannot_be_mistaken_for_running_service ... ok
|
||||
test conversion_preserves_source_and_refuses_overwrite ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/config.rs (target/debug/deps/config-35520fafebc2d691)
|
||||
|
||||
running 12 tests
|
||||
test component_can_explicitly_enable_global_modules ... ok
|
||||
test declarations_and_overrides ... ok
|
||||
test include_cycles_rejected ... ok
|
||||
test include_has_own_global_scope_and_parent_scope_is_restored ... ok
|
||||
test runtime_capabilities_are_unavailable ... ok
|
||||
test malformed_values_rejected ... ok
|
||||
test storage_paths_encode_like_prosody ... ok
|
||||
test tables_cannot_recurse_forever ... ok
|
||||
test supplied_configuration_scopes_arithmetic_and_modules ... ok
|
||||
test all_formats_round_trip_actual_config ... ok
|
||||
test supplied_config_matches_original_prosody_loader ... ok
|
||||
test loops_are_bounded ... ok
|
||||
|
||||
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/csi.rs (target/debug/deps/csi-dbcbf6a41b488f87)
|
||||
|
||||
running 2 tests
|
||||
test bounded_queue_flush_delay_activity_and_grace ... ok
|
||||
test native_importance_rules ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-571cd230980015ef)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/data_lock.rs (target/debug/deps/data_lock-46ceeadd92bb6ee8)
|
||||
|
||||
running 2 tests
|
||||
test child_process_probe ... ok
|
||||
test excludes_another_process_and_releases_on_drop ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/debug_legacy.rs (target/debug/deps/debug_legacy-9cb0b0aa245adc83)
|
||||
|
||||
running 1 test
|
||||
test debug_empty_legacy_bind ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
|
||||
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-e0152fda4a1323e9)
|
||||
|
||||
running 3 tests
|
||||
test native_prosody_tls_external_bidirectional ... ignored, requires native Prosody cafd74b9c5ea and Lua TLS dependencies
|
||||
test mutual_tls_external_delivery_and_certificate_identity_rejection ... ok
|
||||
test reuses_connections_serializes_writes_and_retires_idle_or_closed_peers ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.01s
|
||||
|
||||
Running tests/gajim_features.rs (target/debug/deps/gajim_features-dbda475140801d86)
|
||||
|
||||
running 6 tests
|
||||
test security_catalog_default_is_a_real_label_and_module_can_be_disabled ... ok
|
||||
test policy_catalog_selects_default_policy_and_maps_display_and_explicit_label ... ok
|
||||
test security_catalogs_serve_both_versions_and_preserve_requested_target ... ok
|
||||
test unsupported_security_policy_configuration_returns_explicit_error ... ok
|
||||
test actual_example_policy_configuration_exposes_classifications_as_catalog_labels ... ok
|
||||
test malformed_or_unknown_policy_catalog_schemas_are_rejected ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/http_transport.rs (target/debug/deps/http_transport-2975f8ba02c03d6c)
|
||||
|
||||
running 10 tests
|
||||
test configured_origin_is_enforced ... ok
|
||||
test bosh_preserves_namespace_inherited_from_body ... ok
|
||||
test transport_paths_and_cors_preflight_match_prosody ... ok
|
||||
test bosh_session_retries_restart_termination ... ok
|
||||
test bosh_termination_waits_for_graceful_cleanup_before_reconnect ... ok
|
||||
test bosh_reorders_two_requests_without_replaying_stanzas ... ok
|
||||
test websocket_frames_are_independent_xml ... ok
|
||||
test websocket_close_allows_graceful_engine_cleanup ... ok
|
||||
test websocket_disconnect_delivers_eof_without_graceful_close ... ok
|
||||
test bosh_retry_survives_aborted_http_request_without_replaying_stanzas ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
|
||||
|
||||
Running tests/http_upload.rs (target/debug/deps/http_upload-e33fcbbc2ff0311f)
|
||||
|
||||
running 5 tests
|
||||
test https_endpoint_uses_real_tls ... ok
|
||||
test percent_escape_case_and_equivalent_url_spelling ... ok
|
||||
test expired_upload_releases_quota ... ok
|
||||
test persisted_prosody_archive_and_hs256_slot_survive_without_sidecar ... ok
|
||||
test upload_authorization_streaming_ranges_and_restart ... ok
|
||||
|
||||
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
|
||||
|
||||
Running tests/iq_errors.rs (target/debug/deps/iq_errors-a8690e04adeeb529)
|
||||
|
||||
running 2 tests
|
||||
test pep_errors_identify_the_account_and_echo_the_request ... ok
|
||||
test server_errors_without_target_remain_unaddressed_and_escape_attributes ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/logging.rs (target/debug/deps/logging-7d8fd52fcdc4826f)
|
||||
|
||||
running 10 tests
|
||||
test failed_reopen_keeps_all_original_handles ... ok
|
||||
test explicit_sink_levels_select_exactly_and_deduplicate ... ok
|
||||
test native_console_shorthands_are_accepted ... ok
|
||||
test rejects_malformed_configuration ... ok
|
||||
test filters_appends_escapes_and_redacts ... ok
|
||||
test json_records_and_bounded_ranges ... ok
|
||||
test overlapping_shorthand_destinations_receive_each_record_once ... ok
|
||||
test reopen_rotated_files_updates_clones ... ok
|
||||
test shared_sink_unions_levels_and_preserves_distinct_destinations ... ok
|
||||
test cloned_loggers_serialize_records ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/message_routing.rs (target/debug/deps/message_routing-4f3df63dddc4fc6f)
|
||||
|
||||
running 2 tests
|
||||
test unknown_resource_falls_back_to_available_bare_jid ... ok
|
||||
test headline_uses_all_nonnegative_available_resources_and_errors_never_fallback ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_access.rs (target/debug/deps/muc_access-5b161dd6682b140f)
|
||||
|
||||
running 3 tests
|
||||
test moderators_cannot_kick_or_demote_other_moderators ... ok
|
||||
test nested_affiliations_do_not_fall_back_to_obsolete_flat_entries ... ok
|
||||
test binary_occupant_id_salt_survives_saves_and_restarts ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_domain_bans.rs (target/debug/deps/muc_domain_bans-fd6476ada4b03e72)
|
||||
|
||||
running 2 tests
|
||||
test applying_domain_ban_removes_remote_occupants_and_blocks_rejoin ... ok
|
||||
test native_domain_bans_block_remote_users_but_allow_explicit_members ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_flow.rs (target/debug/deps/muc_flow-38c899e5c6507d75)
|
||||
|
||||
running 18 tests
|
||||
test configured_lock_timeout_expires_without_owner_submission ... ok
|
||||
test iq_response_requires_expected_sender ... ok
|
||||
test join_lock_chat_leave ... ok
|
||||
test authorization_and_conflict ... ok
|
||||
test nick_invite_destroy_and_local_creation ... ok
|
||||
test multiple_resources_share_nick_and_private_delivery ... ok
|
||||
test occupant_id_is_stable_and_spoofed_ids_removed ... ok
|
||||
test restored_temporary_room_is_deleted_after_last_disconnect ... ok
|
||||
test persistence_roundtrip ... ok
|
||||
test switching_to_members_only_removes_unaffiliated_users ... ok
|
||||
test visitor_voice_request_cannot_spoof_identity_or_grant_itself_voice ... ok
|
||||
test preserves_unknown_binary_mixed_room_fields ... ok
|
||||
test room_vcard_owner_only_and_avatar_presence ... ok
|
||||
test persistent_destroy_creates_prosody_tombstone ... ok
|
||||
test reserved_nickname_blocks_other_users ... ok
|
||||
test maintenance_expires_idle_archives_and_tombstones ... ok
|
||||
test archive_history_and_permissions ... ok
|
||||
test native_muc_archive_type_and_anonymity_are_preserved ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-5fac279d2047e8c2)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pep_client_interop.rs (target/debug/deps/pep_client_interop-5234b43d0a197db2)
|
||||
|
||||
running 7 tests
|
||||
test native_component_notification_type_applies_to_events_and_subscription_replay ... ok
|
||||
test missing_own_omemo_bundle_returns_recoverable_item_not_found ... ok
|
||||
test avatar_and_omemo_publish_options_support_readback_and_caps_notifications ... ok
|
||||
test publish_options_match_implicit_notification_defaults_on_old_nodes ... ok
|
||||
test migrated_native_configuration_can_roundtrip_access_model_edit ... ok
|
||||
test native_itemreply_controls_publisher_visibility_in_reads_and_replays ... ok
|
||||
test native_open_and_subscriber_publish_models_preserve_outcast_and_blocking_checks ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
|
||||
|
||||
Running tests/pep_discovery.rs (target/debug/deps/pep_discovery-0117c47dc045796e)
|
||||
|
||||
running 4 tests
|
||||
test standalone_component_does_not_claim_pep_automatic_subscriptions ... ok
|
||||
test account_disco_advertises_pep_without_requiring_a_node ... ok
|
||||
test node_discovery_keeps_node_identity_errors_and_access_checks ... ok
|
||||
test account_discovery_does_not_intercept_server_or_resource_caps ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
|
||||
|
||||
Running tests/preauth.rs (target/debug/deps/preauth-c0a9d9956f0660c0)
|
||||
|
||||
running 10 tests
|
||||
test duplicate_or_wrong_namespace_tokens_do_not_qualify ... ok
|
||||
test unknown_tokens_do_not_create_invite_stores_and_disabled_accounts_cannot_issue ... ok
|
||||
test standard_adhoc_command_returns_contact_uri ... ok
|
||||
test prosody_numeric_expiry_is_consumed_and_other_entries_preserved ... ok
|
||||
test unknown_client_token_is_preserved_on_remote_and_pending_delivery ... ok
|
||||
test concurrent_redemption_has_exactly_one_winner ... ok
|
||||
test identity_scope_does_not_burn_on_wrong_sender_or_leak_to_prosody ... ok
|
||||
test invitations_expire_are_single_use_and_owner_scoped ... ok
|
||||
test local_invitation_updates_both_rosters_without_granting_reverse_subscription ... ok
|
||||
test valid_token_autoapproves_and_sends_reciprocal_request ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-a9ed19090296a4bb)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-d8eeede39db97351)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_persistence.rs (target/debug/deps/pubsub_persistence-b6e76f1d9e8343d0)
|
||||
|
||||
running 18 tests
|
||||
test modern_bookmarks_notify_legacy_capability ... ok
|
||||
test native_string_max_items_satisfies_numeric_publish_precondition ... ok
|
||||
test configurable_limits_component_creation_and_publisher ... ok
|
||||
test configure_requires_owner ... ok
|
||||
test capability_discovery_replays_and_filters_notifications ... ok
|
||||
test nonpersistent_items_stay_in_memory_and_can_be_made_persistent ... ok
|
||||
test full_jid_block_applies_to_reads_subscription_replays_and_events ... ok
|
||||
test reads_prosody_legacy_fixture ... ok
|
||||
test open_model_and_notifications ... ok
|
||||
test pep_persists_namespaces_and_enforces_owner ... ok
|
||||
test publish_options_conflict_is_recoverable_and_preserves_item ... ok
|
||||
test roster_presence_access_and_foreign_subscription_denied ... ok
|
||||
test remote_unavailable_is_scoped_to_addressed_owner_and_cancels_pending ... ok
|
||||
test payload_policy_applies_to_subscription_and_caps_replays ... ok
|
||||
test remote_caps_replay_and_open_node_privacy_revoke ... ok
|
||||
test subscription_options_disable_events_and_require_subscriber ... ok
|
||||
test native_notification_fields_and_retract_policy_are_independent ... ok
|
||||
test component_default_retention_matches_prosody_twenty_items ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-5ab8fb3185d73ee1)
|
||||
|
||||
running 7 tests
|
||||
test native_push_body_lookup_excludes_extensions ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test foreign_account_cannot_register ... ok
|
||||
test queue_coalesces_and_importance_matches_native ... ok
|
||||
test push_summary_never_copies_foreign_namespace_body ... ok
|
||||
test reenable_cancels_old_errors_and_failure_counts_are_per_account ... ok
|
||||
test stable_client_registration_and_targeted_notification ... ok
|
||||
test registrations_notifications_and_authenticated_errors ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.10s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-031392d8372a1a25)
|
||||
|
||||
running 1 test
|
||||
test real_prosody_storage_and_auth_roundtrip ... ignored, requires native supplied Prosody source; run scripts/prosody_compat/verify.sh
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/resource_sessions.rs (target/debug/deps/resource_sessions-6d0e758f141ca6a9)
|
||||
|
||||
running 7 tests
|
||||
test kick_new_leaves_existing_session_unchanged ... ok
|
||||
test invalid_resume_owner_or_ack_does_not_evict_active_session ... ok
|
||||
test increment_skips_occupied_suffixes_and_preserves_sessions ... ok
|
||||
test random_conflicts_get_distinct_resources_for_same_owner ... ok
|
||||
test replacement_revokes_hibernating_resume_and_survives_old_cleanup ... ok
|
||||
test concurrent_default_binds_replace_atomically ... ok
|
||||
test active_resume_preserves_state_and_replaces_transport_notifier ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/sasl_accounts.rs (target/debug/deps/sasl_accounts-d407647416c71ac1)
|
||||
|
||||
running 1 test
|
||||
test disabled_legacy_and_unicode_accounts ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s
|
||||
|
||||
Running tests/storage_accounts.rs (target/debug/deps/storage_accounts-1249c1046b2daedb)
|
||||
|
||||
running 20 tests
|
||||
test broken_roster_is_not_overwritten ... ok
|
||||
test account_purge_refuses_symlink_store_without_touching_other_files ... ok
|
||||
test domain_roster_and_block_jid_normalization ... ok
|
||||
test blocklist_enforcement_api ... ok
|
||||
test malformed_legacy_vcard_and_private_bookmarks_rejected ... ok
|
||||
test malformed_roster_iq_never_mutates ... ok
|
||||
test inbound_subscription_requires_pending_to_grant_to ... ok
|
||||
test private_and_vcard_authorization ... ok
|
||||
test privacy_migration_only_default_deny_jids ... ok
|
||||
test reads_timestamp_blocklist_and_keeps_metadata ... ok
|
||||
test roster_empty_name_and_foreign_group_ignored ... ok
|
||||
test purge_account_exact_files_preserves_others_and_extras ... ok
|
||||
test roster_preserves_subscription_and_metadata ... ok
|
||||
test subscription_handshake_and_cancel ... ok
|
||||
test legacy_bookmarks_respect_host_limit_and_read_over_256 ... ok
|
||||
test bookmarks_private_pep_bidirectional_and_private ... ok
|
||||
test legacy_migration_clears_source_after_success ... ok
|
||||
test password_change_after_purge_never_recreates_account ... ok
|
||||
test vcard_pep_conversion_and_avatar ... ok
|
||||
test creation_and_purge_are_serialized ... ok
|
||||
|
||||
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.53s
|
||||
|
||||
Running tests/storage_compat.rs (target/debug/deps/storage_compat-4143c7a6d1f37ff7)
|
||||
|
||||
running 6 tests
|
||||
test empty_namespace_preserved ... ok
|
||||
test mixed_binary_roundtrip ... ok
|
||||
test stanza_roundtrip ... ok
|
||||
test rejects_cycles_code_and_bad_files ... ok
|
||||
test path_and_atomic_update ... ok
|
||||
test concurrent_updates_do_not_lose_entries ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
|
||||
|
||||
Running tests/tls_binding.rs (target/debug/deps/tls_binding-b54da6a3dac30688)
|
||||
|
||||
running 4 tests
|
||||
test malformed_der_and_pss_parameters_fail_closed ... ok
|
||||
test unknown_and_eddsa_algorithms_fail_closed ... ok
|
||||
test ecdsa_uses_certificate_signature_hash ... ok
|
||||
test rsa_signature_digest_and_weak_hash_upgrade ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s
|
||||
|
||||
Running tests/tls_plus_network.rs (target/debug/deps/tls_plus_network-c3c8506e59bf59bc)
|
||||
|
||||
running 2 tests
|
||||
test disabling_plus_hides_bindings_and_accepts_scram_y_with_mechanisms_only_ssdp ... ok
|
||||
test starttls_scram_plus_binds_real_tls_and_authenticates_ssdp_sasl1_and_sasl2 ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.99s
|
||||
|
||||
Doc-tests rust_xmpp
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Checking rust-xmpp v0.7.2 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.96s
|
||||
Compiling rust-xmpp v0.7.2 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `release` profile [optimized] target(s) in 23.74s
|
||||
PASS: integrated TCP roster/subscriptions, client IQ routing, CSI buffering/keepalive flush, MAM, blocking, OMEMO PEP, MUC, offline replay and SM resumption
|
||||
PASS: graceful SIGTERM shutdown
|
||||
PASS: independent SCRAM-SHA-1 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: independent SCRAM-SHA-256 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: Android TLS1.2 selector, TLS1.2/1.3 SCRAM SHA1/256 PLUS, SASL1/2, SSDP on/off and invalid binding rejection
|
||||
PASS: JSON file logging, TLS/auth/bind correlation, rejection reasons, secret redaction and SIGHUP rotation
|
||||
PASS: 20 TLS1.2/1.3 SASL1/2 cases: prepared PLAIN identities and canonical binds, invalid authz rejection, SCRAM abort/retry and active exchange restart
|
||||
PASS: WSS SCRAM-SHA-256 SASL1/SASL2 with GS2 y, absent CB/PLUS, SSDP without CB separator, server signatures, bind and ping
|
||||
PASS: SASL2 Bind2 TLS flow, inline SM/CSI/Carbons, private random resource, malformed requests, authentication failure and fallback
|
||||
PASS: bind2-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-enabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-enabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: sm-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: sm-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: enabled-False-registration-False
|
||||
PASS: enabled-False-registration-True
|
||||
PASS: enabled-True-registration-False
|
||||
PASS: enabled-True-registration-True
|
||||
PASS: Gajim domain/account discovery, both label catalogs, authenticated password changes, IBR registration gates and fresh logins
|
||||
PASS: SASL2 inline SM active/EOF resume, authenticated owner/id/h checks, replay ordering, full JID, Bind2 fallback and malformed requests
|
||||
PASS: TLS account/domain discovery with PEP and push enabled/disabled; real push enable, publish options, per-node and service-wide disable
|
||||
PASS: TLS Monocles/Conversations PEP first-run, no-to publishing, owner config recovery, migrated metadata, device item selectors and restart persistence
|
||||
PASS: TLS invitation command discovery, preapproval, single-use mutual roster, replay denial, unknown preauth forwarding/offline pending, account isolation
|
||||
PASS: TLS conflict_resolve=default, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_old, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_new, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=increment, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=random, live and hibernating SM resources
|
||||
PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse, graceful SM close and same-resource relogin under kick_new
|
||||
{
|
||||
"total_load_wall_seconds": 6.652,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.558,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 51.57,
|
||||
"p95_ms": 70.794,
|
||||
"max_ms": 90.506
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 13.511,
|
||||
"p95_ms": 22.338,
|
||||
"max_ms": 26.333
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 3.813,
|
||||
"metrics_before": {
|
||||
"rss_kib": 7756,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 26100,
|
||||
"cpu_seconds": 1.05,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 26844,
|
||||
"cpu_seconds": 7.63,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 26844,
|
||||
"cpu_seconds": 7.67,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 26844,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
Compiling rust-xmpp v0.7.2 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.57s
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-571cd230980015ef)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-5fac279d2047e8c2)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-a9ed19090296a4bb)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-d8eeede39db97351)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-5ab8fb3185d73ee1)
|
||||
|
||||
running 1 test
|
||||
test native_push_body_lookup_excludes_extensions ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-031392d8372a1a25)
|
||||
|
||||
running 1 test
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-1
|
||||
PROSODY_NATIVE_FINAL_OK SHA-1
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-256
|
||||
PROSODY_NATIVE_FINAL_OK SHA-256
|
||||
test real_prosody_storage_and_auth_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.10s
|
||||
|
||||
Compiling rust-xmpp v0.7.2 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.23s
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-e0152fda4a1323e9)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_tls_external_bidirectional ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.56s
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
Compiling rust-xmpp v0.7.2 (/tmp/xmpp072-orderbaseline)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 15.25s
|
||||
Running tests/pep_item_order.rs (target/debug/deps/pep_item_order-ed2adfea48c80983)
|
||||
|
||||
running 2 tests
|
||||
test native_prosody_orders_retained_pep_items_newest_first ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test first_pep_item_is_current_device_list_even_with_retained_old_items ... FAILED
|
||||
|
||||
failures:
|
||||
|
||||
---- first_pep_item_is_current_device_list_even_with_retained_old_items stdout ----
|
||||
|
||||
thread 'first_pep_item_is_current_device_list_even_with_retained_old_items' (463) panicked at tests/pep_item_order.rs:68:9:
|
||||
assertion `left == right` failed: <iq xmlns='jabber:client' type='result' id='order' from='alice@example.org'><pubsub xmlns='http://jabber.org/protocol/pubsub'><items node='eu.siacs.conversations.axolotl.devicelist'><item id='old'><list xmlns='eu.siacs.conversations.axolotl'></list></item><item id='current'><list xmlns='eu.siacs.conversations.axolotl'><device xmlns='eu.siacs.conversations.axolotl' id='42'></device></list></item></items></pubsub></iq>
|
||||
left: Some("old")
|
||||
right: Some("current")
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
|
||||
|
||||
failures:
|
||||
first_pep_item_is_current_device_list_even_with_retained_old_items
|
||||
|
||||
test result: FAILED. 0 passed; 1 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.14s
|
||||
|
||||
error: test failed, to rerun pass `--test pep_item_order`
|
||||
@@ -0,0 +1,16 @@
|
||||
[
|
||||
{
|
||||
"name": "wthome.ru",
|
||||
"type": "DS",
|
||||
"Status": 0,
|
||||
"AD": false,
|
||||
"Answer": null
|
||||
},
|
||||
{
|
||||
"name": "wthome.ru",
|
||||
"type": "DNSKEY",
|
||||
"Status": 0,
|
||||
"AD": false,
|
||||
"Answer": null
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"total_load_wall_seconds": 6.869,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.56,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 49.877,
|
||||
"p95_ms": 77.482,
|
||||
"max_ms": 85.857
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 13.502,
|
||||
"p95_ms": 22.717,
|
||||
"max_ms": 25.971
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 4.027,
|
||||
"metrics_before": {
|
||||
"rss_kib": 7592,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 25772,
|
||||
"cpu_seconds": 1.02,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 26420,
|
||||
"cpu_seconds": 7.81,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 26484,
|
||||
"cpu_seconds": 7.84,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 26484,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"version": "0.7.2",
|
||||
"authorization_successes": 9,
|
||||
"pubsub_iq_records": 126,
|
||||
"omemo_iq_results": 41,
|
||||
"omemo_iq_errors": 0,
|
||||
"pubsub_error_classes": {
|
||||
"item-not-found": 4,
|
||||
"forbidden": 1
|
||||
},
|
||||
"user_confirmed_force_stop": true,
|
||||
"caveat": "Original records contain neither item counts nor payload structure; no exact deployed PEP cause established"
|
||||
}
|
||||
@@ -0,0 +1,601 @@
|
||||
Compiling rust-xmpp v0.7.3 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 7.51s
|
||||
Running unittests src/lib.rs (target/debug/deps/rust_xmpp-0f663f8738159bba)
|
||||
|
||||
running 27 tests
|
||||
test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok
|
||||
test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok
|
||||
test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok
|
||||
test logging::tests::console_aliases_share_one_sink_with_combined_levels ... ok
|
||||
test http_transport::tests::independent_framing ... ok
|
||||
test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok
|
||||
test sasl::tests::reject_malformed_and_downgrade ... ok
|
||||
test federation::tests::stream_restarts_compare_canonical_domains ... ok
|
||||
test http_transport::tests::bosh_processing_capacity_is_bounded ... ok
|
||||
test server::authorization_tests::pep_diagnostics_count_only_first_item_devices_without_logging_ids ... ok
|
||||
test server::authorization_tests::pep_diagnostics_exclude_payloads_and_identifiers ... ok
|
||||
test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok
|
||||
test sessions::tests::acknowledgement_wraps ... ok
|
||||
test sessions::tests::graceful_disconnect_is_not_resumable ... ok
|
||||
test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok
|
||||
test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok
|
||||
test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok
|
||||
test wire::tests::declarations_rejected ... ok
|
||||
test wire::tests::fragmented_and_pipelined ... ok
|
||||
test wire::tests::invalid_namespace_and_declarations_rejected ... ok
|
||||
test sasl::tests::rfc5802_sha1_vector ... ok
|
||||
test sasl::tests::sha256_independent_python_vector ... ok
|
||||
test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok
|
||||
test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok
|
||||
test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok
|
||||
test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok
|
||||
test admin::tests::real_admin_xml_protocol_over_duplex ... ok
|
||||
|
||||
test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.58s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/rust_xmpp-f111db137f292507)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/admin_socket.rs (target/debug/deps/admin_socket-1724b74b0c8303d7)
|
||||
|
||||
running 1 test
|
||||
test prosody_wire_commands_password_prompt_and_safe_errors ... ignored, requires AF_UNIX socket permission; run on target host with --ignored
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-1fad2a650578c1c3)
|
||||
|
||||
running 14 tests
|
||||
test archive_larger_than_128mib_streams ... ignored, large-file scalability regression; run explicitly
|
||||
test mam_preferences_persist ... ok
|
||||
test legacy_records_binary_cache_and_roundtrip ... ok
|
||||
test append_is_incremental_and_recovers_torn_tail ... ok
|
||||
test corrupt_archive_reports_server_error_and_namespace_stripping_is_precise ... ok
|
||||
test archive_roundtrip_preserves_default_namespace_resets ... ok
|
||||
test equal_cursors_and_normalized_query_jids ... ok
|
||||
test real_archive_sid_and_sender_privacy ... ok
|
||||
test smart_enable_and_message_selection ... ok
|
||||
test zero_page_dates_and_invalid_forms ... ok
|
||||
test muc_archive_filters_stanza_kind_instead_of_sender_jid ... ok
|
||||
test mam_paging_filters_and_forbidden ... ok
|
||||
test extended_ids_ranges_flip_and_metadata ... ok
|
||||
test namespaces_expiry_and_concurrent_append ... ok
|
||||
|
||||
test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.06s
|
||||
|
||||
Running tests/auth.rs (target/debug/deps/auth-253cdd8ca8b681a5)
|
||||
|
||||
running 3 tests
|
||||
test traversal_and_malicious_account_records_rejected ... ok
|
||||
test create_and_read_hashed_accounts ... ok
|
||||
test authentication_prepares_names_without_relaxing_account_management ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s
|
||||
|
||||
Running tests/cli.rs (target/debug/deps/cli-3b3903d6bbbd0db6)
|
||||
|
||||
running 2 tests
|
||||
test server_cannot_be_mistaken_for_running_service ... ok
|
||||
test conversion_preserves_source_and_refuses_overwrite ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/config.rs (target/debug/deps/config-81c382262d5787ea)
|
||||
|
||||
running 12 tests
|
||||
test component_can_explicitly_enable_global_modules ... ok
|
||||
test include_cycles_rejected ... ok
|
||||
test declarations_and_overrides ... ok
|
||||
test include_has_own_global_scope_and_parent_scope_is_restored ... ok
|
||||
test storage_paths_encode_like_prosody ... ok
|
||||
test tables_cannot_recurse_forever ... ok
|
||||
test supplied_configuration_scopes_arithmetic_and_modules ... ok
|
||||
test runtime_capabilities_are_unavailable ... ok
|
||||
test supplied_config_matches_original_prosody_loader ... ok
|
||||
test malformed_values_rejected ... ok
|
||||
test all_formats_round_trip_actual_config ... ok
|
||||
test loops_are_bounded ... ok
|
||||
|
||||
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/csi.rs (target/debug/deps/csi-29a3dad586bedc07)
|
||||
|
||||
running 2 tests
|
||||
test bounded_queue_flush_delay_activity_and_grace ... ok
|
||||
test native_importance_rules ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-b80e079dceed1e99)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/data_lock.rs (target/debug/deps/data_lock-cdb0faa186811965)
|
||||
|
||||
running 2 tests
|
||||
test child_process_probe ... ok
|
||||
test excludes_another_process_and_releases_on_drop ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/debug_legacy.rs (target/debug/deps/debug_legacy-0d219a057693c1cc)
|
||||
|
||||
running 1 test
|
||||
test debug_empty_legacy_bind ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
|
||||
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-86baa733ed74593f)
|
||||
|
||||
running 3 tests
|
||||
test native_prosody_tls_external_bidirectional ... ignored, requires native Prosody cafd74b9c5ea and Lua TLS dependencies
|
||||
test mutual_tls_external_delivery_and_certificate_identity_rejection ... ok
|
||||
test reuses_connections_serializes_writes_and_retires_idle_or_closed_peers ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.19s
|
||||
|
||||
Running tests/gajim_features.rs (target/debug/deps/gajim_features-087e526d304576d6)
|
||||
|
||||
running 6 tests
|
||||
test policy_catalog_selects_default_policy_and_maps_display_and_explicit_label ... ok
|
||||
test security_catalog_default_is_a_real_label_and_module_can_be_disabled ... ok
|
||||
test unsupported_security_policy_configuration_returns_explicit_error ... ok
|
||||
test security_catalogs_serve_both_versions_and_preserve_requested_target ... ok
|
||||
test actual_example_policy_configuration_exposes_classifications_as_catalog_labels ... ok
|
||||
test malformed_or_unknown_policy_catalog_schemas_are_rejected ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/http_transport.rs (target/debug/deps/http_transport-4ac27aefb7b10d67)
|
||||
|
||||
running 10 tests
|
||||
test configured_origin_is_enforced ... ok
|
||||
test bosh_preserves_namespace_inherited_from_body ... ok
|
||||
test transport_paths_and_cors_preflight_match_prosody ... ok
|
||||
test bosh_session_retries_restart_termination ... ok
|
||||
test bosh_termination_waits_for_graceful_cleanup_before_reconnect ... ok
|
||||
test bosh_reorders_two_requests_without_replaying_stanzas ... ok
|
||||
test websocket_frames_are_independent_xml ... ok
|
||||
test websocket_disconnect_delivers_eof_without_graceful_close ... ok
|
||||
test websocket_close_allows_graceful_engine_cleanup ... ok
|
||||
test bosh_retry_survives_aborted_http_request_without_replaying_stanzas ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
|
||||
|
||||
Running tests/http_upload.rs (target/debug/deps/http_upload-8388a7005234b59f)
|
||||
|
||||
running 5 tests
|
||||
test https_endpoint_uses_real_tls ... ok
|
||||
test percent_escape_case_and_equivalent_url_spelling ... ok
|
||||
test persisted_prosody_archive_and_hs256_slot_survive_without_sidecar ... ok
|
||||
test expired_upload_releases_quota ... ok
|
||||
test upload_authorization_streaming_ranges_and_restart ... ok
|
||||
|
||||
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
|
||||
|
||||
Running tests/iq_errors.rs (target/debug/deps/iq_errors-5fbec3c5e9670c88)
|
||||
|
||||
running 2 tests
|
||||
test pep_errors_identify_the_account_and_echo_the_request ... ok
|
||||
test server_errors_without_target_remain_unaddressed_and_escape_attributes ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/logging.rs (target/debug/deps/logging-9911e21d602ab0af)
|
||||
|
||||
running 10 tests
|
||||
test native_console_shorthands_are_accepted ... ok
|
||||
test rejects_malformed_configuration ... ok
|
||||
test json_records_and_bounded_ranges ... ok
|
||||
test filters_appends_escapes_and_redacts ... ok
|
||||
test failed_reopen_keeps_all_original_handles ... ok
|
||||
test explicit_sink_levels_select_exactly_and_deduplicate ... ok
|
||||
test shared_sink_unions_levels_and_preserves_distinct_destinations ... ok
|
||||
test overlapping_shorthand_destinations_receive_each_record_once ... ok
|
||||
test reopen_rotated_files_updates_clones ... ok
|
||||
test cloned_loggers_serialize_records ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/message_routing.rs (target/debug/deps/message_routing-6218f6512add553f)
|
||||
|
||||
running 2 tests
|
||||
test unknown_resource_falls_back_to_available_bare_jid ... ok
|
||||
test headline_uses_all_nonnegative_available_resources_and_errors_never_fallback ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_access.rs (target/debug/deps/muc_access-24d58593458fb64a)
|
||||
|
||||
running 3 tests
|
||||
test moderators_cannot_kick_or_demote_other_moderators ... ok
|
||||
test nested_affiliations_do_not_fall_back_to_obsolete_flat_entries ... ok
|
||||
test binary_occupant_id_salt_survives_saves_and_restarts ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_domain_bans.rs (target/debug/deps/muc_domain_bans-a80bb9e58bf933ab)
|
||||
|
||||
running 2 tests
|
||||
test applying_domain_ban_removes_remote_occupants_and_blocks_rejoin ... ok
|
||||
test native_domain_bans_block_remote_users_but_allow_explicit_members ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_flow.rs (target/debug/deps/muc_flow-6afe34edd1bdf71a)
|
||||
|
||||
running 18 tests
|
||||
test configured_lock_timeout_expires_without_owner_submission ... ok
|
||||
test iq_response_requires_expected_sender ... ok
|
||||
test join_lock_chat_leave ... ok
|
||||
test authorization_and_conflict ... ok
|
||||
test occupant_id_is_stable_and_spoofed_ids_removed ... ok
|
||||
test nick_invite_destroy_and_local_creation ... ok
|
||||
test multiple_resources_share_nick_and_private_delivery ... ok
|
||||
test restored_temporary_room_is_deleted_after_last_disconnect ... ok
|
||||
test persistence_roundtrip ... ok
|
||||
test switching_to_members_only_removes_unaffiliated_users ... ok
|
||||
test preserves_unknown_binary_mixed_room_fields ... ok
|
||||
test room_vcard_owner_only_and_avatar_presence ... ok
|
||||
test visitor_voice_request_cannot_spoof_identity_or_grant_itself_voice ... ok
|
||||
test persistent_destroy_creates_prosody_tombstone ... ok
|
||||
test reserved_nickname_blocks_other_users ... ok
|
||||
test maintenance_expires_idle_archives_and_tombstones ... ok
|
||||
test native_muc_archive_type_and_anonymity_are_preserved ... ok
|
||||
test archive_history_and_permissions ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-09a0b03a209e7a60)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pep_client_interop.rs (target/debug/deps/pep_client_interop-413fe2b7907d0a87)
|
||||
|
||||
running 7 tests
|
||||
test native_component_notification_type_applies_to_events_and_subscription_replay ... ok
|
||||
test missing_own_omemo_bundle_returns_recoverable_item_not_found ... ok
|
||||
test publish_options_match_implicit_notification_defaults_on_old_nodes ... ok
|
||||
test avatar_and_omemo_publish_options_support_readback_and_caps_notifications ... ok
|
||||
test native_itemreply_controls_publisher_visibility_in_reads_and_replays ... ok
|
||||
test migrated_native_configuration_can_roundtrip_access_model_edit ... ok
|
||||
test native_open_and_subscriber_publish_models_preserve_outcast_and_blocking_checks ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s
|
||||
|
||||
Running tests/pep_discovery.rs (target/debug/deps/pep_discovery-a9cecb10c170ccf6)
|
||||
|
||||
running 4 tests
|
||||
test standalone_component_does_not_claim_pep_automatic_subscriptions ... ok
|
||||
test node_discovery_keeps_node_identity_errors_and_access_checks ... ok
|
||||
test account_disco_advertises_pep_without_requiring_a_node ... ok
|
||||
test account_discovery_does_not_intercept_server_or_resource_caps ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
|
||||
|
||||
Running tests/pep_item_order.rs (target/debug/deps/pep_item_order-ee0388686830a663)
|
||||
|
||||
running 2 tests
|
||||
test native_prosody_orders_retained_pep_items_newest_first ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test first_pep_item_is_current_device_list_even_with_retained_old_items ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.28s
|
||||
|
||||
Running tests/preauth.rs (target/debug/deps/preauth-ba8801cabfc94056)
|
||||
|
||||
running 10 tests
|
||||
test duplicate_or_wrong_namespace_tokens_do_not_qualify ... ok
|
||||
test standard_adhoc_command_returns_contact_uri ... ok
|
||||
test unknown_tokens_do_not_create_invite_stores_and_disabled_accounts_cannot_issue ... ok
|
||||
test prosody_numeric_expiry_is_consumed_and_other_entries_preserved ... ok
|
||||
test unknown_client_token_is_preserved_on_remote_and_pending_delivery ... ok
|
||||
test concurrent_redemption_has_exactly_one_winner ... ok
|
||||
test identity_scope_does_not_burn_on_wrong_sender_or_leak_to_prosody ... ok
|
||||
test invitations_expire_are_single_use_and_owner_scoped ... ok
|
||||
test valid_token_autoapproves_and_sends_reciprocal_request ... ok
|
||||
test local_invitation_updates_both_rosters_without_granting_reverse_subscription ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-cba4ee3b226e1595)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-bcfd8bc2adaa8ad8)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_persistence.rs (target/debug/deps/pubsub_persistence-f05a14153b319232)
|
||||
|
||||
running 18 tests
|
||||
test modern_bookmarks_notify_legacy_capability ... ok
|
||||
test native_string_max_items_satisfies_numeric_publish_precondition ... ok
|
||||
test configurable_limits_component_creation_and_publisher ... ok
|
||||
test configure_requires_owner ... ok
|
||||
test capability_discovery_replays_and_filters_notifications ... ok
|
||||
test nonpersistent_items_stay_in_memory_and_can_be_made_persistent ... ok
|
||||
test reads_prosody_legacy_fixture ... ok
|
||||
test open_model_and_notifications ... ok
|
||||
test pep_persists_namespaces_and_enforces_owner ... ok
|
||||
test full_jid_block_applies_to_reads_subscription_replays_and_events ... ok
|
||||
test publish_options_conflict_is_recoverable_and_preserves_item ... ok
|
||||
test remote_caps_replay_and_open_node_privacy_revoke ... ok
|
||||
test remote_unavailable_is_scoped_to_addressed_owner_and_cancels_pending ... ok
|
||||
test roster_presence_access_and_foreign_subscription_denied ... ok
|
||||
test subscription_options_disable_events_and_require_subscriber ... ok
|
||||
test native_notification_fields_and_retract_policy_are_independent ... ok
|
||||
test payload_policy_applies_to_subscription_and_caps_replays ... ok
|
||||
test component_default_retention_matches_prosody_twenty_items ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-1b427f1bc8b33016)
|
||||
|
||||
running 7 tests
|
||||
test native_push_body_lookup_excludes_extensions ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test foreign_account_cannot_register ... ok
|
||||
test push_summary_never_copies_foreign_namespace_body ... ok
|
||||
test queue_coalesces_and_importance_matches_native ... ok
|
||||
test stable_client_registration_and_targeted_notification ... ok
|
||||
test reenable_cancels_old_errors_and_failure_counts_are_per_account ... ok
|
||||
test registrations_notifications_and_authenticated_errors ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-a839a83d42b1c66e)
|
||||
|
||||
running 1 test
|
||||
test real_prosody_storage_and_auth_roundtrip ... ignored, requires native supplied Prosody source; run scripts/prosody_compat/verify.sh
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/resource_sessions.rs (target/debug/deps/resource_sessions-49eaa11cd201a8b9)
|
||||
|
||||
running 7 tests
|
||||
test increment_skips_occupied_suffixes_and_preserves_sessions ... ok
|
||||
test invalid_resume_owner_or_ack_does_not_evict_active_session ... ok
|
||||
test random_conflicts_get_distinct_resources_for_same_owner ... ok
|
||||
test replacement_revokes_hibernating_resume_and_survives_old_cleanup ... ok
|
||||
test kick_new_leaves_existing_session_unchanged ... ok
|
||||
test concurrent_default_binds_replace_atomically ... ok
|
||||
test active_resume_preserves_state_and_replaces_transport_notifier ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/sasl_accounts.rs (target/debug/deps/sasl_accounts-8dbe73b1fae9056d)
|
||||
|
||||
running 1 test
|
||||
test disabled_legacy_and_unicode_accounts ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.65s
|
||||
|
||||
Running tests/storage_accounts.rs (target/debug/deps/storage_accounts-1445bba0c39f0315)
|
||||
|
||||
running 20 tests
|
||||
test account_purge_refuses_symlink_store_without_touching_other_files ... ok
|
||||
test broken_roster_is_not_overwritten ... ok
|
||||
test malformed_legacy_vcard_and_private_bookmarks_rejected ... ok
|
||||
test inbound_subscription_requires_pending_to_grant_to ... ok
|
||||
test blocklist_enforcement_api ... ok
|
||||
test malformed_roster_iq_never_mutates ... ok
|
||||
test domain_roster_and_block_jid_normalization ... ok
|
||||
test private_and_vcard_authorization ... ok
|
||||
test privacy_migration_only_default_deny_jids ... ok
|
||||
test reads_timestamp_blocklist_and_keeps_metadata ... ok
|
||||
test purge_account_exact_files_preserves_others_and_extras ... ok
|
||||
test roster_empty_name_and_foreign_group_ignored ... ok
|
||||
test roster_preserves_subscription_and_metadata ... ok
|
||||
test subscription_handshake_and_cancel ... ok
|
||||
test bookmarks_private_pep_bidirectional_and_private ... ok
|
||||
test legacy_bookmarks_respect_host_limit_and_read_over_256 ... ok
|
||||
test legacy_migration_clears_source_after_success ... ok
|
||||
test password_change_after_purge_never_recreates_account ... ok
|
||||
test vcard_pep_conversion_and_avatar ... ok
|
||||
test creation_and_purge_are_serialized ... ok
|
||||
|
||||
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.55s
|
||||
|
||||
Running tests/storage_compat.rs (target/debug/deps/storage_compat-b6f8e0d1a4b7c489)
|
||||
|
||||
running 6 tests
|
||||
test empty_namespace_preserved ... ok
|
||||
test stanza_roundtrip ... ok
|
||||
test mixed_binary_roundtrip ... ok
|
||||
test path_and_atomic_update ... ok
|
||||
test rejects_cycles_code_and_bad_files ... ok
|
||||
test concurrent_updates_do_not_lose_entries ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/tls_binding.rs (target/debug/deps/tls_binding-da733d5b850507ca)
|
||||
|
||||
running 4 tests
|
||||
test malformed_der_and_pss_parameters_fail_closed ... ok
|
||||
test unknown_and_eddsa_algorithms_fail_closed ... ok
|
||||
test ecdsa_uses_certificate_signature_hash ... ok
|
||||
test rsa_signature_digest_and_weak_hash_upgrade ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
|
||||
|
||||
Running tests/tls_plus_network.rs (target/debug/deps/tls_plus_network-0f35e80a04c03ca0)
|
||||
|
||||
running 2 tests
|
||||
test disabling_plus_hides_bindings_and_accepts_scram_y_with_mechanisms_only_ssdp ... ok
|
||||
test starttls_scram_plus_binds_real_tls_and_authenticates_ssdp_sasl1_and_sasl2 ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.61s
|
||||
|
||||
Doc-tests rust_xmpp
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Checking rust-xmpp v0.7.3 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.58s
|
||||
Compiling rust-xmpp v0.7.3 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `release` profile [optimized] target(s) in 23.12s
|
||||
PASS: integrated TCP roster/subscriptions, client IQ routing, CSI buffering/keepalive flush, MAM, blocking, OMEMO PEP, MUC, offline replay and SM resumption
|
||||
PASS: graceful SIGTERM shutdown
|
||||
PASS: independent SCRAM-SHA-1 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: independent SCRAM-SHA-256 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: Android TLS1.2 selector, TLS1.2/1.3 SCRAM SHA1/256 PLUS, SASL1/2, SSDP on/off and invalid binding rejection
|
||||
PASS: JSON file logging, TLS/auth/bind correlation, rejection reasons, secret redaction and SIGHUP rotation
|
||||
PASS: 20 TLS1.2/1.3 SASL1/2 cases: prepared PLAIN identities and canonical binds, invalid authz rejection, SCRAM abort/retry and active exchange restart
|
||||
PASS: WSS SCRAM-SHA-256 SASL1/SASL2 with GS2 y, absent CB/PLUS, SSDP without CB separator, server signatures, bind and ping
|
||||
PASS: SASL2 Bind2 TLS flow, inline SM/CSI/Carbons, private random resource, malformed requests, authentication failure and fallback
|
||||
PASS: bind2-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-enabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-enabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: sm-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: sm-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: enabled-False-registration-False
|
||||
PASS: enabled-False-registration-True
|
||||
PASS: enabled-True-registration-False
|
||||
PASS: enabled-True-registration-True
|
||||
PASS: Gajim domain/account discovery, both label catalogs, authenticated password changes, IBR registration gates and fresh logins
|
||||
PASS: SASL2 inline SM active/EOF resume, authenticated owner/id/h checks, replay ordering, full JID, Bind2 fallback and malformed requests
|
||||
PASS: TLS account/domain discovery with PEP and push enabled/disabled; real push enable, publish options, per-node and service-wide disable
|
||||
PASS: TLS Monocles/Conversations PEP first-run, no-to publishing, owner config recovery, migrated metadata, device item selectors and restart persistence
|
||||
PASS: Android first-item device-list parsing sees latest publish and replacement before and after restart
|
||||
PASS: TLS invitation command discovery, preapproval, single-use mutual roster, replay denial, unknown preauth forwarding/offline pending, account isolation
|
||||
PASS: TLS conflict_resolve=default, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_old, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_new, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=increment, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=random, live and hibernating SM resources
|
||||
PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse, graceful SM close and same-resource relogin under kick_new
|
||||
{
|
||||
"total_load_wall_seconds": 6.869,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.56,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 49.877,
|
||||
"p95_ms": 77.482,
|
||||
"max_ms": 85.857
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 13.502,
|
||||
"p95_ms": 22.717,
|
||||
"max_ms": 25.971
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 4.027,
|
||||
"metrics_before": {
|
||||
"rss_kib": 7592,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 25772,
|
||||
"cpu_seconds": 1.02,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 26420,
|
||||
"cpu_seconds": 7.81,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 26484,
|
||||
"cpu_seconds": 7.84,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 26484,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
Compiling rust-xmpp v0.7.3 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.50s
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-b80e079dceed1e99)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-09a0b03a209e7a60)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
|
||||
|
||||
Running tests/pep_item_order.rs (target/debug/deps/pep_item_order-ee0388686830a663)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_orders_retained_pep_items_newest_first ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.13s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-cba4ee3b226e1595)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-bcfd8bc2adaa8ad8)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-1b427f1bc8b33016)
|
||||
|
||||
running 1 test
|
||||
test native_push_body_lookup_excludes_extensions ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-a839a83d42b1c66e)
|
||||
|
||||
running 1 test
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-1
|
||||
PROSODY_NATIVE_FINAL_OK SHA-1
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-256
|
||||
PROSODY_NATIVE_FINAL_OK SHA-256
|
||||
test real_prosody_storage_and_auth_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.05s
|
||||
|
||||
Compiling rust-xmpp v0.7.3 (/workspace/scratch/362577cdf2e0/rust-xmpp-next)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.33s
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-86baa733ed74593f)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_tls_external_bidirectional ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.77s
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
[
|
||||
{
|
||||
"type": "DS",
|
||||
"Status": 0,
|
||||
"AD": false,
|
||||
"Answer": null
|
||||
},
|
||||
{
|
||||
"type": "DNSKEY",
|
||||
"Status": 0,
|
||||
"AD": false,
|
||||
"Answer": null
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"total_load_wall_seconds": 7.856,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.632,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 57.745,
|
||||
"p95_ms": 76.618,
|
||||
"max_ms": 120.568
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 14.512,
|
||||
"p95_ms": 19.865,
|
||||
"max_ms": 23.436
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 4.919,
|
||||
"metrics_before": {
|
||||
"rss_kib": 7328,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 26316,
|
||||
"cpu_seconds": 1.15,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 26872,
|
||||
"cpu_seconds": 8.19,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 26872,
|
||||
"cpu_seconds": 8.23,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 26872,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"server_version": "0.7.3",
|
||||
"json_records": 201,
|
||||
"own_omemo_iq": 12,
|
||||
"own_omemo_errors": 0,
|
||||
"own_omemo_device_xml_counts": [
|
||||
1,
|
||||
2,
|
||||
6
|
||||
],
|
||||
"confirmed_browser_origin": "https://conversejs.wthome.ru",
|
||||
"exact_pep_cause_proven": false
|
||||
}
|
||||
@@ -0,0 +1,615 @@
|
||||
Compiling rust-xmpp v0.7.4 (/workspace/scratch/362577cdf2e0/recovered/rust-xmpp)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 10.54s
|
||||
Running unittests src/lib.rs (target/debug/deps/rust_xmpp-803cf50cf0e8de10)
|
||||
|
||||
running 28 tests
|
||||
test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok
|
||||
test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok
|
||||
test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok
|
||||
test http_transport::tests::independent_framing ... ok
|
||||
test logging::tests::console_aliases_share_one_sink_with_combined_levels ... ok
|
||||
test http_transport::tests::bosh_processing_capacity_is_bounded ... ok
|
||||
test sasl::tests::reject_malformed_and_downgrade ... ok
|
||||
test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok
|
||||
test server::authorization_tests::http_interfaces_follow_secure_override_wildcards_and_global_fallback ... ok
|
||||
test federation::tests::stream_restarts_compare_canonical_domains ... ok
|
||||
test server::authorization_tests::pep_diagnostics_count_only_first_item_devices_without_logging_ids ... ok
|
||||
test server::authorization_tests::pep_diagnostics_exclude_payloads_and_identifiers ... ok
|
||||
test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok
|
||||
test sessions::tests::acknowledgement_wraps ... ok
|
||||
test sessions::tests::graceful_disconnect_is_not_resumable ... ok
|
||||
test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok
|
||||
test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok
|
||||
test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok
|
||||
test wire::tests::declarations_rejected ... ok
|
||||
test wire::tests::fragmented_and_pipelined ... ok
|
||||
test wire::tests::invalid_namespace_and_declarations_rejected ... ok
|
||||
test sasl::tests::rfc5802_sha1_vector ... ok
|
||||
test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok
|
||||
test sasl::tests::sha256_independent_python_vector ... ok
|
||||
test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok
|
||||
test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok
|
||||
test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok
|
||||
test admin::tests::real_admin_xml_protocol_over_duplex ... ok
|
||||
|
||||
test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/rust_xmpp-639caac9c9347e9b)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/admin_socket.rs (target/debug/deps/admin_socket-32190fb1abeaf6ce)
|
||||
|
||||
running 1 test
|
||||
test prosody_wire_commands_password_prompt_and_safe_errors ... ignored, requires AF_UNIX socket permission; run on target host with --ignored
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-a5559b36ae2aa127)
|
||||
|
||||
running 14 tests
|
||||
test archive_larger_than_128mib_streams ... ignored, large-file scalability regression; run explicitly
|
||||
test mam_preferences_persist ... ok
|
||||
test corrupt_archive_reports_server_error_and_namespace_stripping_is_precise ... ok
|
||||
test append_is_incremental_and_recovers_torn_tail ... ok
|
||||
test legacy_records_binary_cache_and_roundtrip ... ok
|
||||
test smart_enable_and_message_selection ... ok
|
||||
test archive_roundtrip_preserves_default_namespace_resets ... ok
|
||||
test real_archive_sid_and_sender_privacy ... ok
|
||||
test equal_cursors_and_normalized_query_jids ... ok
|
||||
test muc_archive_filters_stanza_kind_instead_of_sender_jid ... ok
|
||||
test zero_page_dates_and_invalid_forms ... ok
|
||||
test mam_paging_filters_and_forbidden ... ok
|
||||
test extended_ids_ranges_flip_and_metadata ... ok
|
||||
test namespaces_expiry_and_concurrent_append ... ok
|
||||
|
||||
test result: ok. 13 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/auth.rs (target/debug/deps/auth-a9d6041897920545)
|
||||
|
||||
running 3 tests
|
||||
test traversal_and_malicious_account_records_rejected ... ok
|
||||
test create_and_read_hashed_accounts ... ok
|
||||
test authentication_prepares_names_without_relaxing_account_management ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.00s
|
||||
|
||||
Running tests/cli.rs (target/debug/deps/cli-53d7a1e358e7d369)
|
||||
|
||||
running 2 tests
|
||||
test server_cannot_be_mistaken_for_running_service ... ok
|
||||
test conversion_preserves_source_and_refuses_overwrite ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/config.rs (target/debug/deps/config-4040e6dfb24c249a)
|
||||
|
||||
running 12 tests
|
||||
test include_has_own_global_scope_and_parent_scope_is_restored ... ok
|
||||
test component_can_explicitly_enable_global_modules ... ok
|
||||
test declarations_and_overrides ... ok
|
||||
test include_cycles_rejected ... ok
|
||||
test storage_paths_encode_like_prosody ... ok
|
||||
test tables_cannot_recurse_forever ... ok
|
||||
test runtime_capabilities_are_unavailable ... ok
|
||||
test supplied_configuration_scopes_arithmetic_and_modules ... ok
|
||||
test malformed_values_rejected ... ok
|
||||
test supplied_config_matches_original_prosody_loader ... ok
|
||||
test all_formats_round_trip_actual_config ... ok
|
||||
test loops_are_bounded ... ok
|
||||
|
||||
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/csi.rs (target/debug/deps/csi-4ca167ddb91d0fc9)
|
||||
|
||||
running 2 tests
|
||||
test bounded_queue_flush_delay_activity_and_grace ... ok
|
||||
test native_importance_rules ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-d041e21e009bbc52)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/data_lock.rs (target/debug/deps/data_lock-eadcfca212638c36)
|
||||
|
||||
running 2 tests
|
||||
test child_process_probe ... ok
|
||||
test excludes_another_process_and_releases_on_drop ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/debug_legacy.rs (target/debug/deps/debug_legacy-7da8bc62f8b68cdd)
|
||||
|
||||
running 1 test
|
||||
test debug_empty_legacy_bind ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
|
||||
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-7d5f9ba5124f0a69)
|
||||
|
||||
running 3 tests
|
||||
test native_prosody_tls_external_bidirectional ... ignored, requires native Prosody cafd74b9c5ea and Lua TLS dependencies
|
||||
test mutual_tls_external_delivery_and_certificate_identity_rejection ... ok
|
||||
test reuses_connections_serializes_writes_and_retires_idle_or_closed_peers ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.56s
|
||||
|
||||
Running tests/gajim_features.rs (target/debug/deps/gajim_features-639b09dd1b5f76d6)
|
||||
|
||||
running 6 tests
|
||||
test security_catalog_default_is_a_real_label_and_module_can_be_disabled ... ok
|
||||
test policy_catalog_selects_default_policy_and_maps_display_and_explicit_label ... ok
|
||||
test unsupported_security_policy_configuration_returns_explicit_error ... ok
|
||||
test actual_example_policy_configuration_exposes_classifications_as_catalog_labels ... ok
|
||||
test security_catalogs_serve_both_versions_and_preserve_requested_target ... ok
|
||||
test malformed_or_unknown_policy_catalog_schemas_are_rejected ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/http_transport.rs (target/debug/deps/http_transport-1c63f193a0a4af74)
|
||||
|
||||
running 10 tests
|
||||
test bosh_preserves_namespace_inherited_from_body ... ok
|
||||
test configured_origin_is_enforced ... ok
|
||||
test transport_paths_and_cors_preflight_match_prosody ... ok
|
||||
test bosh_session_retries_restart_termination ... ok
|
||||
test bosh_termination_waits_for_graceful_cleanup_before_reconnect ... ok
|
||||
test bosh_reorders_two_requests_without_replaying_stanzas ... ok
|
||||
test websocket_frames_are_independent_xml ... ok
|
||||
test websocket_close_allows_graceful_engine_cleanup ... ok
|
||||
test websocket_disconnect_delivers_eof_without_graceful_close ... ok
|
||||
test bosh_retry_survives_aborted_http_request_without_replaying_stanzas ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
|
||||
|
||||
Running tests/http_upload.rs (target/debug/deps/http_upload-1381735c3ebc04db)
|
||||
|
||||
running 5 tests
|
||||
test https_endpoint_uses_real_tls ... ok
|
||||
test percent_escape_case_and_equivalent_url_spelling ... ok
|
||||
test expired_upload_releases_quota ... ok
|
||||
test persisted_prosody_archive_and_hs256_slot_survive_without_sidecar ... ok
|
||||
test upload_authorization_streaming_ranges_and_restart ... ok
|
||||
|
||||
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
|
||||
|
||||
Running tests/iq_errors.rs (target/debug/deps/iq_errors-2249c68c2d34c618)
|
||||
|
||||
running 2 tests
|
||||
test pep_errors_identify_the_account_and_echo_the_request ... ok
|
||||
test server_errors_without_target_remain_unaddressed_and_escape_attributes ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/logging.rs (target/debug/deps/logging-16dea78ec19a30c7)
|
||||
|
||||
running 10 tests
|
||||
test filters_appends_escapes_and_redacts ... ok
|
||||
test failed_reopen_keeps_all_original_handles ... ok
|
||||
test rejects_malformed_configuration ... ok
|
||||
test explicit_sink_levels_select_exactly_and_deduplicate ... ok
|
||||
test json_records_and_bounded_ranges ... ok
|
||||
test native_console_shorthands_are_accepted ... ok
|
||||
test overlapping_shorthand_destinations_receive_each_record_once ... ok
|
||||
test reopen_rotated_files_updates_clones ... ok
|
||||
test shared_sink_unions_levels_and_preserves_distinct_destinations ... ok
|
||||
test cloned_loggers_serialize_records ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/message_routing.rs (target/debug/deps/message_routing-ab69d1f2c8c6177b)
|
||||
|
||||
running 2 tests
|
||||
test unknown_resource_falls_back_to_available_bare_jid ... ok
|
||||
test headline_uses_all_nonnegative_available_resources_and_errors_never_fallback ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_access.rs (target/debug/deps/muc_access-a295ef107acaee5c)
|
||||
|
||||
running 3 tests
|
||||
test moderators_cannot_kick_or_demote_other_moderators ... ok
|
||||
test nested_affiliations_do_not_fall_back_to_obsolete_flat_entries ... ok
|
||||
test binary_occupant_id_salt_survives_saves_and_restarts ... ok
|
||||
|
||||
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/muc_domain_bans.rs (target/debug/deps/muc_domain_bans-0a686e2e50055022)
|
||||
|
||||
running 2 tests
|
||||
test applying_domain_ban_removes_remote_occupants_and_blocks_rejoin ... ok
|
||||
test native_domain_bans_block_remote_users_but_allow_explicit_members ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/muc_flow.rs (target/debug/deps/muc_flow-e861064da7929f6d)
|
||||
|
||||
running 18 tests
|
||||
test multiple_resources_share_nick_and_private_delivery ... ok
|
||||
test authorization_and_conflict ... ok
|
||||
test iq_response_requires_expected_sender ... ok
|
||||
test join_lock_chat_leave ... ok
|
||||
test configured_lock_timeout_expires_without_owner_submission ... ok
|
||||
test occupant_id_is_stable_and_spoofed_ids_removed ... ok
|
||||
test nick_invite_destroy_and_local_creation ... ok
|
||||
test restored_temporary_room_is_deleted_after_last_disconnect ... ok
|
||||
test persistence_roundtrip ... ok
|
||||
test switching_to_members_only_removes_unaffiliated_users ... ok
|
||||
test visitor_voice_request_cannot_spoof_identity_or_grant_itself_voice ... ok
|
||||
test preserves_unknown_binary_mixed_room_fields ... ok
|
||||
test room_vcard_owner_only_and_avatar_presence ... ok
|
||||
test persistent_destroy_creates_prosody_tombstone ... ok
|
||||
test reserved_nickname_blocks_other_users ... ok
|
||||
test archive_history_and_permissions ... ok
|
||||
test maintenance_expires_idle_archives_and_tombstones ... ok
|
||||
test native_muc_archive_type_and_anonymity_are_preserved ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-fc2050db5077d8e1)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pep_client_interop.rs (target/debug/deps/pep_client_interop-0c293151e8f101ce)
|
||||
|
||||
running 7 tests
|
||||
test native_component_notification_type_applies_to_events_and_subscription_replay ... ok
|
||||
test migrated_native_configuration_can_roundtrip_access_model_edit ... ok
|
||||
test avatar_and_omemo_publish_options_support_readback_and_caps_notifications ... ok
|
||||
test missing_own_omemo_bundle_returns_recoverable_item_not_found ... ok
|
||||
test publish_options_match_implicit_notification_defaults_on_old_nodes ... ok
|
||||
test native_itemreply_controls_publisher_visibility_in_reads_and_replays ... ok
|
||||
test native_open_and_subscriber_publish_models_preserve_outcast_and_blocking_checks ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
|
||||
|
||||
Running tests/pep_diagnostics.rs (target/debug/deps/pep_diagnostics-20943bf26cdbd41d)
|
||||
|
||||
running 6 tests
|
||||
test nonempty_xml_can_be_an_empty_android_device_list ... ok
|
||||
test arbitrary_node_payload_and_wrong_namespace_do_not_leak ... ok
|
||||
test avatar_classification_does_not_inspect_or_expose_avatar_data ... ok
|
||||
test only_first_direct_item_is_parsed_and_protocols_are_distinct ... ok
|
||||
test signed_integer_limits_and_duplicates_match_java_parser ... ok
|
||||
test payloadless_notification_is_visible_without_identifiers ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pep_discovery.rs (target/debug/deps/pep_discovery-d50c3b42eb7e4c23)
|
||||
|
||||
running 4 tests
|
||||
test standalone_component_does_not_claim_pep_automatic_subscriptions ... ok
|
||||
test account_discovery_does_not_intercept_server_or_resource_caps ... ok
|
||||
test account_disco_advertises_pep_without_requiring_a_node ... ok
|
||||
test node_discovery_keeps_node_identity_errors_and_access_checks ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
|
||||
|
||||
Running tests/pep_item_order.rs (target/debug/deps/pep_item_order-ab67e6702f7b8148)
|
||||
|
||||
running 2 tests
|
||||
test native_prosody_orders_retained_pep_items_newest_first ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test first_pep_item_is_current_device_list_even_with_retained_old_items ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.10s
|
||||
|
||||
Running tests/preauth.rs (target/debug/deps/preauth-879f01cf0315d06a)
|
||||
|
||||
running 10 tests
|
||||
test duplicate_or_wrong_namespace_tokens_do_not_qualify ... ok
|
||||
test unknown_tokens_do_not_create_invite_stores_and_disabled_accounts_cannot_issue ... ok
|
||||
test standard_adhoc_command_returns_contact_uri ... ok
|
||||
test concurrent_redemption_has_exactly_one_winner ... ok
|
||||
test prosody_numeric_expiry_is_consumed_and_other_entries_preserved ... ok
|
||||
test unknown_client_token_is_preserved_on_remote_and_pending_delivery ... ok
|
||||
test identity_scope_does_not_burn_on_wrong_sender_or_leak_to_prosody ... ok
|
||||
test invitations_expire_are_single_use_and_owner_scoped ... ok
|
||||
test valid_token_autoapproves_and_sends_reciprocal_request ... ok
|
||||
test local_invitation_updates_both_rosters_without_granting_reverse_subscription ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-bc3fe2eaa9595f26)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-e39eafdcc3aee56a)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/pubsub_persistence.rs (target/debug/deps/pubsub_persistence-fa3f4fe295d50d65)
|
||||
|
||||
running 18 tests
|
||||
test modern_bookmarks_notify_legacy_capability ... ok
|
||||
test native_string_max_items_satisfies_numeric_publish_precondition ... ok
|
||||
test configurable_limits_component_creation_and_publisher ... ok
|
||||
test configure_requires_owner ... ok
|
||||
test capability_discovery_replays_and_filters_notifications ... ok
|
||||
test nonpersistent_items_stay_in_memory_and_can_be_made_persistent ... ok
|
||||
test open_model_and_notifications ... ok
|
||||
test full_jid_block_applies_to_reads_subscription_replays_and_events ... ok
|
||||
test reads_prosody_legacy_fixture ... ok
|
||||
test publish_options_conflict_is_recoverable_and_preserves_item ... ok
|
||||
test pep_persists_namespaces_and_enforces_owner ... ok
|
||||
test roster_presence_access_and_foreign_subscription_denied ... ok
|
||||
test remote_unavailable_is_scoped_to_addressed_owner_and_cancels_pending ... ok
|
||||
test subscription_options_disable_events_and_require_subscriber ... ok
|
||||
test remote_caps_replay_and_open_node_privacy_revoke ... ok
|
||||
test payload_policy_applies_to_subscription_and_caps_replays ... ok
|
||||
test native_notification_fields_and_retract_policy_are_independent ... ok
|
||||
test component_default_retention_matches_prosody_twenty_items ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-7169ca8cf36ed529)
|
||||
|
||||
running 7 tests
|
||||
test native_push_body_lookup_excludes_extensions ... ignored, requires PROSODY_REFERENCE_SOURCE and PROSODY_REFERENCE_LUA
|
||||
test foreign_account_cannot_register ... ok
|
||||
test queue_coalesces_and_importance_matches_native ... ok
|
||||
test push_summary_never_copies_foreign_namespace_body ... ok
|
||||
test reenable_cancels_old_errors_and_failure_counts_are_per_account ... ok
|
||||
test stable_client_registration_and_targeted_notification ... ok
|
||||
test registrations_notifications_and_authenticated_errors ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.09s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-d1d036709248a3eb)
|
||||
|
||||
running 1 test
|
||||
test real_prosody_storage_and_auth_roundtrip ... ignored, requires native supplied Prosody source; run scripts/prosody_compat/verify.sh
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/resource_sessions.rs (target/debug/deps/resource_sessions-bc36749ef517480a)
|
||||
|
||||
running 7 tests
|
||||
test increment_skips_occupied_suffixes_and_preserves_sessions ... ok
|
||||
test invalid_resume_owner_or_ack_does_not_evict_active_session ... ok
|
||||
test kick_new_leaves_existing_session_unchanged ... ok
|
||||
test random_conflicts_get_distinct_resources_for_same_owner ... ok
|
||||
test replacement_revokes_hibernating_resume_and_survives_old_cleanup ... ok
|
||||
test concurrent_default_binds_replace_atomically ... ok
|
||||
test active_resume_preserves_state_and_replaces_transport_notifier ... ok
|
||||
|
||||
test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
|
||||
|
||||
Running tests/sasl_accounts.rs (target/debug/deps/sasl_accounts-481c2d84ef36181f)
|
||||
|
||||
running 1 test
|
||||
test disabled_legacy_and_unicode_accounts ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.61s
|
||||
|
||||
Running tests/storage_accounts.rs (target/debug/deps/storage_accounts-7e80a3e53eb6658b)
|
||||
|
||||
running 20 tests
|
||||
test broken_roster_is_not_overwritten ... ok
|
||||
test account_purge_refuses_symlink_store_without_touching_other_files ... ok
|
||||
test inbound_subscription_requires_pending_to_grant_to ... ok
|
||||
test blocklist_enforcement_api ... ok
|
||||
test malformed_legacy_vcard_and_private_bookmarks_rejected ... ok
|
||||
test malformed_roster_iq_never_mutates ... ok
|
||||
test domain_roster_and_block_jid_normalization ... ok
|
||||
test private_and_vcard_authorization ... ok
|
||||
test purge_account_exact_files_preserves_others_and_extras ... ok
|
||||
test reads_timestamp_blocklist_and_keeps_metadata ... ok
|
||||
test privacy_migration_only_default_deny_jids ... ok
|
||||
test roster_empty_name_and_foreign_group_ignored ... ok
|
||||
test roster_preserves_subscription_and_metadata ... ok
|
||||
test subscription_handshake_and_cancel ... ok
|
||||
test bookmarks_private_pep_bidirectional_and_private ... ok
|
||||
test legacy_bookmarks_respect_host_limit_and_read_over_256 ... ok
|
||||
test legacy_migration_clears_source_after_success ... ok
|
||||
test vcard_pep_conversion_and_avatar ... ok
|
||||
test password_change_after_purge_never_recreates_account ... ok
|
||||
test creation_and_purge_are_serialized ... ok
|
||||
|
||||
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.40s
|
||||
|
||||
Running tests/storage_compat.rs (target/debug/deps/storage_compat-c3e634841a13e72d)
|
||||
|
||||
running 6 tests
|
||||
test empty_namespace_preserved ... ok
|
||||
test stanza_roundtrip ... ok
|
||||
test mixed_binary_roundtrip ... ok
|
||||
test path_and_atomic_update ... ok
|
||||
test rejects_cycles_code_and_bad_files ... ok
|
||||
test concurrent_updates_do_not_lose_entries ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
|
||||
|
||||
Running tests/tls_binding.rs (target/debug/deps/tls_binding-411070859d2a479a)
|
||||
|
||||
running 4 tests
|
||||
test unknown_and_eddsa_algorithms_fail_closed ... ok
|
||||
test malformed_der_and_pss_parameters_fail_closed ... ok
|
||||
test ecdsa_uses_certificate_signature_hash ... ok
|
||||
test rsa_signature_digest_and_weak_hash_upgrade ... ok
|
||||
|
||||
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
|
||||
|
||||
Running tests/tls_plus_network.rs (target/debug/deps/tls_plus_network-6c43ed36f67edd62)
|
||||
|
||||
running 2 tests
|
||||
test disabling_plus_hides_bindings_and_accepts_scram_y_with_mechanisms_only_ssdp ... ok
|
||||
test starttls_scram_plus_binds_real_tls_and_authenticates_ssdp_sasl1_and_sasl2 ... ok
|
||||
|
||||
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.56s
|
||||
|
||||
Doc-tests rust_xmpp
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Checking rust-xmpp v0.7.4 (/workspace/scratch/362577cdf2e0/recovered/rust-xmpp)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.91s
|
||||
Compiling rust-xmpp v0.7.4 (/workspace/scratch/362577cdf2e0/recovered/rust-xmpp)
|
||||
Finished `release` profile [optimized] target(s) in 22.72s
|
||||
PASS: integrated TCP roster/subscriptions, client IQ routing, CSI buffering/keepalive flush, MAM, blocking, OMEMO PEP, MUC, offline replay and SM resumption
|
||||
PASS: graceful SIGTERM shutdown
|
||||
PASS: independent SCRAM-SHA-1 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: independent SCRAM-SHA-256 over TLS, SASL1/SASL2, SSDP verification, server signatures and wrong-password rejection
|
||||
PASS: Android TLS1.2 selector, TLS1.2/1.3 SCRAM SHA1/256 PLUS, SASL1/2, SSDP on/off and invalid binding rejection
|
||||
PASS: JSON file logging, TLS/auth/bind correlation, rejection reasons, secret redaction and SIGHUP rotation
|
||||
PASS: 20 TLS1.2/1.3 SASL1/2 cases: prepared PLAIN identities and canonical binds, invalid authz rejection, SCRAM abort/retry and active exchange restart
|
||||
PASS: WSS SCRAM-SHA-256 SASL1/SASL2 with GS2 y, absent CB/PLUS, SSDP without CB separator, server signatures, bind and ping
|
||||
PASS: HTTPS-only configured interfaces (127.0.0.1,::1), verified TLS, reproduced original Origin 403 then allowed Converse Origin 101, xmpp subprotocol, both WS paths, RFC 7395 open/features/close and private HTTP diagnostics
|
||||
PASS: SASL2 Bind2 TLS flow, inline SM/CSI/Carbons, private random resource, malformed requests, authentication failure and fallback
|
||||
PASS: bind2-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-enabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: bind2-enabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: sm-disabled, SSDP=False, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: sm-disabled, SSDP=True, SCRAM-SHA-1/PLAIN success and wrong-password rejection
|
||||
PASS: enabled-False-registration-False
|
||||
PASS: enabled-False-registration-True
|
||||
PASS: enabled-True-registration-False
|
||||
PASS: enabled-True-registration-True
|
||||
PASS: Gajim domain/account discovery, both label catalogs, authenticated password changes, IBR registration gates and fresh logins
|
||||
PASS: SASL2 inline SM active/EOF resume, authenticated owner/id/h checks, replay ordering, full JID, Bind2 fallback and malformed requests
|
||||
PASS: TLS account/domain discovery with PEP and push enabled/disabled; real push enable, publish options, per-node and service-wide disable
|
||||
PASS: TLS Monocles/Conversations PEP first-run, no-to publishing, owner config recovery, migrated metadata, device item selectors and restart persistence
|
||||
PASS: Android first-item device-list parsing sees latest publish and replacement before and after restart
|
||||
PASS: STARTTLS PEP replay/live diagnostics, legacy/OMEMO2, payloadless notifications with intact IQ payloads, and private values excluded
|
||||
PASS: TLS invitation command discovery, preapproval, single-use mutual roster, replay denial, unknown preauth forwarding/offline pending, account isolation
|
||||
PASS: TLS conflict_resolve=default, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_old, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=kick_new, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=increment, live and hibernating SM resources
|
||||
PASS: TLS conflict_resolve=random, live and hibernating SM resources
|
||||
PASS: integrated WSS + HTTPS BOSH SASL/bind, CSI, inherited BOSH namespaces, roster, bidirectional chat, upload IQ/PUT/GET/reuse, graceful SM close and same-resource relogin under kick_new
|
||||
{
|
||||
"total_load_wall_seconds": 7.856,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.632,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 57.745,
|
||||
"p95_ms": 76.618,
|
||||
"max_ms": 120.568
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 14.512,
|
||||
"p95_ms": 19.865,
|
||||
"max_ms": 23.436
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 4.919,
|
||||
"metrics_before": {
|
||||
"rss_kib": 7328,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 26316,
|
||||
"cpu_seconds": 1.15,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 26872,
|
||||
"cpu_seconds": 8.19,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 26872,
|
||||
"cpu_seconds": 8.23,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 26872,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
}
|
||||
Compiling rust-xmpp v0.7.4 (/workspace/scratch/362577cdf2e0/recovered/rust-xmpp)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.54s
|
||||
Running tests/csi_native.rs (target/debug/deps/csi_native-d041e21e009bbc52)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_csi_importance_matches ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
|
||||
|
||||
Running tests/muc_native.rs (target/debug/deps/muc_native-fc2050db5077d8e1)
|
||||
|
||||
running 1 test
|
||||
test actual_prosody_muc_mam_reads_rust_and_writes_native_archive ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
|
||||
|
||||
Running tests/pep_item_order.rs (target/debug/deps/pep_item_order-ab67e6702f7b8148)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_orders_retained_pep_items_newest_first ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.13s
|
||||
|
||||
Running tests/preauth_native.rs (target/debug/deps/preauth_native-bc3fe2eaa9595f26)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_invitation_tokens_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
|
||||
|
||||
Running tests/pubsub_native.rs (target/debug/deps/pubsub_native-e39eafdcc3aee56a)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_pep_reads_rust_and_rust_reads_native ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
|
||||
|
||||
Running tests/push.rs (target/debug/deps/push-7169ca8cf36ed529)
|
||||
|
||||
running 1 test
|
||||
test native_push_body_lookup_excludes_extensions ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/reference_prosody.rs (target/debug/deps/reference_prosody-d1d036709248a3eb)
|
||||
|
||||
running 1 test
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-1
|
||||
PROSODY_NATIVE_FINAL_OK SHA-1
|
||||
PROSODY_NATIVE_ROUNDTRIP_OK SHA-256
|
||||
PROSODY_NATIVE_FINAL_OK SHA-256
|
||||
test real_prosody_storage_and_auth_roundtrip ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.08s
|
||||
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
|
||||
Running tests/federation_tls.rs (target/debug/deps/federation_tls-7d5f9ba5124f0a69)
|
||||
|
||||
running 1 test
|
||||
test native_prosody_tls_external_bidirectional ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.84s
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
PASS: HTTPS-only configured interfaces (127.0.0.1,::1), verified TLS, reproduced original Origin 403 then allowed Converse Origin 101, xmpp subprotocol, both WS paths, RFC 7395 open/features/close and private HTTP diagnostics
|
||||
Loaded 100 of 235 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user