# Two-process examples: one "first.py + second.py: <evidence regex>" per
# line, "#" comments allowed. Read by src/doppler/tests/test_examples.py,
# which runs the pair as two subprocesses against a live NATS broker,
# SIGTERMs both once the evidence appears, and requires exit 0 from each.
#
# These used to sit in .examples-skip as "needs a live peer" -- true of a
# harness that runs one script at a time, and not true of anything else:
# the gate already runs every example as a subprocess, so running two is
# a second Popen. Skipping them meant the demos a reader is most likely
# to copy (the whole streaming story) were the ones nothing executed.
#
# Order is start order. The regex is matched against the pair's COMBINED
# stdout, so it can name whichever side proves the wire actually moved;
# a pair that exits 0 having exchanged nothing must not pass.
transmitter.py + receiver.py: Packets: +[1-9]
# The RTT line is printed only after the reply comes back, so it is the
# round trip itself; `Done.` would have matched either half's shutdown.
replier.py + requester.py: RTT +[0-9]
# The WORKER starts first: it is the order that used to fail. Only the Push
# side created the JetStream work-queue stream, so against a broker that had
# never carried it `dp_pull_create failed` was immediate (#956). Both sides
# provision it now. This pair only EXERCISES that order -- the worker prints
# its banner before it connects, so the sender can race it, and the default
# subject may already exist on a reused broker. The deterministic proof is
# test_pull_first_provisions_the_work_queue in test_stream_nats_core.c.
pipeline_recv.py + pipeline_send.py: Packets: +[1-9]
