erldistpy/tests
russell@unturf.com ca022a8f0d
tests: OTP 25/26 + TLS + Elixir GenServer integration via docker
Reproduces the production failure locally so we can iterate in seconds
instead of waiting on deploy cycles across 3 repos and PyPI.

Existing test_node.py / test_tls.py use the system Erlang which is
OTP 24 on most dev boxes (Ubuntu 22.04 default) — silently masks
flag-negotiation and protocol bugs that only surface against OTP 25+.

Adds four docker-backed tests:
  - plain dist + hand-coded receive  (works on all OTP versions)
  - TLS dist + hand-coded receive    (works on all OTP versions)
  - TLS dist + Elixir GenServer      (FAILS on OTP 25, passes on 26)

The last one is the minimum repro of the portal@unsandbox.com failure
mode. Once a fix lands, that test goes green and we know the
production smoke test will too.

Uses --network host to share the host's epmd (Linux-only). Docker mounts
from $HOME/.erldistpy-test/ because snap-confined docker can't see /tmp.
Tests skip cleanly when docker isn't installed.
2026-06-17 09:24:57 -04:00
..
__init__.py phase 0 + 1: repo bones and ETF codec 2026-06-16 10:39:01 -04:00
test_channel.py 0.1.7: declare DFLAG_MANDATORY_25_DIGEST + decode dist-header replies 2026-06-17 08:51:09 -04:00
test_epmd.py phase 2: EPMD client 2026-06-16 11:00:00 -04:00
test_etf.py etf: add MAP_EXT (tag 116) for Erlang/Elixir maps 2026-06-16 12:16:35 -04:00
test_handshake.py phase 3: v6 distribution handshake 2026-06-16 11:08:28 -04:00
test_node.py phase 5: Node.call() gen_server protocol 2026-06-16 11:33:28 -04:00
test_node_otp26.py tests: OTP 25/26 + TLS + Elixir GenServer integration via docker 2026-06-17 09:24:57 -04:00
test_tls.py phase 6: TLS dist via inet_tls_dist 2026-06-16 12:06:07 -04:00