Tests
Test coverage
The share of Quillo's lines its tests run, measured in one run of the whole suite: 3,203 tests, with Chrome, PostgreSQL and MariaDB, on macOS arm64. The Rust source is measured by cargo llvm-cov (the Lines column of its total, with its Regions beside it: a line counts as run when any part of it ran, so let x = f()?; is run though f never failed, and a region is each such part), and the browser runtime, src/client/runtime.js, by the coverage Chrome and Node keep themselves, mapped back to the file's lines. Last measured on 2026-11-07, at commit c293883 of Quillo 0.7.0.
Now
| Part | Lines | Run | Not run | Coverage | Target |
|---|---|---|---|---|---|
| Rust, lines | 61,961 | 61,125 | 836 | 98.65% | 97.90% |
| Rust, regions | 149,621 | 145,454 | 4,167 | 97.21% | — |
| Browser runtime | 5,817 | 5,810 | 7 | 99.88% | 99.50% |
History
Every run, newest first.
| Date | Commit | Version | Tests | Rust | Rust regions | Browser runtime |
|---|---|---|---|---|---|---|
| 2026-11-07 | c293883 | 0.7.0 | 3,203 | 98.65% | 97.21% | 99.88% |
| 2026-11-06 | fc95e09 | 0.7.0 | 3,076 | 98.69% | 97.23% | 99.88% |
| 2026-11-04 | c99b8cf | 0.7.0-dev | 2,650 | 98.67% | 97.12% | 99.86% |
| 2026-11-04 | f319177 | 0.7.0-dev | 2,689 | 98.69% | 97.15% | 99.86% |
| 2026-11-03 | daa8c35 | 0.7.0-dev | 2,540 | 98.85% | 97.22% | 99.85% |
| 2026-11-03 | a9b56bb | 0.7.0-dev | 2,568 | 98.78% | 97.16% | 99.85% |
| 2026-11-03 | 1c7c382 | 0.7.0-dev | 2,614 | 98.78% | 97.18% | 99.85% |
| 2026-11-02 | c8b50ae | 0.6.0 | 2,222 (5 failed) | 97.91% | — | 99.78% |
Rust, file by file
78 files of src/; 20 below 97.90%, marked in gold. What is not run is mostly unreachable! arms, failures of the operating system and other systems' branches.
| File | Lines | Run | Not run | Coverage |
|---|---|---|---|---|
src/alloc.rs | 12 | 6 | 6 | 50.00% |
src/ast.rs | 282 | 281 | 1 | 99.65% |
src/builtins.rs | 2,999 | 2,952 | 47 | 98.43% |
src/check.rs | 6,139 | 6,099 | 40 | 99.35% |
src/client.rs | 3,771 | 3,742 | 29 | 99.23% |
src/cluster.rs | 130 | 130 | 0 | 100.00% |
src/crypto.rs | 213 | 204 | 9 | 95.77% |
src/dates.rs | 757 | 754 | 3 | 99.60% |
src/db.rs | 2,563 | 2,524 | 39 | 98.48% |
src/debug.rs | 894 | 886 | 8 | 99.11% |
src/decimal.rs | 557 | 556 | 1 | 99.82% |
src/defer.rs | 27 | 27 | 0 | 100.00% |
src/describe.rs | 365 | 362 | 3 | 99.18% |
src/desktop.rs | 221 | 204 | 17 | 92.31% |
src/dotenv.rs | 159 | 159 | 0 | 100.00% |
src/embed.rs | 623 | 582 | 41 | 93.42% |
src/entities.rs | 5 | 5 | 0 | 100.00% |
src/error.rs | 182 | 181 | 1 | 99.45% |
src/fcgi.rs | 327 | 321 | 6 | 98.17% |
src/fetch.rs | 821 | 809 | 12 | 98.54% |
src/highlight.rs | 421 | 421 | 0 | 100.00% |
src/httpd.rs | 1,665 | 1,606 | 59 | 96.46% |
src/i18n.rs | 673 | 669 | 4 | 99.41% |
src/idempotency.rs | 529 | 516 | 13 | 97.54% |
src/imaging.rs | 322 | 307 | 15 | 95.34% |
src/install.rs | 403 | 403 | 0 | 100.00% |
src/interp.rs | 4,063 | 4,025 | 38 | 99.06% |
src/island.rs | 112 | 112 | 0 | 100.00% |
src/jit.rs | 854 | 839 | 15 | 98.24% |
src/jitloop.rs | 1,327 | 1,281 | 46 | 96.53% |
src/jobs.rs | 358 | 354 | 4 | 98.88% |
src/lexer.rs | 510 | 503 | 7 | 98.63% |
src/lib.rs | 16 | 16 | 0 | 100.00% |
src/livecache.rs | 414 | 413 | 1 | 99.76% |
src/lsp.rs | 1,714 | 1,712 | 2 | 99.88% |
src/main.rs | 1,152 | 1,139 | 13 | 98.87% |
src/media.rs | 710 | 705 | 5 | 99.30% |
src/metrics.rs | 109 | 106 | 3 | 97.25% |
src/migrate.rs | 151 | 147 | 4 | 97.35% |
src/mobile.rs | 206 | 202 | 4 | 98.06% |
src/modules.rs | 549 | 542 | 7 | 98.72% |
src/money.rs | 682 | 681 | 1 | 99.85% |
src/my.rs | 506 | 490 | 16 | 96.84% |
src/native.rs | 1,168 | 1,157 | 11 | 99.06% |
src/new.rs | 184 | 172 | 12 | 93.48% |
src/numeric.rs | 1,964 | 1,954 | 10 | 99.49% |
src/par.rs | 144 | 144 | 0 | 100.00% |
src/parser.rs | 3,449 | 3,417 | 32 | 99.07% |
src/pg.rs | 1,728 | 1,698 | 30 | 98.26% |
src/platform.rs | 150 | 126 | 24 | 84.00% |
src/policy.rs | 368 | 358 | 10 | 97.28% |
src/privacy.rs | 277 | 275 | 2 | 99.28% |
src/querystats.rs | 123 | 123 | 0 | 100.00% |
src/re.rs | 446 | 444 | 2 | 99.55% |
src/ready.rs | 92 | 92 | 0 | 100.00% |
src/record.rs | 191 | 190 | 1 | 99.48% |
src/script.rs | 190 | 188 | 2 | 98.95% |
src/server.rs | 2,841 | 2,808 | 33 | 98.84% |
src/service.rs | 1,646 | 1,629 | 17 | 98.97% |
src/session.rs | 412 | 406 | 6 | 98.54% |
src/shared.rs | 363 | 360 | 3 | 99.17% |
src/site.rs | 12 | 12 | 0 | 100.00% |
src/sites.rs | 134 | 133 | 1 | 99.25% |
src/sql.rs | 1,645 | 1,639 | 6 | 99.64% |
src/sqlinfo.rs | 136 | 135 | 1 | 99.26% |
src/stack.rs | 61 | 60 | 1 | 98.36% |
src/statics.rs | 477 | 463 | 14 | 97.06% |
src/stream.rs | 209 | 205 | 4 | 98.09% |
src/styles.rs | 520 | 518 | 2 | 99.62% |
src/svcauth.rs | 506 | 495 | 11 | 97.83% |
src/sym.rs | 187 | 184 | 3 | 98.40% |
src/txn.rs | 58 | 55 | 3 | 94.83% |
src/udp.rs | 501 | 489 | 12 | 97.60% |
src/upload.rs | 190 | 190 | 0 | 100.00% |
src/value.rs | 1,472 | 1,451 | 21 | 98.57% |
src/viewcache.rs | 133 | 132 | 1 | 99.25% |
src/ws.rs | 396 | 380 | 16 | 95.96% |
src/wt.rs | 1,095 | 1,070 | 25 | 97.72% |
The browser runtime
A line counts unless it is blank, a comment, or only brackets; it ran when the innermost block V8 reports around its first character ran. 5 stretches of runtime.js did not run in this measurement. A change to the runtime must keep it at 99.50% or more, and every line it changes must run in a test.