Skip to content

← All documentation

Post-install setup · Y2Reborn

Test and validation quality

Documentation published by SchulzCode/Y2Reborn.

Instructions published by the project, shown here word for word.

Test and validation quality

> **Historical record.** The dates, candidate identity, "current" claims, > next steps and permissions below belong to this recorded boundary. See > [current state](../../CURRENT_REBORN_STATE.md) for the latest physically observed result.

What was executed in this audit

No kernel/Buildroot/Cargo build, physical command, flash or qualification run was performed. Existing host binaries were executed; they are cached artifacts, not a fresh build of both audited HEADs. Exact commands/results record that limitation.

Test totals are receipts, not the basis of the assessment. Most important is what these tests leave uncontrolled.

Evidence quality by tier

TierMeaningful strengthsLimits
Core state transitionsStale generations, queue validation, restore normalizationDuplicate queue IDs, repeat with automatic chaining and live edits are not comprehensively covered.
UI/action testsFocus invariant, modal/destructive confirmation, wheel/long semantics, password hidingEffects often tested in isolation, not executed against runtime/worker queue or real ALSA.
Media fixturesReal FFmpeg decode across codecs, artwork pixels, conversion, cancellation, malformed/truncated filesA decode producing frames is weaker than precision/delay/seek correctness. APE/WavPack fixtures are silent specimens.
Playback fixturesReal media membrane plus injected sink; same-rate FLAC ramp boundary and exact countFake sink lacks exclusive-open, maximum-block, clock/drain/XRUN and BlueALSA behavior; long crossfades are not represented.
LibrarySource online/offline, ID reuse, incremental scan/error cases, SQLite validationNo scan-wide commit error causality, realistic ENOSPC, power-cut or corrupt-DB recovery test.
Radio adaptersMock Unix supplicant protocol and private D-Bus services exercise state machines and errorsNo RF/controller, WPA handshake, DHCP/DNS, remote SBC or actual BlueZ pairing compatibility.
Observability/controlStorm/drop/rotation bounds, malformed protocol rejection, redaction, private socketSanitizer cases do not prove all free-form logs anonymous; health metrics can be semantically wrong.
ARM/QEMUNative ABI/library resolution, headless decoder/DB/control integrationNo real DRM, ALSA, DMA, PMIC, storage hotplug or radio hardware.
Rootfs/package validationFilesystem labels/UUIDs, allowed payloads, hashes, SSH material policy, ELF dependenciesCan enforce stale semantics (application “unimplemented”); cannot prove manual install choice or device runtime.
Kernel host harnessesProduction helper/function extraction; failure-injection, register masks/order, bounded recoveryMock MMIO/clocks/IRQs omit electrical behavior and many real concurrency/timing interactions.
Hardware observationsActual GPU rendering/runtime PM, quiet ALSA tones, evdev captures, Wi-Fi scans, power observationsExact-build, narrow scenario evidence. Several tests explicitly failed or remain pending.

Examples of worthwhile tests to keep: tests/test_charger.py injects individual I/O failures and checks protection ordering; tests/test_wifi.py extracts the production TX-power command completion path rather than reimplementing only a toy expected result. These are substantially better than string-count-only tests. They still cannot prove battery safety or real firmware DMA ordering.

Playback fixtures: actual verdict

All six available cached playback tests passed serially and in parallel. The same-rate gapless test is meaningful: two known 4096-frame ramps, total 8192 output frames, positive local slope and matching boundary step. Do not discard it. It is not a lossy encoder-delay test, a real output-clock test or a cross-rate test.

Crossfade testing uses a 50-ms overlap and an unbounded fake sink. It cannot catch the real sink's 524,288-byte maximum, which normal UI durations exceed. Sink-open tests do not model concurrent exclusive hardware ownership. Queue fixture tests mostly load a fixed queue; they do not invoke Runtime effects during a transition. Current seek tests assert position labels, precisely the surface that the new probe showed can be wrong.

The current corruption loop permits open failure or a bounded amount of successful decoding; this is useful crash/hang smoke coverage, not proof of correct recovery/error reporting for every truncation. Generated codec fixtures use the same FFmpeg ecosystem as the implementation; use independently characterized reference samples and expected sample counts/LSBs for precision claims. Silent external APE/WavPack samples prove decoder/container handling, not musical fidelity.

