Elamur GroupantsโŒ•
โ˜ฐ

mova-seaspider-http

The groupant beside tools/seaspider/tests/http.rs in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.

Facts

Implementation material. A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.

Components

componentlabelwhere
approximantpartialForward approximant
astpartialsyntax.json
compositionpartialComposition
costpartialCost
descriptantpresentDescriptant
invariantpartialInvariant
testsfinite evidencetests

Obernants

The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.

idtypelabelwhere
behavior_complementbehavior_complementpartial source derived modelbehavior_complement
reverse_reconstructionreverse_reconstructionpartial source derived modelreverse_reconstruction

Model text

model

mova-seaspider-http

Descriptant

End-to-end tests of the crawler against a local threaded HTTP/1.1 server on 127.0.0.1 with a.test/b.test/c.test pinned to it. Source: tools/seaspider/tests/http.rs.

Forward approximant

Start a per-test server that logs (host, path, User-Agent, arrival instant) and answers from a closure; build a Config with private addresses allowed and host overrides; run Crawler::run; assert outcomes in pages.jsonl, which paths reached the server, server-side spacing >= 2 s (or >= crawl-delay), redirect chains, truncation/timeout/gzip, journal projections of two runs, resume counts, links and follow results, CLI get/stats/usage, private-address refusal.

Invariant

Tests never contact a host other than 127.0.0.1; every negative assertion is a path the server must not have seen.

Cost

About 12 s wall time (dominated by the 2 s per-IP waits); tests run in parallel, each with its own server and Politeness.

Composition

Exercises config, crawl, polite, fetch, robots, store, links and the main binary together.

behavior_complement

Not covered: TLS, IPv6, real DNS, servers that ignore Connection: close, very large stores, concurrent writers. Counterexample role: each of the three negative controls turns one of these tests red. Evidence status: source-derived model with finite checks, not a proof.

reverse_reconstruction

A passing run shows the fixture behaviours held on that run; it does not reconstruct server timings or prove behaviour on other servers. No unique inverse is claimed.

tests

Checks

Nine tests; negative controls listed in the group tests.md.

Command: cargo test --manifest-path tools/seaspider/Cargo.toml --offline --locked (27 unit + 9 end-to-end tests against a local 127.0.0.1 HTTP server; two identical runs on 2026-11-04). These are finite fixtures; the only live run was the 2026-11-04 smoke against the project's own site.

This page in Markdown โ†’ https://md.groupants.elamur.ai/free/en/mova/tools/seaspider/tests/http.rs.groupant/