port(smarm): track HEAD efbc254 — RFC 014/015 API sync
- gen_server rename (RFC 015, 3e31606): ServerRef/ServerCtx/ServerBuilder
-> GenServerRef/GenServerCtx/GenServerBuilder across conn_actor,
conn_registry, serve, pubsub, channels::session.
- type Timer = () on the three GenServer impls (RFC 015, 57eadb5);
handle_timer/handle_idle/tick_every stay defaulted — opt-in later.
- Watcher and GenServerCtx are now generic over the server type: watcher
fields typed Watcher<Table<M>> / Watcher<Registry<P, K>>; Registry's
struct bounds strengthened to its GenServer impl bounds
(P: Encode + Decode + Send + Sync + 'static, K: SessionKey) so the
Watcher field's G: GenServer bound is satisfiable at the declaration.
- RFC 014 (a866e34) registry: register is (Name<M>, Sender<M>), self-only
— a name is a typed messaging endpoint, not a pid tag. The
introspection-only urus.server / urus.listener.{i} bindings are dropped
rather than faked with unit channels; the whereis integration test is
deleted; a proper messageable-name design is icebox'd in ROADMAP.md.
- Audit vs smarm 6c2b7e9 (queued messages dropped when Receiver drops):
pubsub's prune-on-send-failure retain still holds — send Errs once
receiver_alive is false, so a dropped rx prunes on next broadcast,
exactly what subscriber_count's doc already promised. Freeing stranded
Arc<M> broadcasts is strictly good. No change needed.
- The 7x E0283 in channels/mod.rs were cascade fallout of the generics
changes; dissolved with the port, as discovery predicted.
Suite: 90 lib + 45 integration + 2 doc, green under default, smarm-trace,
phoenix, and all-features. 3 pre-existing clippy lints (conn.rs,
parser.rs, conn_actor.rs; clippy 1.97 strictness) deferred to a follow-up
chore commit to keep this diff pure.
This commit is contained in:
+3
-18
@@ -89,24 +89,9 @@ fn hello_world() {
|
||||
assert_eq!(http_body(&resp), b"hello urus");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn server_and_listeners_are_registered() {
|
||||
// `whereis` must run inside the runtime (the test itself is a foreign
|
||||
// OS thread with no runtime in its TLS), so probe from a handler —
|
||||
// connection actors live in the runtime by construction.
|
||||
let pipe = Pipeline::new().plug(
|
||||
Router::new().get("/whereis", |c: Conn, _n: Next| {
|
||||
let ok = smarm::whereis("urus.server").is_some()
|
||||
&& smarm::whereis("urus.listener.0").is_some()
|
||||
&& smarm::whereis("urus.listener.1").is_some(); // pool of 2
|
||||
c.put_status(200).put_body(if ok { "registered" } else { "missing" })
|
||||
})
|
||||
);
|
||||
let port = spawn_server(pipe);
|
||||
let resp = send_request(port, b"GET /whereis HTTP/1.1\r\nHost: x\r\nConnection: close\r\n\r\n");
|
||||
assert_eq!(http_status(&resp), 200);
|
||||
assert_eq!(http_body(&resp), b"registered");
|
||||
}
|
||||
// `server_and_listeners_are_registered` was deleted with the RFC 014 port:
|
||||
// urus no longer binds `urus.server` / `urus.listener.{i}` names (see the
|
||||
// note in serve.rs and the icebox entry in ROADMAP.md).
|
||||
|
||||
#[test]
|
||||
fn echo_body() {
|
||||
|
||||
Reference in New Issue
Block a user