course · conformance

Pass the suite

The conformance suite is a referee. It reads an implementation of Nervur — any implementation, in any language — against the papers, the written rules of the protocol, and rules on one question: does it speak Nervur.

Passing means matching those rules exactly, in both directions: the shape of every message the implementation accepts, and — checked just as strictly — the shape of every request it correctly refuses. Refusing sloppily is not passing; every refusal is checked as carefully as every acceptance, in the exact order the rules require.

Two of the things it checks most closely are the envelope and the grammar. The envelope is the sealed message format every request travels in, signed by whoever sent it and sealed so only the intended house can open it. The grammar is the set of rules every name and request has to follow — which ones are allowed, and what happens to one that isn’t.

Here’s what one row in the suite actually checks, in plain words. The pinned input is a signed request whose signature uses one of the encodings the envelope strictly refuses. The pinned output is silence — no response of any kind. And the row cites exactly the paper section it rests on: “The envelope — spec, sealed.” A conformant house has to refuse it exactly that way — not almost.

The suite is written straight from the papers’ own text, never by reading an implementation’s code and copying what it does. That is what keeps it a referee rather than a mirror: a bug in one codebase can never quietly become part of the rule.

This trade is for anyone building an implementation from scratch, on any runtime, who wants proof rather than a claim that it speaks Nervur. After this course you can read what the suite checks, run it against your own implementation, and say precisely what a green run does and doesn’t prove — a passing run only covers what the suite states it covers, never more.

This course opens when the engine proves itself — only then is there a suite to run it against.

Follow the build