No specific historical failing playback log was identified that permits a responsible root-cause conclusion. The correct answer is not reproduced with available cached binaries; historical cause UNKNOWN. Rebuild current HEAD under a controlled environment in a separately authorized implementation/validation turn, preserve exact failing command/library version/fixture hashes, then investigate any recurrence. It would be wrong to label the old report “stale UI noise.”

Reports that must not be promoted to current proof: F14/F27

The tracked ARM evidence records build 77e6732..., baseline.01, and FFmpeg 6.1.5, despite the current QEMU script checking 9.0.1. This is a historical receipt, not current FFmpeg9 validation. Dependency metadata still names font8x8 although current Cargo/UI uses checked-in DejaVu atlases. Baseline host/rootfs/package reports must be tied to their original source, not treated as evergreen badges.

UI-POLISH-02 clearly says host-validated candidate with manual installation/physical viewing pending. The title's “physical-device legibility” wording is not proof of viewing. The radio qualification script intentionally reports physical_acceptance: false and permits a completed zero-peer scan; that pass means state progression, not discovery of a working headset.

The baseline classifier treats absent SD, saved Wi-Fi and Bluetooth peer as warnings, allowing a useful core baseline pass. Do not interpret that pass as storage hotplug/network/BT audio qualification. This is a report-consumption issue as well as a test-design issue.

Physical evidence ledger

ClaimEvidenceResponsible classification
Linux boots/rescue/root-data contractProduction scripts plus retained storage/recovery evidenceStrong owner baseline; current public installation UNKNOWN
Real Mali accelerationGPU01 rendering/runtime captures; older Reborn inspection reports Mali400VERIFIED historical hardware path; latest UI experience not qualified
Clean wired soundGPU01 audio/owner observations, S16/44100 aplay tonesVERIFIED narrow heard baseline, not Reborn end-to-end/high-resolution
InputCaptured device names/events plus application mapping testsIMPLEMENTED with physical mapping evidence; strict simultaneous input/GPU coverage explicitly incomplete
Wi-FiCONNECTIVITY-10 and later scans through Reborn/GPU harnessVERIFIED scanning/power; association/IP/DNS/data UNKNOWN
BluetoothPowered HCI adapter/BlueZ, discovery with no peerIMPLEMENTED adapter; actual pairing/SBC/reconnect UNKNOWN
Useful charging70-mA baseline shows declining voltage; later owner POWER-03 acceptanceMixed historical evidence; current profile/pack safety UNKNOWN
Deep suspendGPU01 failed attempt and CPU3 status-bit mismatch; later source correctionPARTIAL; same-boot current resume UNKNOWN
Long-session memoryHost repeated-decode probe grows; source allocation leakWEAK; target endurance not measured

High-value missing tests—ordered, not an exhaustive wishlist

  1. Runtime-to-realistic-sink tests: exclusive open, stop/open ordering, rapid volume/seek/skip/output switch, failed negotiation and state rollback.
  2. Queue sequence tests through Runtime: duplicates, remove/reorder/insert while decoding, repeat-one, shuffle changes and album-only play.
  3. Native allocation sanitizer/leak test; repeated decode/seek/next-track/artwork and failure paths.
  4. Full UI crossfade choices with the real sink contract, bounded chunk sizes and injected crossfade failure preserving every sample.
  5. Known-waveform seek and gapless: FLAC plus MP3/AAC/Opus delay/padding, differing rates, decoder/filter flush, actual output frame count and continuity.
  6. SQLite commit failures and ENOSPC mid-scan; source disappearance during traversal; corrupt DB boot; power loss around atomic state rename and WAL writes.
  7. Current-image wired listening/measurement, screen-off audio, renderer close/reopen/timeout recovery and extended playback memory/XRUN soak.
  8. WPA2 authentication/IP/DNS/traffic and Bluetooth fresh pairing/SBC/reconnect/disconnect/output switch, followed by sustained coexistence.
  9. Current power envelope, low-battery behavior and explicitly scoped suspend/wake regression; use independent voltage/current/temperature evidence.
  10. 10k/20k realistic metadata/artwork library RAM/latency/scan cost, followed by a clean-machine paired release build and independent install/recovery exercise.

Tests should be added at the failure-owning layer. More assertions in a mock that omits the failing contract will not close these gaps.

Published by the SchulzCode/Y2Reborn project [1] [3]