Files
vnctalk-prosody/testrun-M3-report.md
Stefan-Sanger 015c554d30 docs: add M3 test run report
Compose harness: 80 passed, 6 skipped, 0 failed.
External deployment: 61 passed, 25 skipped, 0 failed.
All skips are infrastructure prerequisites, not M3 regressions.

Part-of: <http://gitlab.vnc.biz/uxf/vnctalk-prosody/-/merge_requests/3>
2026-07-15 17:58:02 +02:00

3.6 KiB

M3 Test Run Report — Prosody 13.0.6, Lua 5.4

Summary

Run Passed Skipped Failed
Compose harness (run-compose-tests.sh) 80 6 0
External deployment (run-all-tests.sh) 61 25 0

Zero failures in both runs. All skips are infrastructure prerequisites, not M3 regressions.


Compose harness — 80 passed, 6 skipped

Image: Prosody 13.0.6, Lua 5.4.8, Alpine 3.23.4. Fresh database, mock auth/FCM/file-share backends, SMACKS_HIBERNATION_TIME=10.

Skips (6)

Test Reason
test_01_core::test_rest_message_carbon_copied_to_second_resource Requires both clients to share the same bare JID; compose uses two distinct accounts (user1@ / user2@)
test_02_muc::test_hidden_lib_rejects_public_override Requires an admin JID; compose test user is not an admin
test_03_vnctalk::test_vcard_fallback mod_vnc_vcard_fallback not enabled in config template
test_10_smacks::test_smacks_hibernation_expiry smacks_hibernation_time too large for an automated expiry test (threshold: 30s)
test_10_smacks::test_smacks_offline_queue_after_expiry Same — hibernation time threshold
test_11_smokes::test_telnet_reachable_on_non_loopback ADMIN_TELNET_HOST is localhost (loopback); can't prove wildcard bind from the same host

External deployment — 61 passed, 25 skipped

Target: xmpp.microlab.zimbra-vnc.de:30522 (Prosody 13.0.6). SSH tunnel to PostgreSQL (port 14322) and kubectl port-forward for telnet (port 5582) auto-started by the script.

Skips (25)

Category Count Tests Reason
Needs docker compose exec 9 test_08_image_patches (all) External deployment is not a compose stack; can't grep files inside the container
Needs docker compose exec 4 test_12_image_runtime (all) Same — healthcheck execution and config rendering checks need container access
Needs MOCK_URL 4 test_09_http_sideeffects (4 of 5) External deployment has real backends, not a capture mock; side-effect assertions can't run
Hibernation time too large 2 test_10_smacks (2 of 4) Production smacks_hibernation_time=300s (>30s threshold)
BOSH/WS URL without explicit port 2 test_11_smokes::test_host_meta_json, test_11_smokes::test_presence_endpoint External URLs use default HTTPS port 443 (no :port); _http_base() requires an explicit port
Telnet on loopback only 1 test_11_smokes::test_telnet_reachable_on_non_loopback ADMIN_TELNET_HOST=127.0.0.1; kubectl port-forward is loopback
Same bare JID required 1 test_01_core::test_rest_message_carbon_copied_to_second_resource External run uses two distinct accounts
Admin JID required 1 test_02_muc::test_hidden_lib_rejects_public_override Test user is not an admin
Module not enabled 1 test_03_vnctalk::test_vcard_fallback mod_vnc_vcard_fallback not in modules_enabled

Notable: telnet and PostgreSQL tests passed externally

With the auto-started SSH tunnel and kubectl port-forward, all 6 test_04_infra tests (telnet port, banner, healthcheck, c2s/http ports) and all 11 test_06_postgres tests (connection, schema, MAM, kick store, store-user inversion) passed — previously these were skipped when the tunnel/port-forward wasn't set up.


Conclusion

M3 (0.12.6 → 13.0.6) is verified. The compose harness covers 80 of 86 tests; the external deployment covers 61. The 25 external skips are all infrastructure prerequisites (no docker exec, no mock, no low hibernation time, default-port URLs) — not regressions. No test failed in either run.