Test tiersΒΆ
pytest and make test run the standard merge suite. It is deliberately
limited to quick correctness coverage: it should finish in minutes and stay
within roughly 8 GiB total RSS on a 16 GiB machine. Full-depth parameter cases
are marked extended and are skipped by this default profile.
Run make test-extended after larger implementation work. It includes every
test case and has a twenty-minute timeout by default. Both targets run under
the python -m httk.core.memguard process-group guard supplied by
httk-core; HTTK_TEST_MAX_RSS_GB can override its limit when diagnosing a
failure.
ClickHouse is an opt-in test arm. The exact server/client memory arithmetic,
the 7 GiB server allowance, the 4.5 GB allocator cap, setup, required
KeeperMap bootstrap DDL, and recovery procedures are in the ClickHouse
testing guide. Start it with make clickhouse-dev-server and stop it with make clickhouse-stop.
PostgreSQL is another opt-in test arm. Set HTTK_TEST_POSTGRES_URI to a
reachable admin URI (postgresql+psycopg:// driver) and the parameterized
backend suites include it; leave it unset and every PostgreSQL test skips. The
PostgreSQL testing guide covers the server setup and the
one known bulk-ingest limitation. Start a local server with make postgres-dev-server and stop it with make postgres-stop.
MongoDB tests require HTTK_TEST_MONGODB_URI to name a reachable replica set,
for example mongodb://127.0.0.1:27127/?replicaSet=rs0. Install
httk-store[mongodb] and enable enableTestCommands=1 on a dedicated test server
to exercise transaction fault injection. The MongoDB CI job starts this isolated
service and runs both profiles. Without the URI, MongoDB tests skip; these skips
do not verify the backend. See the MongoDB guide for its
transaction and deployment requirements.
Performance investigations are separate from correctness testing. make benchmarks runs the opt-in harnesses in benchmarks/; benchmark code is not
collected by pytest and is never invoked by test, check, or ci.