# repo22 Final Review Independent Manual Regression

Execution window: 2026-08-09 18:04-18:29 UTC

Source baseline: `fcc85b93d5f8fd9671686bd68bf3b086c8bd25cf`

Scope: TC157-TC161, final dual-configuration build and mount smoke, TC111
coverage-matrix follow-up, and resource hygiene. No CI runner or automated
kernel-test harness was used.

## Result

All five assigned test cases passed.

| Test ID | Status | Manual evidence |
| --- | --- | --- |
| TC157 | PASS | Six 16/32-byte descending, duplicate, and cross-branch tables returned positive `EINTEGRITY`; repeated lookup agreed; a raw offset-4096 control was observable while failed lookups produced no payload read. |
| TC158 | PASS | A 17,592,186,056,704-byte sparse provider produced direct and file-handle `st_blocks=34359738384`; two FBT returns recorded `va_bytes=17592186052608`; the file remained readable. |
| TC159 | PASS | FIFO size-only setattr returned 0; size plus mode, owner, times, and all fields returned `EROFS(30)`; metadata remained `10640:0:0:0:0`. |
| TC160 | PASS | Both `OFF_MAX` and zero-offset `getdirentries` calls returned `EINTEGRITY(97)` and preserved their offsets; independent truss SHA256 was `6df9c594bfba8aaf849fa7105fda09a5cab99d79f04c42901a438321c90700e0`. |
| TC161 | PASS | Both normal configurations built, the private `nm` shim failed before publication without a SUCCESS line or temporary file, the previous KLD hash stayed unchanged, and a final normal build used `/usr/bin/nm` and exited 0. |

The TC157 fixtures do not cover a first nonzero `lstart` or an extreme
extent-count performance boundary. These are residual coverage limits, not
observed failures. Positive mapped-payload coverage remains the separate TC146
PARTIAL issue.

## Exact Inputs

The source archive exported from the baseline had SHA256
`a0c330601f9d7b2aa246a17e67bcd67914d457480cb69df025d09bc34d8b7b31`.
The independent fixture archive had SHA256
`bf8ab5430f06dfc067f041002cc7861b0b110dc00d9c447a82877f21b67b09ed`.
Its manifest and evidence hashes were
`b880be5d214985e6a7f75cc77fea333f046a30963a9d310d57a6cdc67104e740`
and `ace71446671b3d17e6a46997f43fc605a7a6bb5993c9de0e6e12cd223746b317`.

The fixture evidence recorded:

- complete TC157 logical-start arrays and old binary-search visit indices;
- TC158 `blocks_lo=2`, `blocks_hi=1`, and 4,294,967,298 data blocks;
- TC159 compact FIFO mode `010640`;
- TC160 `i_size=9223372036854775807` and expected errno 97.

## TC161 Build Qualification

The shim log SHA256 was
`a1a83797ba2c0111b66bb8783f3a67087420ef7a9bccc93fd42fb94c9c24c593`.
It contained `ERROR: nm failed while checking erofs.ko`, no SUCCESS line, and
left no `nm-undef.*` file. The post-shim status file recorded `exit=0` and
`nm=/usr/bin/nm`; its build log SHA256 was
`5ce2519a85de7a4846f95fdb858fd7818182aad3fa55a7ea8d06cf7687143f11`.

The post-shim build used an explicit normal path and environment:

```sh
env PATH=/usr/bin:/bin:/usr/sbin:/sbin \
  FREEBSD_SRC=/tmp/repo22-freebsd15-src \
  WITH_ZSTDIO=0 ./build.sh
```

Its key log lines were `==> Building repo22 erofs.ko` and
`==> SUCCESS: .../build/erofs.ko`.

Final exact-source builds used FreeBSD 15 kernel `-Werror`:

| Configuration | KLD SHA256 | Result |
| --- | --- | --- |
| `WITH_ZSTDIO=0` | `15fda9d334132cd81769ce4dff4f8411a6e2b4cf7531c352530d0de85f42a2d2` | PASS |
| `WITH_ZSTDIO=1` | `23782dc0ce7da188807d35020bf2d8c6044b796c5c9a8746b398ba784cd6ad4e` | PASS |

The final ZSTD build log SHA256 was
`e58bc73d1b0b8295d8baba0cf0ce07bf4e9c994837e65c7ccdd731dc91edb283`.

## Final Module Smoke and Cleanup

Each final KLD loaded independently, mounted `special-setattr.erofs` through a
fresh vnode md provider, exposed the expected FIFO, unmounted, detached the md
unit, and unloaded. The smoke log SHA256 was
`7ced7329da9f39527cf903213dee4c99dbe6d8d6fa96e55bca3427c4f4a56420`.

Final guest state was:

```text
residual-mount-count=0
residual-md=
residual-kld-count=0
smoke-exit=0
```

The host repo22 ignored `build/`, old ignored generated fixture/artifact trees,
and `__pycache__` content were removed before aggregation. No generated KLD,
object, image, or Python bytecode is acceptance evidence in Git.

## TC111 Coverage-Matrix Follow-up

A bounded filename audit found 162 specifications, TC000 through TC161, with
162 unique IDs, no duplicate, and no missing ID. TC000 is a template and is not
counted as executable.

The eight canonical G1-G8 report tables contained exactly 156 rows and 156
unique IDs covering TC001-TC156, with no duplicate or omission. TC157-TC161
add five unique executable cases. TC060's original G3 failure is superseded by
its dated fixed-source PASS report; TC153's G3 result is PASS.

The canonical final result is therefore:

```text
Executable test cases: 161
PASS: 160
PARTIAL: 1 (TC146)
FAIL/KERNEL-FAIL/ENV/SHELVED_TC: 0
```

TC146's shelved positive mapped-payload subitem is not counted as an additional
test case. G1-G8 evidence was collected across multiple source commits; this
report does not claim that every historical test ran on the final KLD. The
final `fcc85b93d` code baseline received the independent TC157-TC161 checks and
the affected final build/load/mount regressions recorded here.
