Skip to content

A claimed function's message is its claim slot's LPI through the GICv3 ITS, no generic signature carries an x86 vector, and the kernel copies and reports through no user leaf of a device's registers - #846

Merged
Japabu merged 6 commits into
mainfrom
wt/toyos-arm-g3
Oct 10, 2026

Conversation

@Japabu

@Japabu Japabu commented Oct 10, 2026 •

Copy link
Copy Markdown
Collaborator

Stage G3 of the ARM desktop, on issues/toyos-runs-on-arm64.md's stage 6: the GICv3 ITS, LPIs, a claimed PCI function's message on AArch64, and the device arm of irq(). It builds on G1's toyos-its and toyos-acpi IORT decode and G2's SMMUv3 (#825). Round 2 also closes issues/an-aarch64-crash-report-reads-through-any-user-leaf.md, which this stage made live.

Measured first

  • M1: ToyOS's GIC driver runs on QEMU's emulated GICv3 with the ITS under HVF. With the harness patched to boot every virt machine gic-version=3,its=on,kernel-irqchip=off and main's kernel, virt_smmu, virt_irq_storm, virt_timer_preempts, virt_failed_ap_leaves_no_hole, virt_user_mode and virt_random_differs passed, EXIT=0: part 1. Its cost against HVF's own GIC is not measured.
  • QEMU's SMMUv3 translates a function's MSI as any write it makes. Before any doorbell mapping existed, edu's first message was iommu: DMA FAULT owner=slot0 unit0 stream=00:03.0 addr=0x0000000008090040 access=write ... F_TRANSLATION and the claim answered Io. The no-doorbell-leaf mutation below reproduces it at this head.
  • The riskiest assumption in the plan holds: the emulated GIC under HVF delivers LPIs (virt_claim_lpi).
  • What QEMU's ITS reports, read at boot: GITS_BASER0 reads its Type and Entry_Size back with a 64 KiB page; the ITS is id 0 at 0x8080000, its doorbell at 0x8090040.
  • Which functions QEMU 11.1.1's IORT routes past the SMMUv3 (round 2, both at 2c744d434 with the machine changed). A pci-testdev behind a plain pcie-root-port enumerates at 01:00.0, and the unit is armed with all 6 functions' streams: a function on bus 1 is routed through the unit like any other, EXIT=0, part 1. An e1000e behind a root port of a pxb-pcie with bypass_iommu=on enumerates at 09:00.0 and is IOMMU: 09:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2304 }), EXIT=0, part 1. So round 1's body was wrong to say the refusal "covers bus 1 and up on virt". The test below uses the bypass pxb-pcie.

What changed, by decision

The ITS (kernel/src/arch/aarch64/irqchip/its.rs, new). irqchip::init collects the MADT's ITS entries and brings the one ITS up after the boot CPU's redistributor. The order:

  1. Disable the ITS and wait for it to go quiescent.
  2. Set up the redistributor's LPI configuration table (14 INTID bits, the least that names an LPI) and its pending table.
  3. Set up a flat device table of 2^16 DeviceIDs, a collection table where a GITS_BASER asks for one, and a one-page command queue.
  4. Configure every claim slot's LPI as enabled before EnableLPIs, so no INV is owed.
  5. MAPC collection 0 to the boot CPU.

Each GITS_BASER, GITS_CBASER, GICR_PROPBASER and GICR_PENDBASER write is read back whole. PENDBASER is compared without PTZ, which is write-only (toyos_its::lpi::PENDBASER_PTZ). A mismatch, or any other refusal before EnableLPIs, leaves the ITS disabled and every claim refused (NotRemapped). From EnableLPIs on, a refusal panics: the redistributor may use the LPI tables for the machine's life, and whether EnableLPIs can be cleared again is IMPLEMENTATION DEFINED, so their pages are never given back. A command the ITS stalls on, or does not consume within a second, also panics: it is a kernel defect. Two ITSs, or none, are refused by name.

A claim's message. claim takes the function's DeviceID from the SMMUv3's own routes (smmu::its_device). Each route now carries the ITS mapping the IORT gives its stream, from the same read that domain::attach takes the StreamID from, so the claim and attach cannot disagree. A function the unit does not route is refused before its claim reaches attach. The claim then maps the slot's own translation table to the DeviceID (MAPD) and its one event, 0, to the slot's LPI, 8192 + slot (MAPTI), and SYNCs. The message is GITS_TRANSLATER's address and event 0. A release DISCARDs the event and unmaps the DeviceID. Refused by name:

  • a function the unit routes to no DeviceID at this ITS: one the IORT routes past the unit, as measured above, or whose stream reaches no ITS;
  • a DeviceID past the table;
  • a DeviceID another claim holds, since one table would translate both.

The doorbell page in every domain (smmu/domain.rs). Each domain maps the 4 KiB page that holds GITS_TRANSLATER at its own address, with toyos-smmu's Leaf::Doorbell, asserted below the addresses a domain hands out. A 2 MiB block there would hand the device the distributor and the redistributors.

A user leaf of a device's registers is no address the kernel copies or reports through (arch/aarch64/paging.rs; closes the crash-report issue). AddressSpace::walk, and through it translate and leaf, answers nothing for a Device leaf, and nor does read_user_word. Before, a claim holder could put a syscall's buffer or its x29 in its BAR. The kernel then reached the BAR through the direct map, which holds that window as Device-nGnRE because pcidev's placement probe mapped it. That read and wrote the device's registers, and a memcpy pair access there is one HVF cannot emulate, so the whole machine dies (below). So read(fd, bar, n) and write(fd, bar, n) now answer BadAddress, and the crash report's backtrace and memory dump stop at the BAR. map_window_if_absent asks the tables for presence directly, since a translation now refuses a leaf that is present. The issue's rule moves to the module header.

irq() holds the preempt count across every device arm, as x86-64's device_irq_entry does. The kick, the IOMMU's event SPI, the claim slots' LPIs and an unclaimed interrupt now share one bracket, and the end of interrupt follows it. This is the first of the two remedies the track records as owed before the claim's arm. pcidev::isr asserts that the count is raised, and that assertion is what makes the obligation fail a test (below).

No generic signature carries an x86 vector or APIC id (the exit of issues/msi-and-pin-routing-take-an-x86-vector-and-apic-id.md, deleted here):

  • iommu::claim_msi(remapping, slot, function) takes no vector and returns Result. The architecture's message_unit claims, releases and states its own Refused: vtd::interrupt on x86-64, irqchip::its on AArch64.
  • A kernel driver arms with an arch::DriverIrq (PciDevice::enable_msix, enable_msi), and iommu::driver_msi asks the architecture for its message.
    • On x86-64 that is the compatibility format where no unit remaps, and a remapping entry where one does, as before.
    • On AArch64 it is a refusal: "a driver in this kernel is given no LPI". The kernel's xHCI, HDA, virtio-console and virtio-gpu still refuse their function on AArch64, now by that name.
  • What moves:
    • pcidev::VECTORS into idt/user_dev.rs, built from the IDT's own UserDev rows;
    • MSG_DEST into apic.rs;
    • XHCI_VECTOR out of the generic xHCI driver into idt;
    • the I/O APIC's pin remapping into ioapic.rs.
  • Deleted: arch::msi_message on both architectures (x86-64's becomes apic's private compatibility encoder), iommu::Delivery, PinRedirect, remap_pin, and the SMMU's interrupt stub.
  • Every x86-64 log line a test reads is unchanged: handed over on slot N, vector 0x28, took its first message on vector 0x28, xHCI: ... enabled (vector 0x21).

Past the row's fence, each forced by the brief's deletion of the generic vector: u8, by the doorbell the measurement showed, or by a review finding:

  • arch/x86_64/{apic,ioapic,pio,mod}.rs, vtd/interrupt.rs and idt/mod.rs follow the signatures above.
  • drivers/xhci/ names its interrupt by the arch type.
  • smmu/domain.rs maps the doorbell.
  • smmu/mod.rs loses its interrupt stub, and its routes carry the ITS mapping.
  • toyos-its gains PENDBASER_PTZ.
  • kernel/Cargo.toml takes toyos-its, the in-tree G1 crate. Nothing new is fetched.

Issues.

  • issues/a-claimed-function-can-storm-its-cpu.md names each architecture's slot interrupt and its lever, now that pcidev::VECTORS is gone.
  • The track's stage 6 now says what stops a released function's doorbell write, and names the test it owes.
    • Releasing a claim does not move the function's stream back to abort. Its stream stays on the slot's domain, which maps the doorbell (smmu/domain.rs has no detach).
    • With mastering off and its message masked, a write it makes anyway reaches the ITS, which translates nothing for a DeviceID the release unmapped.
    • That last step is read, not tested. Owed: a smmu-selftest arm that has an iommu-testdev write event 0 to GITS_TRANSLATER after its DeviceID is unmapped, and is red if the slot's LPI is raised.

Not done: MAX_FUNCTIONS stays 4. The plan lists 8 among the gate's seam changes. The desktop needs six claims, and nothing in G3 does.

The checks of this high-risk code

Interrupt delivery to a claim is an isolation boundary and a concurrency primitive. The kernel's copies through a user mapping are the user/kernel boundary.

The guest test. virt_claim_lpi boots virt under HVF on one CPU, iommu=smmuv3,its=on,kernel-irqchip=off, with QEMU's edu, and an e1000e behind a root port of a pxb-pcie with bypass_iommu=on. Its case, tests/virtclaimcase, runs three jobs:

  1. claim_lpi claims edu, maps BAR 0 and takes one grant, because QEMU sends an MSI only from a function that masters the bus. It asks for 16 messages and reads each as exactly one interrupt of its claim, with none before or after. The harness holds the kernel's lines to it:
    • the ITS armed at the MADT's 0x8080000;
    • edu handed over on slot N with LPI 8192 + N;
    • its DeviceID the requester ID, which QEMU's IORT maps unchanged;
    • the slot's first message;
    • the release, and the DeviceID unmapped after it.
  2. claim_unrouted is refused the e1000e (NotSupported) and then claims edu, so the kernel that refused it is still alive and claiming. The harness holds the kernel to the refusal's name: NOT HANDED OVER — no message of its own could be made for it — the IORT gives it no DeviceID at this kernel's ITS behind the SMMUv3.
  3. claim_bar_fault works on edu's DMA source and destination registers (0x80, 0x88), which keep what is written to them across claims.
    • It writes a marker into each. It names the two registers as a pipe read's buffer and as a write's, and each is refused BadAddress with the registers unchanged.
    • Two children, each holding a claim of its own, then fault with an address in those registers. frame faults with x29 there (an undefined instruction). jump branches there, an instruction abort at a BAR mapped never executable. Each ends with the kernel's fault exit, -1.
    • The job reads the markers back afterwards, so both reports had them to read. The harness reds on either marker anywhere on the console, on any user fault count but two, and on any DMA FAULT.

Negative control. The change's production half (kernel/, Cargo.lock, toyos-its/) is reverted onto 819b308d4, this head's main, with the tests kept: red, EXIT=1, on NOT HANDED OVER — its interrupts would not be remapped on this machine: patch part 1 part 2, log part 1.

Mutations. Each is a checked patch, built, run and restored by mutate.sh, all at this head (0de25fd5e), on virt_claim_lpi:

patch site what reds patch, log
m1-paging-reverted this round's paging.rs change reverted: the negative control of the crash-report fix QEMU itself dies, Assertion failed: (isv), function hvf_handle_exception, file hvf.c, line 2437, and the harness sees the guest go quiet; EXIT=1 patch part 1 log part 1
m2-backtrace-reads-device read_user_word answers a Device leaf 0xbad1c0de00005eed, in edu's BAR, is on the console: a crash report read through it; EXIT=1 patch part 1 log part 1
m3-walk-answers-device walk answers a Device leaf the same QEMU assertion as m1; EXIT=1 patch part 1 log part 1
m4-any-route-a-deviceid the review's: a claim takes the requester ID as its DeviceID when the routes give none the kernel never refuses e1000e by the name the harness holds; EXIT=1 patch part 1 log part 1
r1-irq-no-preempt-count irq()'s bracket removed pcidev: slot 0's interrupt arrived with the preempt count at zero, a kernel panic; EXIT=1 patch part 1 log part 1
r1-no-doorbell-leaf the domain's doorbell page not mapped DMA FAULT ... addr=0x0000000008090040 ... F_TRANSLATION, and the job ends 101; EXIT=1 patch part 1 log part 1
r1-wrong-slot-lpi MAPTI to the next slot's LPI no message is read as the claim's interrupt within the bound, and the job ends 101; EXIT=1 patch part 1 log part 1
r1-wrong-event the message carries event 1 the ITS translates nothing, and the job ends 101; EXIT=1 patch part 1 log part 1

What the reds say, and what they do not:

  • m1 and m3. I found where they die by running m3 again with a register dump added at the stall (patch part 1, log part 1). The dump itself was refused, because the machine has no QMP socket. QEMU's own assertion is the evidence: the kernel accessed the BAR through the direct map with an instruction whose syndrome HVF cannot emulate. On hardware the same access reads or writes the device's registers.
  • m4. It does not reach attach's panic. The claim maps DeviceID 0x900 and arms the e1000e's MSI-X, and then place_bars refuses every BAR placement, because no window firmware declares is routed to the pxb-pcie. So the red is the refusal's name, not the panic.
  • The EnableLPIs panics and the four base-register read-backs. No test reaches them: QEMU takes every value written. A reader can check them in its.rs's bring_up.

Independent oracle.

  • The GIC specification, Arm IHI 0069 H.b, cited at each encoding site. The encodings themselves are toyos-its's, held to the specification's field positions by G1's host tests. its.rs cites it at GITS_CTLR.Quiescent (§12.19.4), GITS_BASER's read-only fields (§12.19.1), the ITT alignment (§5.3.10), SYNC (§5.3.15) and the LPI tables (§5.1.1).
  • The platform's own tables: the harness computes the DeviceID it expects from the requester ID by the identity that QEMU's IORT states, read independently of the kernel.
  • QEMU's edu registers, whose values the kernel cannot produce, are the oracle for whether a crash report read the BAR.

Why a QEMU guest test

  • The ITS path. No type or host test reaches an ITS, an SMMUv3 translating a message, and a GIC delivering the LPI. The encodings are already host-tested in toyos-its, and what is new here is three emulated devices agreeing with this kernel.
  • The two new jobs. The defect is the kernel reaching a device's registers through a user mapping of Device type, which needs a BAR mapped into a process by the MMU and the kernel's own fault and syscall paths. The refusal needs a real IORT routing a function past the unit.
  • No metal row reaches any of it. The T14 is x86-64, so it has no ITS and no SMMUv3, and none of the AArch64 paging code runs there.

The review's findings

  • BLOCKER, the crash report through a device mapping. Fixed as the issue's exit says, and the issue is closed. The exit's three guest cases are claim_bar_fault's two children and its read; it also covers write. Negative control m1, red.
  • BLOCKER, LPI tables freed after EnableLPIs. Every failure from EnableLPIs on is now an assert!, so no Err drops memory.pages while the redistributor may still use them.
  • BLOCKER, a claim behind a root port. I measured the premise first. A plain pcie-root-port's function is routed through the unit on QEMU 11.1.1, so it is not refused, and claiming it does not reach attach's panic. A pxb-pcie with bypass_iommu=on is what QEMU routes past the unit, and the test claims an e1000e behind a root port there. The refusal now comes from the unit's own routes, as the review preferred. The review's mutation goes red (m4); why it reds on the name rather than the panic is above.
  • NOTE, the storm issue. It now names each architecture's slot interrupt and lever.
  • NOTE, GITS_CBASER and GICR_PENDBASER. Both are read back and refused on a mismatch, and so is GICR_PROPBASER, whole.
  • NOTE, the track's "Not yet tested". It now names its test. It also corrects the review's premise: a released function's stream does not go back to abort; it stays on its domain, which maps the doorbell.

Gates, at 0de25fd

gate exit log
cargo run -- --ci host EXIT=0 part 1 part 2 part 3 part 4 part 5 part 6 part 7 part 8
cargo test --test toyos-build, the default suite: 56 tests, x86-64 under TCG (this host has no KVM) and virt under HVF, virt_claim_lpi among them EXIT=0 part 1
cargo run -- --build-only EXIT=0 part 1
cargo run -- --build-only --arch aarch64 EXIT=0 part 1

The same four gates were green at b26a9cddb, before the merge of 1079e854a: host part 1 part 2 part 3 part 4 part 5 part 6 part 7 part 8 part 9, suite part 1, x86-64 build part 1, aarch64 build part 1. So were the first runs of the mutations there: m1 part 1, m2 part 1, m3 part 1, m4 part 1.

The first round's host run at d719cc9d4 went red, EXIT=1, on toyos/src/log/proof.rs's a_lane_gives_its_reader_every_record_in_order_or_counts_it_refused, at a load average of 44 on 14 cores. That is filed as issues/a-lane-reader-counted-one-refusal-fewer-than-its-writer-made.md and was not re-run: part 1 part 2 part 3 part 4 part 5 part 6 part 7 part 8

The merge of main

1079e854a (#822) landed while this round ran. Five conflicts, each resolved by accounting for both sides:

  • drivers/virtio_sound.rs. Main deletes the driver, and this branch had only moved its vector, so it is deleted, and with it DriverIrq's virtio-sound arm on both architectures.
  • Intid::Hda. Main keeps it, and an HDA_VECTOR of it, for arch::msi_message, which this branch deletes.
  • idt/mod.rs. Main drops the virtio-sound vector.
  • pcidev::isr. This branch's preempt-count assertion beside main's took with the landing time.
  • The track's stage 6 sentence. Taken without main's clause that a process's claim on virt is refused with the kernel's drivers, which the ITS here makes false.

After the merge, the harness waits for the claim's last line (8817182d5). virt_claim_lpi waited for the ITS's unmapped from slot line and then read pcidev's released from slot line, which the kernel logs after it. A drain that ended between the two left the harness reading a line that was not there yet. The review's mutation, run at the intermediate head 40d4dd4e6, went red on exactly that: the kernel never said "pcidev: PCI 00:03.0 [1234:11e8] released from slot 0", with the line absent from the capture. It now waits for the release line. The logs of that run were overwritten by the rerun at this head and are not posted. After that fix, 819b308d4 (#844, prompt files only) was merged.

2262cb2ce (#842, the AArch64 wall clock) landed after this head. It is not merged here: git merge-tree --write-tree of this head and it exits 0, and it touches no file this branch changes but tests/toyos.rs and tests/common/qemu.rs, at other sites. That merge is not built or run.

What I am unsure of

  • The x86-64 suite under KVM is not run: this host has none, and its x86-64 guests run under TCG. The guest / suite check runs it. Nor is a T14 run requested. The row's table names one, but the brief named no metal directory, and the claim path on x86-64 changed only in where its vector and destination are named.
  • A release's ITS half is not tested. The owed test is recorded in the track.
  • Every message targets the boot CPU, as x86-64's do; no other redistributor enables LPIs.
  • The emulated GIC's cost under HVF is not measured, and every virt machine but virt_claim_lpi's still boots HVF's own GIC.
  • Which of claim_bar_fault's accesses kills the machine under m1 and m3 is not measured. The crash report's reads in the two fault cases are aligned loads, and m2 shows one of them reading the register rather than faulting: the direct map holds the BAR's window as Device-nGnRE. So those two cases go red on the marker, and only a syscall's copy is a candidate for the access HVF cannot emulate.
  • slot_interrupt formats a string on AArch64 for the two claim log lines.

Lines

git diff --shortstat origin/main...0de25fd5e: 36 files, +1289 −376. Production (kernel/, Cargo.lock, toyos-its/) +810 −289, of which the ITS driver is 466; tests and the harness +416 −1; issues +63 −86.

🤖 Generated with Claude Code

https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C

…3 ITS, and no generic signature carries an x86 vector

AArch64 gains the ITS (kernel/src/arch/aarch64/irqchip/its.rs), brought up
from the MADT on the boot CPU's redistributor with toyos-its's encodings:
the LPI configuration and pending tables, a flat device table of 2^16
DeviceIDs, the collection table, one command queue, and collection 0 on the
boot CPU. A claim maps its function's DeviceID, which the IORT gives behind
the SMMUv3, to a translation table of its own whose one event is its slot's
LPI (MAPD, MAPTI, SYNC); a release discards and unmaps it. A DeviceID
another claim holds, one past the table, or a function the IORT gives no
DeviceID behind the unit is refused by name. A driver in this kernel is
given no LPI.

QEMU's SMMUv3 translates a function's MSI as any write it makes, measured:
without a mapping, edu's first message is a DMA FAULT at 0x8090040,
F_TRANSLATION, and the claim answers Io. So every domain maps the doorbell's
4 KiB page at its own address, as toyos-smmu's Leaf::Doorbell plans it.

irq() holds the preempt count across every device arm, as x86-64's
device_irq_entry does: the claim's arm posts a watch, whose release at
depth zero would run a scheduler pass inside the handler before its end of
interrupt. pcidev::isr asserts the count is raised.

The seam: iommu::claim_msi takes no vector and may refuse; the kernel
drivers' arming names an arch::DriverIrq, and the architecture makes its
message (x86-64: the compatibility format with no unit, a remapping entry
with one). VECTORS moves into idt/user_dev.rs, MSG_DEST into apic.rs, the
pin's remapping into ioapic.rs, and each architecture states its own
refusals. arch::msi_message, iommu::Delivery, PinRedirect, remap_pin and the
SMMU's interrupt stub are deleted.

virt_claim_lpi boots virt under HVF with its=on,kernel-irqchip=off (HVF's
own GIC refuses an ITS), the SMMUv3 and QEMU's edu, on one CPU, and the
suite's claim_lpi job reads 16 messages as 16 interrupts of its claim.

Closes issues/msi-and-pin-routing-take-an-x86-vector-and-apic-id.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

M1: six HVF virt tests on QEMU's emulated GIC with the ITS, the harness patched, main's kernel (f72d53d), part 1 of 1

==> its-mode.patch <==
--- a/tests/common/qemu.rs
+++ b/tests/common/qemu.rs
@@ -2138,7 +2138,7 @@
                 Profile::VirtEl2 | Profile::VirtEl2NoVhe => {
                     format!("{},gic-version=3,virtualization=on", arch.machine())
                 }
-                _ => format!("{},gic-version=3", arch.machine()),
+                _ => format!("{},gic-version=3,its=on,kernel-irqchip=off", arch.machine()),
             };
             match shape.smmu {
                 Smmu::Absent => machine,

==> its-mode.log <==
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
   Compiling toyos-build v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3)
    Finished `test` profile [optimized + debuginfo] target(s) in 22.29s
     Running tests/toyos.rs (target/debug/deps/toyos_build-20cd9f517c1368c3)

12:32:39 running 6 tests, 12 wide

12:32:39   RUN   virt_user_mode
12:32:39   RUN   virt_timer_preempts
12:32:39   BUILD aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts
12:32:39   RUN   virt_irq_storm
12:32:39   RUN   virt_failed_ap_leaves_no_hole
12:32:39   RUN   virt_random_differs
12:32:39   RUN   virt_smmu
12:32:39   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_irq_storm
12:32:39   BUILD aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode
12:32:39   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_smmu
12:32:45 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 5045 (artifact staging), 1s so far
12:32:45 [build-lock] waiting for the build lock (exclusive, clean crate targets against changed external deps) — held by other builds in this tree
12:32:45 [build-lock] waiting for the build lock (shared, test image) — an exclusive phase is queued ahead of it
12:32:46 [build-lock] artifact staging acquired after 1.4s
12:32:47 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 5045 (artifact staging), 1s so far
12:32:48 [build-lock] artifact staging acquired after 1.1s
12:32:48   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_irq_storm  (9s)
12:32:49   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_smmu  (10s)
12:32:49 [build-lock] acquired (exclusive, clean crate targets against changed external deps) after 3.9s
12:32:49 [build-lock] acquired (shared, test image) after 3.5s
12:32:49 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 5045 (artifact staging), 0s so far
12:32:52   [virt] [ 2.827 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 4 functions' streams aborting in a table of 64, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
12:32:52   [virt] GBPA 0x101000: ABORT
12:32:52   [virt] [ 2.825 cpu0 kernel] smmu-selftest: 00:03.0, StreamID 0x18, is given no route, as a function never enumerated is not
12:32:52   [virt] [ 2.836 cpu0 kernel] smmu-selftest: 00:04.0's write at 0x40800000, on the entry its stream starts with, answered 0xdead0002: refused
12:32:52   [virt] [ 2.837 cpu0 kernel] smmu-selftest: 00:04.0's write at 0x400000000040, mapped to 0x40800040, answered 0x0: landed there
12:32:52   [virt] [ 2.848 cpu0 kernel] smmu-selftest: 00:03.0's write 1 at 0x40800000, under no route, answered 0xdead0002: refused
12:32:52   [virt] [ 2.849 cpu0 kernel] smmu-selftest: 00:03.0's write 2 at 0x40800000, under no route, answered 0xdead0002: refused
12:32:52   [virt] [ 2.849 cpu0 kernel] smmu-selftest: 00:03.0's write 3 at 0x40800000, under no route, answered 0xdead0002: refused
12:32:52   [virt] [ 2.851 cpu0 kernel] smmu-selftest: 00:04.0's write at 0x400000000040 again, which its domain no longer maps, answered 0xdead0002: refused
12:32:52   [virt] [ 2.849 cpu0 kernel] iommu: DMA FAULT owner=none unit0 stream=0x18 addr=0x0000000000000000 access=none reason=0x04 domain=unknown bme=unknown-function unitfaults=1 streamfaults=1 first=y C_BAD_STE
12:32:52   [virt] [ 2.850 cpu0 kernel] iommu: DMA FAULT owner=none unit0 stream=0x18 addr=0x0000000000000000 access=none reason=0x04 domain=unknown bme=unknown-function unitfaults=2 streamfaults=2 first=y C_BAD_STE
12:32:52   [virt] [ 2.853 cpu0 kernel] iommu: DMA FAULT owner=kernel unit0 stream=00:04.0 addr=0x0000400000000040 access=write reason=0x10 domain=1 bme=cleared unitfaults=4 streamfaults=1 first=n F_TRANSLATION
12:32:52   PASS  virt_smmu  (3s)
12:33:18   [virt] [29.662 cpu0 kernel] irq-storm: PASS sgis=1236141/1236141 ticks=1000: the timer fired through the flood, and every SGI sent was taken
12:33:18   PASS  virt_irq_storm  (30s)
12:33:19 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 5045 (artifact staging), 30s so far
12:33:44   BUILT aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts  (66s)
12:33:44 [build-lock] artifact staging acquired after 55.7s
12:33:44   BUILD aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts
12:33:49 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 5045 (artifact staging), 5s so far
12:34:19 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 5045 (artifact staging), 35s so far
12:34:23   BUILT aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode  (105s)
12:34:23 [build-lock] artifact staging acquired after 34.6s
12:34:24   BUILT aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts  (40s)
12:34:24   BUILD aarch64 random_draws of tests/toyos-rust-tests, for virt_timer_preempts
12:34:26   PASS  virt_user_mode  (3s)
12:34:31   BUILT aarch64 random_draws of tests/toyos-rust-tests, for virt_timer_preempts  (7s)
12:34:31   BUILD aarch64 counters_read of tests/toyos-rust-tests, for virt_failed_ap_leaves_no_hole
12:34:31   BUILD aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts
12:34:36 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 5045 (artifact staging), 0s so far
12:34:37   BUILT aarch64 counters_read of tests/toyos-rust-tests, for virt_failed_ap_leaves_no_hole  (7s)
12:34:37   BUILD aarch64 trace_read of tests/toyos-rust-tests, for virt_failed_ap_leaves_no_hole
12:34:37 [build-lock] artifact staging acquired after 1.1s
12:34:41   BUILT aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts  (10s)
12:34:44   [virt] [ 3.180 test-runner pid=4] preempt: the counting thread was preempted twice, at counts 2733065 and 4610153
12:34:44   PASS  virt_timer_preempts  (4s)
12:34:45   BUILT aarch64 trace_read of tests/toyos-rust-tests, for virt_failed_ap_leaves_no_hole  (7s)
12:34:45   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole
12:34:49   [virt] [ 4.092 test-runner pid=18] random_draws: 8 threads drew 1000 times each and no two draws were alike; one more: 6d4270542911c0487a4f962028623a4f31cdeb5e017db54cccf37f3e282d4c0e
12:34:51   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole  (6s)
12:34:53   [virt] [ 3.511 test-runner pid=18] random_draws: 8 threads drew 1000 times each and no two draws were alike; one more: 2837ed53446d1bd9da9d34d385fcd175d0556271353556d53de7fc0fa0d11ff3
12:34:53   [virt] two boots keyed from the loader's seed printed two draws
12:34:53   PASS  virt_random_differs  (135s)
12:35:00   [virt] [ 8.820 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
12:35:00   [virt] a non-last AP never started and the dense machine ran its job
12:35:00   PASS  virt_failed_ap_leaves_no_hole  (121s)
12:35:00   --- 7 guests, 6 of them not the shipping kernel, 2 kernel build(s): ["", "boot-actuators,test-actuators"]

12:35:00 host: fastest boot 1094 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
12:35:00 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
12:35:00 test result: ok. 6 passed, 6 total (141.3s; workers: 266s building, 296s testing)
EXIT=0


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Gate: cargo run -- --ci host at 2c744d4, EXIT=0, part 1 of 8

==> final2-ci-host.uptime <==
15:34  up 11 days,  3:18, 6 users, load averages: 25.35 33.39 45.62
15:38  up 11 days,  3:23, 6 users, load averages: 32.83 31.46 41.37

==> final2-ci-host.log <==
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.70s
     Running `target/debug/toyos-build --ci host`

13:34:36 === [ci] the build system
    Finished `test` profile [optimized + debuginfo] target(s) in 0.32s
     Running unittests src/lib.rs (target/debug/deps/toyos_build-b256281d09719d65)

running 362 tests
test arch::tests::a_guest_of_another_architecture_is_emulated ... ok
test bootlog::record_time_tests::the_last_record_is_the_last_line_that_carries_a_time ... ok
test bootlog::record_time_tests::a_records_elapsed_field_is_read_past_whatever_tag_precedes_it ... ok
test arch::tests::every_target_names_its_own_architecture ... ok
test bootlog::tests::a_long_binarys_record_is_the_prefix_the_kernel_keeps ... ok
test bootlog::record_time_tests::the_panel_census_is_read_off_either_channel ... ok
test bootlog::tests::a_boot_is_handed_back_by_its_done_and_its_last_word ... ok
test bootlog::tests::a_power_off_is_the_supervisors_stop_naming_a_shutdown ... ok
test bootlog::tests::the_boot_record_is_the_kernels_own_line ... ok
test bootlog::tests::a_part_whose_rotation_the_log_does_not_hold_is_a_hole ... ok
test bootlog::tests::a_boot_that_lost_parts_of_its_own_log_is_told_from_one_that_is_whole ... ok
test arch::tests::every_name_parses_back_to_its_arch_and_nothing_else_does ... ok
test bootlog::tests::only_a_declaration_of_the_whole_value_counts ... ok
test bootlog::tests::a_programs_line_is_never_the_kernels ... ok
test bootlog::tests::a_boot_record_without_the_supervisors_stop_is_not_a_pass ... ok
test bootlog::tests::the_loaders_file_is_told_from_logkeepers_however_a_driver_spelled_it ... ok
test bootlog::tests::the_kernel_writes_the_records_the_host_reads ... ok
test build::tests::a_bin_entry_no_name_reaches_is_refused ... ok
test build::tests::a_kernel_of_any_other_feature_set_is_not_judged ... ok
test build::tests::a_clean_entry_is_the_shipping_kernels ... ok
test build::tests::a_hold_is_refused_in_a_shipping_entry_however_its_labels_are_spelled ... ok
test build::tests::a_boot_that_asks_for_no_feature_gets_the_shipping_kernel ... ok
test build::tests::a_hold_in_front_of_the_save_is_an_entry_the_judge_refuses_to_read ... ok
test build::tests::a_kernel_that_does_not_name_exactly_one_entry_is_refused ... ok
test build::tests::a_valued_parameter_is_one_the_kernel_claims_by_prefix ... ok
test bootlog::tests::the_loader_writes_the_lines_the_host_reads ... ok
test build::tests::an_artifact_build_is_not_part_of_a_test_execution_price ... ok
test build::tests::debug_mode_declares_only_its_debug_kernel ... ok
test build::tests::a_case_plan_carries_the_config_and_the_parameters ... ok
test build::tests::a_provides_name_is_never_also_a_serves_name ... ok
test build::tests::every_config_renders_its_manifest ... ok
test build::tests::every_boot_config_runs_logkeeper ... ok
test build::tests::a_row_starts_only_what_a_launch_can_start ... ok
test build::tests::an_installed_app_receives_only_names_the_supervisor_holds ... ok
test build::tests::every_modes_crates_and_the_supervisor_ship ... ok
test build::tests::every_declared_capability_is_one_the_abi_has ... ok
test build::tests::every_device_class_has_at_most_one_claimant ... ok
test build::tests::every_receives_names_a_provider ... ok
test assets::tests::the_console_font_covers_the_swiss_german_altgr_layer ... ok
test build::tests::every_started_program_is_declared ... ok
test build::tests::no_diag_program_claims_the_screen ... ok
test build::tests::no_shipped_boot_config_starts_sshserver ... ok
test build::tests::no_actuator_is_also_a_cargo_feature ... ok
test build::tests::the_actuator_umbrella_is_a_leaf ... ok
test build::tests::the_check_does_not_reach_a_spawner_that_never_spawns ... ok
test build::tests::the_kernel_declares_only_the_builds_that_earned_one ... ok
test build::tests::params_read_the_kernels_own_list ... ok
test build::tests::only_their_holders_may_hold_the_swap_port_and_the_slots ... ok
test build::tests::the_pre_flash_gate_clears_a_valued_parameter_and_refuses_an_actuator ... ok
test build::tests::the_log_right_doc_names_exactly_the_manifests_holders ... ok
test build::tests::every_model_control_is_run ... ok
test build::tests::a_boot_config_that_is_not_a_case_is_refused ... ok
test build::tests::a_stamp_that_cannot_be_written_panics ... ok

running 1 test

running 1 test

running 1 test

running 1 test

running 1 test
13:34:37 [build-lock] waiting for the build lock (exclusive, queued exclusive phase) — held by other builds in this tree

running 1 test
13:34:37 [build-lock] waiting for the sysroot lock (using sysroot 6ab9f1eb8f7d3388) — held by pid 58210 (building sysroot 6ab9f1eb8f7d3388), 0s so far

running 1 test
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.02s

test build::tests::moved_libraries_take_what_was_built_for_them_and_a_moved_compiler_all ... 
running 1 test
13:34:37 [build-lock] waiting for the build lock (shared, child) — an exclusive phase is queued ahead of it
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.02s

ok
test assets::tests::the_system_fonts_ship_with_their_licence ... ok
test buildlock::tests::child_role ... ignored, the competing process for the tests below; never runs on its own
test buildlock::tests::a_released_holder_is_gone ... ok

running 1 test

running 1 test

running 1 test
test buildlock::tests::shared_admits_shared ... ok
test ci::tests::a_carried_jobs_step ... ignored, the driver of the test above; never runs on its own
test ci::tests::a_control_is_judged_by_its_verdict_and_not_its_exit_alone ... ok
test ci::tests::a_hung_step ... ignored, the step of the driver above; never runs on its own
test ci::tests::a_hung_steps_child ... ignored, what the step above spawns; never runs on its own
test ci::tests::a_hung_steps_driver ... ignored, the driver of the tests around it; never runs on its own
test ci::tests::a_job_is_named_and_takes_nothing_after_it ... ok
test buildlock::tests::killed_holder_releases_the_lock ... ok
13:34:37 [build-lock] waiting for the build lock (exclusive, clean the crate target) — held by other builds in this tree
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.01s

test build::tests::every_shipped_boot_config_is_covered ... ok
test ci::tests::a_steps_cargo ... ignored, the driver of the test above; never runs on its own
test buildlock::tests::exclusive_excludes_every_other_acquirer ... ok
test ci::tests::an_app_is_judged_for_every_host_its_fails_does_not_name ... ok
test ci::tests::an_interrupt_of_the_driver_ends_the_group_its_step_runs_in ... ok
test ci::tests::an_interrupted_drivers_judge ... ignored, the judge of the test above; never runs on its own
test ci::tests::left_behind_refuses_a_tmpdir_that_never_saw_the_lock ... ok
test ci::tests::only_mains_tip_publishes ... ok
test assets::tests::only_doom_opens_doom_s_assets ... ok
test ci::tests::the_declared_version_is_a_version ... ok
test ci::tests::the_host_job_names_what_its_tests_left_behind ... ok
test ci::tests::the_required_check_is_a_job_on_every_pull_request ... ok
test ci::tests::the_job_names_a_short_root_a_step_left_when_it_died ... ok
test ci::tests::the_summary_keeps_the_count_and_the_verdicts ... ok
test ci::tests::the_version_parser_takes_what_qemu_prints_and_refuses_the_rest ... ok
test ci::tests::workflows_run_against_main_on_hosted_runners ... ok
test assets::tests::a_system_font_ships_as_it_is_and_the_console_font_as_its_raster ... ok
test assets::tests::root_carries_what_the_repository_declares ... ok
test assets::tests::an_owned_asset_ships_only_where_its_reader_does ... ok
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.32s

test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.30s

13:34:37 [build-lock] acquired (exclusive, queued exclusive phase) after 310.9ms
13:34:37 [build-lock] acquired (shared, child) after 296.3ms
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.31s

test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.30s

test buildlock::tests::a_queued_exclusive_phase_goes_first ... ok

running 1 test
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.01s

test buildlock::tests::a_key_being_built_is_waited_for_and_another_key_is_not ... ok
13:34:37 [build-lock] still waiting for the build lock (exclusive, clean the crate target), 302ms so far — the holder left no readable note
test cicache::tests::a_reader_whose_clock_is_not_after_the_entry_is_refused ... ok
test cicache::tests::every_spelling_of_code_run_at_build_time_is_found ... ok
test cicache::tests::only_a_driver_built_in_its_own_target_carries_the_cache ... ok
test cicache::tests::a_seal_refuses_what_its_save_would_store_above_the_bound ... ok
test cicache::tests::a_seal_dates_every_target_and_refuses_a_written_source ... ok
test clippy::tests::the_adopted_set_expands_into_the_shapes_that_name_it ... ok
test clang::tests::a_toolchain_carries_the_clang_of_its_llvm_or_is_refused ... ok
test ci::tests::a_step_of_a_job_that_carries_the_cache_builds_in_its_own_target ... ok
test cicache::tests::targets_restored_without_a_manifest_are_refused ... ok
13:34:38 [build-lock] still waiting for the build lock (exclusive, clean the crate target), 607ms so far — the holder left no readable note
test buildlock::tests::a_lasting_wait_keeps_saying_so ... ok
13:34:38 [build-lock] acquired (exclusive, clean the crate target) after 706.3ms
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.72s

test buildlock::tests::a_clean_cannot_land_inside_a_build ... ok
test compiler::tests::child_role ... ignored, the competing process for the test above; never runs on its own
test compiler::tests::every_compiler_is_built_lean_against_the_host_s_llvm ... ok
test build::tests::a_tree_records_its_commit_its_commit_time_and_whether_it_is_dirty ... ok
test ci::tests::a_steps_cargo_finds_fresh_what_the_jobs_cargo_built ... ok
test firmware::tests::a_descriptor_that_does_not_parse_is_refused_by_name ... ok
test firmware::tests::a_glob_matches_a_trailing_star_as_a_prefix_and_refuses_anything_else ... ok
test firmware::tests::a_read_only_templates_copy_is_still_writable ... ok
test firmware::tests::an_earlier_directory_hides_a_later_ones_name_and_a_missing_one_holds_nothing ... ok
test firmware::tests::nothing_fitting_is_refused_naming_what_was_read ... ok
test firmware::tests::the_first_non_secure_uefi_flash_descriptor_for_the_machine_wins ... ok
test firmware::tests::the_machine_is_the_versioned_type_its_alias_resolves_to ... ok
test firmware::tests::the_users_and_the_systems_directories_come_before_qemus_own ... ok
test flags::tests::a_declared_flags_value_is_never_read_as_a_flag ... ok
test flags::tests::a_flag_left_without_its_value_is_refused ... ok
test flags::tests::a_flag_that_reads_one_value_is_refused_when_it_is_written_twice ... ok
test flags::tests::a_repeatable_flag_keeps_every_value_it_was_given ... ok
test flags::tests::an_argument_the_declaration_does_not_expect_is_refused_by_name ... ok
test flags::tests::an_inline_value_is_refused_exactly_where_it_would_be_dropped ... ok
test flags::tests::help_is_the_whole_declared_list ... ok
test hostws::tests::every_crate_in_the_tree_joined_the_workspace_or_was_excluded_by_name ... ok
test hostws::tests::every_member_and_every_exclusion_still_names_a_directory ... ok
test hostws::tests::nothing_that_runs_names_a_target_directory_a_member_does_not_have ... ok
test hostws::tests::the_dead_path_scan_names_the_member_and_ignores_an_excluded_crate ... ok
test hostws::tests::the_dead_path_scan_reads_code_and_not_the_comment_beside_it ... ok
test hostws::tests::the_gate_refuses_a_crate_that_joined_neither_list ... ok
test hostws::tests::the_root_package_is_the_only_default_member ... ok
test hostws::tests::the_walk_reaches_the_tree_and_descends_into_it ... ok
test identity::tests::a_file_that_is_not_rust_is_its_bytes ... ok
test identity::tests::a_literal_is_never_read_as_a_comment ... ok
test identity::tests::a_signature_or_a_value_is_a_change ... ok
test identity::tests::every_doc_comment_in_the_sysroot_crates_is_invisible ... ok
test identity::tests::the_doc_fix_that_cost_a_version_and_a_sysroot_is_neither ... ok
test cicache::tests::an_entry_built_on_another_runner_is_deleted ... ok
test image::tests::a_damaged_image_is_refused_by_the_reader_that_caught_it ... ok
test build::tests::the_kernel_resolves_no_libc_for_either_target ... ok
test image::tests::a_second_build_at_the_boundary_does_not_run_out ... ok
test image::tests::every_declared_path_resolves_inside_the_root_partition ... ok
test image::tests::one_ordering_of_one_set_is_one_image ... ok
test image::tests::an_image_s_marked_slot_is_signed_over_exactly_what_it_carries ... ok
test image::tests::the_esp_and_a_slot_carry_what_the_bootloader_looks_for ... ok
test image::tests::an_install_makes_its_disk_and_refuses_one_that_exists ... ok
test image::tests::the_volumes_this_build_writes_break_no_format_rule ... ok
test kernelconsole::tests::a_console_that_ends_mid_line_shows_its_last_line ... ok
test kernelconsole::tests::a_port_the_firmware_left_alone_passes_whole ... ok
test image::tests::the_root_partition_reads_back_as_the_files_the_build_put_in_it ... ok
test kernelconsole::tests::a_terminal_is_shown_the_firmware_as_it_came_and_the_kernel_in_colour ... ok
test kernelconsole::tests::nothing_before_the_kernel_passes ... ok
test kernelconsole::tests::the_fused_line_is_the_kernels_first_record_wherever_the_chunks_fall ... ok
test kernelkeys::tests::every_declared_row_names_the_minter_of_its_keys ... ok
test image::tests::root_carries_less_than_an_alignment_unit_of_free_blocks ... ok
test kernelkeys::tests::the_scan_reads_a_nested_generic_to_its_balanced_close ... ok
test kernelkeys::tests::the_scan_walks_past_four_measured_forms ... ok

running 1 test
test kernelkeys::tests::every_hashed_kernel_container_is_declared_with_a_kernel_minted_key ... ok
test keystore::tests::a_stopped_retire_leaves_nothing_at_its_name ... ok
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.01s

test keystore::tests::a_sweep_leaves_hidden_names_and_refuses_names_no_key_owns ... ok
test keystore::tests::a_product_used_again_is_kept ... ok
test keystore::tests::only_what_key_of_gives_is_a_key ... ok
test libc::tests::the_c_sysroot_names_the_empty_libraries ... ok
test licence::tests::a_cfg_edge_is_walked_and_excepted_only_while_every_edge_in_is_under_it ... ok

running 1 test
test licence::tests::a_committed_file_is_judged_by_its_row_when_it_ships ... ok
test licence::tests::a_disallowed_licence_is_refused_by_name ... ok
test licence::tests::a_font_licence_does_not_reach_a_row_that_is_no_font ... ok
test licence::tests::a_git_dependency_is_judged_like_any_other ... ok
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.01s

test licence::tests::a_graph_is_walked_over_normal_edges_from_the_shipped_root ... ok
test licence::tests::a_malformed_expression_is_refused_not_guessed ... ok
test licence::tests::a_notice_section_is_judged_when_what_no_row_names_ships ... ok
test licence::tests::a_notice_section_that_disagrees_with_a_row_is_refused ... ok
test licence::tests::a_notice_section_without_one_spdx_line_or_without_files_is_refused ... ok
test licence::tests::a_root_the_metadata_does_not_hold_is_refused ... ok
test licence::tests::an_and_passes_only_when_every_part_does ... ok
test licence::tests::an_embed_is_what_a_build_script_or_an_include_names ... ok
test licence::tests::an_exception_matches_by_name_and_licence_and_a_stale_one_reds ... ok
test licence::tests::an_or_passes_when_any_branch_does ... ok
test licence::tests::every_pending_exception_cites_an_issue_that_exists ... ok
test licence::tests::metadata_is_given_the_features_the_build_gives ... ok
test licence::tests::mpl_passes_and_is_named ... ok
test licence::tests::no_guest_target_satisfies_an_only_under_cfg ... ok
test licence::tests::only_a_workspace_member_is_a_documents_own ... ok
test licence::tests::the_trust_roots_pass_only_with_their_crates_licence_text ... ok
test keystore::tests::a_sweep_removes_what_nobody_used_for_the_keep_time_and_nobody_uses ... ok
test llvm::tests::a_build_directory_keeps_no_llvm_of_its_own ... ok
test cicache::tests::a_file_cargo_was_never_told_about_rebuilds_its_package ... ok
test compiler::tests::an_uncommitted_llvm_edit_is_refused ... ok
test compiler::tests::a_compiler_is_keyed_by_its_whole_build ... ok
test compiler::tests::a_compiler_whose_sources_moved_while_it_was_built_is_not_stored ... ok
test kernelconsole::tests::a_relay_waits_out_a_pty_that_would_block ... ok
test llvm::tests::a_staged_llvm_gitlink_is_refused ... ok
test compiler::tests::a_compiler_s_build_directory_keeps_no_llvm_of_its_own ... ok
test cicache::tests::an_entry_serves_exactly_the_sources_it_was_built_from ... ok
test compiler::tests::a_build_directory_another_llvm_filled_starts_from_nothing ... ok
test llvm::tests::child_role ... ignored, the competing process for the tests below; never runs on its own
test llvm::tests::keyed_and_built ... ignored, the process the environment test runs; never runs on its own
test cicache::tests::code_run_at_build_time_runs_again_on_every_read ... ok
test llvm::tests::a_placed_llvm_is_read_only ... ok
test llvm::tests::the_key_names_the_host_s_tools ... ok
test llvm::tests::the_llvm_config_turns_every_host_library_off ... ok
test llvm::tests::an_llvm_is_stamped_with_what_its_fork_s_commit_names ... ok

running 1 test

running 1 test

running 1 test

running 1 test
13:34:42 Building compiler 7159e1f18b167b33 in /private/var/folders/gr/mr4_fg4n34jb417sx1g5cgxc0000gp/T/toyos-tmp-57669-0/ci-host-0/toyos-tmp-58100-0/compiler-46/a/rust: nobody on this host has
13:34:42 Building LLVM edb8c0a49e4a1de4 in /private/var/folders/gr/mr4_fg4n34jb417sx1g5cgxc0000gp/T/toyos-tmp-57669-0/ci-host-0/toyos-tmp-58100-0/llvm-made-elsewhere-66/b/rust: nobody on this host has
13:34:42 Building LLVM edb8c0a49e4a1de4 in /private/var/folders/gr/mr4_fg4n34jb417sx1g5cgxc0000gp/T/toyos-tmp-57669-0/ci-host-0/toyos-tmp-58100-0/llvm-sweep-stopped-65/a/rust: nobody on this host has
test compiler::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.44s

13:34:43 Building LLVM edb8c0a49e4a1de4 in /private/var/folders/gr/mr4_fg4n34jb417sx1g5cgxc0000gp/T/toyos-tmp-57669-0/ci-host-0/toyos-tmp-58100-0/llvm-sweep-68/a/rust: nobody on this host has
test llvm::tests::the_caller_s_environment_reaches_neither_the_build_nor_the_key ... ok
test llvm::tests::a_checkout_behind_its_gitlink_is_built_at_the_gitlink ... ok

running 1 test
test llvm::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.72s

test llvm::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.80s

13:34:43 Building compiler ba8f7ad1ae656e39 in /private/var/folders/gr/mr4_fg4n34jb417sx1g5cgxc0000gp/T/toyos-tmp-57669-0/ci-host-0/toyos-tmp-58100-0/compiler-46/a/rust: nobody on this host has
test llvm::tests::an_llvm_keeps_what_builds_read_and_nothing_else ... ok
test metal::tests::a_boot_entry_is_matched_on_the_partition_its_path_names ... ok
test metal::tests::a_boot_entry_the_firmware_did_not_name_cannot_be_filled_in ... ok
test metal::tests::a_command_line_that_names_no_image_flashes_none ... ok
test metal::tests::a_create_that_moved_the_boot_order_is_refused ... ok
test metal::tests::a_failed_boot_and_a_loop_that_could_not_run_are_different_answers ... ok
test metal::tests::a_node_is_a_whole_scsi_or_nvme_disk_and_nothing_else ... ok
test metal::tests::a_pass_that_reported_and_booted_nothing_is_named_as_that ... ok
test metal::tests::a_readback_directory_holds_nothing_the_last_run_left ... ok
test metal::tests::a_refusal_is_read_back_off_the_drivers_stderr ... ok
test metal::tests::a_sudoers_word_escapes_what_sudoers_reads ... ok
test metal::tests::an_account_name_that_would_widen_the_rule_is_refused ... ok
test metal::tests::an_arm_with_no_ruling_never_reaches_the_stick ... ok
test metal::tests::an_image_admits_only_the_table_the_installed_rule_names ... ok
test metal::tests::an_image_armed_to_stop_itself_owes_a_record_and_no_reboot ... ok
test metal::tests::an_image_with_no_bound_on_its_own_boot_is_refused ... ok
test compiler::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.58s

test llvm::tests::a_stopped_sweep_leaves_no_llvm_that_passes_for_whole ... ok
test metal::tests::dd_is_believed_only_where_it_states_a_count ... ok
test metal::tests::either_bounds_record_is_a_wedged_boots_pass ... ok
test metal::tests::every_arm_that_stops_this_machine_is_cleared_and_judged_as_one ... ok
test metal::tests::every_ruling_names_a_parameter_the_kernel_declares ... ok
test metal::tests::installing_the_rule_is_not_also_a_boot ... ok
test metal::tests::one_table_feeds_the_rule_and_the_argv ... ok
test metal::tests::the_arguments_name_the_t14_by_default ... ok
test metal::tests::the_bound_the_gate_demands_is_a_bound_the_gate_clears ... ok
test metal::tests::the_deadlines_lateness_is_counted_from_its_arm ... ok
test metal::tests::the_foreign_record_arm_reaches_its_judge_through_the_hang_it_stages ... ok
test metal::tests::the_host_clock_crosses_in_the_boot_file ... ok
test metal::tests::the_identity_is_the_stick_or_it_is_refused ... ok
test metal::tests::the_lid_policy_is_systemds_effective_one ... ok
test metal::tests::the_loops_verdict_crosses_in_the_readback ... ok
test metal::tests::the_machine_crosses_in_the_boot_file ... ok
test metal::tests::the_outside_judges_read_can_write_nothing ... ok
test metal::tests::the_phases_cross_in_the_boot_file ... ok
test metal::tests::the_readback_carries_the_verdict_the_loop_returns ... ok
test metal::tests::the_rule_is_the_command_table_rendered ... ok
test metal::tests::the_ssh_line_carries_the_key_and_nothing_interactive ... ok
test metal::tests::the_wait_outlasts_every_watchdog_a_boot_runs_under ... ok
test metaldevices::tests::a_needle_that_only_appears_in_a_comment_is_not_found ... ok
test metaldevices::tests::the_kernel_writes_the_quiesce_lines_the_host_reads ... ok
test metaldevices::tests::the_shutdowns_own_account_is_read_out_of_the_loaders_file ... ok
test metalimage::tests::a_config_with_no_runner_is_refused_by_name ... ok
test metalimage::tests::every_derived_config_ends_its_own_boot ... ok
test metalimage::tests::nothing_the_config_declared_is_dropped ... ok
test metaltimings::tests::a_failing_owners_reading_is_judged_and_not_recorded ... ok
test metaltimings::tests::a_known_machine_outside_its_record_fails_and_keeps_its_record ... ok
test metaltimings::tests::a_known_machine_within_its_record_passes ... ok
test metaltimings::tests::a_machine_is_three_non_empty_lines ... ok
test metaltimings::tests::a_name_recorded_twice_is_refused ... ok
test metaltimings::tests::a_new_name_on_a_known_machine_is_recorded_and_not_failed ... ok
test metaltimings::tests::a_record_survives_the_file_it_is_written_to ... ok
test metaltimings::tests::a_recorded_name_nothing_measured_is_named ... ok
test metaltimings::tests::an_unknown_machine_is_recorded_and_not_judged ... ok
test metaltimings::tests::another_bios_fails_naming_both_and_records_nothing ... ok
test metaltimings::tests::every_committed_record_loads_from_its_own_path ... ok
test metaltimings::tests::two_machines_sharing_a_file_name_are_refused ... ok
test miscompile::tests::an_endless_caller_is_not_one_that_returns_true ... ok
test n2::tests::an_installed_n2_is_not_installed_again ... ok
test publish::tests::a_first_publish_mints_root_one_and_a_machine_accepts_it ... ok
test llvm::tests::an_llvm_being_made_elsewhere_is_not_made_again ... ok
test publish::tests::a_publish_that_would_move_anything_back_is_refused_by_name ... ok
test publish::tests::a_publish_moves_forward_and_renews_a_root_near_its_expiry ... ok
test publish::tests::a_timestamp_naming_the_last_targets_version_is_refused ... ok
test release::tests::a_job_is_told_each_layer_s_entry_and_path ... ok
test publish::tests::two_rows_naming_one_archive_with_other_bytes_are_refused ... ok
test release::tests::a_job_saves_only_what_it_built ... ok
test release::tests::a_landing_during_the_nightly_puts_nothing_up_and_is_no_failure ... ok
test release::tests::a_layer_that_is_not_whole_is_refused ... ok
test release::tests::a_release_is_made_to_carry_these_bytes_and_no_other ... ok
test release::tests::a_job_lays_out_the_one_sysroot_it_restored ... ok
test release::tests::only_mains_publisher_publishes ... ok
test release::tests::the_glibc_scan_takes_the_newest_version_and_nothing_else ... ok
test release::tests::one_sysroot_packs_to_one_digest_and_unpacks_whole ... ok
test sdkversion::tests::a_changed_crate_takes_the_minor_after_the_newest_and_an_unchanged_one_keeps_it ... ok
test sdkversion::tests::a_dependent_whose_newest_names_a_stale_dependency_goes_up_again ... ok
test compiler::tests::one_compiler_per_key_whichever_checkout_names_it ... ok
test llvm::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 1.61s

test sdkversion::tests::every_lockfile_resolves_the_published_crates_from_the_tree ... ok
test llvm::tests::an_uncommitted_bootstrap_names_no_llvm ... ok
test sdkversion::tests::every_row_is_a_crate_the_tree_holds_in_dependency_order ... ok
test signing::tests::a_checkouts_throwaway_key_is_minted_once_and_read_back ... ok
test signing::tests::an_owner_key_reads_back_and_signs_what_the_loader_verifies ... ok
test signing::tests::an_owner_key_wider_than_0600_is_refused ... ok
test soundfont::tests::doom1_wads_music_selects_the_instruments_it_selects ... ok
test soundfont::tests::the_shipped_bank_carries_nothing_doom_does_not_select ... ok
test soundfont::tests::the_shipped_bank_sounds_every_instrument_the_shipped_wad_selects ... ok
test soundfont::tests::the_shipped_bank_still_carries_its_source_licence ... ok
test sourcegate::tests::a_capability_closing_ends_no_log_poll ... ok
test sourcegate::tests::a_value_is_refused_by_its_shape_and_what_resembles_one_is_not ... ok
test sourcegate::tests::bus_mastering_is_armed_at_exactly_the_declared_sites ... ok
test llvm::tests::an_llvm_is_swept_once_nothing_used_it_for_the_keep_time ... ok
test sourcegate::tests::every_hand_written_auto_trait_impl_is_declared ... ok
test sdkversion::tests::the_published_manifests_resolve_as_the_forks_name_them ... ok
test sourcegate::tests::nmi_does_not_log ... ok
test sourcegate::tests::no_slice_or_exclusive_reference_is_built_over_a_mapped_page ... ok
test sourcegate::tests::every_host_scratch_is_the_guard ... ok
test llvm::tests::the_key_moves_with_the_llvm_and_only_with_it ... ok
test sourcegate::tests::every_committed_binary_file_is_declared ... ok
test sourcegate::tests::the_scan_reaches_the_tree_it_claims_to ... ok
test sysroot::tests::a_std_build_downloads_no_llvm_and_asks_for_no_ninja ... ok
test sysroot::tests::a_std_build_under_the_same_compiler_keeps_no_llvm ... ok
test llvm::tests::two_sdk_versions_are_two_keys ... ok
test sysroot::tests::a_switch_that_cannot_remove_records_nothing_and_the_next_one_removes ... ok
test sysroot::tests::a_compiler_made_again_under_its_key_leaves_all_of_a_crate_stale ... ok
test sysroot::tests::a_sysroot_records_the_witness_it_was_built_from ... ok
test sysroot::tests::a_sysroot_is_whole_or_it_is_made_again ... ok
test sysroot::tests::a_sysroot_that_cannot_be_made_whole_is_made_once_and_refused ... ok
test sysroot::tests::another_compiler_s_std_build_goes_and_the_same_one_s_stays ... ok
test sdkversion::tests::a_key_moves_with_the_crate_and_its_published_dependencies ... ok
test sysroot::tests::the_libraries_placed_are_the_ones_the_stamp_names ... ok
test llvm::tests::an_llvm_that_is_not_whole_is_made_again ... ok
test llvm::tests::the_runtimes_sources_are_the_commit_s ... ok
test testargs::tests::a_boot_word_names_a_metal_boot_and_nothing_else ... ok
test testargs::tests::a_deleted_flag_is_refused_rather_than_becoming_the_filter ... ok
test testargs::tests::a_flag_left_without_its_value_is_refused_by_name ... ok
test testargs::tests::a_flag_written_twice_is_refused_by_name ... ok
test testargs::tests::a_flags_value_is_not_the_filter ... ok
test testargs::tests::a_readback_directory_alone_selects_no_tier ... ok
test testargs::tests::a_readback_flag_with_no_directory_never_reaches_the_metal_driver ... ok
test testargs::tests::an_inline_value_on_a_flag_that_has_none_is_refused ... ok
test testargs::tests::an_unknown_flag_is_refused_before_metal_decides_a_mode ... ok
test testargs::tests::every_word_that_is_nobodys_value_is_a_filter ... ok
test testargs::tests::metal_and_list_never_drives ... ok
test testargs::tests::metal_list_beside_a_readback_directory_is_refused ... ok
test testargs::tests::metal_refuses_a_filter_that_is_a_flags_name_or_empty ... ok
test testargs::tests::metal_refuses_the_flags_it_reads_nothing_of_by_name ... ok
test testargs::tests::metal_resolves_to_a_mode_that_reaches_the_machine_only_when_asked ... ok
test testargs::tests::the_documented_command_lines_parse ... ok
test testargs::tests::the_filter_is_the_word_that_is_nobodys_value ... ok
test metal::tests::coming_back_is_ssh_answering_and_not_its_port ... ok
test tether::tests::owner ... ignored, the owner `a_tethered_child_dies_with_its_owner` kills; never runs on its own
test tether::tests::parked ... ignored, the tethered child of `owner`; never runs on its own
test tether::tests::a_tethered_child_dies_with_its_owner ... ok
test toolchain::tests::a_bootstrap_run_leaves_both_lockfiles_as_they_were ... ok
test toolchain::tests::a_bootstrap_run_sees_no_ci_variables ... ok
test toolchain::tests::a_fake_bootstrap ... ignored, the bootstrap `a_bootstrap_run_leaves_both_lockfiles_as_they_were` runs; never runs on its own
test toolchain::tests::a_fake_bootstrap_that_reads_ci ... ignored, the bootstrap `a_bootstrap_run_sees_no_ci_variables` runs; never runs on its own
test toolchain::tests::a_fake_bootstrap_that_strips ... ignored, the bootstrap `a_compiler_build_finds_the_llvm_s_objcopy_where_rustc_strips_with_it` runs; never runs on its own
test toolchain::tests::a_link_failure_is_not_a_compile_error ... ok
test toolchain::tests::a_restore_that_cannot_write_leaves_the_file_whole ... ok
test toolchain::tests::a_toolchain_bin_without_cargo_is_one_rustup_narrates ... ok
test toolchain::tests::dep_info_names_the_checkout_std_was_really_built_from ... ok
test toolchain::tests::dep_info_that_cannot_be_read_is_refused ... ok
test toolchain::tests::a_compiler_build_finds_the_llvm_s_objcopy_where_rustc_strips_with_it ... ok
test toolchain::tests::the_first_real_error_is_the_one_reported ... ok
test userlandhost::tests::a_host_declaration_is_read_whole_and_refused_by_name ... ok
test userlandhost::tests::a_manifest_that_switches_tests_off_is_named ... ok
test userlandhost::tests::a_test_attribute_is_a_word_and_not_a_substring ... ok
test userlandhost::tests::every_program_the_images_ship_declares_what_it_is_to_a_host ... ok
test toolchain::tests::freestanding_libraries_that_read_the_worktree_are_refused ... ok
test userlandhost::tests::the_survey_gates_what_cargo_test_runs_and_names_the_rest ... ok
test userlandhost::tests::every_userland_test_is_in_the_gate ... ok
test userlandhost::tests::what_could_hide_a_test_is_a_condition ... ok
test compiler::tests::every_source_of_a_compiler_moves_its_key ... ok
test llvm::tests::two_compilers_of_one_llvm_make_it_once ... ok
test wallpaper::tests::the_committed_wallpaper_is_the_one_this_file_describes ... ok
test release::tests::the_layers_are_the_stores_the_build_makes ... ok
test wallpaper::tests::the_wallpaper_neither_bands_nor_blocks ... ok
test sysroot::tests::a_comment_is_the_same_sysroot_and_a_signature_is_another ... ok
test sysroot::tests::a_submodule_is_the_commit_its_gitlink_records_checked_out_or_not ... ok
test sysroot::tests::ensure_shallow_fork_initialises_no_submodule_in_a_linked_worktree ... ok
Preparing worktree (detached HEAD 073269e)
HEAD is now at 073269e C2
Preparing worktree (detached HEAD 0377849)
HEAD is now at 0377849 backtrace, later
Preparing worktree (detached HEAD fdfd2f7)
HEAD is now at fdfd2f7 C2
Preparing worktree (detached HEAD 0377849)
HEAD is now at 0377849 backtrace, later
test ci::tests::a_step_that_goes_quiet_is_ended_with_what_it_spawned_and_names_its_last_line ... ok
test llvm::tests::what_the_key_does_not_name_is_never_stored ... ok
test sourcegate::tests::no_tracked_file_identifies_a_machine_or_its_network ... ok
test sysroot::tests::twelve_builds_at_once_make_and_move_one_fork_checkout ... ok
test sysroot::tests::a_worktree_pinning_another_fork_commit_gets_its_own_checkout ... ok
test sysroot::tests::the_primary_s_fork_checkout_is_moved_to_its_pin ... ok

test result: ok. 347 passed; 0 failed; 15 ignored; 0 measured; 0 filtered out; finished in 11.77s

13:34:49 [ci] the build system: cargo test --lib

13:34:49 === [ci] the harness's own checks
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.35s
     Running tests/checks.rs (target/debug/deps/toyos_checks-43690f36ea7c250b)

running 39 tests
test checks::a_shared_chunk_stages_every_binary_its_members_name ... ok
test checks::a_run_selects_by_filter ... ok
test checks::metal_boots_last_job_is_behind_every_other ... ok
test checks::a_stall_stays_red ... ok
test checks::a_name_registered_twice_is_refused ... ok
test checks::metal_domains_end_below_the_host_bridges ... ok
test checks::metal_claim_spends_one_remapping_entry ... ok
test checks::irq_census_verdict ... ok
test checks::control_regs_verdict ... ok
test checks::mask_windows_verdict ... ok
test checks::metal_audio_judges ... ok
test checks::metal_rows_run_before_members_under_a_bound_the_members_widen ... ok
test checks::metal_usb_judge ... ok
test checks::metal_words_take_rows_members_and_whole_boots ... ok
test checks::nested_nmi_verdict ... ok
test checks::nvme_image_is_held_by_one_guest ... ok
test checks::psci_power_off_judge ... ok
test checks::metal_judges_read_the_page_for_what_only_the_page_carries ... ok
test checks::metal_list_from_parse_reaches_run_without_the_machine ... ok
test checks::run_exit_status ... ok
test checks::screen_decoder ... ok
test checks::serial_vocabulary ... ok
test checks::suspend_invalidates_a_verdict ... ok
test checks::the_c_corpus_stages_the_expectation_the_host_compares ... ok
test checks::the_foreign_record_judge_demands_the_stop_sealed_done ... ok
test checks::the_xecp_judge_reads_the_t14s_handoff ... ok
test checks::metal_name_measured_twice_is_refused ... ok
test checks::metal_boot_that_lost_parts_of_its_log_judges_no_row ... ok
test checks::suite_split ... ok
test checks::metal_cleared_page_owes_no_panel ... ok
test checks::metal_failing_shared_member_fails_itself_alone ... ok
test checks::suspend_detector ... ok
test checks::metal_name_two_owners_measured_is_refused ... ok
test checks::metal_reading_past_its_record_fails_and_moves_nothing ... ok
test checks::metal_run_under_another_bios_fails_and_records_nothing ... ok
test checks::metal_stop_owes_its_record_and_leaves_no_operation_open ... ok
test checks::metal_number_fails_with_its_owner_alone ... ok
test checks::metal_loader_kernel_and_program_count_from_one_zero ... ok
test checks::metal_bound_fires_within_one_period_of_itself ... ok

test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

13:34:49 [ci] the harness's own checks: cargo test --test toyos-checks

13:34:49 === [ci] the workspace's host members
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.24s
     Running unittests src/lib.rs (target/debug/deps/bcachefs-dd31ce931b3f7dd7)

running 72 tests
test block_io::image_bounds::a_block_past_the_end_is_refused_rather_than_read ... ok
test block_io::image_bounds::an_empty_image_holds_no_block_at_all ... ok
test block_io::image_bounds::a_block_number_whose_byte_offset_wraps_is_refused_and_does_not_panic ... ok
test block_io::image_bounds::a_block_that_starts_inside_and_ends_outside_is_refused ... ok
test btree::tests::a_descent_gives_up_before_it_runs_out_of_stack ... ok
test block_io::image_bounds::every_block_the_image_holds_is_served_whole ... ok
test btree::tests::an_entry_larger_than_the_payload_is_refused ... ok
test btree::tests::a_crafted_entry_count_never_reaches_the_allocator ... ok
test btree::tests::an_interior_child_shorter_than_a_block_number_is_refused ... ok
test btree::tests::an_interior_node_with_no_children_is_refused ... ok
test btree::tests::pack_fills_each_node_in_order_and_none_past_a_block ... ok
test btree::tests::write_to_refuses_an_overfull_node_instead_of_underflowing ... ok
test btree::tests::a_child_pointer_off_the_device_is_refused ... ok
test btree::tests::a_split_short_of_a_sibling_gives_back_the_ones_it_took ... ok
test crc32c::tests::known_vectors ... ok
test crc32c::tests::zeroes ... ok
test fs::tests::a_block_allocated_to_bridge_a_gap_reads_as_zeros ... ok
test fs::tests::a_bitmap_outside_the_volume_is_refused ... ok
test fs::tests::a_bitmap_too_small_to_cover_the_volume_is_refused ... ok
test fs::tests::a_child_pointer_past_the_end_of_the_device_is_refused ... ok
test fs::tests::a_page_resolved_against_an_extent_at_the_end_of_the_address_space_is_total ... ok
test fs::tests::a_file_ending_in_a_hole_still_reads_as_zeros ... ok
test fs::tests::a_delete_of_a_name_that_is_not_here_destroys_nothing ... ok
test fs::tests::a_run_ending_on_the_volumes_last_block_is_accepted ... ok
test fs::tests::a_shortened_record_gives_its_tail_back ... ok
test fs::tests::a_file_naming_more_blocks_than_the_volume_has_is_refused ... ok
test fs::tests::a_size_inside_the_volume_but_over_the_ceiling_never_reaches_the_allocator ... ok
test fs::tests::a_size_longer_than_the_volume_never_reaches_the_allocator ... ok
test fs::tests::a_superblock_claiming_more_blocks_than_the_device_has_is_refused ... ok
test fs::tests::an_interior_value_too_short_for_a_block_number_is_refused ... ok
test fs::tests::an_untampered_volume_still_mounts_and_reads ... ok
test fs::tests::an_extent_outside_the_volume_is_refused_before_the_bitmap_is_touched ... ok
test fs::tests::a_volume_copied_onto_a_larger_device_does_not_mount ... ok
test upstream::bkey::tests::a_field_past_its_unpacked_width_is_refused_not_truncated ... ok
test fs::tests::an_extent_past_the_end_of_the_volume_is_refused ... ok
test upstream::bkey::tests::a_truncated_format_is_refused ... ok
test upstream::bkey::tests::a_field_wider_than_the_one_it_fills_is_refused ... ok
test upstream::bkey::tests::field_fit_vectors ... ok
test upstream::bkey::tests::a_key_that_does_not_fit_is_refused ... ok
test upstream::bkey::tests::format_vectors ... ok
test upstream::bkey::tests::the_identity_format_is_the_unpacked_one ... ok
test upstream::bkey::tests::the_identity_format_round_trips_a_position ... ok
test fs::tests::is_dir_over_a_corrupt_node_is_refused ... ok
test upstream::bkey::tests::unpack_vectors ... ok
test upstream::csum::tests::encryption_csum_types_are_refused_by_name ... ok
test upstream::csum::tests::published_check_values ... ok
test upstream::fs::tests::a_crc_entry_states_the_extent_it_covers ... ok
test upstream::csum::tests::xxh64_covers_every_tail ... ok
test upstream::fs::tests::a_file_longer_than_its_device_is_refused_without_allocating_it ... ok
test upstream::fs::tests::an_entry_before_the_checksum_does_not_move_the_pointer ... ok
test upstream::fs::tests::an_entry_this_volume_cannot_size_is_refused ... ok
test fs::tests::a_root_that_points_at_itself_is_refused_not_followed ... ok
test upstream::fs::tests::dirent_vectors ... ok
test fs::tests::is_dir_is_a_name_beneath ... ok
test upstream::raw::tests::a_short_window_refuses_by_name ... ok
test upstream::raw::tests::an_offset_that_would_wrap_refuses ... ok
test upstream::raw::tests::bitmask_matches_upstreams_accessor ... ok
test upstream::node::tests::a_bset_this_filesystem_did_not_write_is_refused ... ok
test upstream::node::tests::a_node_that_is_not_the_one_asked_for_is_refused ... ok
test upstream::node::tests::a_key_longer_than_its_bset_is_refused ... ok
test upstream::node::tests::the_crafted_node_is_accepted ... ok
test upstream::sb::fixture::a_huge_u64s_is_refused_without_allocating_it ... ok
test upstream::sb::fixture::the_interim_reader_rejects_bcachefs_s_magic ... ok
test upstream::sb::fixture::a_volume_without_a_clean_section_is_refused_by_name ... ok
test upstream::sb::fixture::a_clean_section_shorter_than_its_header_is_refused ... ok
test upstream::sb::fixture::the_crafted_superblock_is_accepted ... ok
test upstream::node::tests::a_bset_longer_than_its_node_is_refused ... ok
test upstream::sb::fixture::a_member_bigger_than_its_device_is_refused ... ok
test upstream::sb::fixture::a_superblock_that_is_not_this_ones_is_refused ... ok
test upstream::sb::fixture::every_unsupported_format_feature_is_refused_by_name ... ok
test fs::tests::is_dir_over_a_split_root_finds_every_directory ... ok
test fs::tests::a_tree_past_the_ceiling_is_refused_before_it_materialises ... ok

test result: ok. 72 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.66s

     Running tests/crash.rs (target/debug/deps/crash-e98227d3fa9db16d)

running 2 tests
test a_directory_rename_is_whole_under_one_name_whichever_write_is_refused ... ok
test a_directory_rename_is_whole_under_one_name_wherever_the_device_stops ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 18.95s

     Running tests/integration.rs (target/debug/deps/integration-b9da2c39aca32c0f)

running 57 tests
test a_btree_node_the_device_refuses_is_not_a_node_of_zeros ... ok
test a_refused_sync_stays_refused_through_the_filesystem ... ok
test a_file_renamed_onto_a_symlink_leaves_one_entry ... ok
test a_data_block_the_device_refuses_is_not_a_page_of_zeros ... ok
test a_block_zero_the_device_refuses_does_not_fall_through_to_the_backup ... ok
test a_create_that_runs_out_of_space_leaves_the_old_file_where_it_was ... ok
test a_filesystems_name_round_trips_through_its_superblock ... ok
test a_rename_of_a_symlink_stays_a_symlink ... ok
test a_rename_carries_the_file_to_the_new_name ... ok
test a_file_grown_past_what_the_volume_spares_leaves_the_reserve ... ok
test a_rename_onto_itself_keeps_the_file ... ok
test a_rename_with_no_source_touches_nothing ... ok
test a_file_past_the_old_extent_cap_round_trips ... ok
test a_value_too_large_for_any_node_is_an_error_not_a_panic ... ok
test a_sparse_write_resolves_inside_the_blocks_it_reserved ... ok
test a_sequential_file_needs_one_extent ... ok
test a_renamed_file_keeps_every_extent_it_had ... ok
test corrupt_data_block_returns_raw_bytes ... ok
test bad_magic_alone_disowns_the_volume ... ok
test crc_verification_on_nodes ... ok
test bad_magic_means_no_copy_claims_the_volume ... ok
test create_multiple_files ... ok
test create_single_small_file ... ok
test a_write_the_device_refuses_is_reported_and_gives_its_blocks_back ... ok
test dangling_symlink_allowed ... ok
test empty_file ... ok
test file_not_found ... ok
test file_mtime_nonexistent ... ok
test duplicate_filename_overwrites ... ok
test every_page_of_a_fragmented_file_owns_a_distinct_block ... ok
test format_and_mount_empty ... ok
test large_file_crosses_block_boundary ... ok
test large_file_exact_block_boundary ... ok
test large_file_single_extent ... ok
test list_includes_symlinks ... ok
test format_mount_unmount_create_mount_roundtrip ... ok
test long_filename_near_entry_limit ... ok
test mounted_readwrite_create_and_read ... ok
test a_rename_onto_an_existing_name_frees_that_file_and_only_it ... ok
test mounted_readwrite_delete ... ok
test filesystem_full_returns_no_space ... ok
test mounted_readwrite_overwrite_with_smaller_data ... ok
test mounted_readwrite_overwrite_file ... ok
test mounted_readwrite_double_roundtrip ... ok
test mounted_readwrite_sync_and_reopen ... ok
test mounted_readwrite_symlink ... ok
test read_link ... ok
test rename_bounds_the_new_name ... ok
test zero_length_filename_rejected ... ok
test superblock_backup_recovery ... ok
test a_metadata_update_that_cannot_be_reinserted_leaves_the_entry_alone ... ok
test a_write_that_runs_out_of_space_gives_back_what_it_took ... ok
test many_files_with_large_data ... ok
test entries_of_mixed_size_survive_node_splits ... ok
test a_mount_after_a_stop_counts_the_blocks_its_bitmap_holds ... ok
test a_volume_full_of_empty_names_still_deletes_and_frees ... ok
test incremental_insert_and_read ... ok

test result: ok. 57 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s

     Running tests/upstream_fixture.rs (target/debug/deps/upstream_fixture-d7fa786868950279)

running 2 tests
test a_path_the_volume_does_not_hold_reads_back_as_absent ... ok
test the_upstream_volume_reads_back_as_what_upstream_wrote ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/console_handoff.rs (target/debug/deps/console_handoff-85dd59feb09dc330)

running 1 test
test the_stop_finds_the_wire_free_or_klogd_sees_the_ask ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/counters_round.rs (target/debug/deps/counters_round-11dfc91978c41ece)

running 1 test
test a_cpu_read_as_answered_is_read_with_its_answer ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/device_irq.rs (target/debug/deps/device_irq-f63df1e817bc26b1)

running 2 tests
test an_idle_record_answers_nothing ... ok
test every_message_is_counted_once ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/i8042_tally.rs (target/debug/deps/i8042_tally-339ba828634795e9)

running 3 tests
test an_empty_interrupt_is_never_counted_as_one_that_carried ... ok
test a_counted_interrupt_carries_its_bytes_with_it ... ok
test the_split_counters_this_replaced_are_read_torn ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/inbox_answer.rs (target/debug/deps/inbox_answer-d8647e410c7f555e)

running 16 tests
test a_handle_closed_since_its_watch_is_answered_with_the_refusal ... ok
test a_ring_keeps_its_cap_of_polls_and_no_more ... ok
test a_watch_during_a_look_that_finds_bytes_answers_alone ... ok
test a_post_that_lands_after_its_bytes_were_read_answers_nothing ... ok
test a_ring_torn_down_withdraws_every_poll ... ok
test a_full_ring_leaves_a_fired_poll_for_the_next_look ... ok
test a_replaced_poll_is_withdrawn_from_its_watch ... ok
test a_poll_fired_as_it_is_renewed_waits_for_the_next_look ... ok
test a_submitter_parks_only_with_nothing_it_could_answer ... ok
test a_watch_during_a_look_that_finds_nothing_is_the_handles_one_poll ... ok
test a_poll_left_standing_still_answers ... ok
test a_post_with_nothing_to_read_answers_nothing ... ok
test a_post_answers_for_an_object_with_nothing_to_look_at ... ok
test a_poll_armed_again_does_not_end_the_look ... ok
test a_watch_replaces_a_poll_a_post_already_fired ... ok
test an_ended_source_is_answered_gone_without_a_look ... ok

test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_body_words.rs (target/debug/deps/log_body_words-8dcbe1b063588f6e)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_cursor.rs (target/debug/deps/log_cursor-eed329d0c4717dde)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_publish.rs (target/debug/deps/log_publish-c6697501cbd6a21f)

running 2 tests
test an_unpublished_slot_answers_for_nothing ... ok
test a_reader_that_finds_a_shard_finds_it_built ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_record.rs (target/debug/deps/log_record-a4920ee6befbcd00)

running 7 tests
test a_recycled_slot_does_not_answer_for_the_record_it_replaced ... ok
test a_shard_nothing_has_written_answers_for_nothing ... ok
test the_readable_window_is_exactly_the_last_shard_records ... ok
test a_concurrent_reader_sees_head_grow_and_never_shrink ... ok
test a_committed_record_is_whole_or_absent ... ok
test a_key_and_the_record_it_names_come_from_one_generation ... ok
test a_reader_racing_a_recycle_gets_nothing_rather_than_a_mixture ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 19.73s

     Running tests/log_ring.rs (target/debug/deps/log_ring-bbfc48994aa697bc)

running 3 tests
test a_slot_is_reused_only_after_its_record_was_read ... ok
test a_lane_publishes_whole_and_reuses_only_after_a_read ... ok
test a_published_record_is_whole_and_read_once ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s

     Running tests/log_wake.rs (target/debug/deps/log_wake-12a72c067258506f)

running 2 tests
test exactly_one_producer_owns_a_park ... ok
test a_commit_and_an_arm_cannot_both_miss ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/log_zeroed_init.rs (target/debug/deps/log_zeroed_init-0893d8dc88f9dbcd)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/loom_exploration.rs (target/debug/deps/loom_exploration-952781b90d4b7985)

running 2 tests
test loom_runs_a_store_ahead_of_an_earlier_load ... ok
test loom_runs_a_read_modify_write_ahead_of_an_earlier_load ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/loom_mailbox.rs (target/debug/deps/loom_mailbox-b657564e0022bd63)

running 2 tests
test steal_probe_node_is_never_double_linked ... ok
test preempt_disabled_push_keeps_the_queue_drainable ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.40s

     Running tests/loom_park.rs (target/debug/deps/loom_park-5669bd0546449f50)

running 3 tests
test cancel_and_notify_agree_on_who_won ... ok
test a_pre_park_claim_never_posts_a_message ... ok
test a_notify_ends_exactly_one_iteration ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/loom_push.rs (target/debug/deps/loom_push-d59a25112dbf307f)

running 2 tests
test a_push_rings_nobody_when_nobody_is_asleep ... ok
test a_cpu_that_halts_without_seeing_the_surplus_was_pushed ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/loom_retire.rs (target/debug/deps/loom_retire-fedb56bbbe883084)

running 6 tests
test the_retire_chase_reuses_one_node_under_a_racing_migration ... ok
test an_adopting_cpu_always_observes_the_kill_bit ... ok
test a_retire_racing_the_park_commit_always_leaves_someone_to_reap ... ok
test a_wake_and_a_retire_ride_distinct_nodes ... ok
test a_retire_and_a_wake_never_both_claim_a_parked_task ... ok
test the_retire_arm_never_loses_a_parked_task_to_a_racing_wake ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s

     Running tests/loom_sleep.rs (target/debug/deps/loom_sleep-f498be1e5fe9034e)

running 2 tests
test a_halted_cpu_with_queued_work_was_kicked ... ok
test a_kicked_cpu_comes_back_and_drains_everything ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.26s

     Running tests/loom_watch.rs (target/debug/deps/loom_watch-ee28bf6faa307918)

running 12 tests
test an_end_racing_a_post_answers_a_poll_once ... ok
test an_end_racing_a_post_in_place_answers_a_poll_once ... ok
test a_bounded_post_racing_a_timeout_reaches_a_live_waiter ... ok
test a_poll_registered_racing_a_post_in_place_completes_exactly_once ... ok
test a_poll_registered_racing_a_post_completes_exactly_once ... ok
test a_revoke_racing_the_wait_loop_ends_it_in_every_arm ... ok
test a_post_racing_a_registration_leaves_nobody_parked ... ok
test a_transition_racing_an_opening_gate_is_never_missed ... ok
test a_poll_on_two_watches_racing_both_posts_completes_exactly_once ... ok
test a_second_post_is_not_lost_to_a_flag_the_waiter_consumed ... ok
test a_fire_racing_a_submitters_park_is_never_lost ... ok
test an_answer_wakes_the_submitter_its_look_hid_the_poll_from ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 59.14s

     Running tests/owed_lock.rs (target/debug/deps/owed_lock-82472084fc952815)

running 1 test
test a_turned_away_cpu_holds_the_lock_or_is_answered ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/panic_capture.rs (target/debug/deps/panic_capture-49407ae928806208)

running 5 tests
test a_released_latch_hands_the_snapshot_to_the_next_captor ... ok
test the_owner_refreshes_and_a_second_captor_stays_out ... ok
test two_panicking_cpus_write_one_snapshot ... ok
test the_unlatched_capture_this_replaced_interleaves_two_reports ... ok
test a_reader_and_refresh_never_overlap_on_the_snapshot ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/panic_console_publish.rs (target/debug/deps/panic_console_publish-fe37875c6e2f9122)

running 1 test
test a_snapshot_is_one_publication_whole ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.18s

     Running tests/poll_once.rs (target/debug/deps/poll_once-47fa26b617c9cc3b)

running 2 tests
test a_withdrawal_and_a_post_never_both_take_a_poll ... ok
test a_post_and_a_recheck_answer_a_poll_once ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/reap_gate.rs (target/debug/deps/reap_gate-462174cd688180b2)

running 4 tests
test an_unraised_gate_claims_nothing ... ok
test a_claim_sees_the_enrolled_work ... ok
test a_raise_is_never_dropped ... ok
test one_raise_is_claimed_once ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/serial_lock.rs (target/debug/deps/serial_lock-fa753c944dbedabc)

running 9 tests
test a_seize_gives_up_on_a_holder_that_never_lets_go ... ok
test a_lost_try_lock_leaves_the_lock_held ... ok
test a_seize_reenters_its_own_cpus_hold ... ok
test a_burst_beneath_its_own_cpus_fatal_path_is_refused - should panic ... ok
test within_asks_a_silent_attempt_exactly_its_tries ... ok
test a_burst_waits_out_another_cpus_fatal_path ... ok
test a_seize_and_a_burst_never_overlap ... ok
test a_seize_takes_a_burst_let_go_inside_the_bound ... ok
test two_writers_never_overlap ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/sleep_lock.rs (target/debug/deps/sleep_lock-1a1fca6f3f1ac287)

running 4 tests
test try_lock_observes_the_previous_holders_writes ... ok
test a_queued_contender_is_served_and_named ... ok
test a_parking_contender_observes_the_holders_writes ... ok
test two_holders_never_overlap ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

     Running tests/smp_bringup.rs (target/debug/deps/smp_bringup-cd2a9c8182d7caee)

running 3 tests
test an_ap_that_reads_another_id_is_refused - should panic ... ok
test a_released_machine_is_answering ... ok
test a_committed_count_never_outruns_its_slot ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/ticket_lock.rs (target/debug/deps/ticket_lock-2447e48bc2cede20)

running 3 tests
test try_lock_at_the_wrap_boundary_does_not_panic ... ok
test try_lock_observes_the_previous_owners_writes ... ok
test two_try_locks_do_not_both_succeed ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/tlb_shootdown.rs (target/debug/deps/tlb_shootdown-52849ef51a0854c1)

running 4 tests
test an_initiator_answers_while_it_waits ... ok
test a_nested_serve_is_not_undone_by_the_one_it_interrupted ... ok
test an_acknowledged_flush_postdates_the_page_table_write ... ok
test one_serve_answers_two_concurrent_shootdowns ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.50s

     Running unittests src/lib.rs (target/debug/deps/kernel_sim-ddcd977293e22acb)

running 15 tests
test choice::tests::bytes_are_the_decisions ... ok
test choice::tests::bytes_full_range_reachable ... ok
test choice::tests::bytes_wide_draw_uses_two_bytes ... ok
test choice::tests::pct_never_starves_a_lone_step ... ok
test choice::tests::pct_prefers_the_highest_priority_actor_and_is_stable ... ok
test choice::tests::replay_reproduces_a_recording ... ok
test choice::tests::seeded_is_deterministic ... ok
test choice::tests::seeds_differ ... ok
test choice::tests::zero_options_is_a_bug - should panic ... ok
test latency::tests::a_losing_maximum_becomes_the_runner_up ... ok
test latency::tests::an_empty_distribution_measures_nothing ... ok
test latency::tests::causes_are_kept_apart ... ok
test latency::tests::merging_is_exactly_the_union ... ok
test latency::tests::one_sample_has_no_runner_up ... ok
test latency::tests::the_runner_up_is_the_second_largest_sample ... ok

test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/main.rs (target/debug/deps/kernel_sim-cb04f5b6dbf474b5)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/deadline_claim_race.rs (target/debug/deps/deadline_claim_race-ae5ba098c0dcbdfd)

running 1 test
test a_claim_between_the_drain_and_the_fire_leaves_the_timer_armed_for_what_is_parked ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/policy.rs (target/debug/deps/policy-c8d6313bf8224213)

running 12 tests
test a_stopped_cpu_stops_taking_work ... ok
test per_thread_shares_lose_the_floor ... ok
test the_share_deficit_is_an_offset_and_not_a_drift ... ok
test a_wakeup_storm_drains_without_serializing ... ok
test an_interactive_wake_waits_out_at_most_the_band_it_is_queued_behind ... ok
test a_process_cannot_buy_cpu_by_forking ... ok
test the_two_cures_are_priced_against_the_pull_path ... ok
test a_runnable_task_waits_at_most_one_dispatch_per_rival ... ok

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Gate: cargo run -- --ci host at 2c744d4, EXIT=0, part 2 of 8

test without_the_balance_path_a_lopsided_machine_stays_lopsided ... ok
test the_balance_path_drains_the_cpu_an_adversary_loaded ... ok
test a_push_on_surplus_reaches_every_cpu_the_pull_path_left_asleep ... ok
test a_bounded_re_arm_reaches_every_cpu_the_pull_path_left_asleep ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.73s

     Running tests/scenarios.rs (target/debug/deps/scenarios-63544582fcbe5101)

running 25 tests
test corpus_traces_still_do_what_they_were_committed_for ... ok
test old_commit_before_pass_is_caught ... ok
test a_run_replays_exactly ... ok
test a_pass_that_overruns_its_budget_is_recorded ... ok
test a_retire_inside_the_registration_window_is_honoured_by_the_core ... ok
test a_pass_inside_the_registration_window_is_caught ... ok
test shrinking_keeps_the_failure_and_loses_the_noise ... ok
test blind_spot_needed_the_step_split ... ok
test old_steal_port_is_caught ... ok
test the_new_protocol_survives_the_schedule_that_breaks_the_old_one ... ok
test the_audio_pipeline_holds_on_one_cpu ... ok
test the_park_sees_claims_that_landed_after_its_commit ... ok
test rt_starving_the_corpse_is_caught ... ok
test per_thread_fair_shares_are_caught ... ok
test double_charging_a_share_is_caught ... ok
test old_migrate_keeping_the_corpse_is_caught ... ok
test a_retire_completes_inside_its_derived_bound ... ok
test the_unwind_gate_lasts_one_chunk_and_not_one_unwind ... ok
test old_park_keeping_the_lend_is_caught ... ok
test the_fairness_storm_is_measured_and_holds ... ok
test identity_ordering_within_a_share_is_caught ... ok
test invariant_i13_is_measured_and_holds ... ok
test an_identity_tiebreak_changes_the_schedule_and_not_the_sibling_split ... ok
test every_scenario_survives_raw_fuzz_bytes ... ok
test every_scenario_survives_a_seed_sweep ... ok

test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.98s

     Running unittests src/lib.rs (target/debug/deps/toyos_abi-fe6fb68be58597b7)

running 53 tests
test boot::tests::the_kernel_is_handed_the_windows_firmware_named_and_none_of_the_array_behind_them ... ok
test boot::tests::a_window_holds_an_extent_and_not_merely_its_first_address ... ok
test boot::tests::the_two_readings_of_a_boot_parameter_partition_it ... ok
test clock::tests::the_formula_is_the_kernels ... ok
test clock::tests::the_page_is_four_words ... ok
test counters::tests::a_flag_no_counter_names_is_refused ... ok
test counters::tests::a_present_zero_is_not_an_absent_counter ... ok
test counters::tests::a_word_under_an_absent_counter_is_refused ... ok
test counters::tests::counters_are_indexed_by_their_place_and_named_once ... ok
test counters::tests::every_shape_of_record_reads_back_as_written ... ok
test counters::tests::what_times_a_program_or_is_power_needs_the_trace_right ... ok
test handle::tests::a_bit_no_right_uses_is_not_a_rights_set ... ok
test handle::tests::a_generation_past_the_field_is_generation_zero_again ... ok
test boot::tests::a_count_past_the_array_is_refused_rather_than_clamped - should panic ... ok
test handle::tests::a_handle_answers_the_slot_and_generation_it_was_made_from ... ok
test handle::tests::every_right_in_all_has_a_name_and_every_name_is_in_all ... ok
test handle::tests::generation_zero_is_the_bare_index ... ok
test handle::tests::nothing_below_the_retirement_generation_can_be_the_invalid_handle ... ok
test handle::tests::rights_only_shrink ... ok
test inbox::tests::the_ring_layout_is_what_both_ends_index_by ... ok
test inventory::tests::a_byte_that_names_nothing_is_refused_by_name ... ok
test inventory::tests::a_record_is_one_fixed_width ... ok
test inventory::tests::every_record_round_trips ... ok
test log::tests::a_fresh_cursor_has_read_nothing ... ok
test log::tests::a_length_past_the_bound_is_clamped_and_not_a_panic ... ok
test log::tests::a_non_utf8_body_renders_what_decoded ... ok
test log::tests::a_record_renders_the_same_line_for_every_consumer ... ok
test log::tests::a_wall_clock_goes_through_the_bracket_and_an_empty_one_changes_nothing ... ok
test log::tests::an_undeclared_severity_byte_decodes_to_nothing ... ok
test log::tests::every_sayer_gets_the_one_head ... ok
test log::tests::its_bytes_are_the_fields_and_nothing_between_them ... ok
test log::tests::severities_are_ordered_from_info_to_alert ... ok
test log::tests::the_record_is_the_size_and_shape_both_sides_assume ... ok
test log::tests::untimed_severity_and_elided_are_in_the_line_rather_than_in_a_convention ... ok
test part::tests::a_guid_is_the_uppercase_registry_form_and_nothing_else ... ok
test part::tests::a_guid_survives_the_wire ... ok
test part::tests::the_esp_type_guid_is_the_specification_s_bytes ... ok
test ring::tests::a_scribbled_header_leaves_the_stream_exact ... ok
test ring::tests::the_pipe_capacity_does_not_divide_the_u32_cursor_space ... ok
test syscall::tests::a_devices_entry_is_a_class_or_one_named_function ... ok
test ring::tests::a_read_split_across_the_cursor_wrap_returns_what_was_written ... ok
test syscall::tests::a_dirent_of_another_kind_is_a_broken_kernel - should panic ... ok
test syscall::tests::a_partition_entry_carries_its_guid_in_both_selector_words ... ok
test syscall::tests::a_pci_id_is_four_lowercase_hex_digits_each_and_nothing_else ... ok
test syscall::tests::a_request_writes_back_the_name_it_parsed ... ok
test syscall::tests::an_isa_entry_survives_the_wire_and_nothing_else_decodes ... ok
test syscall::tests::every_dirent_is_read_back_whatever_its_size_holds ... ok
test syscall::tests::module_info_s_bytes_are_the_fields_and_nothing_between_them ... ok
test syscall::tests::a_short_dirent_is_a_broken_kernel - should panic ... ok
test syscall::tests::modules_decodes_every_record_and_its_path ... ok
test syscall::tests::the_selector_survives_the_wire ... ok
test syscall::tests::modules_refuses_a_path_past_the_answer - should panic ... ok
test ring::tests::a_stream_survives_the_cursor_reaching_two_to_the_thirty_two ... ok

test result: ok. 53 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.48s

     Running unittests src/lib.rs (target/debug/deps/toyos_acpi-ed93591cfd9580f5)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/corpus.rs (target/debug/deps/corpus-c5c16e8fc94021eb)

running 37 tests
test a_century_register_outside_cmos_ram_is_told_apart_from_none ... ok
test a_dsdt_that_cannot_be_found_is_the_first_block_refused ... ok
test a_dsdt_whose_fadt_could_not_be_read_is_refused_as_unread_and_not_as_absent ... ok
test a_fadt_before_acpi_5_1_says_nothing_about_psci ... ok
test a_fadt_that_ends_before_arm_boot_arch_is_short ... ok
test a_fadt_of_the_acpi_1_0_length_is_read_without_its_x_fields ... ok
test a_fadt_too_short_for_the_boot_architecture_flags_is_refused ... ok
test a_length_longer_than_the_mapping_is_refused_before_a_byte_is_read ... ok
test a_length_over_the_ceiling_is_refused_without_walking_it ... ok
test a_length_shorter_than_the_fixed_part_is_refused_with_both_numbers ... ok
test a_length_under_the_header_is_refused_even_when_the_caller_needs_nothing ... ok
test a_madt_entry_of_zero_length_halts_the_walk_instead_of_looping ... ok
test a_madt_entry_running_past_the_list_halts_the_walk ... ok
test a_madt_entry_too_short_for_its_own_type_is_not_decoded_as_that_type ... ok
test an_ecdt_naming_no_port_controller_is_refused_by_name ... ok
test fixed_hardware_reads_whichever_form_names_a_block ... ok
test the_crafted_fixed_hardware_decodes_before_any_field_is_broken ... ok
test a_reset_register_this_kernel_cannot_write_is_refused_by_the_field_that_refused_it ... ok
test a_revision_1_fadt_is_read_at_its_32_bit_fields_alone ... ok
test a_revision_1_fadt_long_enough_to_hold_x_dsdt_is_still_read_at_its_32_bit_field ... ok
test a_revision_that_promises_x_dsdt_over_a_table_that_cannot_hold_it_falls_back ... ok
test a_table_that_does_not_sum_to_zero_is_refused ... ok
test a_trailing_byte_that_cannot_be_an_entry_header_ends_the_walk_quietly ... ok
test an_rsdp_address_the_reader_cannot_reach_is_refused ... ok
test an_xsdt_entry_pointing_at_nothing_is_skipped_and_the_next_one_is_read ... ok
test fixed_hardware_this_kernel_does_not_serve_is_refused_by_name ... ok
test reset_fields_are_read_only_from_a_revision_that_defines_them ... ok
test the_definition_blocks_are_the_dsdt_and_then_each_ssdt_in_the_xsdts_order ... ok
test the_psci_conduit_is_read_off_a_fadt_that_defines_it ... ok
test the_sci_defaults_to_level_and_active_low_where_nothing_says_otherwise ... ok
test the_xsdt_walk_answers_with_its_first_match_and_tries_no_second ... ok
test two_edits_that_cancel_pass_the_checksum_and_decode_to_the_lie ... ok
test the_root_pointer_is_refused_one_reason_at_a_time ... ok
test the_shared_reader_refuses_what_it_does_not_hold ... ok
test the_values_the_fadt_names_for_smi_cmd_are_each_read_from_their_own_byte ... ok
test no_single_byte_mutation_of_a_firmwares_descriptor_list_panics_or_runs_away ... ok
test no_single_byte_mutation_of_a_real_table_panics_or_runs_away ... ok

test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.11s

     Running tests/facs.rs (target/debug/deps/facs-1619c04409e4ea79)

running 5 tests
test a_structure_that_is_no_facs_is_refused_by_name ... ok
test a_facs_off_its_sixty_four_byte_boundary_is_refused ... ok
test both_transitions_are_the_specifications_own_sequences ... ok
test s4bios_f_is_bit_zero_of_the_flags ... ok
test the_wide_address_wins_where_it_is_not_zero_and_the_narrow_one_serves_where_it_is ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/fixtures.rs (target/debug/deps/fixtures-4a7f17fb56a60883)

running 14 tests
test the_boot_architecture_flags_come_off_a_revision_that_defines_them ... ok
test a_second_firmwares_bytes_decode_to_that_machines_own_windows ... ok
test the_fadt_names_the_century_register_the_wall_clock_read ... ok
test the_fadt_names_the_power_block_and_the_dsdt ... ok
test the_fadt_names_the_reset_register_qemu_acts_on ... ok
test the_definition_blocks_of_qemu_are_its_dsdt_alone ... ok
test the_hpet_table_names_the_window_the_timer_driver_mapped ... ok
test the_madt_names_the_two_cpus_that_boot_and_the_chip_that_interrupts_them ... ok
test the_mcfg_names_the_ecam_window_the_pci_walk_used ... ok
test the_q35_fadt_names_the_fixed_hardware_its_sci_is_served_through ... ok
test the_q35_fadt_predates_arm_boot_arch ... ok
test the_q35_madt_names_its_sci_level_and_active_high ... ok
test the_windows_a_boot_printed_are_what_that_firmwares_own_bytes_say ... ok
test the_xsdt_walk_reaches_every_entry ... ok

test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/iort.rs (target/debug/deps/iort-41214c1b48b4fa19)

running 31 tests
test a_mapping_carries_an_id_by_its_offset_from_the_input_base_and_ends_at_its_last_id ... ok
test a_node_array_inside_the_header_is_refused ... ok
test a_node_array_past_the_table_is_refused_as_its_first_node ... ok
test a_node_count_that_overruns_the_table_is_refused_where_the_bytes_end ... ok
test a_mapping_whose_range_leaves_the_id_space_is_refused ... ok
test a_node_type_not_decoded_is_answered_by_its_type_and_refuses_nothing ... ok
test a_node_longer_than_the_table_or_shorter_than_its_type_is_refused ... ok
test a_revision_whose_layout_was_not_read_is_refused ... ok
test a_root_complex_has_no_mapping_of_its_own ... ok
test a_route_through_an_output_reference_that_names_no_node_is_refused ... ok
test a_stream_the_smmu_maps_nowhere_has_no_its ... ok
test a_single_mapping_that_is_not_its_smmus_own_is_refused ... ok
test a_route_through_an_output_reference_to_a_node_its_source_may_not_reach_is_refused ... ok
test a_stream_is_not_judged_alone_past_an_id_array_out_of_its_node ... ok
test a_stream_another_mapping_puts_out_to_the_same_smmu_is_refused ... ok
test a_revision_4_smmu_indexes_its_own_mapping_whenever_a_control_interrupt_is_not_wired ... ok
test a_node_revision_whose_layout_was_not_read_is_refused ... ok
test a_table_too_short_for_its_own_header_fields_is_refused ... ok
test an_id_array_lying_over_its_nodes_own_fields_is_refused ... ok
test an_id_array_running_past_its_node_is_refused ... ok
test an_id_two_mappings_claim_is_refused_when_it_is_asked_for ... ok
test an_its_group_of_other_than_one_its_is_refused ... ok
test an_smmus_own_mapping_index_at_or_past_its_id_array_is_refused ... ok
test an_its_node_declaring_an_id_array_is_refused ... ok
test the_hardware_gic_boot_routes_bus_zero_through_the_smmu_and_nothing_to_an_its ... ok
test the_hardware_gic_boots_madt_names_no_its ... ok
test the_its_boot_routes_bus_zero_through_the_smmu_to_the_its_and_the_rest_past_it ... ok
test the_its_boots_madt_names_the_its_the_iort_routes_to ... ok
test the_mapping_a_revision_5_smmu_indexes_is_the_units_own_and_routes_no_stream ... ok
test opening_a_table_and_routing_a_requester_each_read_it_a_bounded_number_of_times ... ok
test no_corruption_of_a_published_iort_panics_or_hangs_the_decoder ... ok

test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.43s

     Running tests/mapped.rs (target/debug/deps/mapped-55cae07355ade6f9)

running 3 tests
test address_zero_and_a_range_past_every_address_are_refused ... ok
test a_table_past_the_direct_map_is_refused_before_a_byte_is_read ... ok
test an_xsdt_entry_past_the_direct_map_is_skipped ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/resource.rs (target/debug/deps/resource-ee037686f3f75096)

running 11 tests
test a_descriptor_this_decoder_does_not_read_is_refused_by_its_tag ... ok
test a_list_that_runs_off_the_end_of_what_can_be_read_is_refused ... ok
test a_list_with_no_end_tag_stops_at_the_bound ... ok
test a_maximum_that_is_not_the_minimum_plus_the_length_is_refused ... ok
test a_range_the_bridge_consumes_is_not_a_window_it_forwards ... ok
test a_short_descriptor_is_refused_rather_than_read_past ... ok
test a_resource_type_this_decoder_does_not_read_is_refused_by_its_kind ... ok
test a_translated_window_is_refused_rather_than_taken_at_its_minimum ... ok
test a_window_of_no_length_is_not_carried ... ok
test only_the_memory_ranges_of_a_root_bridge_become_windows ... ok
test more_windows_than_there_is_room_for_is_refused_whole ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/thinkpad_t14.rs (target/debug/deps/thinkpad_t14-6c3f06e6d69b6dfb)

running 3 tests
test the_t14s_fadt_names_the_blocks_linux_served_its_sci_through ... ok
test the_t14s_madt_names_its_sci_level_and_active_high ... ok
test the_t14s_ecdt_names_the_controller_linux_used ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_blackbox-233dc461abc742ca)

running 36 tests
test fault_tests::a_fault_round_trips_word_for_word ... ok
test stamp_tests::a_record_belongs_to_the_stick_that_wrote_it ... ok
test fault_tests::only_a_record_of_the_declared_width_decodes ... ok
test fault_tests::a_fault_survives_the_page_it_is_sealed_into ... ok
test stamp_tests::a_records_date_cannot_be_changed_under_it ... ok
test stamp_tests::an_unstamped_page_reads_as_no_date ... ok
test tests::a_cleared_page_is_not_harvested_twice ... ok
test tests::a_length_past_the_page_is_refused ... ok
test tests::a_break_is_told_by_what_the_driver_says_and_by_who_said_it ... ok
test tests::a_boot_with_no_break_says_so_in_one_line ... ok
test tests::a_page_nobody_wrote_carries_nothing ... ok
test tests::a_report_that_fits_carries_no_drop_line ... ok
test tests::a_multi_line_record_is_never_entered_part_way ... ok
test tests::a_ring_that_moved_between_the_walks_leaves_no_line_out_of_place ... ok
test tests::a_sealed_page_comes_back_as_what_went_in ... ok
test tests::a_cut_report_says_how_many_records_it_dropped ... ok
test tests::a_window_with_no_boundary_keeps_none_of_it ... ok
test tests::an_account_cut_off_mid_line_is_readable_to_the_last_whole_line ... ok
test tests::an_armed_page_with_nothing_in_it_is_still_a_state ... ok
test tests::a_report_that_fills_the_page_still_leaves_the_account_its_room ... ok
test tests::every_line_is_covered_once_its_last_fragment_arrives ... ok
test tests::every_state_has_a_word_of_its_own ... ok
test tests::lines_that_fit_their_room_are_kept_and_nothing_is_said ... ok
test tests::no_state_can_be_read_as_another ... ok
test tests::an_over_long_run_of_records_is_cut_at_a_boundary ... ok
test tests::a_storm_keeps_the_first_break_and_counts_what_it_dropped ... ok
test tests::the_address_is_found_in_a_raw_parameter_buffer ... ok
test tests::one_flipped_bit_anywhere_refuses_the_whole_page ... ok
test tests::the_first_line_that_does_not_fit_drops_itself_and_every_later_one ... ok
test tests::the_parameter_round_trips_the_address_it_names ... ok
test tests::the_head_is_kept_and_the_tail_fills_what_is_left ... ok
test tests::the_section_is_the_usb_stacks_records_from_the_first_break_on_oldest_first ... ok
test tests::the_section_under_a_sealed_report_leaves_the_account_its_reserve ... ok
test tests::the_driver_says_a_break_the_way_the_section_finds_one ... ok
test tests::saying_what_was_dropped_never_runs_the_page_over ... ok
test tests::the_line_that_counts_the_dropped_fits_the_room_it_was_given ... ok

test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_blockhold-2c59279906453074)

running 9 tests
test tests::a_write_after_the_loss_finds_it ... ok
test tests::a_holder_is_the_hold_of_exactly_that_span ... ok
test tests::a_write_released_unflushed_is_lost_to_the_next_holder ... ok
test tests::a_clean_release_leaves_nothing ... ok
test tests::a_block_has_one_holder ... ok
test tests::a_loss_outlives_the_hold_that_wrote_it ... ok
test tests::a_writer_silent_since_the_loss_is_told_when_another_flushes_first ... ok
test tests::writes_an_earlier_flush_made_durable_are_not_lost ... ok
test tests::every_interleaving_tells_each_loss_to_the_blocks_it_touched ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running unittests src/lib.rs (target/debug/deps/toyos_blockring-e59e68baa3f5367e)

running 23 tests
test client::tests::a_write_given_up_poisons_every_later_flush ... ok
test client::tests::overlapping_writes_go_out_again_in_order ... ok
test client::tests::a_lost_flush_reissues_then_asks_again ... ok
test entry::tests::a_request_outside_its_bounds_is_refused_by_tag ... ok
test model::tests::a_used_page_reads_fresh_once_a_servers_ends_are_made_over_it ... ok
test model::tests::states_named_alike_act_alike ... ok
test entry::tests::a_request_survives_its_words ... ok
test client::tests::nothing_goes_out_before_a_session ... ok
test entry::tests::a_completion_survives_its_words_and_refuses_what_it_does_not_define ... ok
test client::tests::a_second_answer_for_one_tag_is_a_violation ... ok
test client::tests::read_only_answers_a_write_alone ... ok
test client::tests::what_was_on_the_wire_at_the_end_is_refused_and_what_was_not_waits ... ok
test server::tests::a_flush_after_a_loss_answers_lost_once ... ok
test server::tests::a_read_only_session_refuses_a_write_unissued ... ok
test server::tests::a_reset_answers_in_the_order_taken ... ok
test server::tests::a_reset_answers_once_and_the_late_device_answer_is_dropped ... ok
test server::tests::a_tag_in_flight_twice_is_refused_unissued ... ok
test wire::tests::a_grant_reaches_its_own_partitions_and_decodes_only_whole ... ok
test wire::tests::opened_and_refusal_survive_their_bytes_and_nothing_else_decodes ... ok
test model::tests::the_model_reaches_a_write_given_up ... ok
test model::tests::the_model_reaches_the_end_it_should ... ok
test model::tests::what_a_flush_calls_durable_is_on_the_medium ... ok
test model::tests::every_request_is_answered_exactly_once ... ok

test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.28s

     Running unittests src/lib.rs (target/debug/deps/toyos_bootmap-22b269a37e3ab679)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/aarch64_direct_map.rs (target/debug/deps/aarch64_direct_map-6e4ee97640c4b179)

running 9 tests
test a_map_with_no_memory_ends_at_zero ... ok
test a_start_off_a_page_is_refused ... ok
test a_reserved_page_inside_ram_is_left_out_of_its_block ... ok
test a_page_wholly_memory_is_one_block ... ok
test an_end_below_its_start_is_refused ... ok
test memory_is_mapped_and_a_register_is_not ... ok
test off_a_page_is_refused ... ok
test past_the_window_is_refused ... ok
test runtime_services_data_is_left_out_and_acpi_tables_are_not ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/direct_map.rs (target/debug/deps/direct_map-36cb8608940d8e17)

running 11 tests
test a_range_past_the_window_that_is_not_memory_is_not_refused ... ok
test acpi_tables_above_the_last_ram_are_mapped ... ok
test an_empty_map_is_the_boot_map ... ok
test an_unsorted_map_is_read_whole ... ok
test every_type_the_pmm_hands_out_is_mapped ... ok
test memory_above_4_gib_is_mapped_to_its_end_in_whole_pages ... ok
test memory_past_the_window_is_refused_by_name ... ok
test no_other_type_reaches_past_the_boot_map ... ok
test the_captured_map_is_usable_where_its_boot_said ... ok
test the_pmm_hands_out_exactly_the_types_uefi_gives_the_os ... ok
test the_reserved_hole_below_1_tib_is_not_mapped ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/plan.rs (target/debug/deps/plan-059f128f59d79140)

running 22 tests
test a_base_off_the_page_is_refused_rather_than_rounded_down ... ok
test a_framebuffer_above_the_low_map_adds_its_own_directory ... ok
test a_framebuffer_at_the_boundary_is_outside_the_low_map ... ok
test a_framebuffer_inside_the_low_map_adds_no_directory ... ok
test a_loader_above_the_low_map_adds_its_own_directory_of_plain_memory ... ok
test a_loader_across_a_page_is_both_pages ... ok
test a_page_that_is_part_memory_is_refused_by_address ... ok
test the_aarch64_descriptors_carry_the_attribute_index_the_mair_names ... ok
test a_loader_inside_the_low_map_adds_nothing ... ok
test a_framebuffer_that_straddles_the_low_maps_end_is_mapped_from_both_arms ... ok
test a_loader_beside_the_scanout_shares_its_directory ... ok
test a_map_typed_plan_is_memory_where_firmware_says_write_back_and_a_device_elsewhere ... ok
test a_framebuffer_that_straddles_a_gib_claims_both ... ok
test a_map_typed_loader_is_memory ... ok
test a_machine_with_no_framebuffer_is_the_low_map_and_nothing_else ... ok
test a_loader_no_map_can_hold_is_refused_by_name ... ok
test a_map_typed_scanout_off_a_small_page_is_refused ... ok
test a_range_no_map_can_hold_is_refused_by_name ... ok
test the_high_half_slot_is_the_top_nine_bits_of_phys_offset ... ok
test uncacheable_is_pat_entry_three_and_plain_memory_is_entry_zero ... ok
test a_scanout_carved_out_of_ram_splits_the_pages_it_shares ... ok
test a_scanout_inside_memory_is_typed_as_the_scanout ... ok

test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_cpuvuln-5700bd7ff46f21af)

running 63 tests
test counters::tests::the_tcg_model_has_none ... ok
test hwp::tests::the_tcg_model_is_refused ... ok
test counters::tests::an_amd_with_leaf_6_has_aperf_and_mperf_and_no_smi_count ... ok
test hwp::tests::a_cpu_outside_family_6_is_refused_by_name ... ok
test tests::a_blacklist_row_for_stepping_zero_stands_before_its_any_stepping_row ... ok
test hwp::tests::the_t14_is_declared_with_its_notification ... ok
test counters::tests::a_guest_counts_no_smis ... ok
test tests::a_bad_microcode_row_is_its_model_and_its_stepping ... ok
test counters::tests::an_intel_model_off_the_list_counts_no_smis ... ok
test counters::tests::the_t14_has_what_linux_counted_on_it ... ok
test hwp::tests::the_request_is_the_minimum_ratio_the_highest_level_and_the_preference ... ok
test tests::a_blacklist_row_matches_only_its_steppings ... ok
test tests::a_comet_lake_guest_cannot_know_its_hosts_smt ... ok
test hwp::tests::a_missing_register_refuses_the_whole_request_by_name ... ok
test tests::a_retpoline_guest_leaves_bhi_to_retpolines_only_with_rrsba_disabled ... ok
test tests::a_retpoline_guest_without_rrsba_leaves_bhi_to_retpolines ... ok
test tests::a_tsa_row_keyed_by_a_model_nibble_of_8_or_more_is_read ... ok
test tests::a_guest_with_verw_clear_mitigates_tsa ... ok
test tests::a_guest_cannot_know_its_gds_mitigation ... ok
test tests::a_milan_kvm_guest_gives_the_tags_lines ... ok
test tests::a_zen2_guest_has_no_ibpb_brtype ... ok
test tests::a_turin_kvm_guest_gives_the_tags_lines ... ok
test tests::alder_lake_mitigates_bhi_in_hardware ... ok
test tests::amd_stibp_always_on_is_strict_without_the_untrained_return_thunk ... ok
test tests::amd_0x15_to_0x17_take_ssbd_from_the_ls_cfg_probe ... ok
test tests::an_amd_cpu_with_feat_ctl_is_a_contradiction - should panic ... ok
test tests::a_native_zen3_without_its_probe_is_a_contradiction - should panic ... ok
test tests::an_intel_guest_cannot_know_its_mitigations_or_its_hosts_smt ... ok
test tests::an_msbds_only_cpu_reports_its_smt_as_mitigated ... ok
test tests::an_unknown_vendors_retbleed_is_unmitigated ... ok
test tests::autoibrs_leaves_stibp_to_select ... ok
test tests::bad_microcode_drops_the_controls_only_beside_one_of_them ... ok
test tests::centaur_family_5_has_only_itlb_multihit ... ok
test tests::bad_microcode_is_intel_family_6s ... ok
test tests::a_hygon_cpu_without_its_ls_cfg_probe_is_a_contradiction - should panic ... ok
test tests::comet_lake_clears_cpu_buffers_by_mds_no_and_fb_clear ... ok
test tests::comet_lake_varies_one_fact_at_a_time ... ok
test tests::family_and_model_are_derived_as_arch_x86_lib_derives_them ... ok
test tests::firmware_can_lock_the_gds_mitigation ... ok
test tests::hygon_decides_as_linux_does ... ok
test tests::hygon_without_smt_and_with_ibpb_brtype_has_srso_smt_disabled ... ok
test tests::itlb_multihit_reads_what_feat_ctl_left_of_vmx ... ok
test tests::only_amd_and_hygon_are_probed ... ok
test tests::rfds_is_cleared_only_with_rfds_clear ... ok
test tests::rtm_absent_from_cpuid_is_rtm_off ... ok
test tests::rtm_always_abort_decides_tsx_first ... ok
test tests::spectre_bad_microcode_includes_its_bound ... ok
test tests::srbds_is_tsx_disabled_only_without_rtm_and_mmio ... ok
test tests::srso_user_kernel_no_mitigates_only_the_vm_exit ... ok
test tests::the_first_matching_blacklist_row_decides ... ok
test tests::the_t14_with_arch_capabilities_read_as_zero ... ok
test tests::the_t14s_facts_are_linuxs_reading_of_it ... ok
test tests::the_t14s_facts_give_its_lines_and_its_spec_ctrl ... ok
test tests::the_t14s_no_bits_each_rule_out_their_bug ... ok
test tests::the_tcg_models_signature_gives_its_lines ... ok
test tests::tsa_is_ruled_out_only_by_both_its_no_bits ... ok
test tests::zen1_by_btc_no_ssb_no_and_ibpb ... ok
test tests::zen1_forces_stibp_from_the_untrained_return_thunk ... ok
test tests::zen2_selects_by_smt ... ok
test tests::zen3_by_srso_no_and_an_enumerated_ibpb_brtype ... ok
test tests::zen3_native_reads_its_probe_and_its_tsa_microcode ... ok
test tests::zen4_reads_its_row_of_the_tsa_microcode_table ... ok
test tests::zhaoxin_without_spectre_v2_sets_up_no_ibpb ... ok

test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

     Running unittests src/lib.rs (target/debug/deps/toyos_device_memory-c371b2b03a73bcf2)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_dhcp-bafcabb9fc8c9713)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/ack.rs (target/debug/deps/ack-49c542e77a101715)

running 8 tests
test s_dhcp_dh_015_rapid_commit ... ok
test s_dhcp_dh_016_an_ack_without_rapid_commit_while_selecting ... ok
test s_dhcp_dh_017_a_rapid_ack_answers_a_request_too ... ok
test s_dhcp_dh_018_the_lease_runs_from_the_first_request ... ok
test s_dhcp_dh_011_an_ack_is_probed_first ... ok
test s_dhcp_dh_012_verified_configures ... ok
test s_dhcp_dh_014_every_decline_waits_ten_seconds ... ok
test s_dhcp_dh_013_a_conflict_declines ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/lease.rs (target/debug/deps/lease-35f10df30fc859ed)

running 19 tests
test s_dhcp_dh_023_reconfigured ... ok
test s_dhcp_dh_022_extended ... ok
test s_dhcp_dh_019_the_first_renew ... ok
test s_dhcp_dh_029_a_nak_while_requesting ... ok
test s_dhcp_dh_031_a_late_timer_rebinds_once ... ok
test s_dhcp_dh_032_a_later_timer_expires ... ok
test s_dhcp_dh_027_a_nak_while_renewing ... ok
test s_dhcp_dh_028_a_nak_from_another_server ... ok
test s_dhcp_dh_020_renew_rebind_expire ... ok
test s_dhcp_dh_024_an_ack_for_another_address ... ok
test s_dhcp_dh_021_t2_alone_means_rebinding_at_t1 ... ok
test s_dhcp_dh_026_rebinding_takes_any_server ... ok
test s_dhcp_dh_030_a_nak_loop_is_slowed ... ok
test s_dhcp_dh_025_an_ack_from_another_server ... ok
test s_dhcp_dh_034_an_infinite_lease ... ok
test s_dhcp_dh_035_a_ten_second_lease ... ok
test s_dhcp_dh_033_timer_options ... ok
test s_dhcp_dh_036_a_lease_that_expired_while_probed ... ok
test s_dhcp_dh_037_each_renewal_has_its_own_xid ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/link.rs (target/debug/deps/link-3206abe1f547eb83)

running 10 tests
test s_dhcp_dh_070_link_up_while_selecting ... ok
test s_dhcp_dh_076_the_link_went_down_while_probing ... ok
test s_dhcp_dh_065_the_reboot_is_acknowledged ... ok
test s_dhcp_dh_067_an_unanswered_reboot_keeps_the_lease ... ok
test s_dhcp_dh_069_a_reboot_ack_for_another_address ... ok
test s_dhcp_dh_066_the_reboot_is_refused ... ok
test s_dhcp_dh_068_the_lease_expires_while_rebooting ... ok
test s_dhcp_dh_071_link_up_while_probing ... ok
test s_dhcp_dh_072_an_address_lost_in_use ... ok
test s_dhcp_dh_064_link_up_with_a_lease ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/parse.rs (target/debug/deps/parse-e9d3378615f2ecec)

running 26 tests
test s_dhcp_dh_039_not_a_reply ... ok
test s_dhcp_dh_040_the_hardware_type ... ok
test s_dhcp_dh_041_another_clients_reply ... ok
test s_dhcp_dh_042_another_transaction ... ok
test s_dhcp_dh_043_bootp_is_refused ... ok
test s_dhcp_dh_044_past_end_and_padding ... ok
test s_dhcp_dh_054_the_server_identifier ... ok
test s_dhcp_dh_038_truncated ... ok
test s_dhcp_dh_045_an_option_past_its_field ... ok
test s_dhcp_dh_046_no_end ... ok
test s_dhcp_dh_047_a_repeated_message_type ... ok
test s_dhcp_dh_048_option_lengths ... ok
test s_dhcp_dh_049_split_options_are_joined ... ok
test s_dhcp_dh_050_an_overloaded_file_field ... ok
test s_dhcp_dh_051_overload_misused ... ok
test s_dhcp_dh_052_message_types ... ok
test s_dhcp_dh_053_a_foreign_client_identifier ... ok
test s_dhcp_dh_055_yiaddr_must_be_a_host ... ok
test s_dhcp_dh_058_network_and_broadcast_yiaddr ... ok
test s_dhcp_dh_059_the_first_usable_router ... ok
test s_dhcp_dh_056_the_lease_time ... ok
test s_dhcp_dh_057_the_mask ... ok
test s_dhcp_dh_060_at_most_three_resolvers ... ok
test s_dhcp_dh_061_identity_while_requesting ... ok
test s_dhcp_dh_062_offers_nobody_asked_for ... ok
test s_dhcp_dh_063_a_refused_offer_then_another ... ok

test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/props.rs (target/debug/deps/props-ad1dc5ab60e095ea)

running 2 tests
test s_dhcp_dh_074_prop_every_message_is_built_one_way ... ok
test s_dhcp_dh_073_prop_invariants ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/stack.rs (target/debug/deps/stack-c85f569b53db936f)

running 2 tests
test s_dhcp_dh_007_either_framing_of_the_offer ... ok
test s_dhcp_dh_075_the_acquisition_exception_ends_with_an_address ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/tx.rs (target/debug/deps/tx-76e510ba10e25106)

running 9 tests
test s_dhcp_dh_003_the_discover_schedule ... ok
test s_dhcp_dh_002_the_host_name ... ok
test s_dhcp_dh_004_jitter_offsets ... ok
test s_dhcp_dh_005_secs_saturates ... ok
test s_dhcp_dh_001_the_first_discover ... ok
test s_dhcp_dh_006_the_request ... ok
test s_dhcp_dh_008_the_request_repeats_the_discovers_secs ... ok
test s_dhcp_dh_009_four_requests_then_start_over ... ok
test s_dhcp_dh_010_a_slow_offer_still_counts ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_dma-54049e6a6738179b)

running 17 tests
test tests::a_natural_offset_from_a_natural_base_is_aligned ... ok
test tests::a_refusal_names_its_numbers ... ok
test tests::a_refused_register_names_its_numbers ... ok
test tests::a_zero_length_access_lands_at_the_end_and_no_further ... ok
test tests::a_u32_at_size_minus_one_is_refused ... ok
test tests::a_u32_at_size_minus_four_is_allowed ... ok
test tests::an_access_that_straddles_two_registers_is_refused ... ok
test tests::an_access_of_no_width_is_refused ... ok
test tests::an_empty_region_admits_only_an_empty_access ... ok
test tests::an_offset_inside_the_region_does_not_make_the_access_inside_it ... ok
test tests::an_offset_plus_length_that_wraps_is_refused ... ok
test tests::an_offset_that_wraps_its_own_width_is_refused ... ok
test tests::an_empty_window_admits_no_register ... ok
test tests::an_unaligned_volatile_access_is_refused ... ok
test tests::the_base_is_part_of_the_question ... ok
test tests::the_last_whole_register_is_inside_the_window ... ok
test tests::the_whole_region_is_inside_itself ... ok

test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

     Running unittests src/lib.rs (target/debug/deps/toyos_dns-a0d3e445ce9eaa6c)

running 62 tests
test tests::a_chain_exactly_at_the_bound_is_followed ... ok
test tests::a_lookup_whose_every_server_failed_says_how ... ok
test tests::a_late_answer_to_an_earlier_query_still_ends_the_lookup ... ok
test tests::a_lookup_whose_last_query_reached_nobody_waits_for_the_answers_still_read ... ok
test tests::a_lookup_that_then_reached_neither_server_waits_for_an_older_querys_answer ... ok
test tests::a_lookup_whose_newest_query_is_not_waited_for_wakes_at_the_next_servers_turn ... ok
test tests::a_lookup_whose_newest_query_reached_nobody_waits_for_an_older_querys_answer ... ok
test tests::a_lookup_with_no_server_does_not_start ... ok
test tests::a_real_reply_with_two_addresses_gives_both_in_order ... ok
test tests::a_loop_of_aliases_ends_at_the_bound ... ok
test tests::a_server_failure_asks_the_next_server_at_once ... ok
test tests::a_reported_query_the_caller_then_knows_reached_nobody_is_let_go ... ok
test tests::a_server_failure_before_an_alias_is_not_the_aliases_failure ... ok
test tests::a_server_known_unreached_is_asked_again_a_wait_after_that_and_the_lookup_waits_for_its_turn ... ok
test tests::a_server_named_twice_is_one_server_and_is_asked_once_a_wait_whatever_is_reported ... ok
test tests::a_server_that_answered_with_a_failure_is_what_a_lookup_that_then_reached_nobody_reports ... ok
test tests::a_server_not_reached_is_not_asked_again_at_once_because_another_failed ... ok
test tests::a_truncated_reply_ends_the_lookup_by_name ... ok
test tests::an_older_query_that_reached_nobody_asks_nobody_and_ends_nothing ... ok
test tests::an_older_query_that_reached_nobody_does_not_hurry_the_next_server ... ok
test tests::aliases_are_counted_across_the_names_a_lookup_asks ... ok
test tests::every_prefix_of_a_real_reply_is_dropped_or_reads_as_the_whole ... ok
test tests::records_of_another_class_or_type_are_passed_over ... ok
test tests::reports_and_another_servers_failures_hurry_no_server_that_has_not_answered_and_end_no_lookup_early ... ok
test tests::rfc1034_3_6_2_a_chain_is_followed_in_any_order ... ok
test tests::rfc1034_5_3_3_a_chain_that_ends_without_an_address_is_asked_again_at_its_end ... ok
test tests::rfc1034_3_6_2_a_real_chain_of_aliases_is_followed_to_its_address ... ok
test tests::rfc1035_2_3_4_a_label_is_63_bytes_and_a_name_255 ... ok
test tests::rfc1035_3_3_1_an_alias_record_is_one_name ... ok
test tests::rfc1035_2_3_4_an_owner_of_255_bytes_is_read_and_one_of_256_is_refused ... ok
test tests::rfc1035_2_3_4_a_name_built_past_255_bytes_by_pointers_is_refused ... ok
test tests::rfc1035_3_4_1_an_address_record_is_four_bytes ... ok
test tests::rfc1035_4_1_1_a_query_is_one_header_and_one_question_for_a_in_in ... ok
test tests::rfc1035_4_1_1_a_query_or_another_opcode_is_no_reply ... ok
test tests::rfc1035_4_1_1_every_rcode_is_named ... ok
test tests::rfc1035_4_1_3_a_record_or_a_count_past_the_end_is_malformed ... ok
test tests::rfc1035_4_1_4_a_pointer_that_does_not_point_back_is_refused ... ok
test tests::rfc1035_4_1_4_a_pointer_to_a_prior_name_is_read ... ok
test tests::rfc1035_4_1_4_the_two_reserved_label_types_are_refused ... ok
test tests::rfc1035_4_2_1_a_query_that_reached_nobody_is_not_waited_for_and_the_next_server_is_asked_at_once ... ok
test tests::rfc1035_4_2_1_a_server_not_reached_is_asked_again_in_its_turn_a_wait_later ... ok
test tests::rfc1035_4_2_1_every_server_is_asked_before_any_again_and_the_lookup_ends_after_its_rounds ... ok
test tests::rfc1035_4_2_1_no_server_is_asked_again_at_once_a_lookup_that_reached_none_ends ... ok
test tests::rfc1035_5_1_a_name_off_the_wire_is_written_with_every_odd_byte_escaped ... ok
test tests::rfc1123_2_1_a_name_is_letters_digits_hyphens_and_nothing_else ... ok
test tests::rfc2181_10_1_two_aliases_for_one_name_are_malformed ... ok
test tests::rfc2181_5_4_1_an_address_for_a_name_not_asked_is_not_read ... ok
test tests::rfc2181_9_a_truncated_reply_is_refused_whatever_it_carries ... ok
test tests::rfc2308_2_2_a_name_with_no_address_is_an_empty_answer ... ok
test tests::rfc2308_nxdomain_and_nodata_end_the_lookup_apart ... ok
test tests::rfc4343_names_compare_without_regard_to_case ... ok
test tests::rfc5452_9_1_a_reply_is_read_only_for_its_id_and_its_question ... ok
test tests::rfc5452_9_1_only_the_asked_server_port_and_id_are_read ... ok
test tests::rfc5452_9_2_an_id_is_drawn_for_a_query_that_is_sent_and_for_nothing_else ... ok
test tests::rfc6761_6_4_a_real_invalid_name_does_not_exist ... ok
test tests::rfc8085_5_2_a_report_of_an_older_query_asks_nobody ... ok
test tests::rfc8085_5_2_a_reported_query_is_still_read_and_the_next_server_is_asked_at_once ... ok
test tests::rfc8085_5_2_reports_alone_end_no_lookup_and_ask_no_server_twice_inside_a_wait ... ok
test tests::every_pair_of_bytes_in_the_header_and_question_is_read_soundly ... ok
test tests::random_bytes_are_never_an_answer_to_an_id_they_do_not_carry ... ok
test tests::every_byte_of_a_real_reply_set_to_every_value_is_read_soundly ... ok
test tests::random_answer_sections_behind_a_valid_question_are_read_soundly ... ok

test result: ok. 62 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s

     Running unittests src/lib.rs (target/debug/deps/toyos_elf-1dee33cd8b2d3927)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/crafted.rs (target/debug/deps/crafted-5e6c5e5f64fbcab9)

running 31 tests
test a_file_extent_that_overflows_is_refused ... ok
test a_header_naming_a_vaddr_outside_the_image_is_refused_by_name ... ok
test a_file_with_no_load_segment_is_refused ... ok
test a_header_one_byte_short_is_too_small ... ok
test a_program_header_count_past_the_buffer_is_refused ... ok
test a_program_header_offset_inside_the_file_header_is_refused_by_name ... ok
test a_program_header_offset_that_overflows_is_refused ... ok
test a_program_header_size_that_is_not_56_is_refused ... ok
test a_section_table_the_loader_cannot_index_is_dropped_not_refused ... ok
test a_segment_extent_that_overflows_is_refused ... ok
test a_table_no_segment_holds_whole_is_absent ... ok
test a_vaddr_below_every_segment_has_no_file_offset ... ok
test an_empty_file_is_too_small ... ok
test a_zero_size_tls_segment_is_present_not_absent ... ok
test an_entry_point_outside_the_image_is_refused ... ok
test an_extrapolated_file_offset_that_overflows_has_no_answer ... ok
test class_endianness_version_type_and_machine_are_each_refused_by_name ... ok
test filesz_above_memsz_is_refused_for_load_and_for_tls ... ok
test no_program_headers_is_refused ... ok
test an_image_for_the_other_machine_is_refused_and_one_for_this_machine_is_not ... ok
test only_a_tls_segment_with_bytes_is_occupied ... ok
test segment_flags_survive_the_parse ... ok
test segments_that_share_a_page_are_an_overlap ... ok
test the_file_bytes_behind_a_vaddr_are_the_containing_segments ... ok
test the_load_segment_count_is_bounded_and_the_bound_is_generous ... ok
test the_magic_is_checked ... ok
test the_program_header_table_is_where_its_segment_places_it ... ok
test the_stack_after_an_image_is_aligned_wherever_the_image_ends ... ok
test tls_alignment_is_a_power_of_two_within_a_page_or_it_is_refused ... ok
test the_writable_window_spans_every_writable_segment ... ok
test tls_bss_may_extend_past_the_image ... ok

test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/fuzz.rs (target/debug/deps/fuzz-3b69a54ee7aafce0)

running 2 tests
test no_note_segment_panics_the_build_id_read ... ok
test every_derived_address_lies_inside_the_image_or_the_image_is_refused ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.95s

     Running tests/note.rs (target/debug/deps/note-afcd23549fb7d2d4)

running 13 tests
test a_build_id_of_the_wrong_type_is_none ... ok
test a_build_id_under_another_name_is_none ... ok
test a_descriptor_of_0_or_past_32_bytes_is_no_build_id ... ok
test a_note_running_past_its_segment_names_none ... ok
test a_lone_build_id_is_read ... ok
test an_alignment_no_note_section_has_names_none ... ok
test a_header_with_no_readable_table_lists_no_note ... ok
test an_eight_aligned_segment_pads_to_eight ... ok
test every_pt_note_is_listed_wherever_its_bytes_are ... ok
test no_build_id_note_names_none ... ok
test the_build_id_after_an_unpadded_name_is_found ... ok
test the_constant_is_the_gabis ... ok
test the_first_of_two_build_ids_is_the_answer ... ok

test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/real.rs (target/debug/deps/real-405aa2c1d23718ba)

running 2 tests
test a_linked_binary_parses_to_what_readelf_says ... ok
test an_lld_binarys_build_id_is_what_object_and_readelf_read ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/tables.rs (target/debug/deps/tables-c3231c6816106e1a)

running 42 tests
test a_bucket_pointing_past_the_chain_array_yields_no_symbol_count ... ok
test a_chain_naming_a_symbol_the_table_does_not_hold_resolves_to_nothing ... ok
test a_bucket_below_the_symbol_offset_is_the_symbol_offset ... ok
test a_dynamic_table_with_no_null_terminator_stops_at_the_buffer ... ok
test a_chain_index_below_the_symbol_offset_ends_the_lookup ... ok
test a_consistent_table_finds_its_symbol_and_counts_it ... ok
test a_chain_that_never_terminates_yields_no_symbol_count ... ok
test a_name_offset_past_the_string_table_is_empty ... ok
test a_hash_header_that_cannot_be_used_is_refused ... ok
test a_name_that_is_not_utf8_matches_nothing ... ok
test a_read_table_inside_the_write_window_is_refused_by_name ... ok
test a_read_table_on_a_page_of_the_write_window_is_refused ... ok
test a_relocation_crossing_a_fill_page_is_refused_only_for_a_chunked_writer ... ok
test a_relocation_form_a_rela_loader_would_not_apply_is_refused ... ok
test a_symbol_index_at_the_edge_of_the_bytes_reads_nothing ... ok
test a_symbol_index_is_bounded_by_the_whole_entries_of_its_table ... ok
test a_symbol_index_past_the_table_is_refused_except_for_relative ... ok
test a_symbol_section_whose_link_names_nothing_is_no_symbol_section ... ok
test a_symbol_table_that_cannot_be_read_names_nothing ... ok
test a_symbol_with_no_size_owns_everything_above_it ... ok
test a_table_needs_both_of_its_tags_and_a_non_zero_size ... ok
test a_tag_is_absent_or_present_never_zero_meaning_absent ... ok
test a_trailing_partial_relocation_is_not_a_relocation ... ok
test a_truncated_section_table_names_the_sections_it_covers ... ok
test an_aarch64_tls_descriptor_is_refused_by_name ... ok
test an_address_resolves_to_the_function_that_contains_it ... ok
test an_alias_pair_resolves_to_the_one_that_carries_a_size ... ok
test an_empty_symbol_table_answers_every_question_with_nothing ... ok
test an_executable_s_reservation_is_had_only_through_its_refusals ... ok
test an_unterminated_name_is_the_rest_of_the_string_table ... ok
test counts_are_per_kind_over_every_table ... ok
test data_symbols_and_zero_valued_ones_name_no_frame ... ok
test dladdr_names_the_symbol_glibc_names ... ok
test each_machine_reads_its_own_relocation_numbers ... ok
test every_written_type_is_validated_and_no_other_is ... ok
test everything_after_dt_null_is_ignored ... ok
test lookups_skip_undefined_symbols_and_the_null_entry ... ok
test one_byte_past_a_sized_symbol_is_not_that_symbol ... ok
test rela_dyn_is_found_by_shape_and_only_by_shape ... ok
test relocation_types_map_to_the_width_the_writers_use ... ok
test the_symbol_count_is_the_hash_tables_or_the_gap ... ok
test validation_refuses_a_write_outside_the_window_by_name ... ok

test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/tls.rs (target/debug/deps/tls-d5beb1df92b2f1d9)

running 11 tests
test modules_are_placed_in_order_with_the_first_at_zero ... ok
test the_dtv_is_never_overwritten_by_tls_data ... ok
test variant_i_agrees_with_what_lld_linked ... ok
test a_module_lands_on_its_own_declared_alignment ... ok
test the_executables_extent_is_its_size_rounded_to_its_alignment ... ok
test a_tpoff_no_segment_or_word_holds_is_refused ... ok
test a_size_no_allocation_can_hold_has_no_plan ... ok
test an_alignment_that_is_not_a_power_of_two_has_no_plan ... ok
test each_machine_has_its_own_variant ... ok
test tpoff_carries_the_addend ... ok
test variant_i_puts_the_first_module_where_its_linker_put_it ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_elide-ec7866da0b8a7d1f)

running 12 tests
test limit::tests::a_storm_is_said_to_its_burst_counted_after_and_reported_once ... ok
test tests::a_tail_cut_inside_a_character_drops_its_remainder ... ok
test tests::a_head_cut_inside_a_character_stops_before_it ... ok
test limit::tests::a_quiet_site_is_never_limited ... ok
test tests::a_tail_wider_than_the_value_keeps_all_of_it ... ok
test tests::a_value_that_fits_is_untouched ... ok
test tests::both_ends_survive_and_the_count_is_exact ... ok
test tests::one_byte_past_what_is_kept_elides ... ok
test limit::tests::racing_sites_count_exactly ... ok
test tests::nothing_renders_wider_than_widest ... ok
test tests::no_length_and_no_width_produces_invalid_utf8 ... ok
test tests::the_chunking_a_value_arrives_in_does_not_change_it ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_fat32-9a543f2935caa0c2)

running 18 tests
test name::tests::anything_else_needs_one ... ok
test name::tests::basis_truncates_and_uppercases ... ok
test dir::tests::a_write_time_keeps_the_even_second ... ok
test name::tests::checksum_rotates_and_is_not_constant ... ok
test name::tests::candidates_are_distinct_and_well_formed ... ok
test name::tests::groups_pad_with_terminator_then_filler ... ok
test name::tests::exact_multiple_of_thirteen_has_no_terminator ... ok
test name::tests::lone_surrogates_decode_to_a_name_rather_than_failing ... ok
test time::tests::clamps_instead_of_wrapping ... ok
test name::tests::rejects_what_fat_cannot_store ... ok
test name::tests::long_name_comparison_is_ascii_case_insensitive ... ok
test name::tests::rejects_names_past_the_format_limit ... ok
test name::tests::plain_uppercase_names_need_no_long_entry ... ok
test time::tests::seconds_round_down_to_two ... ok
test time::tests::zero_entry_has_a_time ... ok
test name::tests::hash_tails_differ_between_long_names ... ok
test time::tests::every_bit_pattern_decodes ... ok
test time::tests::every_representable_day_round_trips ... ok

test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/host_read.rs (target/debug/deps/host_read-054ce0316637f8c4)

running 10 tests
test a_four_kib_cluster_volume_reads_the_same ... ok
test lookup_ignores_case ... ok
test lowercase_short_names_survive ... ok
test every_file_reads_back_byte_for_byte ... ok
test the_volume_label_is_not_a_file ... ok
test extents_cover_the_file_and_point_at_its_bytes ... ok
test reads_land_correctly_at_every_offset_and_length ... ok
test walk_sees_exactly_what_the_host_wrote ... ok
test missing_paths_are_not_found_rather_than_anything_else ... ok
test subdirectories_list_independently ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/host_write.rs (target/debug/deps/host_write-5850e42c39a4048a)

running 21 tests
test colliding_short_names_stay_unique ... ok
test empty_directories_are_removable_and_full_ones_are_not ... ok
test our_own_reader_agrees_with_the_host_on_our_own_volume ... ok
test files_crossing_cluster_boundaries_are_intact ... ok
test a_log_file_written_a_line_at_a_time ... ok
test same_entry_is_case_insensitive_identity ... ok
test creating_an_existing_name_in_another_case_is_refused ... ok
test rename_moves_a_file_between_directories ... ok
test every_fat_copy_stays_in_step ... ok
test rename_repoints_a_moved_directorys_parent ... ok
test the_host_sees_the_timestamp_we_stamped ... ok
test appending_extends_the_chain ... ok
test a_chain_that_outran_its_entry_is_reconciled ... ok
test a_directory_grows_into_further_clusters ... ok
test the_host_accepts_a_volume_we_populated ... ok
test sparse_writes_zero_the_gap ... ok
test truncation_releases_clusters_and_the_host_agrees ... ok
test four_kib_clusters_write_correctly ... ok
test a_chain_no_entry_reaches_is_reconciled ... ok
test deleted_clusters_come_back ... ok
test a_full_volume_refuses_cleanly ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.70s

     Running tests/hostile.rs (target/debug/deps/hostile-c6039959a84466df)

running 33 tests
test a_directory_tree_cycle_terminates ... ok
test a_refused_flush_is_io ... ok
test a_longer_cycle_is_bounded_rather_than_endless ... ok
test a_bad_signature_is_not_a_volume ... ok
test a_long_name_with_a_wrong_checksum_falls_back_to_the_short_one ... ok
test a_directory_entry_pointing_outside_the_volume_is_refused ... ok
test a_fat_too_small_for_its_clusters_is_refused ... ok
test a_crafted_entry_can_still_be_deleted ... ok
test a_stale_handle_over_a_reused_empty_slot_is_refused ... ok
test a_crafted_zero_size_entry_cannot_write_outside_the_volume ... ok
test a_write_through_a_dead_handle_allocates_nothing ... ok
test a_volume_too_small_for_fat32_is_refused ... ok
test a_chain_link_outside_the_volume_is_refused ... ok
test a_stale_handle_is_refused ... ok
test a_cluster_that_links_to_itself_is_refused ... ok
test a_device_that_fails_mid_read_reports_it ... ok
test lone_surrogates_in_a_long_name_produce_a_name ... ok
test impossible_names_are_refused_not_mangled ... ok
test a_cyclic_directory_chain_terminates ... ok
test a_volume_larger_than_its_device_is_truncated ... ok
test the_caller_limit_is_the_named_directorys_and_not_the_volumes ... ok
test the_caller_limit_refuses_rather_than_truncates ... ok
test the_corpus_is_a_volume_we_can_read ... ok
test removing_a_cyclic_chain_never_leaves_an_entry_naming_free_clusters ... ok
test truncating_a_cyclic_chain_does_not_free_the_clusters_it_keeps ... ok
test writes_past_the_format_limit_are_refused ... ok
test every_illegal_bpb_field_is_refused ... ok
test nonsense_long_name_ordinals_do_not_break_the_scan ... ok
test a_directory_longer_than_the_entry_bound_is_refused ... ok
test an_empty_file_is_not_a_corrupt_directory ... ok
test random_damage_to_the_metadata_never_panics ... ok
test random_damage_to_directory_entries_never_panics ... ok
test every_boot_sector_byte_can_be_anything ... ok

test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.70s

     Running tests/refused_writes.rs (target/debug/deps/refused_writes-ad10e0710e1ba982)

running 20 tests
test a_remove_reports_a_corrupt_chain_under_the_name_it_erased ... ok
test a_remove_whose_free_the_device_fails_answers_ok_and_the_next_call_the_failure ... ok
test a_stop_that_refuses_every_retry_for_a_while_leaks_nothing ... ok
test every_refused_write_of_a_long_name_create_is_undone ... ok
test every_refused_write_of_a_remove_dir_leaves_nothing_behind ... ok
test an_unlanded_rollback_is_the_answer ... ok
test every_refused_write_of_a_rename_is_undone ... ok
test every_refused_read_of_a_truncation_is_retried_to_the_same_end ... ok
test a_call_that_refused_nothing_keeps_the_free_count ... ok
test every_refused_write_of_a_directory_growth_is_undone ... ok
test every_refused_write_of_a_truncation_is_carried_through ... ok
test every_refused_read_of_a_truncation_to_zero_is_retried_to_the_same_end ... ok
test every_refused_write_of_a_truncation_to_zero_is_carried_through ... ok
test every_refused_write_of_an_append_and_its_sync_converges ... ok
test every_refused_write_of_a_first_allocation_is_undone ... ok
test the_deepest_repair_reaches_its_bound_and_no_further ... ok
test every_refused_write_of_a_remove_leaves_nothing_behind ... ok
test every_refused_write_of_an_append_is_undone ... ok
test every_refused_write_of_a_nested_create_dir_is_undone ... ok
test a_stop_at_any_write_leaves_only_the_named_windows ... ok

test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s

     Running tests/replace_rename.rs (target/debug/deps/replace_rename-26aeae76b6ebf7eb)

running 2 tests
test source_move_failure_restores_destination_before_any_free ... ok
test a_failed_rollback_names_where_the_destination_went ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_fat32_check-9b00a76f29be5a2b)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/teeth.rs (target/debug/deps/teeth-e08b231553914a95)

running 66 tests
test a_cluster_past_the_formats_ceiling ... ok
test a_cluster_that_is_not_a_power_of_two_sectors ... ok
test a_boot_sector_without_its_signature ... ok
test a_boot_sector_that_does_not_jump ... ok
test a_chain_link_into_the_bad_cluster_mark ... ok
test a_directory_entry_carrying_a_size ... ok
test a_chain_that_links_back_into_itself ... ok
test a_chain_link_that_is_not_a_cluster ... ok
test a_fat_of_no_sectors ... ok
test a_dot_entry_in_the_root_directory ... ok
test a_fat32_volume_counting_sectors_in_the_sixteen_bit_field ... ok
test a_fat32_volume_claiming_a_fixed_root_directory ... ok
test a_fat_one_that_is_not_an_end_of_chain_mark ... ok
test a_fat32_volume_sizing_its_fat_in_the_sixteen_bit_field ... ok
test a_fat_zero_that_does_not_carry_the_media_byte ... ok
test a_file_system_version_this_specification_does_not_define ... ok
test a_directory_entry_naming_no_cluster ... ok
test a_dot_dot_naming_the_root_cluster_instead_of_zero ... ok
test a_file_whose_size_needs_more_clusters_than_it_holds ... ok
test a_dot_entry_naming_someone_elses_cluster ... ok
test a_free_count_the_writer_left_unknown ... ok
test a_free_count_that_is_not_the_free_count ... ok
test a_long_name_entry_naming_a_cluster ... ok
test a_long_name_entry_with_a_type_the_format_reserves ... ok
test a_long_name_entry_ahead_of_the_dot_entries ... ok
test a_long_name_run_of_more_entries_than_a_long_name_has ... ok
test a_long_name_run_no_short_entry_follows ... ok
test a_file_holding_more_clusters_than_its_size_needs ... ok
test a_long_name_run_whose_checksum_is_not_its_short_names ... ok
test a_long_name_run_whose_ordinals_do_not_count_down ... ok
test a_next_free_hint_that_is_not_a_cluster ... ok
test a_long_name_run_that_does_not_begin_with_the_last_entry_flag ... ok
test a_fat_too_small_for_the_clusters_it_must_describe ... ok
test a_report_that_stops_enumerating_says_it_stopped ... ok
test a_root_cluster_that_is_not_a_cluster ... ok
test a_reserved_entry_byte_carrying_something_nothing_defines ... ok
test a_long_name_run_that_does_not_reach_ordinal_one ... ok
test a_sector_size_the_format_does_not_define ... ok
test a_media_byte_the_format_does_not_define ... ok
test a_fat_copy_left_behind_by_a_write ... ok
test a_volume_shorter_than_its_boot_sector_says ... ok
test a_tree_deeper_than_the_walk_follows ... ok
test a_volume_label_outside_the_root_directory ... ok
test a_volume_flagged_as_having_met_a_disk_error ... ok
test a_subdirectory_that_does_not_begin_with_dot ... ok
test a_volume_that_is_all_metadata ... ok
test a_second_volume_label_in_the_root ... ok
test an_entry_naming_a_cluster_outside_the_volume ... ok
test an_fsinfo_without_its_struct_signature ... ok
test an_fsinfo_sector_outside_the_reserved_region ... ok
test a_volume_of_no_sectors ... ok
test an_fsinfo_without_its_lead_signature ... ok
test a_volume_flagged_as_not_cleanly_unmounted ... ok
test an_fsinfo_without_its_trail_signature ... ok
test fewer_bytes_than_a_boot_sector ... ok
test a_volume_with_too_few_clusters_to_be_fat32 ... ok
test an_orphaned_ring_of_clusters ... ok
test an_active_fat_the_volume_does_not_have ... ok
test no_fat_at_all ... ok
test an_unfinished_fixture_is_not_clean ... ok
test clusters_allocated_and_reachable_from_nothing ... ok
test no_reserved_sectors_at_all ... ok
test two_entries_in_one_directory_with_the_same_short_name ... ok
test the_lowercase_name_bits_are_not_a_complaint ... ok
test the_fixture_is_clean ... ok
test two_files_holding_one_cluster ... ok

test result: ok. 66 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_gicv3-85668e2fdba4881c)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/gicv3.rs (target/debug/deps/gicv3-a7593114838353de)

running 9 tests
test affinity_drops_mpidr_flags_between_aff2_and_aff3 ... ok
test walk_steps_over_virtual_lpi_frames ... ok
test sgi_to_every_other_cpu_is_irm_and_the_intid_alone ... ok
test walk_steps_two_frames_without_them ... ok
test unpacking_puts_each_field_back_and_no_flag ... ok
test sgi_names_aff0_by_range_and_bit ... ok
test walk_stops_at_the_last ... ok
test sgi_to_cpu_zero_is_bit_zero_of_range_zero ... ok
test walk_stops_at_the_region_end ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_gpt-1688af75d0970822)

running 7 tests
test guid::tests::zero_is_zero ... ok
test guid::tests::toyos_root_text_is_the_type_guid ... ok

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Gate: cargo run -- --ci host at 2c744d4, EXIT=0, part 3 of 8

test guid::tests::esp_type_guid_round_trips ... ok
test crc32::tests::not_castagnoli ... ok
test crc32::tests::catalogue_check_value ... ok
test tests::the_block_sizes_parsed_are_the_declared_range ... ok
test crc32::tests::streaming_matches_one_shot ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/mutate.rs (target/debug/deps/mutate-5f160bce851bb0fc)

running 1 test
test a_resealed_table_with_any_value_bent_never_panics_and_hands_back_only_partitions ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.58s

     Running tests/oracle.rs (target/debug/deps/oracle-21195d4b2f2024ba)

running 3 tests
test both_readers_spell_the_types_alike ... ok
test on_tables_uefi_lays_out_both_readers_agree_entry_for_entry ... ok
test on_bent_tables_every_disagreement_is_a_named_difference ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s

     Running tests/parse.rs (target/debug/deps/parse-7e7c8abeb42665bb)

running 43 tests
test a_backwards_partition_is_refused ... ok
test a_device_with_no_room_for_a_table ... ok
test a_damaged_primary_falls_back_to_a_good_backup ... ok
test a_four_kibibyte_block_device_parses ... ok
test a_backup_retry_leaves_no_slot_of_the_primary ... ok
test a_list_is_every_used_entry_in_order ... ok
test a_list_leaves_no_slot_it_did_not_fill ... ok
test a_partition_outside_the_disk_is_refused ... ok
test a_tiny_entry_array_cannot_buy_the_backup_header ... ok
test a_type_scan_over_a_damaged_array_is_refused ... ok
test a_partition_over_the_table_is_refused ... ok
test a_type_scan_lists_every_entry_of_that_type ... ok
test a_read_that_does_not_happen_is_an_error ... ok
test a_billion_entries_is_refused_not_read ... ok
test a_type_scan_says_how_many_it_could_not_hand_back ... ok
test an_array_lba_near_the_top_of_the_range_does_not_wrap ... ok
test absent_guid_is_not_found_and_says_how_many_there_were ... ok
test a_zero_guid_matches_nothing ... ok
test a_valid_primary_that_lacks_the_guid_is_not_retried_against_the_backup ... ok
test an_honest_table_on_a_floored_device_view_parses ... ok
test both_copies_damaged_is_refused_by_name ... ok
test a_usable_range_reaching_the_backup_gpt_is_refused ... ok
test an_overlapping_neighbour_is_refused ... ok
test block_sizes_outside_the_supported_range ... ok
test header_must_claim_lba_one ... ok
test header_reserved_word ... ok
test finds_the_partition_by_unique_guid ... ok
test header_signature ... ok
test header_revision ... ok
test entry_size_must_be_a_power_of_two_multiple_of_128_that_fits_a_block ... ok
test each_guid_finds_its_own_entry ... ok
test hybrid_mbr_is_refused ... ok
test no_protective_mbr ... ok
test one_flipped_bit_in_the_header ... ok
test header_size_bounds ... ok
test one_flipped_bit_in_the_entry_array ... ok
test the_array_ends_where_the_header_says ... ok
test the_array_may_not_sit_on_the_header_or_past_the_usable_range ... ok
test two_entries_claiming_the_target_guid_are_refused ... ok
test zero_entries_is_refused ... ok
test usable_range_must_be_a_range_inside_the_device ... ok
test the_array_ceiling_is_where_it_says_it_is ... ok
test no_byte_of_the_table_can_panic_the_parser ... ok

test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.26s

     Running unittests src/lib.rs (target/debug/deps/toyos_hda-d8e32426ac3fcbc4)

running 88 tests
test caps::tests::an_unsoldered_pin_still_calls_itself_a_speaker ... ok
test caps::tests::a_widget_type_keeps_the_nibble_it_was_decoded_from ... ok
test caps::tests::both_laptop_output_pins_can_power_an_external_amplifier ... ok
test caps::tests::eight_channel_display_audio_decodes_its_channel_count ... ok
test caps::tests::qemu_s_converter_offers_it_too ... ok
test caps::tests::the_converter_amp_has_gain_and_cannot_mute ... ok
test caps::tests::the_internal_speaker_is_fixed_and_the_jack_is_a_jack ... ok
test caps::tests::the_laptop_s_speaker_dac_decodes_as_a_stereo_converter ... ok
test caps::tests::the_laptop_s_speaker_pin_has_a_connection_list_and_an_output_amp ... ok
test caps::tests::the_laptop_s_vendor_widget_is_the_one_with_processing_coefficients ... ok
test caps::tests::the_pin_amp_can_mute_and_has_no_gain ... ok
test caps::tests::the_laptop_s_converter_offers_what_this_pipeline_plays ... ok
test config::tests::a_hop_shared_by_two_pins_is_powered_once ... ok
test config::tests::qemus_path_writes_its_amplifier_on_the_converter_and_none_on_the_pin ... ok
test config::tests::a_converter_that_does_not_offer_the_rate_is_a_refusal_and_not_a_substitution ... ok
test config::tests::every_widget_on_the_path_that_has_a_power_state_is_told_d0 ... ok
test config::tests::the_jack_is_told_to_drive_headphones_and_the_speaker_is_not ... ok
test graph::tests::a_function_type_keeps_the_byte_it_was_decoded_from ... ok
test config::tests::both_machines_offer_the_one_rate_this_driver_asks_for ... ok
test config::tests::nothing_in_the_sequence_ever_sets_the_mute_bit ... ok
test config::tests::the_laptop_s_speaker_is_told_to_power_its_external_amplifier ... ok
test fixture::tests::every_pin_in_the_fixture_has_a_configuration_default ... ok
test config::tests::the_two_halves_of_the_laptop_s_volume_control_are_written_where_they_exist ... ok
test graph::tests::a_range_entry_expands_from_the_entry_before_it ... ok
test graph::tests::a_range_longer_than_the_bound_is_refused_rather_than_truncated ... ok
test graph::tests::a_range_that_runs_backwards_is_not_a_range ... ok
test fixture::tests::the_speaker_pin_round_trips_through_the_log_format ... ok
test graph::tests::a_range_with_nothing_before_it_is_refused ... ok
test graph::tests::a_list_shorter_than_it_declared_is_refused ... ok
test graph::tests::a_long_form_entry_carries_sixteen_bits ... ok
test graph::tests::the_laptop_s_headphone_pin_names_two_converters ... ok
test graph::tests::the_laptop_s_speaker_pin_names_one ... ok
test graph::tests::a_long_form_node_past_the_node_space_is_refused ... ok
test graph::tests::a_six_entry_mixer_list_spans_two_responses ... ok
test path::tests::a_connection_naming_a_node_outside_the_group_is_refused_by_name ... ok
test fixture::tests::the_converters_keep_their_rates ... ok
test config::tests::the_converter_learns_the_format_and_the_tag_last ... ok
test path::tests::a_cycle_is_a_refusal_and_not_a_hang ... ok
test path::tests::a_selector_on_the_way_is_told_which_input_to_take ... ok
test path::tests::a_speaker_outranks_a_line_out_whatever_order_the_nodes_are_in ... ok
test path::tests::a_speaker_pin_with_no_converter_behind_it_is_refused ... ok
test path::tests::an_unwired_speaker_pin_does_not_win_by_coming_first ... ok
test fixture::tests::the_laptop_fixture_carries_both_codecs_and_every_widget ... ok
test path::tests::qemu_has_no_speaker_and_binds_its_line_out ... ok
test probe::tests::a_subordinate_range_running_off_the_node_space_is_refused_by_name ... ok
test probe::tests::a_group_that_is_not_audio_is_kept_and_not_walked ... ok
test probe::tests::a_widget_count_past_the_bound_costs_the_widgets_past_it_and_nothing_else ... ok
test path::tests::the_pin_amp_the_laptop_offers_is_the_one_that_can_mute ... ok
test path::tests::display_audio_alone_is_a_refusal_naming_it ... ok
test path::tests::only_one_of_the_laptop_s_five_speaker_labelled_pins_is_a_candidate ... ok
test path::tests::the_display_codec_does_not_win_when_it_comes_first ... ok
test path::tests::the_laptop_picks_its_internal_speaker_and_the_jack_that_shares_a_converter ... ok
test stream::tests::a_buffer_that_would_wrap_the_address_space_is_refused ... ok
test probe::tests::walking_qemus_two_codecs_binds_the_line_out ... ok
test stream::tests::a_period_count_past_the_mask_is_refused_rather_than_masked_short ... ok
test stream::tests::a_built_format_decodes_back_to_the_rate_it_was_asked_for ... ok
test stream::tests::a_driver_that_slept_a_whole_lap_is_told_the_mask_cannot_place_the_engine ... ok
test stream::tests::a_divided_rate_uses_the_divisor_field ... ok
test stream::tests::a_last_index_outside_the_ring_is_refused ... ok
test stream::tests::a_mask_names_the_period_the_engine_returns_to_first ... ok
test stream::tests::a_mask_that_is_not_one_run_is_refused_rather_than_placed ... ok
test stream::tests::a_multiplied_rate_uses_the_multiplier_field ... ok
test probe::tests::a_codec_statests_named_and_the_link_does_not_carry_is_named_not_skipped ... ok
test stream::tests::a_position_inside_the_period_still_being_played_marks_nothing_new ... ok
test stream::tests::a_position_past_the_buffer_is_not_an_index ... ok
test stream::tests::a_rate_the_field_cannot_express_is_refused_and_not_rounded ... ok
test stream::tests::a_ring_with_nothing_to_wrap_to_is_refused ... ok
test stream::tests::a_run_that_wraps_does_not_start_at_its_lowest_bit ... ok
test probe::tests::the_walked_laptop_binds_the_same_speaker_the_parsed_one_does ... ok
test stream::tests::an_unrepresentable_width_or_channel_count_is_refused ... ok
test stream::tests::completion_marks_every_period_between_two_positions ... ok
test stream::tests::completion_wraps_the_ring ... ok
test stream::tests::forty_eight_kilohertz_is_the_other_base ... ok
test stream::tests::every_rate_linux_tabulates_encodes_to_the_number_linux_tabulates ... ok
test stream::tests::the_pipeline_s_own_shape_builds_a_ring ... ok
test stream::tests::the_rate_this_pipeline_plays_encodes_as_the_forty_four_one_base ... ok
test stream::tests::widths_and_channel_counts_land_in_their_own_fields ... ok
test verb::tests::a_range_running_past_the_node_space_is_refused ... ok
test probe::tests::walking_the_laptop_reaches_the_graph_its_own_log_describes ... ok
test verb::tests::all_ones_is_not_a_response ... ok
test verb::tests::an_address_and_a_node_print_the_way_a_dump_names_them ... ok
test verb::tests::long_verb_puts_its_payload_under_a_four_bit_verb ... ok
test verb::tests::present_reports_every_codec_and_not_the_first ... ok
test verb::tests::short_verb_is_the_probe_s_encoding ... ok
test verb::tests::statests_bit_15_is_not_an_address ... ok
test stream::tests::every_position_completed_can_report_reads_back_as_the_run_it_walked ... ok
test verb::tests::the_laptop_s_widget_range_decodes_to_its_own_nodes ... ok
test verb::tests::zero_subordinates_is_no_range_at_all ... ok

test result: ok. 88 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_i219-34ecf7da27a76327)

running 90 tests
test tests::a_flag_the_part_already_let_go_is_not_written_again ... ok
test tests::a_flag_that_never_comes_does_not_stop_the_reset ... ok
test tests::a_claim_that_stops_answering_is_handed_up_and_not_read_as_quiet ... ok
test tests::a_frame_goes_out_whole ... ok
test tests::a_flag_another_agent_holds_is_neither_asked_over_nor_cleared ... ok
test tests::a_frame_longer_than_a_transmit_buffer_is_refused_and_not_truncated ... ok
test tests::a_buffer_given_back_out_of_turn_does_not_carry_the_tail_over_an_older_one ... ok
test tests::a_frame_arrives_whole ... ok
test tests::a_grant_that_never_comes_is_refused_by_name_and_the_request_withdrawn ... ok
test tests::a_link_drop_does_not_lose_the_ring ... ok
test tests::a_lying_length_is_refused_and_the_frames_behind_it_still_arrive ... ok
test tests::a_part_is_told_which_vector_each_cause_uses ... ok
test tests::a_full_transmit_ring_answers_room_0 ... ok
test tests::a_part_that_does_not_take_ivar_is_refused ... ok
test tests::a_grant_that_comes_late_inside_the_bound_is_taken ... ok
test tests::a_part_that_does_not_take_rctl_is_refused ... ok
test tests::a_phy_in_reach_is_asked_once_and_left_powered ... ok
test tests::a_part_with_no_station_address_is_refused ... ok
test tests::a_partner_on_an_unconfigured_phy_raises_no_link ... ok
test tests::a_phy_left_in_loopback_or_configured_by_hand_raises_no_link ... ok
test tests::a_link_that_is_down_has_no_room ... ok
test tests::a_ladder_stopped_on_smbus_leaves_the_mac_off_it ... ok
test tests::a_part_that_takes_none_of_the_datasheets_latitudes_is_brought_up_the_same_way ... ok
test tests::a_phy_left_in_low_power_link_up_links_at_a_gigabit ... ok
test tests::a_master_that_never_goes_quiet_does_not_stop_the_bring_up ... ok
test tests::a_multicast_group_sets_the_one_table_bit_its_address_hashes_to ... ok
test tests::a_refused_descriptor_does_not_carry_the_tail_over_a_frame_still_held ... ok
test tests::a_phy_that_is_not_the_one_this_map_describes_is_refused_by_its_identifier ... ok
test tests::a_register_nothing_decodes_is_refused_and_never_written ... ok
test tests::a_part_that_grants_over_the_engines_standing_bit_is_brought_up ... ok
test tests::a_mac_that_keeps_its_phy_down_is_a_phy_no_cycle_reaches ... ok
test tests::a_phy_reset_restores_the_defaults_and_not_the_state_the_claim_inherited ... ok
test tests::a_reset_that_never_finishes_is_refused ... ok
test tests::a_phy_left_out_of_reach_is_climbed_to_before_the_reset ... ok
test tests::a_platform_that_asks_for_low_power_link_up_in_d0a_gets_it ... ok
test tests::a_spurious_interrupt_costs_a_pass_and_nothing_else ... ok
test tests::a_seeded_workload_loses_nothing_and_invents_nothing ... ok
test tests::a_release_over_a_window_of_ones_writes_nothing ... ok
test tests::a_phy_no_rung_reaches_is_refused_after_the_reset ... ok
test tests::a_phy_reset_the_firmware_blocks_is_never_issued ... ok
test tests::a_ring_never_written_back_is_refused ... ok
test tests::a_window_or_grant_too_small_is_refused ... ok
test tests::a_window_that_reads_ones_is_refused ... ok
test tests::a_request_registered_while_the_engine_holds_it_is_still_granted ... ok
test tests::causes_are_acknowledged_by_writing_them_back ... ok
test tests::bring_up_programs_what_the_initialization_sections_name ... ok
test tests::every_reading_of_the_other_two_ownership_bits_names_who_stands_beside_the_flag ... ok
test tests::an_mdi_read_the_part_could_not_complete_is_refused_by_name ... ok
test tests::frames_come_up_in_order_under_batched_and_reordered_write_back ... ok
test tests::a_written_back_descriptor_returns_room ... ok
test tests::null_descriptor_padding_is_not_a_frame ... ok
test tests::one_pass_hands_up_at_most_its_budget ... ok
test tests::ones_inside_the_grant_wait_do_not_leave_the_request_standing ... ok
test tests::ones_on_the_way_out_do_not_leave_the_flag_standing ... ok
test tests::ones_through_the_whole_release_bound_write_nothing ... ok
test tests::a_ring_a_link_change_left_full_stays_the_parts ... ok
test tests::host_wake_up_left_armed_is_cleared_behind_the_reset ... ok
test tests::every_ask_carries_the_parts_own_word_and_keeps_the_pace ... ok
test tests::quiesce_stops_what_a_previous_holder_left_running ... ok
test tests::refusals::a_descriptor_with_nothing_in_it_is_refused ... ok
test tests::refusals::a_descriptor_without_end_of_packet_is_refused ... ok
test tests::refusals::a_frame_the_hardware_reported_an_error_on_is_refused ... ok
test tests::refusals::more_bytes_than_the_buffer_holds_is_refused ... ok
test tests::the_82574s_own_phy_register_map_is_refused_by_name ... ok
test tests::the_driver_and_the_macs_statistics_count_the_same_frames ... ok
test tests::the_link_going_away_and_coming_back_is_seen ... ok
test tests::the_oem_bits_carry_the_platforms_d0a_policy_and_nothing_else ... ok
test tests::the_head_register_does_run_ahead_of_memory ... ok
test tests::an_interconnect_in_transition_is_waited_out_and_never_written_over ... ok
test tests::the_ownership_claim_leaves_the_rest_of_the_register_standing ... ok
test tests::the_oem_bits_restart_follows_the_control_restart_where_a_phy_reset_is_allowed ... ok
test tests::the_phy_is_found_at_whichever_address_answers_its_identifier ... ok
test tests::the_phy_is_brought_up_and_the_mac_sees_the_link_it_raises ... ok
test tests::an_mdi_transaction_that_never_reports_ready_is_refused_by_name ... ok
test tests::the_receiver_reporting_on_itself_is_counted ... ok
test tests::the_refusal_names_each_agent_standing_beside_the_flag ... ok
test tests::the_refusal_names_the_last_reading_before_the_deadline ... ok
test tests::a_descriptors_fields_are_read_only_after_an_observe_that_follows_the_load_that_found_dd ... ok
test tests::what_one_power_reading_decides ... ok
test tests::what_the_wake_and_the_full_reset_write ... ok
test tests::the_power_step_is_what_lets_an_mdi_cycle_run_at_all ... ok
test tests::the_pchs_mac_gets_its_three_registers_and_the_82574_none ... ok
test tests::transmit_descriptors_are_reclaimed_under_batched_write_back ... ok
test tests::the_transmit_cause_is_armed_only_when_asked ... ok
test tests::no_two_accesses_to_the_arbitration_are_nearer_than_the_pace ... ok
test tests::the_advertised_abilities_are_what_the_link_resolves_to ... ok
test tests::the_word_to_the_firmware_goes_with_the_driver ... ok
test tests::a_tail_register_is_written_only_after_a_publish_that_follows_the_last_descriptor_store ... ok
test tests::the_interface_is_given_back_on_every_path_that_took_it ... ok
test tests::a_burst_past_the_ring_leaves_whole_on_the_room_it_is_told ... ok

test result: ok. 90 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s

     Running unittests src/lib.rs (target/debug/deps/toyos_inspect-f58f964bd2fd297e)

running 25 tests
test dev::tests::the_header_is_read_at_the_kernels_offsets ... ok
test invocation::tests::a_command_line_is_one_optional_selector_and_one_optional_flag ... ok
test kernel::tests::an_absent_counter_has_no_path ... ok
test kernel::tests::a_stale_cpu_says_so_and_an_unread_one_says_only_that ... ok
test path::tests::a_path_is_refused_by_name ... ok
test render::tests::json_is_one_flat_object_with_typed_values ... ok
test kernel::tests::a_cpu_two_records_name_is_refused_by_its_path ... ok
test render::tests::a_line_is_path_equals_value ... ok
test selector::tests::a_malformed_selector_is_refused_by_name ... ok
test selector::tests::a_selector_reaches_only_the_owners_it_can_name ... ok
test kernel::tests::every_counter_a_record_carries_is_a_path_the_grammar_accepts ... ok
test tests::every_owner_root_is_one_valid_segment_and_distinct ... ok
test dev::tests::every_record_renders_to_paths_the_grammar_accepts ... ok
test wire::tests::a_snapshot_round_trips ... ok
test dev::tests::a_path_two_records_render_to_is_refused_by_name ... ok
test selector::tests::a_star_is_one_or_more_whole_segments ... ok
test wire::tests::an_answer_for_another_owner_is_refused ... ok
test selector::tests::a_pathological_selector_is_answered_in_polynomial_time ... ok
test wire::tests::a_malformed_answer_is_refused_by_name ... ok
test dev::tests::a_star_never_lines_up_the_parts_of_an_address ... ok
test wire::tests::an_owner_cannot_answer_one_path_twice - should panic ... ok
test wire::tests::an_owner_cannot_put_a_path_outside_the_grammar - should panic ... ok
test wire::tests::an_owner_cannot_put_a_second_line_in_a_value - should panic ... ok
test wire::tests::an_owner_that_answers_past_one_frame_is_told_so ... ok
test wire::tests::every_truncation_is_refused ... ok

test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_its-19d0b13c69263954)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/encodings.rs (target/debug/deps/encodings-641e75abe325d634)

running 21 tests
test a_collection_is_one_the_its_holds_or_its_table_does ... ok
test a_devices_events_are_at_least_two_and_no_more_than_the_its_has_bits_for ... ok
test a_redistributor_is_named_as_the_its_asks_by_number_or_by_address ... ok
test a_redistributor_that_reads_other_bits_back_has_no_lpis_of_the_layout ... ok
test a_table_is_given_flat_valid_and_counted_in_its_own_pages ... ok
test a_table_is_sized_in_its_own_pages_for_the_entries_it_must_hold ... ok
test a_table_register_says_what_it_backs_and_how_it_is_read ... ok
test an_event_is_one_its_devices_table_holds ... ok
test an_its_without_physical_lpis_is_refused ... ok
test an_lpi_is_an_intid_from_8192_that_the_tables_and_the_distributor_both_count ... ok
test an_lpi_layout_is_inside_the_distributors_intids ... ok
test an_lpis_configuration_is_its_priority_a_set_bit_and_its_enable ... ok
test an_offset_register_names_a_command_by_its_offset_field_alone ... ok
test each_command_holds_its_number_and_parameters_where_its_figure_has_them ... ok
test inv_and_discard_hold_a_device_and_an_event_and_nothing_else ... ok
test the_command_queue_is_counted_in_4_kib_pages_and_holds_one_command_fewer ... ok
test the_configuration_table_starts_at_intid_8192_and_the_pending_table_at_zero ... ok
test the_its_registers_sit_where_tables_12_33_and_12_34_have_them ... ok
test the_redistributors_base_registers_name_the_two_tables ... ok
test the_redistributors_lpi_registers_sit_where_table_12_27_has_them ... ok
test the_type_register_says_how_wide_an_its_is ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_keymap-d6d5366800ae26a6)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/compose.rs (target/debug/deps/compose-85f070a533090403)

running 17 tests
test altgr_layer ... ok
test composition ... ok
test dead_keys_emit_nothing_when_pressed ... ok
test dead_then_other_dead ... ok
test dead_then_space_and_doubled ... ok
test dedicated_umlauts ... ok
test fallthrough ... ok
test modifiers_do_not_break_composition ... ok
test german_is_unchanged_by_the_dead_key_work ... ok
test reset_drops_pending ... ok
test iso_key ... ok
test qwertz ... ok
test only_swiss_german_has_dead_keys ... ok
test unknown_layout_is_named_as_unknown ... ok
test swiss_german_mac_is_untouched ... ok
test us_is_the_default_and_still_types_ascii ... ok
test worst_case_fallthrough_fits_max_emit ... ok

test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/detect.rs (target/debug/deps/detect-0e8242c4002bb92e)

running 9 tests
test inconsistent_first_press_is_unrecognized ... ok
test inconsistent_second_press_is_unrecognized ... ok
test candidates_narrow ... ok
test every_layout_is_reachable ... ok
test legends_are_renderable ... ok
test the_qwertz_three_take_two ... ok
test question_table_is_well_formed ... ok
test us_takes_one_press ... ok
test never_confident_without_evidence ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/tables.rs (target/debug/deps/tables-be2af0c72a3f1e53)

running 1 test
test golden ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/translate.rs (target/debug/deps/translate-fefbf29b6fa572e2)

running 10 tests
test a_control_code_is_the_key_position_not_the_letter ... ok
test an_escape_sequence_does_not_depend_on_the_layout ... ok
test an_unknown_name_leaves_the_layout_alone ... ok
test an_undefined_key_does_not_consume_a_pending_diacritic ... ok
test changing_layout_drops_a_pending_diacritic ... ok
test arrows_and_page_keys_send_escape_sequences ... ok
test two_translators_do_not_share_a_pending_diacritic ... ok
test the_default_layout_is_us ... ok
test ctrl_makes_control_codes_of_the_letter_row ... ok
test the_swiss_german_gates_own_sequence ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_libc_copies-ee3949aad8583456)

running 48 tests
test internet_addresses::a_number_with_a_zero_before_another_digit_is_no_dotted_quad ... ok
test internet_addresses::a_buffer_too_short_for_the_text_is_refused_as_the_host_refuses_it ... ok
test dladdr_symbols::an_image_holds_its_load_segment_and_starts_at_its_page ... ok
test exact_hex::tests::the_formats_corners_and_ties_round_to_their_bits ... ok
test internet_addresses::a_number_past_32_bits_or_without_digits_is_no_address ... ok
test descriptor_requests::each_descriptor_keeps_its_own_close_on_exec_mark ... ok
test errno_codes::every_code_libc_answers_with_is_errno_h_s ... ok
test descriptor_requests::fcntl_reads_an_int_argument_from_the_lower_half_of_its_register ... ok
test dladdr_symbols::either_count_reaches_the_symbol_at_its_address ... ok
test fparts_differential::modf_is_the_host_libraries ... ok
test fparts_differential::logb_is_the_host_libraries_and_a_zero_its_pole ... ok
test internet_addresses::a_sockaddr_holds_its_port_and_address_in_network_order ... ok
test internet_addresses::another_family_is_refused_as_the_host_refuses_it ... ok
test internet_addresses::an_address_is_truncated_to_the_callers_buffer_as_the_host_truncates_it ... ok
test descriptor_requests::f_dupfd_meets_its_floor_holding_one_duplicate_at_most ... ok
test link_requests::readlink_refuses_an_empty_buffer_and_one_no_ssize_t_counts ... ok
test listing_reader::a_name_fits_d_name_with_its_nul_or_is_refused ... ok
test listing_reader::an_answer_is_asked_again_until_it_fits ... ok
test memory_refusals::a_length_names_the_pages_it_reaches_into ... ok
test memory_refusals::madvise_takes_linuxs_hints_and_refuses_its_discard ... ok
test memory_refusals::mmap_refuses_what_the_kernel_cannot_map_and_nothing_else ... ok
test poll_requests::each_descriptor_named_once_has_its_own_watch ... ok
test poll_requests::a_descriptor_named_twice_is_watched_once_for_both_interests ... ok
test memory_refusals::posix_madvise_takes_its_five_and_only_them ... ok
test signal_masks::each_how_changes_the_mask_as_posix_says ... ok
test signal_masks::sigaddset_adds_its_signal_alone ... ok
test signal_masks::the_full_set_holds_every_signal ... ok
test stream_ends::a_read_of_zero_is_the_peers_fin_only_while_the_send_pipe_is_read ... ok
test stream_ends::a_write_the_send_pipe_refuses_for_its_reader_is_a_reset ... ok
test internet_addresses::an_address_is_written_as_the_host_writes_it ... ok
test socket_options::an_options_value_crosses_as_the_hosts_does ... ok
test strtonum_differential::the_grammar_s_corners_read_as_judged ... ok
test tests::the_square_roots_are_the_correctly_rounded_ones ... ok
test text_differential::every_signal_signal_h_numbers_has_glibcs_text ... ok
test text_differential::strnlen_is_the_host_libraries ... ok
test utf8_differential::a_refusal_starts_the_next_character_afresh ... ok
test tests::a_disjoint_copy_agrees_either_way ... ok
test tests::every_fill_agrees_with_fill ... ok
test strtonum_differential::random_integers_read_as_the_host_s ... ok
test tests::every_copy_agrees_with_copy_within ... ok
test long_double::strtold_widens_as_compiler_builtins_does ... ok
test prototypes::every_prototype_is_a_definition_and_every_definition_is_declared ... ok
test strtonum_differential::random_decimal_numbers_round_as_the_host_s ... ok
test utf8_differential::every_sequence_to_four_bytes_agrees_with_from_utf8 ... ok
test exact_hex::tests::it_rounds_as_the_machine_does ... ok
test internet_addresses::a_dotted_quad_reads_as_the_host_reads_it ... ok
test strtonum_differential::random_hexadecimal_numbers_round_as_ieee_754_rounds_them ... ok
test internet_addresses::numbers_and_dots_read_as_the_host_reads_them ... ok

test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s

     Running unittests src/lib.rs (target/debug/deps/toyos_logstream-eba0d135b9885853)

running 19 tests
test tests::a_kernel_record_and_its_continuation_are_no_programs ... ok
test tests::a_line_past_the_bound_is_let_go_in_pieces_and_nothing_is_lost ... ok
test tests::a_control_byte_is_written_and_never_passed ... ok
test tests::a_continuation_wears_its_kernel_records_severity_across_a_programs_line ... ok
test tests::a_head_names_severity_thread_and_process_and_reads_back ... ok
test tests::a_program_line_reads_back_as_it_was_written ... ok
test tests::a_records_time_is_read_inside_its_bracket_and_nowhere_else ... ok
test tests::a_registration_round_trips_and_a_malformed_one_is_refused ... ok
test tests::a_reader_is_never_left_inside_a_line_even_by_an_eviction ... ok
test tests::a_tag_is_one_word_of_the_names_charset_and_no_other_sayers ... ok
test tests::every_sayers_head_reads_back_and_nothing_else_does ... ok
test tests::a_program_lines_time_is_read_inside_its_head_and_nowhere_else ... ok
test tests::lines_are_whole_however_the_writes_split_them ... ok
test tests::no_text_makes_a_line_another_writers ... ok
test tests::the_colour_is_the_heads_and_the_text_never_acts ... ok
test tests::the_kernels_first_record_is_found_after_whatever_came_before ... ok
test tests::a_reader_at_any_offset_gets_the_bytes_after_it_in_order ... ok
test tests::what_is_let_go_is_whole_lines_and_is_counted ... ok
test tests::a_screen_shows_the_consoles_line_from_either_form ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_manifest-59b28a8000e6c464)

running 28 tests
test launch::tests::an_authority_reads_back_as_written ... ok
test launch::tests::what_encode_cannot_have_written_is_refused ... ok
test tests::a_device_class_name_is_the_abi_s ... ok
test launch::tests::nothing_listed_is_nothing_started_and_apps_names_no_row ... ok
test package::tests::what_the_installer_writes_is_what_the_supervisor_reads ... ok
test tests::a_package_row_is_connectors_and_nothing_else ... ok
test package::tests::a_manifest_cannot_name_a_binary_outside_its_own_directory ... ok
test package::tests::a_field_that_is_not_one_is_refused_by_name ... ok
test tests::a_package_named_after_a_declared_row_is_refused ... ok
test package::tests::a_listing_shows_only_what_the_supervisor_would_start_and_never_more_than_the_bound ... ok
test tests::a_name_that_would_not_survive_the_round_trip_is_refused ... ok
test launch::tests::a_caller_starts_what_its_row_lists_and_swap_and_update_only_in_a_login_session ... ok
test launch::tests::a_sessions_launches_spend_its_one_share ... ok
test package::tests::a_path_the_normalizer_would_change_is_not_canonical_and_classifies_as_nothing ... ok
test package::tests::a_launch_path_names_one_package_or_none ... ok
test package::tests::what_a_shell_resolves_is_what_the_launcher_accepts ... ok
test tests::a_package_s_home_is_its_own_folder ... ok
test tests::a_package_s_view_is_its_own_directory_read_only_and_its_own_folder ... ok
test tests::a_role_is_one_of_the_three_and_its_directories_are_fixed ... ok
test tests::a_row_that_serves_a_port_and_is_no_service_is_refused ... ok
test tests::a_service_s_home_is_its_state_and_every_other_row_s_the_session_s ... ok
test tests::a_syscap_set_always_carries_transfer_and_never_an_invented_right ... ok
test tests::every_declared_row_sees_the_whole_tree_read_write ... ok
test tests::logread_carries_both_halves_of_reading_a_stream_that_never_blocks ... ok
test tests::records_attach_to_the_program_above_them ... ok
test tests::the_process_roster_is_its_own_name_and_its_own_bit ... ok
test tests::the_same_manifest_renders_to_the_same_bytes ... ok
test tests::what_the_build_writes_is_what_the_supervisor_reads ... ok

test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_microcode-5176b74db00fc682)

running 16 tests
test tests::a_damaged_extended_table_is_refused ... ok
test tests::a_file_cut_short_is_refused ... ok
test tests::a_header_or_loader_version_other_than_1_is_refused ... ok
test tests::a_flipped_bit_anywhere_in_header_or_data_is_refused ... ok
test tests::a_malformed_update_after_a_good_one_refuses_the_file ... ok
test tests::a_revision_is_signed ... ok
test tests::a_size_zero_off_its_granule_or_inside_out_is_refused ... ok
test tests::a_t14_below_it_loads_its_data_which_follows_the_header ... ok
test tests::an_empty_file_is_refused ... ok
test tests::an_extended_signature_names_a_cpu_the_header_does_not ... ok
test tests::any_multiple_of_1024_is_a_total_size ... ok
test tests::another_platform_or_stepping_is_not_named ... ok
test tests::the_msrs_are_read_where_the_sdm_puts_them ... ok
test tests::an_extended_signature_in_intels_file_names_its_cpu ... ok
test tests::the_newest_update_naming_the_cpu_is_chosen_wherever_it_sits ... ok
test tests::the_t14_runs_intels_newest_update_for_its_cpu ... ok

test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_ip-c801da0b197750b4)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/acd.rs (target/debug/deps/acd-be07b930c6f2e90d)

running 18 tests
test s_ip_acd_002_a_tentative_address_is_no_source ... ok
test s_ip_acd_001_the_ruled_schedule ... ok
test s_ip_acd_003_an_answer_to_our_probe ... ok
test s_ip_acd_004_an_announcement_of_our_candidate ... ok
test s_ip_acd_005_a_simultaneous_prober ... ok
test s_ip_acd_006_our_own_probe_reflected ... ok
test s_ip_acd_007_the_conflict_window_ends_with_announce_wait ... ok
test s_ip_acd_008_ten_conflicts_rate_limit_new_candidates ... ok
test s_ip_acd_009_ten_quiet_minutes_lift_the_limit ... ok
test s_ip_acd_010_one_defence ... ok
test s_ip_acd_011_a_second_conflict_inside_the_interval_loses ... ok
test s_ip_acd_012_a_second_conflict_after_the_interval_is_defended ... ok
test s_ip_acd_013_an_announcing_address_answers_probes ... ok
test s_ip_acd_014_a_renewal_is_not_probed ... ok
test s_ip_acd_015_link_down_abandons_probing ... ok
test s_ip_acd_017_detection_starts_at_the_first_announcement ... ok
test s_ip_acd_016_link_up_announces_without_probing ... ok
test s_ip_acd_018_a_full_control_queue_holds_probes_and_announcements ... ok

test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/addr.rs (target/debug/deps/addr-2969d417ac93c511)

running 38 tests
test s_ip_addr_002_prefix_lengths_0_and_33 ... ok
test s_ip_addr_004_network_and_broadcast_forms ... ok
test s_ip_addr_003_not_unicast ... ok
test s_ip_addr_008_slash_31_and_32 ... ok
test rfc_3927_2_6_2_a_link_local_destination_is_on_the_link ... ok
test rfc_3927_2_6_2_a_link_local_source_still_sends_by_the_router_or_nowhere ... ok
test rfc_3927_2_6_2_the_edges_of_the_link_local_prefix_are_no_destination ... ok
test rfc_3927_a_link_local_address_is_no_gateway_of_a_routable_interface ... ok
test s_ip_addr_001_an_added_address_becomes_a_connected_route ... ok
test rfc_3927_the_edges_of_the_link_local_prefix_are_no_source ... ok
test s_ip_addr_007_what_is_for_us ... ok
test s_ip_addr_005_one_address_one_interface ... ok
test s_ip_addr_006_eight_addresses ... ok
test rfc_3927_2_6_2_a_datagram_to_a_link_local_host_is_resolved_and_sent_to_it ... ok
test s_ip_addr_009_the_strong_model ... ok
test s_ip_addr_010_limited_broadcast_needs_no_address ... ok
test s_ip_addr_011_a_tentative_address_is_not_ours_yet ... ok
test s_ip_addr_012_no_classful_broadcast ... ok
test s_ip_addr_013_announcing_is_usable ... ok
test s_ip_addr_014_removal_withdraws_route_and_gateway ... ok
test s_ip_rte_001_a_connected_destination ... ok
test s_ip_rte_002_the_default_gateway ... ok
test s_ip_rte_003_no_gateway ... ok
test s_ip_rte_004_longest_prefix ... ok
test s_ip_rte_005_gateways_are_on_link_unicast_hosts ... ok
test s_ip_rte_006_invalid_and_local_destinations ... ok
test s_ip_rte_007_limited_broadcast_needs_one_interface ... ok
test s_ip_rte_008_multicast_ttl_is_the_callers ... ok
test s_ip_rte_009_subnet_broadcast_needs_no_arp ... ok
test s_ip_rte_010_the_source_of_the_next_hops_prefix ... ok
test s_ip_rte_011_a_bound_source_picks_its_interface ... ok
test s_ip_rte_012_only_the_acquiring_source_is_unspecified ... ok
test s_ip_rte_013_a_failed_gateway_is_passed_over ... ok
test s_ip_rte_014_with_no_good_gateway ... ok
test s_ip_rte_015_what_moves_the_generation ... ok
test s_ip_rte_016_no_forwarding ... ok
test s_ip_rte_017_lookups_send_nothing ... ok
test s_udp_us_021_ip_no_link_broadcast_without_the_datagrams_permission ... ok

test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/clk.rs (target/debug/deps/clk-40b80d9643fcd680)

running 10 tests
test s_ip_clk_008_announce_wait_counts_from_the_hand_off ... ok
test s_ip_clk_002_nothing_fires_before_its_deadline ... ok
test s_ip_clk_001_a_send_arms_the_retransmission ... ok
test s_ip_clk_010_a_deadline_saturates ... ok
test s_ip_clk_005_a_jump_owes_one_request ... ok
test s_ip_clk_004_a_jump_fires_a_reachable_entry_once ... ok
test s_ip_clk_007_a_regressed_clock_is_the_latest ... ok
test s_ip_clk_003_firing_more_often_changes_nothing ... ok
test s_ip_clk_009_a_jump_refills_a_bucket_to_its_cap ... ok
test s_ip_clk_006_prop_one_secret_one_run ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/icmp.rs (target/debug/deps/icmp-efd627dba5d40261)

running 54 tests
test s_icmp_032_b_answers_a ... ok
test s_icmp_037_a_quote_of_a_later_fragment ... ok
test s_icmp_023_a_redirect_is_refused ... ok
test s_icmp_026_a_timestamp_reply_is_unsupported ... ok
test s_icmp_024_a_timestamp_request_is_refused ... ok
test s_icmp_038_each_error_goes_to_its_transport ... ok
test s_icmp_040_576_bytes_at_most ... ok
test an_error_whose_next_hop_became_a_broadcast_is_refused_and_counted ... ok
test s_icmp_041_the_quote_is_as_received ... ok
test s_icmp_039_the_generated_port_unreachable ... ok
test s_icmp_036_a_quote_from_someone_else ... ok
test s_icmp_034_no_answer_to_a_group ... ok
test s_icmp_035_record_route_is_not_returned ... ok
test s_icmp_033_all_the_data_comes_back ... ok
test s_icmp_042_an_error_for_no_socket_is_not_answered ... ok
test s_icmp_043_no_error_about_a_broadcast ... ok
test s_icmp_044_no_error_about_a_link_broadcast ... ok
test s_icmp_045_no_error_about_a_fragment ... ok
test s_icmp_046_no_error_to_a_source_that_is_no_host ... ok
test s_ip_echo_001_the_mirror_of_the_request ... ok
test s_ip_echo_002_dscp_copied_ecn_cleared ... ok
test s_ip_echo_003_an_off_link_requester_is_answered_through_the_gateway ... ok
test s_ip_echo_004_the_reply_carries_no_options ... ok
test s_ip_echo_005_sixteen_replies_wait ... ok
test s_ip_echo_006_an_echo_reply_is_counted ... ok
test s_ip_echo_007_a_tentative_address_does_not_answer ... ok
test s_ip_icd_001_a_port_unreachable_for_udp ... ok
test s_ip_echo_008_echo_is_not_rate_limited ... ok
test s_ip_icd_002_fragmentation_needed_for_tcp ... ok
test s_ip_icd_003_an_error_to_a_broadcast ... ok
test s_ip_icd_004_a_quote_from_a_tentative_address ... ok
test s_ip_icd_005_a_quote_of_icmp ... ok
test s_ip_icd_006_quotes_of_igmp_and_others ... ok
test s_ip_icd_007_time_exceeded ... ok
test s_ip_icd_008_parameter_problem ... ok
test s_ip_icd_009_an_unassigned_code ... ok
test s_ip_icd_010_a_redirect_moves_no_route ... ok
test s_ip_icg_001_protocol_unreachable ... ok
test s_ip_icd_012_a_resolution_failure_is_local ... ok
test s_ip_icg_002_port_unreachable ... ok
test s_ip_icg_003_suppression_takes_no_token ... ok
test s_ip_icg_004_refusals_are_silent ... ok
test s_ip_icd_011_prop_the_shared_classification ... ok
test s_ip_icg_006_an_unknown_protocol_to_a_broadcast ... ok
test s_ip_icg_008_a_malformed_router_alert_is_dropped_silently ... ok
test s_ip_icg_007_short_datagrams_are_quoted_whole ... ok
test s_ip_rl_001_ten_then_limited ... ok
test s_ip_rl_003_another_destination_has_its_own_bucket ... ok
test s_ip_rl_002_one_token_per_100_ms ... ok
test s_ip_icg_005_prop_only_echo_replies_and_unreachables ... ok
test s_ip_rl_006_prop_colliding_destinations_share_a_bucket ... ok
test s_ip_rl_007_suppressed_requests_spend_nothing ... ok
test s_ip_rl_005_the_global_bucket_refills_at_100_a_second ... ok
test s_ip_rl_004_the_global_burst_is_drawn ... ok

test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/igmp.rs (target/debug/deps/igmp-81e84a492f5454e2)

running 35 tests
test s_igmp_023_no_router_alert_is_refused ... ok
test s_igmp_024_ttl_2_is_accepted ... ok
test s_ip_igm_006_all_hosts_is_never_reported ... ok
test s_ip_igm_007_a_general_query_is_answered_later ... ok
test s_ip_igm_004_a_leave_replaces_the_join ... ok
test s_ip_frg_001_a_fragment_is_refused_and_logged ... ok
test s_ip_igm_003_a_leave_is_reported_twice ... ok
test s_ip_igm_001_a_join_is_reported_twice ... ok
test s_igmp_029_joining_all_hosts_sends_nothing ... ok
test s_igmp_025_a_general_query_to_our_address ... ok
test s_ip_igm_005_membership_is_counted ... ok
test s_ip_igm_009_a_group_query ... ok
test s_ip_igm_008_a_sooner_general_response_suffices ... ok
test s_ip_igm_002_joins_before_and_after_the_first_address ... ok
test s_ip_igm_010_a_query_for_a_group_not_joined ... ok
test s_ip_igm_011_a_group_and_source_query ... ok
test s_ip_igm_012_too_many_sources_make_a_group_response ... ok
test s_ip_igm_013_queries_need_router_alert ... ok
test s_ip_igm_014_general_query_destinations ... ok
test s_ip_igm_015_a_group_query_to_another_group ... ok
test s_ip_igm_016_the_robustness_is_learned ... ok
test s_ip_igm_018_a_join_in_v2_mode ... ok
test s_ip_igm_017_a_v2_querier ... ok
test s_ip_igm_019_another_hosts_report_suppresses_ours ... ok
test s_ip_igm_020_a_v1_query_is_refused ... ok
test s_ip_igm_021_v2_mode_ends ... ok
test s_ip_igm_023_the_last_reporter_leaves ... ok
test s_ip_igm_022_a_v2_group_query_in_v3_mode ... ok
test s_ip_igm_024_other_hosts_reports_are_ignored_in_v3 ... ok
test s_ip_igm_025_thirty_two_groups ... ok
test s_ip_igm_026_link_flap ... ok
test s_ip_igm_028_the_join_byte_for_byte ... ok
test s_ip_igm_027_one_report_for_every_group ... ok
test s_ip_mod_001_one_line_per_rule_per_10_s ... ok
test s_ip_mod_002_ordinary_refusals_are_not_logged ... ok

test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/io.rs (target/debug/deps/io-ee89e63f3f058ea0)

running 52 tests
test s_eth_025_our_own_source ... ok
test s_eth_014_a_priority_tag_is_untagged ... ok
test s_ip_021_first_fragment ... ok
test s_eth_032_broadcast_destinations_go_to_the_broadcast_mac ... ok
test s_ip_002_minimal_datagram_is_an_unknown_protocol ... ok
test s_eth_024_vlans_are_refused ... ok
test s_ip_020_df_and_mf_is_a_fragment ... ok
test s_eth_023_group_macs_follow_membership ... ok
test s_eth_022_another_hosts_mac ... ok
test s_eth_019_9100_is_not_a_tag ... ok
test s_eth_012_lldp ... ok
test s_eth_010_type_0600_is_unknown ... ok
test s_eth_011_ipv6 ... ok
test s_eth_033_a_unicast_destination_is_never_link_broadcast ... ok
test s_ip_022_last_fragment ... ok
test s_ip_023_largest_offset ... ok
test s_ip_026_ttl_one_is_delivered ... ok
test s_ip_025_ttl_zero_is_delivered ... ok
test s_ip_035_the_mtu_bounds_a_send ... ok
test s_ip_029_other_protocols ... ok
test s_ip_in_002_unicast_in_a_group_frame ... ok
test s_ip_in_003_a_group_destination_in_our_frame ... ok
test s_ip_in_001_frame_before_destination ... ok
test s_ip_in_004_martian_destinations ... ok
test s_ip_in_005_invalid_sources ... ok
test s_ip_in_006_destination_before_source ... ok
test s_ip_in_007_our_own_source_on_any_interface ... ok
test s_ip_in_008_fragments_before_options ... ok
test s_ip_in_009_what_a_transport_is_handed ... ok
test s_ip_out_002_ttl ... ok
test s_ip_out_003_tos ... ok
test s_ip_out_004_the_mtu ... ok
test s_ip_out_005_link_destinations ... ok
test s_ipo_015_stream_id_is_delivered ... ok
test s_ip_out_006_the_control_queue_is_bounded ... ok
test s_ipo_016_security_option_is_delivered ... ok
test s_ip_out_008_released_datagrams_wait_at_the_head_of_their_queue ... ok
test s_ipp_001_loose_source_route ... ok
test s_ipp_002_strict_source_route ... ok
test s_ipp_003_record_route_is_ignored ... ok
test s_ipp_004_our_address_and_another ... ok
test s_ipp_005_broadcast_forms ... ok
test s_ipp_006_joined_groups ... ok
test s_ipp_007_invalid_sources ... ok
test s_ipp_008_unspecified_only_for_igmp ... ok
test s_ipp_009_our_own_source ... ok
test s_ipp_010_loopback_destination ... ok
test s_ip_out_001_prop_every_datagram_is_atomic ... ok
test s_ipp_012_an_unknown_protocol_to_us ... ok
test s_ipp_011_unicast_in_a_broadcast_frame ... ok
test s_ipp_013_an_unknown_protocol_to_all ... ok
test s_udp_022_the_mtu_refuses_1473_bytes ... ok

test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/nbr.rs (target/debug/deps/nbr-9caf15a2b2e51d89)

running 23 tests
test s_arp_016_the_sender_mac_is_what_is_learned ... ok
test s_ip_nbr_001_our_own_mac_as_sender ... ok
test s_ip_nbr_004_a_request_for_another_host ... ok
test s_ip_nbr_007_an_unknown_router_moving ... ok
test s_arp_017_a_group_sender_mac ... ok
test s_ip_nbr_003_a_request_for_us ... ok
test s_ip_nbr_005_a_known_host_asking_for_another ... ok
test s_ip_nbr_006_an_unsolicited_reply ... ok
test rfc_3927_2_6_2_a_link_local_sender_is_a_neighbour ... ok
test s_ip_nbr_002_prefix_edges_are_no_senders ... ok
test s_arp_018_invalid_sender_addresses ... ok
test rfc_3927_the_edges_of_the_link_local_prefix_are_no_senders ... ok
test s_ip_nbr_009_locktime ... ok
test s_ip_nbr_010_a_second_answer_is_locked_out ... ok
test s_ip_nbr_008_a_known_router_moving ... ok
test s_ip_nbr_011_an_unsolicited_same_mac_extends_nothing ... ok
test s_ip_nbr_012_an_off_link_sender_is_answered_not_cached ... ok
test s_ip_nbr_013_a_probe_is_answered_and_not_cached ... ok
test s_ip_nbr_014_a_reply_for_another_target_asserts ... ok
test s_ip_nbr_015_a_broadcast_reply_is_still_solicited ... ok
test s_ip_nbr_016_the_strong_model_for_arp ... ok
test s_ip_nbr_017_a_tentative_address_is_not_answered ... ok
test s_ip_nbr_018_fifty_mac_changes_one_line ... ok

test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/nud.rs (target/debug/deps/nud-ed41191709b01b0e)

running 35 tests
test s_ip_nud_003_release_keeps_arrival_order ... ok
test s_ip_nud_013_a_moved_router_answers ... ok
test s_ip_nud_007_positive_advice_moves_the_confirmation ... ok
test s_ip_nud_002_three_requests_then_failed ... ok
test s_ip_nud_006_reachable_goes_stale_silently ... ok
test s_ip_nud_011_unreachable_backs_off_while_traffic_flows ... ok
test s_ip_nud_008_delay_probe_unreachable ... ok
test s_ip_nud_012_unreachable_is_quiet_without_traffic ... ok
test s_ip_nud_009_advice_ends_delay ... ok
test s_ip_nud_010_a_reply_confirms_probe ... ok
test s_ip_nud_001_resolution_releases_the_datagram ... ok
test s_ip_nud_004_overflow_drops_the_oldest ... ok
test s_ip_nud_005_the_interface_holds_at_most_64 ... ok
test s_ip_nud_014_failed_is_held_down ... ok
test rfc_4861_7_2_2_a_silent_next_hop_holds_up_no_other ... ok
test s_ip_nud_015_an_assertion_revives_failed ... ok
test s_ip_nud_017_negative_advice_probes ... ok
test s_ip_nud_018_negative_advice_leaves_probe_incomplete_and_failed ... ok
test s_ip_nud_016_requests_are_spaced ... ok
test s_ip_nud_019_positive_advice_needs_a_mac ... ok
test s_ip_nud_020_advice_lands_on_the_gateway ... ok
test s_ip_nud_021_stale_is_deleted_when_idle ... ok
test s_ip_nud_023_link_down_drops_the_table ... ok
test s_ip_nud_024_requests_speak_from_the_prompting_source ... ok
test s_ip_nud_025_a_flow_waits_outside ... ok
test s_ip_nud_026_a_flow_moves_stale_to_delay ... ok
test s_ip_nud_030_an_entry_whose_lifetime_runs_stays_as_it_drains ... ok
test s_ip_nud_031_a_request_queued_after_the_lifetime_is_not_idle ... ok
test s_ip_nud_030_released_datagrams_keep_their_entry ... ok
test s_ip_nud_031_a_request_queued_at_the_backoff_deadline_is_not_idle ... ok
test s_ip_nud_031_a_request_queued_before_the_lifetime_is_not_idle ... ok
test s_ip_nud_027_prop_reachable_time_is_drawn_every_two_hours ... ok
test s_ip_nud_022_a_full_table_evicts_in_order ... ok
test s_ip_nud_022_a_send_a_full_table_refused_is_told_of_room ... ok
test s_ip_nud_029_released_datagrams_are_evicted_last ... ok

test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_shard-0bab575736dd687a)

running 3 tests
test tests::a_resolved_next_hop_wakes_the_senders_that_waited_for_it_and_no_other ... ok
test tests::the_head_freed_in_its_turn_ends_the_turn ... ok
test tests::a_connection_freed_in_the_round_leaves_it ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/acquisition.rs (target/debug/deps/acquisition-fbb1627be06dce30)

running 5 tests
test the_acquisition_socket_hears_a_datagram_to_an_address_not_yet_held ... ok
test the_acquisition_socket_sends_from_no_address_to_the_limited_broadcast ... ok
test a_removed_address_takes_its_gateway_and_answers_nothing ... ok
test only_the_acquisition_socket_names_its_source ... ok
test a_second_acquisition_socket_is_refused_its_port ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/drr.rs (target/debug/deps/drr-acd2166a1bb12cf3)

running 6 tests
test a_sender_leaves_the_round_with_its_last_datagram ... ok
test a_connection_that_takes_a_freed_slot_takes_one_turn ... ok
test s_shard_drr_001_a_turn_spans_opportunities_on_one_quantum ... ok
test s_shard_drr_001_a_negative_deficit_is_repaid ... ok
test s_shard_drr_003_ip_and_owed_resets_go_first_and_the_round_resumes ... ok
test s_shard_drr_002_a_bulk_flow_starves_no_other_beyond_its_quantum ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/egress.rs (target/debug/deps/egress-69c0e7315913fa05)

running 19 tests
test s_hs_035_shard_a_directed_broadcast_is_not_a_unicast_remote ... ok
test s_pl_013_shard_a_connect_with_no_route_fails_at_once ... ok
test s_pl_012_shard_a_connect_waits_for_its_next_hop_and_then_leaves ... ok
test s_ip_out_007_an_arp_request_goes_before_a_ready_segment ... ok
test s_pl_013_shard_a_connect_to_no_one_fails_at_once_as_host_unreachable ... ok
test s_ip_nud_020_shard_a_stalled_connect_reverifies_the_gateway ... ok
test s_ip_nud_024_shard_a_segments_request_prefers_its_source ... ok
test s_hs_034_shard_a_child_whose_peer_never_answers_gives_up ... ok
test s_ip_nud_009_shard_an_acknowledgment_ends_delay ... ok
test s_pl_014_shard_an_established_flow_records_host_unreachable ... ok
test s_ip_nud_026_shard_a_segment_to_a_stale_neighbour_moves_it_to_delay ... ok
test s_pl_014_shard_an_established_flow_with_no_route_records_host_unreachable ... ok
test s_pl_014_shard_a_failed_flow_is_asked_once_while_another_sends ... ok
test s_pl_015_shard_a_reset_for_no_socket_waits_for_its_next_hop ... ok
test s_pl_015_shard_a_reset_with_no_route_is_dropped ... ok
test s_pl_015_shard_a_reset_to_a_peer_that_never_answers_is_dropped ... ok
test s_pl_015_shard_a_time_wait_ack_waits_for_its_next_hop ... ok
test s_pl_015_shard_an_owed_reset_waits_for_its_next_hop ... ok
test s_ip_nud_022_shard_a_flow_refused_by_a_full_table_asks_again_once_an_entry_may_go ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/icmp.rs (target/debug/deps/icmp-7758a870ba217e7d)

running 4 tests
test s_ic_001_shard_port_unreachable_refuses_a_connect ... ok
test s_ic_008_shard_time_exceeded_is_soft ... ok
test s_ic_009_shard_parameter_problem_is_soft ... ok
test s_ic_012_shard_fragmentation_needed_without_an_mtu_is_ignored ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log.rs (target/debug/deps/log-cbca7fafe4805818)

running 3 tests
test s_udp_us_020_shard_sending_to_this_host_is_logged ... ok
test s_ip_mod_001_shard_one_line_per_rule_per_10_s ... ok
test s_mod_005_shard_one_line_per_rule_per_10_s ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/net.rs (target/debug/deps/net-382d1f9ee1185812)

running 5 tests
test s_net_006_a_dark_link ... ok
test s_net_003_reordering_below_the_threshold ... ok
test s_net_001_sack_repairs_every_50th ... ok
test s_net_004_duplicates_are_reported_by_dsack ... ok
test s_pl_011_many_up ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.40s

     Running tests/udp.rs (target/debug/deps/udp-ba243de60f7d2006)

running 12 tests
test s_udp_us_021_shard_a_datagram_accepted_for_the_router_is_no_broadcast_after_a_renewal_widens_the_prefix ... ok
test s_ip_icd_012_shard_a_resolution_failure_reaches_the_connected_socket ... ok
test s_udp_us_046_shard_a_port_unreachable_refuses_the_connected_socket_once ... ok
test s_udp_us_021_shard_a_datagram_accepted_for_a_host_is_no_broadcast_after_a_renewal_narrows_the_prefix ... ok
test s_udp_us_025_shard_what_waits_for_a_next_hop_is_bounded_by_its_sockets_queue ... ok
test s_udp_us_035_shard_no_socket_is_a_port_unreachable ... ok
test a_waiting_datagram_whose_link_returns_before_an_opportunity_waits_anew_and_leaves ... ok
test s_udp_us_021_shard_a_datagram_that_waited_for_a_host_is_asked_its_route_again_and_keeps_its_permission ... ok
test s_udp_us_021_shard_a_datagram_carries_the_permission_of_its_call ... ok
test s_udp_us_027_shard_a_failed_next_hop_drops_what_waited_for_it_and_tells_no_unconnected_socket ... ok
test s_udp_us_026_shard_a_datagram_waits_in_its_socket_for_its_next_hop_and_holds_back_no_other ... ok
test s_udp_us_024_shard_a_waiting_datagram_whose_route_goes_is_dropped ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_tcp-99e833a79442f590)

running 30 tests
test cc::tests::s_cc_007_slow_start_stops_at_ssthresh ... ok
test cc::tests::s_cc_008_the_epoch_after_a_timeout ... ok
test cc::tests::s_cc_009_cubic_values ... ok
test cc::tests::s_cc_010_congestion_events ... ok
test cc::tests::s_cc_011_reno_friendly_region ... ok
test cc::tests::s_cc_013_application_limited_time_is_skipped ... ok
test cc::tests::s_cc_014_flight_not_cwnd_at_a_timeout ... ok
test cc::tests::s_cc_015_prop_avoidance_growth_is_bounded ... ok
test rtt::tests::s_rt_001_first_sample ... ok
test rtt::tests::s_rt_002_later_sample ... ok
test rtt::tests::s_rt_003_the_200_ms_floor ... ok
test rtt::tests::s_rt_004_the_60_s_ceiling ... ok
test rtt::tests::s_rt_012_appendix_g_weights ... ok
test rx::tests::an_echo_aged_by_the_peers_silence_moves_the_estimate_an_eighth ... ok
test rx::tests::full_sized_is_learned_from_what_arrives ... ok
test rx::tests::without_timestamps_the_least_fill_time_is_kept ... ok
test tx::tests::s_lr_015_the_scoreboard_keeps_the_lowest_64 ... ok
test props::s_op_025_prop_timestamps_on_every_segment ... ok
test props::s_rx_026_prop_sacked_bytes_are_delivered ... ok
test props::s_rt_017_prop_no_retransmission_before_an_rto ... ok
test props::s_prop_001_snd_una_at_or_before_snd_nxt_whatever_the_next_hop_answers ... ok
test props::s_prop_005_the_scoreboard_stays_above_snd_una ... ok
test props::s_prop_008_nothing_happens_before_a_deadline ... ok
test props::s_prop_001_snd_una_at_or_before_snd_nxt ... ok
test props::s_prop_002_delivered_data_is_a_prefix ... ok
test props::s_prop_004_the_right_edge_never_retreats ... ok
test props::s_prop_007_pipe_is_bounded ... ok
test props::s_mod_004_prop_urgent_is_never_sent ... ok
test props::s_prop_006_totality_against_an_adversary ... ok
test props::s_prop_003_end_of_stream_after_every_byte ... ok

test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.77s

     Running tests/acceptability.rs (target/debug/deps/acceptability-08bd6146f17e566f)

running 27 tests
test s_ac_009_exact_rst ... ok
test s_ac_011_rst_outside_the_window ... ok
test s_ac_001_in_order_text_is_acknowledged_late ... ok
test s_ac_007_front_trim ... ok
test s_ac_002_at_the_right_edge ... ok
test s_ac_014_syn_beyond_the_window ... ok
test s_ac_006_empty_segment_beyond_the_window ... ok
test s_ac_010_inexact_rst_is_challenged ... ok
test s_ac_013_syn_is_challenged ... ok
test s_ac_012_challenge_acks_are_limited ... ok
test s_ac_008_back_trim ... ok
test s_ac_005_zero_window_rst ... ok
test s_ac_003_zero_window_probe ... ok
test s_ac_015_retransmitted_synack ... ok
test s_ac_016_ack_of_unsent_data ... ok
test s_ac_017_rfc5961_lower_bound ... ok
test s_ac_019_text_without_ack ... ok
test s_ac_018_data_with_the_old_ack_is_no_duplicate ... ok
test s_ac_004_zero_window_pure_ack ... ok
test s_ac_021_a_window_may_shrink ... ok
test s_ac_020_old_segments_do_not_update_the_window ... ok
test s_ac_023_one_ack_per_receive_pass ... ok
test s_ac_022_max_snd_wnd ... ok
test s_ac_024_text_after_the_peer_fin ... ok
test s_ac_025_ack_half_the_space_away ... ok
test s_ac_026_rst_with_fin ... ok
test s_ac_027_rst_payload_is_ignored ... ok

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/close.rs (target/debug/deps/close-90a513e18443bf8e)

running 32 tests
test s_cl_008_sending_in_close_wait ... ok
test s_cl_002_passive_close ... ok
test s_cl_010_a_retransmitted_fin_restarts_time_wait ... ok
test s_cl_009_a_retransmitted_fin_in_close_wait ... ok
test s_cl_013_an_orphan_behind_a_shut_window ... ok
test s_cl_001_active_close ... ok
test s_cl_004_fin_acknowledging_ours ... ok
test s_cl_006_the_fin_is_retransmitted ... ok
test s_cl_003_simultaneous_close ... ok
test s_cl_005_the_fin_rides_on_data ... ok
test s_cl_007_half_close ... ok
test s_cl_011_an_orphan_in_fin_wait_2 ... ok
test s_cl_012_the_orphan_bound ... ok
test s_cl_015_data_for_an_orphan ... ok
test s_cl_016_close_with_unread_data ... ok
test s_cl_017_time_wait_is_60_s ... ok
test s_cl_018_reopening_from_time_wait_by_timestamp ... ok
test s_cl_019_reopening_by_sequence_number ... ok
test s_cl_026_no_time_wait_after_a_reset ... ok
test s_cl_020_rst_in_time_wait_is_ignored ... ok
test s_cl_024_abort ... ok
test s_cl_031_rst_in_close_wait ... ok
test s_cl_022_syn_in_time_wait_without_a_listener ... ok
test s_cl_014_a_user_keeps_a_shut_window_open ... ok
test s_cl_027_the_reset_stub ... ok
test s_cl_028_close_in_syn_sent ... ok
test s_cl_025_abort_without_rst ... ok
test s_cl_029_shutdown_read ... ok
test s_cl_030_last_ack_waits_for_the_fin ... ok
test s_cl_032_rst_in_last_ack_and_closing ... ok
test s_cl_021_a_failed_reopening_returns_to_time_wait ... ok
test s_cl_023_time_wait_is_bounded ... ok

test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s

     Running tests/congestion.rs (target/debug/deps/congestion-a0156dbb7474d796)

running 7 tests
test s_cc_006_no_growth_when_not_cwnd_limited ... ok
test s_cc_002_ten_segments_with_timestamps ... ok
test s_cc_005_slow_start ... ok
test s_cc_001_ten_segments ... ok
test s_cc_004_one_segment_after_two_syn_retransmissions ... ok
test s_cc_003_ten_segments_of_536 ... ok
test s_cc_012_restart_after_idle ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/egress.rs (target/debug/deps/egress-962cbeb65a3d5e7e)

running 25 tests
test s_pl_009_a_handshake_gives_up_without_credit ... ok
test s_pl_009_give_up_without_credit ... ok
test s_pl_003_unsent_is_not_in_flight ... ok
test s_pl_008_resets_go_first ... ok
test s_hs_034_a_child_whose_synack_cannot_leave_gives_up ... ok
test s_pl_002_no_expiry_for_a_retransmission_that_never_left ... ok
test s_pl_005_at_most_three_duplicate_acks_are_held ... ok
test s_ka_003_probes_that_cannot_leave_still_give_up ... ok
test s_pl_007_credit_bounds_an_opportunity ... ok
test s_ka_002_a_segment_cancels_a_probe_still_owed ... ok
test s_pl_006_a_segment_carries_the_state_of_its_moment ... ok
test a_freed_connection_leaves_no_turn_behind ... ok
test s_pl_001_the_timer_starts_at_hand_off ... ok

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Gate: cargo run -- --ci host at 2c744d4, EXIT=0, part 4 of 8

test s_pl_004_owed_acks_collapse ... ok
test s_pl_012_a_connection_freed_while_waiting_leaves_no_turn_behind ... ok
test s_pl_012_a_window_update_offers_nothing_until_it_leaves ... ok
test s_pl_010_give_up_before_retransmission ... ok
test s_pl_012_a_flow_builds_nothing_while_its_next_hop_is_pending ... ok
test s_pl_012_an_owed_ack_waits_for_its_next_hop ... ok
test s_pl_012_an_ack_owed_in_syn_received_waits_for_its_next_hop ... ok
test s_pl_013_a_local_host_unreachable_fails_a_connect_at_once ... ok
test s_pl_014_an_owed_ack_outlasts_an_unreachable_next_hop ... ok
test s_pl_014_a_synchronized_connection_records_host_unreachable_soft ... ok
test s_pl_015_what_is_owed_outside_a_connection_waits_for_its_next_hop ... ok
test s_pl_015_resets_waiting_for_their_next_hop_stay_bounded ... ok

test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/handshake.rs (target/debug/deps/handshake-0f5451ee5d775226)

running 42 tests
test s_hs_013_synsent_bad_ack_without_syn ... ok
test s_hs_012_synsent_ack_without_syn ... ok
test s_hs_003_passive_open_bare_peer ... ok
test s_hs_001_active_open_bare_peer ... ok
test s_hs_006_simultaneous_open_synack_lost ... ok
test s_hs_011_synsent_rst_with_a_bad_ack ... ok
test s_hs_009_synsent_refused ... ok
test s_hs_008_synsent_ack_past_snd_nxt ... ok
test s_hs_005_simultaneous_open ... ok
test s_hs_010_synsent_rst_without_ack ... ok
test s_hs_014_synsent_fin ... ok
test s_hs_004_passive_open_full_peer ... ok
test s_hs_002_active_open_full_peer ... ok
test s_hs_007_synsent_ack_at_iss ... ok
test s_hs_015_syn_give_up ... ok
test s_hs_016_one_syn_retransmission ... ok
test s_hs_018_syn_payload_is_discarded ... ok
test s_hs_019_synack_payload_is_discarded ... ok
test s_hs_020_listen_rst ... ok
test s_hs_022_listen_synack ... ok
test s_hs_021_listen_ack ... ok
test s_hs_017_two_syn_retransmissions ... ok
test s_hs_023_listen_without_syn ... ok
test s_hs_024_duplicate_syn_in_syn_received ... ok
test s_hs_025_new_syn_in_syn_received ... ok
test s_hs_026_child_bad_ack ... ok
test s_hs_027_child_rst ... ok
test s_hs_028_active_syn_received_rst ... ok
test s_hs_029_child_fin ... ok
test s_hs_030_fin_waits_for_established ... ok
test s_hs_031_child_text_without_ack ... ok
test s_hs_032_child_inexact_rst ... ok
test s_hs_033_child_completes_with_data ... ok
test s_hs_034_synack_give_up ... ok
test s_hs_035_connect_needs_a_unicast_remote ... ok
test s_hs_038_data_queued_in_syn_sent ... ok
test s_hs_037_the_initial_window_is_ten_smss ... ok
test s_hs_040_synack_retransmitted ... ok
test s_hs_039_active_syn_received_bad_ack ... ok
test s_hs_042_no_socket_reset_limit ... ok
test s_hs_041_no_socket ... ok
test s_hs_043_calls_in_the_wrong_state ... ok

test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/held.rs (target/debug/deps/held-8a7311b9115459cc)

running 6 tests
test an_orphan_is_counted_until_its_idle_reset ... ok
test ready_counts_the_connections_accept_has_yet_to_return ... ok
test an_orphan_is_counted_until_both_fins ... ok
test a_close_before_the_handshake_ends_leaves_an_orphan_until_it_gives_up ... ok
test options_are_the_ones_the_connection_has ... ok
test a_close_that_resets_leaves_no_orphan ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/icmp.rs (target/debug/deps/icmp-8b786e685d8f926e)

running 21 tests
test s_ic_004_administratively_prohibited ... ok
test s_ic_002_a_stale_quote ... ok
test s_ic_003_host_unreachable_is_soft ... ok
test s_ic_012_no_next_hop_mtu ... ok
test s_ic_014_the_mtu_floor ... ok
test s_ic_011_path_mtu_lowered ... ok
test s_ic_001_port_unreachable_refuses_a_connect ... ok
test s_ic_009_parameter_problem_is_soft ... ok
test s_ic_008_time_exceeded_is_soft ... ok
test s_ic_007_quotes_outside_the_flight ... ok
test s_ic_006_port_unreachable_is_soft_when_synchronized ... ok
test s_ic_013_an_mtu_that_is_no_smaller ... ok
test s_ic_010_an_unassigned_code_is_soft ... ok
test s_ic_005_soft_in_a_synchronized_state ... ok
test s_ic_017_time_wait_is_stale ... ok
test s_ic_016_one_retransmission_per_lowering ... ok
test s_ic_015_an_mtu_not_below_the_refused_datagram ... ok
test s_ic_018_a_listener_is_never_addressed ... ok
test s_ic_019_a_pending_child_is_deleted ... ok
test s_ic_021_path_mtu_with_timestamps ... ok
test s_ic_020_progress_clears_a_soft_error ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/isn.rs (target/debug/deps/isn-4c2818daebf3af43)

running 9 tests
test s_isn_004_every_field_of_the_tuple_counts ... ok
test s_isn_001_siphash_reference_vectors ... ok
test s_isn_002_isn_at_clock_zero ... ok
test s_isn_006_clock_wrap ... ok
test s_isn_008_timestamp_offset ... ok
test s_isn_009_incarnations_share_the_offset ... ok
test s_isn_005_the_key_counts ... ok
test s_isn_007_prop_unpredictable ... ok
test s_isn_003_the_4us_clock ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/listen.rs (target/debug/deps/listen-416005a2d313f4e2)

running 11 tests
test s_ls_001_one_listener_per_endpoint ... ok
test s_ls_007_a_reset_child_is_never_returned ... ok
test s_ls_006_a_closed_child_is_accepted ... ok
test s_ls_002_connections_do_not_hold_the_port ... ok
test s_ls_005_first_in_first_out ... ok
test s_ls_011_a_bound_port_without_a_listener ... ok
test s_ls_008_closing_a_listener_resets_its_children ... ok
test s_ls_009_the_specific_address_first ... ok
test s_ls_010_children_inherit_options ... ok
test s_ls_003_the_pending_bound ... ok
test s_ls_004_the_ready_bound ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/modern.rs (target/debug/deps/modern-ac368f3cc82e0909)

running 14 tests
test s_mod_008_challenges_are_logged_once ... ok
test s_div_002_rst_below_the_offered_edge_behind_snd_una ... ok
test s_mod_007_fast_open ... ok
test s_mod_001_syn_with_fin ... ok
test s_div_003_rst_at_snd_nxt_inside_the_window ... ok
test s_mod_003_urgent_data_inline ... ok
test s_mod_002_syn_with_rst ... ok
test s_div_002_rst_at_a_shrunk_edge ... ok
test s_mod_006_tcp_md5 ... ok
test s_div_001_rst_never_below_snd_una ... ok
test s_mod_009_out_of_range_acks_are_logged_per_10_s ... ok
test s_div_001_rst_at_the_right_edge ... ok
test s_mod_005_a_bulk_peer_leaves_room_for_refusals ... ok
test s_mod_005_one_line_per_rule_per_10_s ... ok

test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/net.rs (target/debug/deps/net-b73d1001768f0962)

running 19 tests
test s_net_011_the_fin_overtakes_the_last_data ... ok
test s_ls_012_a_syn_flood ... ok
test s_net_014_an_abort_is_a_reset ... ok
test s_net_010_a_lost_retransmission ... ok
test s_net_012_a_slow_reader ... ok
test s_net_007_sequence_numbers_wrap ... ok
test s_net_009_the_last_segment_of_each_burst ... ok
test rfc_8985_7_3_no_probe_without_an_rtt_sample_since_the_last ... ok
test s_net_002_newreno_when_one_side_has_no_sack ... ok
test s_net_008_timestamps_wrap ... ok
test s_net_005_lost_acks ... ok
test s_net_016_a_peer_without_options ... ok
test rfc_7323_2_2_no_scaling_unless_both_syns_offer_it ... ok
test s_net_015_nagle_and_the_delayed_ack ... ok
test a_receive_buffer_nobody_reads_never_grows ... ok
test the_receive_window_grows_by_what_is_read_per_round_trip ... ok
test a_peer_sending_segments_shorter_than_our_send_mss_still_grows_the_window ... ok
test s_net_013_a_hundred_connections ... ok
test rfc_7323_2_a_scaled_window_carries_more_than_64_kib_in_flight_each_way ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.23s

     Running tests/options.rs (target/debug/deps/options-3a2766467a740697)

running 30 tests
test s_op_013_a_synack_window_is_never_scaled ... ok
test s_op_002_synack_to_a_bare_syn ... ok
test s_op_010_shift_above_14_is_clamped ... ok
test s_op_003_synack_to_a_full_syn ... ok
test s_op_012_window_scale_outside_a_syn_is_ignored ... ok
test s_op_005_mss_100_is_raised ... ok
test s_op_009_window_scaling ... ok
test s_op_001_the_active_syn ... ok
test s_op_007_the_interface_bounds_the_mss ... ok
test s_op_004_mss_zero_is_raised ... ok
test s_op_014_sack_unnegotiated ... ok
test s_op_011_unscaled_when_the_peer_offers_none ... ok
test s_op_006_no_mss_option ... ok
test s_op_015_timestamps_unnegotiated ... ok
test s_op_016_timestamps_on_an_unnegotiated_connection ... ok
test s_op_008_timestamps_take_twelve_bytes ... ok
test s_op_017_ts_recent_needs_seq_at_or_before_last_ack_sent ... ok
test s_op_018_delayed_ack_echoes_the_earliest ... ok
test s_op_019_ts_across_a_hole ... ok
test s_op_022_no_paws_on_an_rst ... ok
test s_op_020_paws ... ok
test s_op_024_rst_for_no_socket_echoes_the_timestamp ... ok
test s_op_021_missing_timestamps_are_dropped ... ok
test s_op_026_mss_outside_a_syn_is_ignored ... ok
test s_op_023_ts_recent_expires_after_24_days ... ok
test s_op_028_sack_blocks_in_a_syn_are_ignored ... ok
test s_op_027_ecn_is_not_negotiated ... ok
test s_op_031_the_shift_fits_the_buffer ... ok
test s_op_029_the_last_mss_wins ... ok
test s_op_032_tsecr_without_ack_is_ignored ... ok

test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/port.rs (target/debug/deps/port-4aecde1497a45557)

running 8 tests
test s_port_007_never_a_self_connection ... ok
test s_port_003_a_listening_port_is_skipped ... ok
test s_port_001_algorithm_4 ... ok
test s_port_002_another_destination_another_counter ... ok
test s_port_004_time_wait_holds_its_4_tuple ... ok
test s_port_006_algorithm_2_for_a_listener ... ok
test s_port_005_exhaustion ... ok
test s_port_008_prop_ports ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/receive.rs (target/debug/deps/receive-318f2d6927df8d4d)

running 27 tests
test s_rx_003_out_of_order_is_acknowledged_at_once ... ok
test s_rx_011_unread_bytes_close_the_window ... ok
test s_rx_007_stored_bytes_win ... ok
test s_rx_004_duplicate_acks_are_not_coalesced ... ok
test s_rx_006_a_later_range_remains ... ok
test s_rx_010_nothing_after_a_remembered_fin ... ok
test s_rx_002_the_delayed_ack_is_40_ms ... ok
test s_rx_009_a_fin_beyond_a_hole ... ok
test s_rx_005_a_filled_hole_is_acknowledged_at_once ... ok
test a_sub_unit_window_rounds_up_only_into_free_room ... ok
test s_rx_012_receiver_silly_window_avoidance ... ok
test s_rx_001_every_second_segment ... ok
test s_rx_008_at_most_32_ranges ... ok
test s_rx_013_a_window_update_when_the_window_was_small ... ok
test s_rx_014_the_edge_holds_while_a_hole_is_open ... ok
test s_rx_016_the_ack_rides_on_data ... ok
test s_rx_015_the_offered_edge_is_honoured_under_scaling ... ok
test s_rx_017_sack_blocks ... ok
test s_rx_018_the_triggering_range_first ... ok
test s_rx_019_three_blocks_with_timestamps ... ok
test s_rx_020_dsack_below_rcv_nxt ... ok
test s_rx_022_no_sack_unnegotiated ... ok
test s_rx_021_dsack_inside_a_range ... ok
test s_rx_024_data_then_end ... ok
test s_rx_025_push_is_not_a_boundary ... ok
test s_rx_023_a_reset_is_never_end_of_stream ... ok
test s_rx_027_half_close_keeps_receiving ... ok

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/recovery.rs (target/debug/deps/recovery-b574193b8d932082)

running 33 tests
test s_lr_003_newreno_partial_ack ... ok
test rfc_8985_7_4_a_duplicate_without_sack_at_the_probes_end_infers_no_loss ... ok
test rfc_8985_7_1_fast_recovery_ends_the_probes_episode ... ok
test rfc_8985_7_4_a_dsack_of_another_segment_still_infers_the_loss ... ok
test s_lr_002_limited_transmit_and_inflation ... ok
test a_probe_due_when_the_window_shuts_gives_way_to_persist ... ok
test rfc_8985_7_4_a_resent_probe_reported_as_a_duplicate_infers_no_loss ... ok
test rfc_8985_7_2_with_one_segment_out_the_probe_stands_in_for_the_first_rto ... ok
test rfc_8985_7_4_a_resent_probe_acknowledged_past_its_end_without_a_dsack_repaired_a_loss ... ok
test s_lr_001_newreno_one_loss ... ok
test rfc_8985_7_3_the_probe_is_new_data_where_the_window_takes_a_segment ... ok
test rfc_8985_7_2_no_probe_in_rto_recovery ... ok
test rfc_8985_7_4_an_ack_that_infers_the_probes_loss_and_enters_recovery_cuts_twice ... ok
test rfc_8985_7_4_a_dsack_after_the_ack_at_the_probes_end_infers_no_loss ... ok
test s_lr_009_is_lost_on_the_first_ack ... ok
test s_lr_004_full_ack_after_limited_transmit ... ok
test s_lr_007_inflation_is_capped ... ok
test s_lr_008_sack_recovery ... ok
test s_lr_006_no_fast_retransmit_after_a_timeout ... ok
test s_lr_010_a_second_hole ... ok
test s_lr_012_rescue_retransmission ... ok
test s_lr_014_invalid_blocks_and_dsack ... ok
test s_lr_011_new_data_during_sack_recovery ... ok
test s_lr_005_what_is_not_a_duplicate ... ok
test s_lr_013_the_recovery_point ... ok
test s_lr_016_timeout ... ok
test s_lr_018_no_sack_recovery_before_the_timeout_point ... ok
test s_lr_017_a_second_timeout ... ok
test s_lr_019_sacks_after_a_timeout_skip_held_ranges ... ok
test s_lr_020_sacked_bytes_stay_queued ... ok
test s_lr_022_limited_transmit_by_pipe ... ok
test s_lr_021_pure_duplicates_without_blocks ... ok
test s_lr_023_a_lost_fast_retransmission ... ok

test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/rtt.rs (target/debug/deps/rtt-d31542d133375b39)

running 11 tests
test s_rt_016_no_timer_when_all_is_acknowledged ... ok
test s_rt_008_one_segment_timed ... ok
test s_rt_005_the_minimum_is_200_ms ... ok
test s_rt_009_timestamp_samples ... ok
test s_rt_013_backoff_doubles ... ok
test s_rt_007_karn ... ok
test s_rt_011_an_echo_from_the_future ... ok
test s_rt_010_a_retransmission_echoed ... ok
test s_rt_015_the_timer_restarts_on_new_acks ... ok
test s_rt_014_three_expiries_forget_the_estimate ... ok
test s_rt_006_three_seconds_after_a_lost_syn ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/send.rs (target/debug/deps/send-ac3312157674b9ac)

running 21 tests
test s_tx_001_one_segment_with_push ... ok
test s_tx_012_no_send_after_shutdown ... ok
test s_tx_010_the_initial_window_bounds_a_burst ... ok
test s_tx_007_an_opened_window_cancels_the_override ... ok
test s_tx_002_nagle ... ok
test s_tx_014_an_opened_window_ends_persist ... ok
test s_tx_009_a_shrunk_window ... ok
test s_tx_013_persist_backs_off ... ok
test s_tx_004_full_segments_then_wait ... ok
test s_tx_005_push_only_where_the_queue_empties ... ok
test s_tx_008_half_the_largest_window ... ok
test s_tx_006_silly_window_override ... ok
test s_tx_003_nodelay ... ok
test s_tx_011_the_send_buffer_is_bounded ... ok
test s_tx_015_the_probe_byte_taken ... ok
test s_tx_018_the_fin_as_probe ... ok
test s_tx_017_an_unanswered_persist_gives_up ... ok
test s_tx_019_a_shut_window_stops_the_retransmission_timer ... ok
test s_tx_021_close_pushes ... ok
test s_tx_020_cwnd_does_not_arm_the_override ... ok
test s_tx_016_an_answered_persist_lives ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/seq.rs (target/debug/deps/seq-dd3e9ffdeb749621)

running 8 tests
test s_seq_004_ack_range_check ... ok
test s_seq_003_half_the_space_is_unordered ... ok
test s_seq_002_ordering_across_the_wrap ... ok
test s_seq_001_offsets ... ok
test s_seq_007_timestamps_compare_modularly ... ok
test s_seq_008_sending_across_the_wrap ... ok
test s_seq_006_acceptability_across_the_wrap ... ok
test s_seq_005_segment_length ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/take.rs (target/debug/deps/take-094ff4230f111b52)

running 5 tests
test with_nothing_held_the_reader_is_not_asked ... ok
test what_the_reader_did_not_take_stays_held_in_order ... ok
test text_unread_when_both_fins_ended_the_connection_is_still_taken ... ok
test a_take_owes_the_window_update_a_read_does ... ok
test text_across_the_rings_wrap_is_shown_in_two_pieces_and_none_is_lost ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/timers.rs (target/debug/deps/timers-4a1adec2f02af4b0)

running 15 tests
test s_ka_005_the_peer_keepalive_is_answered ... ok
test s_gu_006_progress_confirms_the_next_hop ... ok
test s_gu_001_three_expiries_raise_advice ... ok
test s_gu_004_user_timeout ... ok
test s_gu_005_user_timeout_ends_an_answered_persist ... ok
test s_ka_003_nine_unanswered_probes ... ok
test s_ka_002_a_probe_after_two_hours ... ok
test s_gu_002_give_up ... ok
test s_gu_006_b_advice_is_kept_per_address ... ok
test s_ka_006_the_idle_time_is_settable ... ok
test s_ka_001_off_by_default ... ok
test s_gu_006_a_confirmation_after_a_reverify_is_kept ... ok
test s_gu_003_progress_restarts_the_give_up_clock ... ok
test s_ka_004_no_keepalive_with_data_outstanding ... ok
test s_ka_007_close_wait_and_fin_wait_2 ... ok

test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_testnet-e03e671d96866ba0)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/testnet.rs (target/debug/deps/testnet-cc9bd563b04459e9)

running 2 tests
test a_published_reader_decodes_the_capture_as_the_wire_carried_it ... ok
test a_run_repeats_exactly ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_udp-7a4e951db28da231)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/bind.rs (target/debug/deps/bind-a2984a153b04991f)

running 12 tests
test s_udp_us_010_no_privileged_ports ... ok
test s_udp_us_009_a_numbered_bind_is_skipped ... ok
test s_udp_us_005_algorithm_1 ... ok
test s_udp_us_001_one_socket_per_port ... ok
test s_udp_us_002_whatever_the_address ... ok
test s_udp_us_004_any_needs_no_address ... ok
test s_udp_us_006_the_candidates_wrap ... ok
test s_udp_us_007_the_draw_is_reduced ... ok
test s_udp_us_011_close_frees_the_port_at_once ... ok
test s_udp_us_003_only_an_assigned_address_binds ... ok
test closing_leaves_no_turn_behind ... ok
test s_udp_us_008_exhaustion_spends_one_draw ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/recv.rs (target/debug/deps/recv-41702d5029aa9c50)

running 29 tests
test s_udp_018_the_limited_broadcast_reaches_port_68 ... ok
test s_udp_017_a_closed_port_is_answered ... ok
test s_udp_us_030_a_bound_any_socket_receives ... ok
test s_udp_us_033_mdns_arrives_with_its_group ... ok
test s_udp_us_038_no_checksum_is_delivered ... ok
test s_udp_us_035_no_socket_is_a_port_unreachable ... ok
test s_udp_us_041_arrival_order ... ok
test s_udp_us_040_a_full_queue_drops_and_says_nothing ... ok
test s_udp_us_037_source_port_zero ... ok
test s_udp_us_032_bound_any_hears_both_broadcasts ... ok
test s_udp_us_036_an_empty_datagram ... ok
test s_udp_us_031_a_specific_socket_hears_no_broadcast ... ok
test s_udp_us_039_a_bad_checksum_is_malformed ... ok
test s_udp_us_034_no_socket_for_a_group_is_no_error ... ok
test s_udp_us_042_a_short_buffer_truncates ... ok
test s_udp_us_043_a_group_not_joined_never_reaches_udp ... ok
test s_udp_us_044_the_acquisition_exception ... ok
test s_udp_us_045_what_a_datagram_carries ... ok
test s_udp_us_047_an_unconnected_socket_hears_no_error ... ok
test s_udp_us_048_an_error_for_no_socket ... ok
test s_udp_us_046_refused_once ... ok
test s_udp_us_049_hard_and_soft ... ok
test s_udp_us_050_the_latest_error_wins ... ok
test s_udp_us_051_a_send_takes_the_error ... ok
test s_udp_us_052_the_whole_4_tuple_must_match ... ok
test s_udp_us_056_prop_ip_options_never_surface ... ok
test s_udp_us_054_close_discards_what_was_received ... ok
test s_udp_us_053_accepted_datagrams_outlive_close ... ok
test s_udp_us_055_prop_the_demultiplexer ... ok

test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/send.rs (target/debug/deps/send-84231b2e4c29ae88)

running 25 tests
test s_udp_us_013_what_connect_refuses ... ok
test s_udp_us_016_connect_purges_strangers ... ok
test s_udp_us_015_a_connected_socket_hears_its_peer_alone ... ok
test s_udp_us_017_a_connected_socket_sends_to_its_peer ... ok
test s_udp_us_018_reconnect ... ok
test s_udp_us_019_a_bound_socket_sends ... ok
test s_udp_us_020_what_send_refuses ... ok
test s_udp_us_021_broadcast_needs_permission ... ok
test s_udp_us_022_multicast_ttl ... ok
test s_udp_us_023_payload_sizes ... ok
test s_udp_us_024_a_waiting_datagram_whose_route_goes_is_dropped ... ok
test s_udp_us_024_the_source_address_must_be_ours ... ok
test s_udp_us_012_connect_fixes_the_local_address ... ok
test s_udp_us_014_connect_needs_a_source ... ok
test s_udp_us_025_a_full_queue_refuses ... ok
test s_udp_us_025_what_waits_for_a_next_hop_is_bounded_by_its_sockets_queue ... ok
test s_udp_us_026_a_datagram_waits_for_its_next_hop_in_its_socket_and_never_in_ip ... ok
test s_udp_us_026_datagrams_to_one_next_hop_leave_in_the_order_they_were_accepted ... ok
test s_udp_us_026_no_head_of_line_blocking ... ok
test s_udp_us_027_a_datagram_for_a_hop_ip_has_given_up_is_ips_refusal_at_its_turn ... ok
test s_udp_us_027_a_failed_next_hop_is_reported_once ... ok
test s_udp_us_027_an_unconnected_socket_is_told_nothing_and_nothing_is_kept_for_another_try ... ok
test s_udp_us_028_only_the_acquisition_socket_sends_from_nowhere ... ok
test s_udp_us_029_the_discover_byte_for_byte ... ok
test s_udp_us_053_a_closed_sockets_datagram_waits_for_its_next_hop_and_holds_back_no_other ... ok

test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_wire-873a39372d03d4d0)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/checksum.rs (target/debug/deps/checksum-7a13c52b35d9a298)

running 15 tests
test s_ck_019_udp_zero_is_sent_as_ffff ... ok
test s_ck_001_rfc1071_worked_example ... ok
test s_ck_002_empty_input ... ok
test s_ck_010_negative_zero_verifies ... ok
test s_ck_018_tcp_length_is_the_transport_length ... ok
test s_ck_017_pseudo_header ... ok
test s_ck_009_verification_by_summing ... ok
test s_ck_004_odd_length_pads_with_zero ... ok
test s_ck_008_long_pattern_even_and_odd ... ok
test s_ck_003_zeros ... ok
test s_ck_006_carry_of_a_carry ... ok
test s_ck_005_streaming_is_split_independent ... ok
test s_ck_007_many_words_of_ones ... ok
test s_ck_021_every_header_bit_flip_is_caught ... ok
test native_order_sum_matches_the_oracle_at_every_length_and_split ... ok

test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/icmp.rs (target/debug/deps/icmp-d2b0e731040b0b9d)

running 35 tests
test quote_total_length_below_its_header_is_refused ... ok
test s_icmp_001_echo_request ... ok
test s_icmp_003_seven_bytes ... ok
test s_icmp_002_echo_reply ... ok
test s_icmp_006_data_changed ... ok
test s_icmp_008_echo_code_1 ... ok
test s_icmp_007_odd_data_length ... ok
test s_icmp_005_checksum_changed ... ok
test an_error_with_options_still_fits_576_bytes ... ok
test s_icmp_004_echo_without_data ... ok
test s_icmp_009_port_unreachable ... ok
test s_icmp_011_fragmentation_needed_without_mtu ... ok
test s_icmp_010_fragmentation_needed ... ok
test s_icmp_012_rfc4884_length_byte ... ok
test s_icmp_013_unreachable_codes ... ok
test s_icmp_014_quote_of_19_bytes ... ok
test s_icmp_015_quote_short_of_8_payload_bytes ... ok
test s_icmp_016_quote_with_options ... ok
test s_icmp_017_quote_with_options_short ... ok
test s_icmp_018_quote_not_ipv4 ... ok
test s_icmp_019_quoted_checksum_not_verified ... ok
test s_icmp_020_rfc4884_padding_beyond_the_quoted_length ... ok
test s_icmp_021_time_exceeded ... ok
test s_icmp_022_parameter_problem ... ok
test s_icmp_023_redirect ... ok
test s_icmp_024_timestamp_request_refused_by_type ... ok
test s_icmp_025_timestamp_fields_are_never_read ... ok
test s_icmp_026_timestamp_reply_refused_by_type ... ok
test s_icmp_027_source_quench ... ok
test s_icmp_028_deprecated_types ... ok
test s_icmp_029_router_discovery ... ok
test s_icmp_031_checksum_before_type ... ok
test s_icmp_030_unknown_types ... ok
test s_icmp_047_echo_reply_to_odd_data ... ok
test s_icmp_048_unreachable_zeroes_unused_bytes ... ok

test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/igmp.rs (target/debug/deps/igmp-76044004b32d0d76)

running 29 tests
test s_igmp_004_v3_general_query ... ok
test igmp3_is_include_lists_its_sources ... ok
test igmp3_join_frame ... ok
test igmp3_leave_current_and_unspecified_source ... ok
test igmp3_records_layout ... ok
test s_igmp_001_v2_report ... ok
test s_igmp_002_v2_general_query ... ok
test s_igmp_003_v1_query ... ok
test s_igmp_005_v3_exponential_code ... ok
test s_igmp_006_v2_codes_are_linear ... ok
test s_igmp_007_v3_largest_code ... ok
test s_igmp_008_group_and_source_query ... ok
test s_igmp_009_sources_overrun ... ok
test s_igmp_010_bytes_after_sources_ignored ... ok
test s_igmp_012_seven_bytes ... ok
test s_igmp_011_query_of_9_to_11_bytes ... ok
test s_igmp_019_v1_report_max_response_ignored ... ok
test s_igmp_030_emitted_max_response_is_zero ... ok
test s_igmp_013_checksum_changed ... ok
test s_igmp_014_trailing_bytes_ignored ... ok
test s_igmp_015_checksum_covers_trailing_bytes ... ok
test s_igmp_016_query_group_unicast ... ok
test s_igmp_017_report_group_not_multicast ... ok
test s_igmp_018_leave ... ok
test s_igmp_020_v3_report_unsupported ... ok
test s_igmp_021_unknown_types ... ok
test s_igmp_026_emit_join_frame ... ok
test s_igmp_022_checksum_before_type ... ok
test s_igmp_027_emit_leave ... ok

test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/ipv4.rs (target/debug/deps/ipv4-4e4484d2e12319f3)

running 54 tests
test s_ip_003_nineteen_bytes ... ok
test s_ip_004_version_6 ... ok
test s_ip_005_version_5 ... ok
test s_ip_002_minimal_datagram ... ok
test s_ip_001_udp_datagram_fields ... ok
test s_ip_006_header_length_below_5 ... ok
test s_ip_009_total_zero ... ok
test s_ip_008_total_below_header ... ok
test s_ip_007_header_overrun ... ok
test s_ip_010_total_inside_options ... ok
test s_ip_012_truncated_fragment_is_truncated ... ok
test s_ip_013_link_padding_is_not_payload ... ok
test s_ip_014_padded_igmp_body ... ok
test s_ip_011_total_overrun ... ok
test s_ip_015_checksum_off_by_one ... ok
test s_ip_016_checksum_zero_is_checked ... ok
test s_ip_017_options_are_covered ... ok
test s_ip_018_payload_is_not_covered ... ok
test s_ip_019_reserved_flag_is_kept ... ok
test s_ip_020_df_and_mf ... ok
test s_ip_022_last_fragment ... ok
test s_ip_021_first_fragment ... ok
test s_ip_023_largest_offset ... ok
test s_ip_024_dscp_and_ecn ... ok
test s_ip_027_identification_of_atomic_datagram ... ok
test s_ip_028_largest_datagram ... ok
test s_ip_029_protocol_numbers ... ok
test s_ip_030_emit_udp_datagram ... ok
test s_ip_031_emit_router_alert ... ok
test s_ip_032_option_padding ... ok
test s_ip_033_forty_option_bytes ... ok
test s_ip_036_ttl_zero ... ok
test s_ip_037_invalid_sources ... ok
test s_ip_038_emit_over_junk ... ok
test s_ip_039_atomic_form ... ok
test s_ip_040_emit_dscp_and_ecn ... ok
test s_ipo_001_nops_and_eol_are_not_options ... ok
test s_ipo_002_record_route ... ok
test s_ipo_003_router_alert ... ok
test s_ipo_004_router_alert_length ... ok
test s_ip_034_largest_total_length ... ok
test s_ipo_005_option_length_one ... ok
test s_ipo_006_option_length_zero_terminates ... ok
test s_ipo_008_kind_in_last_byte ... ok
test s_ipo_007_option_overrun ... ok
test s_ipo_009_bytes_after_eol_ignored ... ok
test s_ipo_010_router_alert_without_eol ... ok
test s_ipo_011_unknown_kind_is_opaque ... ok
test s_ipo_013_option_past_a_full_area ... ok
test s_ipo_012_option_filling_the_area ... ok
test s_ipo_014_repeated_options_in_order ... ok
test s_ipo_015_stream_id_exposed ... ok
test s_ipo_016_security_option_exposed ... ok
test source_routes_cannot_be_built ... ok

test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/link.rs (target/debug/deps/link-c4da610f133c46bf)

running 43 tests
test s_arp_001_request ... ok
test s_arp_003_probe ... ok
test s_arp_004_announcement ... ok
test s_arp_002_reply ... ok
test s_arp_006_seven_bytes ... ok
test s_arp_009_protocol_ipv6 ... ok
test s_arp_010_hardware_length_7 ... ok
test s_arp_007_ieee802_hardware ... ok
test s_arp_008_hardware_zero ... ok
test s_arp_005_twenty_seven_bytes ... ok
test s_arp_011_protocol_length_16 ... ok
test s_arp_012_types_before_lengths ... ok
test s_arp_014_padding_ignored ... ok
test s_arp_013_other_operations ... ok
test s_arp_015_request_target_mac_exposed ... ok
test s_arp_019_emit_request ... ok
test s_arp_020_emit_reply ... ok
test s_arp_022_interface_mac_is_individual ... ok
test s_arp_021_emit_probe_and_announcement ... ok
test s_eth_001_arp_request_frame ... ok
test s_eth_002_udp_frame_without_padding ... ok
test s_eth_003_thirteen_bytes_truncated ... ok
test s_eth_004_header_alone_has_an_empty_body ... ok
test s_eth_005_short_frame_accepted ... ok
test s_eth_006_length_1500_is_a_length_frame ... ok
test s_eth_007_length_0_is_a_length_frame ... ok
test s_eth_008_type_1501_is_undefined ... ok
test s_eth_009_type_1535_is_undefined ... ok
test s_eth_010_type_0600_is_another_ethertype ... ok
test s_eth_013_customer_tag ... ok
test s_eth_014_priority_tag ... ok
test s_eth_015_service_then_customer_tag ... ok
test s_eth_016_three_tags ... ok
test s_eth_017_truncated_tag ... ok
test s_eth_018_inner_length_field ... ok
test s_eth_019_9100_is_not_a_tag ... ok
test s_eth_021_destination_classes ... ok
test s_eth_020_group_source ... ok
test s_eth_027_emit_over_junk ... ok
test s_eth_026_emit_arp_request ... ok
test s_eth_028_minimum_body_padding ... ok
test s_eth_029_maximum_body ... ok
test s_eth_031_multicast_mac_mapping ... ok

test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/roundtrip.rs (target/debug/deps/roundtrip-fc05914cb8bc3882)

running 9 tests
test s_rt_002_canonical_vectors_rebuild ... ok
test s_rt_009_zero_copy ... ok
test s_rt_001_every_vector_reemits_raw ... ok
test s_rt_008_position_independence ... ok
test s_rt_006_truncation_sweep ... ok
test s_rt_007_single_bit_flips ... ok
test s_rt_003_build_then_parse ... ok
test s_rt_004_canonical_idempotence ... ok
test s_rt_005_totality_structured_fuzz ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.83s

     Running tests/transport.rs (target/debug/deps/transport-1f8879561150984f)

running 89 tests
test s_tcp_006_rst ... ok
test s_tcp_001_syn ... ok
test s_tcp_014_checksum_zero_is_checked ... ok
test s_tcp_011_data_offset_past_the_bytes ... ok
test s_tcp_012_data_offset_15_on_59_bytes ... ok
test s_tcp_015_wrong_source_address ... ok
test s_tcp_018_acknowledgment_without_ack ... ok
test s_tcp_019_urgent_pointer_only_with_urg ... ok
test s_tcp_007_fin ... ok
test s_tcp_009_nineteen_bytes ... ok
test s_tcp_020_any_flag_combination ... ok
test s_tcp_003_data ... ok
test s_tcp_004_sack ... ok
test s_tcp_021_ece_and_cwr ... ok
test s_tcp_016_port_zero ... ok
test s_tcp_010_data_offset_below_5 ... ok
test s_tcp_017_reserved_bits_kept ... ok
test s_tcp_005_three_sack_blocks ... ok
test s_tcp_002_syn_ack ... ok
test s_tcp_008_odd_length_verifies ... ok
test s_tcp_013_checksum_changed ... ok
test s_tcp_022_syn_with_data ... ok
test s_tcp_025_data_offset_before_checksum ... ok
test s_tcp_023_largest_segment ... ok
test s_tcp_024_window_is_unsigned ... ok
test s_topt_001_no_options ... ok
test s_tcp_026_checksum_before_options ... ok
test s_topt_002_timestamps_alone ... ok
test s_topt_003_mss_at_odd_offset ... ok
test s_topt_004_eol_first ... ok
test s_topt_005_bytes_after_eol_ignored ... ok
test s_topt_006_mss_length ... ok
test s_topt_007_window_scale_length ... ok
test s_topt_008_sack_permitted_length ... ok
test s_topt_009_timestamps_length ... ok
test s_topt_010_sack_lengths ... ok
test s_topt_011_sack_without_blocks ... ok
test s_topt_012_md5_skipped ... ok
test s_topt_013_unknown_kinds_skipped ... ok
test s_topt_014_length_zero ... ok
test s_topt_015_length_one ... ok
test s_topt_017_kind_in_last_byte ... ok
test s_topt_016_timestamps_past_the_area ... ok
test s_topt_018_repeats ... ok
test s_topt_020_mss_zero ... ok
test s_topt_019_window_scale_above_14 ... ok
test s_topt_022_sack_in_a_syn ... ok
test s_topt_021_syn_options_outside_a_syn ... ok
test s_topt_024_forty_nops ... ok
test s_topt_023_timestamps_in_a_syn ... ok
test s_topt_025_syn_without_timestamps ... ok
test s_tser_001_emit_syn ... ok
test s_tser_002_emit_syn_ack ... ok
test s_tser_004_emit_syn_layouts ... ok
test s_tser_005_emit_data ... ok
test s_tser_006_emit_sack ... ok
test s_tser_003_emit_syn_without_timestamps ... ok
test s_tser_007_sack_block_limits ... ok
test s_tser_009_window_shift_limit ... ok
test s_tser_010_emit_rst ... ok
test s_tser_011_emit_rst_with_timestamps ... ok
test s_tser_012_emitted_reserved_and_urgent_are_zero ... ok
test s_tser_013_emit_odd_segment ... ok
test s_tser_014_emit_over_junk ... ok
test s_udp_001_dns_query ... ok
test s_tser_015_too_long ... ok
test s_udp_002_ffff_verifies ... ok
test s_udp_003_seven_bytes ... ok
test s_udp_004_length_below_header ... ok
test s_udp_005_length_overrun ... ok
test s_udp_006_surplus_after_length_ignored ... ok
test s_udp_007_checksum_covers_only_the_length ... ok
test s_udp_008_no_checksum ... ok
test s_udp_009_no_checksum_catches_nothing ... ok
test s_udp_011_pseudo_header_catches_misdelivery ... ok
test s_udp_010_wrong_checksum ... ok
test s_udp_013_source_port_zero ... ok
test s_udp_012_destination_port_zero ... ok
test s_udp_014_largest_datagram ... ok
test s_udp_015_length_checked_before_checksum ... ok
test s_udp_019_emit_dns_query ... ok
test s_udp_020_emit_computed_zero_as_ffff ... ok
test s_udp_021_always_checksummed ... ok
test s_udp_022_too_long ... ok
test s_udp_023_zero_port_cannot_be_built ... ok
test s_udp_024_emit_hi ... ok
test tcp_pseudo_header_names_protocol_6 ... ok
test udp_pseudo_header_names_protocol_17 ... ok
test s_udp_016_the_one_undetectable_bit_flip ... ok

test result: ok. 89 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_osrelease-50dadd189bb5660e)

running 8 tests
test tests::a_dirty_x86_build_reads_so ... ok
test tests::a_file_that_is_not_text_is_refused ... ok
test tests::uname_names_a_dirty_tree ... ok
test tests::a_value_the_build_does_not_write_is_refused_by_its_field ... ok
test tests::every_file_the_build_writes_is_os_release ... ok
test tests::a_missing_or_doubled_field_is_refused_by_its_name ... ok
test tests::a_file_the_build_did_not_write_is_refused ... ok
test tests::what_the_build_writes_is_what_a_reader_reads ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_pci-9bdc72ba04228e61)

running 75 tests
test aperture::tests::nothing_is_inside_a_machine_that_named_no_window ... ok
test af::tests::pending_is_bit_zero_of_status ... ok
test af::tests::a_function_resets_only_with_both_bits ... ok
test aperture::tests::the_window_an_extent_is_inside_is_the_one_named ... ok
test bar::tests::a_32_bit_memory_bar_is_its_own_whole_address ... ok
test bar::tests::a_64_bit_memory_bar_takes_the_register_after_it ... ok
test bar::tests::a_sizing_mask_decodes_to_the_spec_size ... ok
test bar::tests::a_sizing_mask_that_describes_no_size_is_refused ... ok
test bar::tests::a_placement_moves_the_address_and_keeps_the_devices_own_bits ... ok
test bar::tests::a_wide_bar_has_no_address_until_the_high_half_arrives ... ok
test bar::tests::a_wide_claim_in_the_last_slot_is_refused_by_name ... ok
test bar::tests::an_address_a_bar_cannot_hold_is_refused_by_name ... ok
test bar::tests::an_io_bar_whose_bit_2_is_clear_is_not_a_32_bit_memory_bar ... ok
test bar::tests::an_io_bar_whose_bit_2_is_set_is_not_a_64_bit_memory_bar ... ok
test bar::tests::an_unassigned_bar_is_refused_rather_than_mapped_at_zero ... ok
test bar::tests::every_io_bar_is_refused_whatever_the_bits_above_it_say ... ok
test bar::tests::prefetchable_is_read_and_is_not_part_of_the_address ... ok
test bar::tests::the_reserved_type_encodings_are_refused_by_name ... ok
test bar::tests::the_shapes_real_controllers_publish_still_decode ... ok
test bridge::tests::a_64_bit_prefetchable_window_is_its_upper_dwords_too ... ok
test bridge::tests::a_disabled_window_is_no_window ... ok
test bridge::tests::the_limit_names_the_last_megabyte_and_not_the_first_free_one ... ok
test bridge::tests::the_type_field_is_not_part_of_the_address ... ok
test caps::tests::a_forward_chain_is_followed_to_its_end ... ok
test caps::tests::a_pointer_below_the_standard_header_is_refused ... ok
test caps::tests::a_pointer_that_is_not_dword_aligned_is_refused ... ok
test caps::tests::a_pointer_to_a_visited_link_ends_the_walk ... ok
test caps::tests::the_terminator_ends_the_walk ... ok
test caps::tests::the_walk_is_bounded_by_the_distinct_offsets_it_can_hold ... ok
test express::tests::initiating_a_reset_preserves_the_rest_of_device_control ... ok
test express::tests::only_a_version_two_structure_holds_device_control_2 ... ok
test express::tests::only_bit_twenty_eight_says_a_function_resets ... ok
test express::tests::restoring_device_control_never_starts_a_reset ... ok
test msi::tests::a_function_without_per_vector_masking_offers_no_mask_register ... ok
test msi::tests::a_narrow_function_has_no_upper_address_register ... ok
test msi::tests::disabling_clears_the_enable_bit_and_nothing_else ... ok
test msi::tests::enabling_keeps_what_the_function_said_about_itself ... ok
test msi::tests::multiple_message_capable_is_an_exponent ... ok
test msi::tests::the_capable_field_is_not_the_enable_field ... ok
test msi::tests::the_layout_moves_with_the_address_width ... ok
test msix::tests::a_reserved_indicator_is_refused_rather_than_indexed ... ok
test msix::tests::a_table_past_the_address_space_is_refused_rather_than_wrapped ... ok
test msix::tests::an_unassigned_bar_is_refused_rather_than_written_at_its_offset ... ok
test msix::tests::an_entry_is_four_dwords_in_the_order_the_spec_gives_them ... ok
test msix::tests::bir_and_offset_share_one_register ... ok
test msix::tests::disabling_masks_as_well_and_keeps_the_size ... ok
test msix::tests::enabling_clears_the_function_wide_mask_and_keeps_the_size ... ok
test msix::tests::table_size_is_encoded_one_less_than_it_is ... ok
test msix::tests::the_control_bits_are_not_part_of_the_size ... ok
test msix::tests::the_indicator_is_not_added_to_the_offset ... ok
test placement::tests::a_released_address_is_offered_again ... ok
test placement::tests::a_reserved_address_is_never_offered_twice ... ok
test placement::tests::a_run_is_free_and_in_one_list_once ... ok
test placement::tests::a_run_is_offered_aligned_to_the_span_and_not_at_its_start ... ok
test placement::tests::a_run_that_straddles_a_windows_edge_offers_the_part_inside_it ... ok
test placement::tests::a_span_that_runs_past_a_window_is_not_inside_it ... ok
test placement::tests::an_extent_inside_another_opens_no_run ... ok
test placement::tests::edk2_offers_a_64_bit_bar_the_window_it_declared ... ok
test placement::tests::edk2s_32_bit_runs_are_the_ones_its_boot_printed ... ok
test placement::tests::edk2s_64_bit_runs_are_the_ones_its_boot_printed ... ok
test placement::tests::every_address_the_t14_offers_is_inside_the_window_its_firmware_named ... ok
test placement::tests::largest_run_first_still_offers_no_address_outside_a_window ... ok
test placement::tests::nothing_is_offered_where_firmware_named_no_window ... ok
test placement::tests::nothing_is_offered_where_nothing_fits ... ok
test placement::tests::taken_is_read_in_any_order_and_overlapping ... ok
test pm::tests::a_transition_changes_the_state_bits_and_clears_no_event ... ok
test pm::tests::no_soft_reset_is_bit_three_and_nothing_else ... ok
test probe::tests::a_function_the_table_knows_nothing_about_is_read_at_its_base ... ok
test probe::tests::a_transitional_virtio_id_is_not_a_modern_one ... ok
test probe::tests::neither_answer_of_an_unanswered_read_is_a_reference ... ok
test slot::tests::a_function_goes_back_to_its_own_residue_ahead_of_a_free_slot ... ok
test slot::tests::a_held_function_is_owned ... ok
test slot::tests::a_release_keeps_the_slot_only_for_a_residue ... ok
test slot::tests::a_second_function_takes_a_free_slot_and_never_anothers_residue ... ok
test slot::tests::other_functions_residues_are_no_free_slot ... ok

test result: ok. 75 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_phys-bbc990ee9e0e741f)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/phys.rs (target/debug/deps/phys-e8eddaefd0071f1e)

running 2 tests
test an_address_off_its_alignment_or_past_48_bits_is_no_address ... ok
test a_words_address_field_is_its_bits_from_the_alignment_to_47 ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_ps2-865fc29c56dec46f)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/decode.rs (target/debug/deps/decode-b9d132b3ab6ece29)

running 20 tests
test a_device_reset_is_reported_and_aa_is_still_a_legal_head_byte ... ok
test a_stale_partial_is_abandoned_rather_than_completed ... ok
test a_healthy_stream_discards_nothing_and_leaves_no_byte_unaccounted ... ok
test a_sequence_is_pending_until_the_byte_that_ends_it ... ok
test an_implausible_byte_at_a_boundary_costs_exactly_itself ... ok
test buttons_are_already_in_hid_order ... ok
test a_stream_truncated_at_any_offset_resyncs_within_two_packets ... ok
test every_usage_the_rest_of_the_tree_names_is_reachable ... ok
test deltas_are_nine_bit_and_dy_is_inverted ... ok
test make_and_break_and_the_e0_prefix ... ok
test no_legal_head_byte_is_ever_discarded ... ok
test overflow_drops_the_motion_and_keeps_the_buttons ... ok
test left_shift_break_is_not_read_as_a_reset ... ok
test overrun_codes_report_lost_and_clear_the_prefix_state ... ok
test page_up_and_down_decode_to_their_hid_usages ... ok
test pause_consumes_exactly_six_bytes_and_emits_nothing ... ok
test printscreen_emits_one_usage_and_no_phantom_shift ... ok
test tables_hold_only_real_usages_and_no_duplicates ... ok
test the_iso_key_is_the_one_the_layouts_carry ... ok
test unmapped_scancodes_emit_nothing ... ok

test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/fuzz.rs (target/debug/deps/fuzz-10bab5efbca8d384)

running 4 tests
test a_lost_scancode_byte_never_wedges_the_prefix_state ... ok
test a_lost_byte_costs_exactly_the_packet_it_landed_in ... ok
test arbitrary_bytes_never_kill_the_mouse_decoder ... ok
test arbitrary_bytes_never_kill_the_key_decoder ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

     Running unittests src/lib.rs (target/debug/deps/toyos_quiesce-b21da58b4db502c9)

running 8 tests
test tests::the_caller_is_never_stopped_and_its_siblings_always_are ... ok
test tests::a_sweep_with_nothing_left_running_ends_the_wait_however_long_it_took ... ok
test tests::the_record_names_the_shortfall_only_when_there_is_one ... ok
test tests::every_other_thread_stops_the_log_writer_included ... ok
test tests::every_record_reads_back_as_itself_off_a_line_of_log ... ok
test tests::an_empty_machine_is_already_stopped ... ok
test tests::a_line_that_is_not_a_record_is_refused_rather_than_half_read ... ok
test tests::the_budget_ends_the_wait_and_the_boundary_is_inclusive ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_random-9f6c8470e91e6f4e)

running 12 tests
test tests::a_quarter_round_moves_its_four_words_of_the_state_and_no_other ... ok
test tests::a_draw_is_the_blocks_the_module_states ... ok
test tests::a_wipe_leaves_zeros ... ok
test tests::a_taken_seed_leaves_zeros_where_it_was_handed ... ok
test tests::a_stream_does_not_repeat_where_32_bits_of_counter_end ... ok
test tests::bytes_a_failed_source_leaves_are_no_seed ... ok
test tests::bytes_of_another_length_are_no_seed ... ok
test tests::every_seed_mixed_moves_the_draw_and_none_replaces_another ... ok
test tests::the_block_function_gives_appendix_a_1s_keystreams ... ok
test tests::the_block_function_is_rfc_8439s ... ok
test tests::the_key_a_draw_was_made_under_is_gone_when_it_returns ... ok
test tests::the_quarter_round_is_rfc_8439s ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_rootimage-8779a7eb044990fc)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/chunk.rs (target/debug/deps/chunk-da24920ad35d6108)

running 12 tests
test a_chunk_larger_than_the_extent_is_one_request_of_the_extent ... ok
test a_granularity_dividing_the_bound_leaves_it_alone ... ok
test a_granularity_past_the_bound_is_not_taken ... ok
test an_odd_granularity_rounds_the_bound_down_to_a_common_multiple ... ok
test no_granularity_is_the_bound ... ok
test a_chunk_off_the_block_is_refused - should panic ... ok
test a_bound_off_the_alignment_is_refused - should panic ... ok
test a_failing_chunk_is_named_by_its_first_lba_and_nothing_after_it_is_asked ... ok
test four_kib_blocks_advance_the_lba_by_their_own_size ... ok
test a_failing_last_partial_chunk_names_its_own_length ... ok
test an_exact_multiple_is_whole_chunks ... ok
test the_last_chunk_is_whatever_is_left ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/handoff.rs (target/debug/deps/handoff-05e3785a6aaf6a77)

running 9 tests
test an_extent_starting_one_page_before_the_descriptor_is_refused ... ok
test a_start_that_is_not_block_aligned_is_refused ... ok
test an_extent_inside_a_descriptor_of_another_type_is_refused ... ok
test an_extent_straddling_two_adjacent_descriptors_of_the_type_is_refused ... ok
test an_extent_ending_one_page_past_the_descriptor_is_refused ... ok
test an_extent_whose_end_overflows_is_refused ... ok
test the_whole_descriptor_is_held ... ok
test a_length_that_is_not_whole_blocks_is_refused ... ok
test an_extent_inside_one_descriptor_is_held ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_sha2-6b81ee0d0b8ee801)

running 5 tests
test tests::sha256_byte_vectors ... ok
test tests::sha512_byte_vectors ... ok
test tests::sha256_monte_carlo ... ok
test tests::sha512_monte_carlo ... ok
test tests::every_length_to_4096_in_random_splits_agrees_with_sha2 ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s

     Running unittests src/lib.rs (target/debug/deps/toyos_smmu-2aa83d2753d47320)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/encodings.rs (target/debug/deps/encodings-1a7c61e22a21a4b2)

running 27 tests
test a_context_descriptor_walks_ttb0_alone_under_its_own_asid ... ok
test a_context_descriptors_ips_is_the_units_output_size_and_no_more_than_48_bits ... ok
test a_command_error_is_the_cons_registers_err_field_alone ... ok
test a_descriptor_or_a_mapping_past_the_units_output_size_is_refused ... ok
test a_reserved_size_is_refused_and_the_largest_defined_one_is_not ... ok
test a_queues_indexes_say_empty_full_and_slot_as_a_count_would ... ok
test a_descriptor_read_back_is_a_table_only_above_level_3 ... ok
test a_table_or_queue_past_the_units_output_size_is_refused ... ok
test a_stream_table_is_linear_inside_the_units_streams_and_aligned_to_its_size ... ok
test a_queue_is_inside_the_units_size_and_aligned_to_its_own ... ok
test a_translating_entry_is_stage_1_alone_through_one_context_descriptor ... ok
test a_translation_fault_names_its_stream_its_address_and_whether_it_wrote ... ok
test a_unit_that_is_not_coherent_is_refused_unless_the_iort_says_it_is ... ok
test a_unit_that_lacks_what_the_configuration_needs_is_refused_by_name ... ok
test a_units_output_size_is_idr5s_and_bounds_what_it_is_given ... ok
test an_aborting_entry_is_valid_and_configured_to_pass_nothing ... ok
test a_units_sizes_are_read_from_their_own_fields ... ok
test an_address_past_the_input_or_off_the_leafs_alignment_has_no_plan ... ok
test an_error_is_active_while_the_two_registers_differ_in_its_bit ... ok
test an_asid_is_no_wider_than_the_units ... ok
test consuming_an_event_acknowledges_an_overflow_and_never_raises_one ... ok
test each_command_holds_its_opcode_and_parameters_where_its_diagram_has_them ... ok
test every_event_number_is_its_own_code_and_only_a_fault_carries_an_attempt ... ok
test memory_is_a_level_2_block_only_its_own_context_and_an_unprivileged_device_reach ... ok
test the_control_values_hold_each_field_where_its_register_has_it ... ok
test the_doorbell_is_one_level_3_page_of_device_memory ... ok
test the_registers_sit_where_the_register_overview_has_them ... ok

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_ssh-566d9a2689c0936e)

running 6 tests
test wire::tests::a_reader_refuses_by_the_fields_name ... ok
test base64::tests::rfc_4648_vectors ... ok
test wire::tests::an_mpint_is_written_as_rfc_4251_spells_it ... ok
test hostkey::tests::a_key_ssh_keygen_minted_reads_with_its_fingerprint ... ok
test hostkey::tests::rfc_8032_vectors ... ok
test hostkey::tests::a_key_that_is_not_one_is_refused_by_name ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/fuzz.rs (target/debug/deps/fuzz-8a8e0294ae4a9d94)

running 2 tests
test every_bent_recording_is_total_and_a_bend_before_the_login_prevents_it ... ok
test every_session_is_total_and_none_logs_in_without_a_right_signature ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.99s

     Running tests/refusals.rs (target/debug/deps/refusals-a176d223b719462a)

running 17 tests
test an_identification_line_is_held_to_rfc_4253 ... ok
test an_unlisted_key_is_refused_at_the_offer_and_signed ... ok
test a_signature_over_anything_else_is_refused ... ok
test an_rsa_key_is_refused_by_name ... ok
test a_closed_channel_is_gone ... ok
test a_listed_key_is_asked_to_sign_and_its_signature_logs_in ... ok
test a_tampered_sealed_packet_is_refused_in_silence ... ok
test nothing_but_authentication_is_taken_before_it ... ok
test a_packet_is_held_to_its_caps ... ok
test six_failures_end_the_session ... ok
test a_channel_message_is_held_to_its_channel ... ok
test every_other_method_is_refused_by_name ... ok
test a_re_exchange_holds_output_until_its_newkeys ... ok
test the_authorizer_is_asked_again_with_the_signature ... ok
test a_channel_serves_one_exec_and_nothing_else ... ok
test the_first_exchange_is_held_to_its_rules ... ok
test the_windows_bound_both_sides ... ok

test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/replay.rs (target/debug/deps/replay-817a887ffa660c3d)

running 9 tests
test a_replay_under_another_seed_does_not_open ... ok
test a_key_the_server_does_not_name_is_refused_at_the_offer ... ok
test a_forwarding_channel_is_refused_by_name ... ok
test a_terrapin_injection_into_the_first_exchange_is_refused ... ok
test an_exec_fed_stdin_replays ... ok
test openssh_holding_only_an_rsa_key_offers_none ... ok
test the_keys_derived_from_a_recorded_exchange_open_what_openssh_sealed ... ok
test an_exec_openssh_ran_replays ... ok
test a_session_the_client_rekeyed_three_times_replays ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/vectors.rs (target/debug/deps/vectors-ffd56c0623054122)

running 2 tests
test rfc_7748_section_6_1 ... ok
test a_client_key_that_makes_a_zero_secret_is_refused ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_swap-4bdb31d92f1f59f3)

running 5 tests
test tests::every_word_is_spelled_once ... ok
test tests::a_request_round_trips_and_a_path_it_did_not_stage_is_refused ... ok
test tests::an_installed_binary_is_named_by_its_service_under_its_digest ... ok
test tests::the_digest_is_sha256 ... ok
test tests::verify_refuses_other_bytes_and_names_both_digests ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_symbols-3d77fffbe8378355)

running 6 tests
test tests::locate_refuses_bytes_too_short_for_a_file_header ... ok
test tests::file_range_refuses_an_extent_the_addition_overflows ... ok
test tests::file_range_refuses_an_extent_past_the_end ... ok
test tests::file_range_answers_an_extent_wholly_inside ... ok
test tests::a_short_name_is_untouched ... ok
test tests::a_name_past_head_plus_tail_is_elided ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/frame.rs (target/debug/deps/frame-f15e1316f09dd2d3)

running 12 tests
test a_build_id_is_one_to_32_bytes ... ok
test an_offset_is_in_the_files_addresses ... ok
test the_kernels_exact_line ... ok
test a_frame_reads_back_as_written ... ok
test a_frame_cut_at_any_byte_is_not_that_frame ... ok
test a_line_that_is_no_frame_is_none ... ok
test a_name_holding_the_grammars_bytes_reads_back_whole ... ok
test an_elided_name_keeps_offset_and_id_and_is_refused ... ok
test an_escape_no_encoder_writes_is_refused ... ok
test an_id_that_is_not_lowercase_hex_bytes_is_refused ... ok
test every_byte_below_space_reads_back ... ok
test no_line_panics_the_reader ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s

     Running tests/name.rs (target/debug/deps/name-824dc79ccb12b2ef)

running 7 tests
test a_file_that_cannot_name_says_why ... ok
test a_real_binarys_offset_names_its_function ... ok
test another_build_is_refused_by_name ... ok
test a_name_no_build_id_vouches_for_is_marked_unchecked ... ok
test the_build_the_record_names_is_the_one_named ... ok
test every_function_names_what_object_reads ... ok
test no_corrupted_file_panics_the_namer ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s

     Running tests/real.rs (target/debug/deps/real-ab8d37aba9a537d2)

running 3 tests
test locate_finds_the_same_tables_readelf_reports ... ok
test a_file_header_locate_cannot_read_answers_none ... ok
test a_real_binarys_own_functions_resolve_to_their_own_names ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_tco-b6266fa91f28306e)

running 2 tests
test tests::the_lockup_bound_follows_the_deadline_the_boot_named ... ok
test tests::a_bound_is_read_a_malformed_one_is_not_silence ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/decode.rs (target/debug/deps/decode-606f992d567079be)

running 11 tests
test the_last_register_has_to_end_inside_the_port_space ... ok
test no_two_rows_name_one_device ... ok
test an_absent_device_reading_all_ones_names_no_port ... ok
test the_declared_control_words_run_and_halt_the_timer ... ok
test a_base_the_block_cannot_live_at_is_refused_by_name ... ok
test the_register_offsets_are_ich9_tco_hs ... ok
test the_loaders_bound_is_exact_under_ten_seconds_and_reaches_the_hardware ... ok
test the_q35_row_reaches_the_port_qemu_puts_the_block_at ... ok
test the_tiger_lake_row_takes_its_base_from_the_smbus_function ... ok
test a_machine_no_row_names_is_refused_rather_than_guessed ... ok
test a_bound_becomes_the_timer_whose_expiries_do_not_outrun_it ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_tmpdir-cdc83da0c40509c3)

running 2 tests
test tests::a_directory_the_sweep_cannot_remove_costs_no_process_but_this_one ... ok
test tests::a_held_global_lock_times_out_naming_its_holder ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s

     Running tests/reclaim.rs (target/debug/deps/reclaim-3028b35fdf6e62d7)

running 7 tests
test holder ... ok
test a_directory_goes_on_a_return_and_on_a_panic ... ok
test a_root_without_an_owner_goes_and_nothing_else_is_touched ... ok
test an_adopted_root_goes_with_its_adopter ... ok
test a_killed_process_is_reclaimed_and_a_live_one_is_never_touched ... ok
test making_a_root_waits_for_global ... ok
test removing_a_root_waits_for_global ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.08s

     Running unittests src/lib.rs (target/debug/deps/toyos_trace-221dc2a8c8afb444)

running 5 tests
test tests::a_kind_the_abi_does_not_name_is_refused_by_its_number ... ok
test tests::a_wake_names_its_task_and_prints_when_on_which_cpu ... ok
test tests::every_kind_decodes_with_what_its_data_says ... ok
test tests::thread_zero_is_a_thread_and_no_thread_is_said ... ok
test tests::a_task_event_with_no_task_is_refused ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_transport-6991df383ae0da41)

running 10 tests
test inflight::tests::an_end_answers_every_tag_once_and_a_late_completion_nothing ... ok
test arena::tests::an_arena_is_whole_slots_after_the_header ... ok
test queue::tests::an_entry_is_nobodys_before_it_is_published ... ok
test queue::tests::a_head_stepped_past_each_push_is_refused_at_the_depth ... ok
test queue::tests::a_peer_cursor_out_of_reach_is_a_violation ... ok
test arena::tests::a_run_a_peer_names_is_inside_the_arena ... ok
test queue::tests::the_ring_wraps_and_counts_its_space ... ok
test queue::tests::a_tail_stepped_past_each_pop_is_refused_at_the_depth ... ok
test inflight::tests::a_tag_is_answered_once_and_its_slot_takes_a_new_one ... ok
test inflight::tests::a_slot_refilled_past_sixteen_bits_refuses_its_first_tag ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/loom.rs (target/debug/deps/loom-06053d5823929c8c)

running 3 tests
test a_published_entry_is_read_whole ... ok
test a_hostile_producer_yields_entries_or_a_violation ... ok
test a_hostile_consumer_yields_room_or_a_violation ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

     Running unittests src/lib.rs (target/debug/deps/toyos_tsc-9daa5a94cecbaed8)

running 0 tests


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Gate: cargo run -- --ci host at 2c744d4, EXIT=0, part 5 of 8

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_untrusted-25e0a33e0225bc57)

running 11 tests
test tests::every_width_widens_rather_than_wrapping ... ok
test tests::two_untrusted_values_compare_with_each_other ... ok
test tests::an_index_is_below_the_table_it_indexes ... ok
test tests::asking_whether_it_is_a_known_value_is_not_an_exit ... ok
test tests::exactly_refuses_by_naming_both_numbers ... ok
test tests::decoding_keeps_the_provenance ... ok
test tests::a_length_may_equal_its_bound_where_an_index_may_not ... ok
test tests::a_refusal_says_which_number_and_which_bound ... ok
test tests::a_value_whose_low_bits_are_in_range_is_still_out_of_range ... ok
test tests::an_empty_table_indexes_nothing ... ok
test tests::it_is_the_integer_it_wraps ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_update-2ba7e34f7b2377b2)

running 42 tests
test floor::tests::a_runtime_variable_that_stays_is_refused ... ok
test floor::tests::only_not_found_is_no_variable ... ok
test floor::tests::only_the_loaders_own_variable_is_a_floor_and_nothing_else_is_none ... ok
test policy::tests::a_boot_tries_the_marked_slot_first_and_the_other_only_if_there_is_one ... ok
test policy::tests::the_floor_admits_its_own_version_and_above_and_only_rises ... ok
test record::tests::a_hang_kills_only_an_unproven_image ... ok
test policy::tests::an_update_must_be_newer_than_what_runs ... ok
test floor::tests::a_floor_is_named_for_its_key_and_scope ... ok
test floor::tests::a_loader_deletes_the_stale_floors_of_its_scope_and_never_the_owners ... ok
test policy::tests::every_word_is_one_parameter_token ... ok
test record::tests::a_record_reads_back_and_anothers_is_refused ... ok
test record::tests::how_a_boot_ended_is_what_it_is_recorded_as ... ok
test image::tests::a_bent_header_is_refused_by_name ... ok
test image::tests::a_header_reads_back_as_it_was_written ... ok
test image::tests::an_image_splits_into_exactly_its_sections ... ok
test record::tests::the_first_write_credits_no_image ... ok
test repo::tests::a_machines_root_at_the_images_version_with_other_bytes_is_refused ... ok
test repo::tests::a_repository_the_renderer_writes_is_one_the_client_accepts ... ok
test repo::tests::a_document_that_is_not_the_format_is_refused_by_line ... ok
test repo::tests::a_document_past_its_cap_is_refused_unread ... ok
test repo::tests::a_duplicated_signature_does_not_meet_a_threshold ... ok
test repo::tests::a_time_is_one_that_exists_and_reads_back ... ok
test repo::tests::a_rotated_root_is_walked_and_drops_the_old_keys_floors ... ok
test repo::tests::a_root_at_the_last_version_is_refused ... ok
test sig::tests::the_message_is_sshsigs_signed_data ... ok
test slots::tests::a_grant_claims_only_an_idle_slot_on_the_running_disk ... ok
test slots::tests::a_table_reads_back_and_a_bent_one_is_refused ... ok
test slots::tests::moving_the_mark_is_atomic_against_a_torn_copy ... ok
test slots::tests::the_checksum_is_crc32 ... ok
test repo::tests::a_machines_newer_root_holds_though_the_mirror_withholds_it ... ok
test slots::tests::the_idle_slot_is_the_one_whose_root_the_kernel_does_not_hold ... ok
test repo::tests::a_root_not_signed_by_the_previous_threshold_is_refused ... ok
test repo::tests::an_archive_past_its_length_or_not_its_hash_is_refused ... ok
test repo::tests::base64_has_one_spelling ... ok
test repo::tests::a_lower_sequence_or_a_reissued_one_is_refused ... ok
test repo::tests::targets_not_matching_the_timestamp_are_refused ... ok
test sig::tests::rfc_8032_vectors_verify_and_a_flipped_bit_does_not ... ok
test repo::tests::the_same_version_with_other_bytes_is_refused ... ok
test repo::tests::a_signature_in_another_namespace_is_refused ... ok
test repo::tests::a_role_version_below_the_held_one_is_refused ... ok
test repo::tests::expired_metadata_is_refused_with_both_times ... ok
test repo::tests::a_chain_past_the_walk_bound_is_refused ... ok

test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/repo_oracle.rs (target/debug/deps/repo_oracle-fabcc8de372a554d)

running 1 test
test a_repository_ssh_keygen_signed_is_accepted_and_a_bent_one_is_not ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/sshsig_oracle.rs (target/debug/deps/sshsig_oracle-d50f1429516c54aa)

running 1 test
test a_header_ssh_keygen_signed_verifies_and_a_bent_one_does_not ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_usbhid-58f44a93ce34affd)

running 15 tests
test keyboard::tests::a_report_is_read_as_appendix_b_lays_it_out ... ok
test keyboard::tests::a_keyboard_leaving_releases_everything_it_held_and_nothing_else ... ok
test keyboard::tests::a_report_is_a_set_of_keys_and_not_a_list_of_slots ... ok
test keyboard::tests::a_rollover_report_believes_its_modifiers_and_not_its_slots ... ok
test keyboard::tests::reports_qemu_sent_read_as_the_keys_that_were_pressed ... ok
test keyboard::tests::a_fault_usage_is_refused_and_the_keys_held_stay_held ... ok
test keyboard::tests::a_report_of_any_other_length_is_refused ... ok
test pointer::tests::a_tablet_report_is_its_position_little_endian ... ok
test keyboard::tests::modifiers_come_first_then_releases_then_presses ... ok
test pointer::tests::a_tablet_position_off_the_surface_is_refused ... ok
test pointer::tests::a_report_of_a_length_its_layout_does_not_have_is_refused ... ok
test pointer::tests::a_mouse_report_is_read_as_appendix_b_lays_it_out ... ok
test pointer::tests::reports_qemu_sent_read_as_the_motion_that_was_sent ... ok
test pointer::tests::every_report_is_read_or_refused_and_nothing_else ... ok
test keyboard::tests::every_report_is_believed_or_refused_and_nothing_else ... ok

test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s

     Running unittests src/lib.rs (target/debug/deps/toyos_userbound-0c2856776390c093)

running 43 tests
test fault::tests::a_ring_is_only_ever_what_cs_said ... ok
test place::tests::a_full_window_is_a_refusal_for_a_span_that_could_fit ... ok
test place::tests::a_hole_between_regions_takes_exactly_span_and_guard ... ok
test place::tests::a_length_near_the_top_of_u64_is_refused_and_not_summed ... ok
test place::tests::a_span_is_whole_pages ... ok
test place::tests::a_span_from_a_wider_window_is_refused_by_a_narrower_one ... ok
test place::tests::a_region_at_or_above_the_ceiling_bounds_nothing ... ok
test place::tests::nothing_is_placed_below_the_floor ... ok
test place::tests::placement_is_top_down_with_the_guard_above ... ok
test place::tests::the_largest_span_is_the_window_less_one_guard ... ok
test place::tests::a_window_without_room_for_its_guard_is_a_kernel_bug - should panic ... ok
test place::tests::a_window_not_2_mib_aligned_is_a_kernel_bug - should panic ... ok
test place::tests::a_zero_length_is_refused ... ok
test place::tests::a_window_reaching_the_last_page_of_the_user_half_is_a_kernel_bug - should panic ... ok
test port::tests::a_declared_run_refuses_every_run_that_shares_a_port_with_it ... ok
test port::tests::a_full_declaration_refuses_one_more_run ... ok
test port::tests::a_fresh_bitmap_refuses_every_port_and_ends_in_ones ... ok
test port::tests::a_refused_access_names_the_first_port_it_may_not_touch ... ok
test port::tests::a_run_is_never_empty_and_never_past_the_last_port ... ok
test port::tests::a_held_row_opens_its_ports_and_no_other ... ok
test segment::tests::a_read_only_page_between_writable_ones_refuses_a_write_only ... ok
test span::tests::a_range_ending_past_the_bound_is_refused_and_a_wrapping_one_too ... ok
test span::tests::a_vaddr_min_above_the_base_cannot_rebase ... ok
test span::tests::a_zero_sized_object_is_nothing_to_dereference ... ok
test span::tests::an_entry_is_an_address_of_the_user_half_and_nothing_else ... ok
test span::tests::an_image_at_vaddr_zero_rebases_to_the_base_itself ... ok
test span::tests::an_image_that_reaches_the_last_page_of_the_user_half_is_refused ... ok
test span::tests::an_object_is_refused_for_its_alignment_before_anything_else ... ok
test span::tests::an_object_may_not_end_past_the_bound ... ok
test span::tests::no_type_may_cross_a_2_mib_boundary ... ok
test port::tests::a_switch_to_a_process_holding_nothing_closes_the_row ... ok
test port::tests::the_last_port_of_the_space_opens_without_touching_the_end_byte ... ok
test segment::tests::a_run_that_cannot_be_pinned_refuses_the_window_and_leaves_nothing_pinned ... ok
test segment::tests::a_range_is_looked_up_once_per_leaf ... ok
test segment::tests::an_empty_or_kernel_window_is_refused_before_the_walk ... ok
test segment::tests::frames_in_order_are_one_segment ... ok
test segment::tests::frames_in_reverse_are_one_segment_per_leaf ... ok
test segment::tests::the_segments_are_the_maximal_runs_and_cover_the_window_exactly ... ok
test span::tests::a_kernel_address_is_not_a_user_address ... ok
test segment::tests::an_absent_page_anywhere_refuses_the_window ... ok
test segment::tests::a_read_across_shuffled_frames_gets_the_bytes_at_their_addresses ... ok
test segment::tests::every_run_is_pinned_until_the_window_is_dropped ... ok
test segment::tests::a_write_across_shuffled_frames_lands_where_a_ring_3_load_reads_it ... ok

test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.74s

     Running tests/firmware.rs (target/debug/deps/firmware-ff1846570b37ec0e)

running 24 tests
test a_port_answers_as_its_declaration_says ... ok
test a_sleep_type_is_three_bits_and_lands_only_in_its_field ... ok
test a_wide_access_is_held_to_every_port_it_spans ... ok
test an_address_in_the_ecam_window_is_a_configuration_access_whatever_the_map_types_it ... ok
test every_configuration_write_is_refused_by_one_name ... ok
test memory_past_what_the_kernel_maps_is_refused ... ok
test a_write_that_reaches_smi_cmd_and_is_no_byte_to_it_is_refused ... ok
test an_unlisted_address_below_1_mib_is_refused_whatever_the_range_registers_answer ... ok
test every_page_a_window_the_kernel_drives_lies_in_is_refused_inside_any_type ... ok
test a_memory_bar_is_refused_where_firmware_types_its_range_as_its_own ... ok
test memory_any_usable_range_holds_is_refused_whatever_lists_it_first ... ok
test every_other_type_and_an_unlisted_address_is_refused_with_its_type ... ok
test nvs_and_reserved_memory_pass_both_ways_to_their_last_byte_and_no_further ... ok
test no_unlisted_address_is_read_where_a_cpus_range_registers_differ ... ok
test a_configuration_read_is_held_to_the_window_and_to_one_register ... ok
test a_byte_for_smi_cmd_is_a_firmware_call_unless_the_fadt_names_it ... ok
test an_unlisted_register_is_read_where_it_is_uncached_and_never_written ... ok
test ram_is_refused_both_ways_whatever_usable_type_it_is ... ok
test runtime_services_code_is_refused_both_ways ... ok
test runtime_services_data_is_read_as_the_tables_memory_is_and_never_written ... ok
test the_facs_is_read_and_its_bytes_are_never_written ... ok
test the_lock_word_is_exchanged_only_where_all_four_bytes_are_the_firmwares_own ... ok
test the_tables_memory_is_read_and_never_written ... ok
test the_kernel_admits_a_fixed_few_firmware_calls_in_any_period ... ok

test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_virtio-7636a0b5fd96be30)

running 33 tests
test tests::a_device_that_never_finishes_its_reset_is_refused_and_written_nothing_more ... ok
test tests::a_head_past_the_table_is_refused ... ok
test tests::a_new_queue_zeroes_its_parts_and_nothing_else ... ok
test tests::a_head_with_no_chain_in_flight_is_refused ... ok
test tests::a_device_without_version_1_is_refused_and_told_so ... ok
test tests::a_descriptor_table_the_device_rewrote_into_a_loop_is_never_followed ... ok
test tests::a_chain_is_whole_before_its_index_and_its_index_before_its_notification ... ok
test tests::a_device_missing_a_structure_is_refused_by_its_name ... ok
test tests::a_field_past_the_device_structure_is_refused_and_not_read ... ok
test tests::a_device_that_does_not_keep_features_ok_is_refused_and_told_so ... ok
test tests::a_notification_is_the_queues_index_at_the_queues_address ... ok
test tests::a_notify_offset_outside_the_notification_structure_is_refused ... ok
test tests::a_chain_over_a_descriptor_in_flight_is_the_drivers_mistake - should panic ... ok
test tests::a_chain_on_a_queue_the_device_was_never_given_is_the_drivers_mistake - should panic ... ok
test tests::a_chain_past_the_table_is_the_drivers_mistake - should panic ... ok
test tests::a_part_off_its_alignment_is_the_drivers_mistake - should panic ... ok
test tests::a_published_chain_is_what_the_device_reads ... ok
test tests::a_queue_shallower_than_the_drivers_rings_is_refused ... ok
test tests::a_refused_element_does_not_hide_the_ones_behind_it ... ok
test tests::a_queue_size_that_is_no_power_of_two_is_the_drivers_mistake - should panic ... ok
test tests::a_readable_element_after_a_writable_one_is_the_drivers_mistake - should panic ... ok
test tests::a_used_element_is_read_after_the_index_that_counts_it ... ok
test tests::a_used_index_past_what_was_made_available_is_refused_and_nothing_is_read ... ok
test tests::a_vector_the_device_does_not_map_is_refused_and_its_queue_stays_disabled ... ok
test tests::a_ring_past_the_grant_is_the_drivers_mistake - should panic ... ok
test tests::only_what_the_device_offers_is_accepted ... ok
test tests::a_structure_its_bar_does_not_hold_is_refused_and_never_reached ... ok
test tests::structures_in_two_bars_are_refused ... ok
test tests::more_bytes_than_the_chain_may_be_written_is_refused ... ok
test tests::the_first_capability_of_each_type_in_a_real_bar_is_the_one_used ... ok
test tests::the_initialisation_is_the_sequence_the_specification_orders ... ok
test tests::both_indices_wrap_at_65536 ... ok
test tests::a_hostile_device_is_believed_only_where_the_model_agrees ... ok

test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_wallclock-d4ec3af8b5280ad4)

running 6 tests
test tests::an_impossible_instant_is_refused_and_a_leap_day_is_not ... ok
test tests::every_stem_this_renders_is_one_it_reads_back ... ok
test tests::a_part_is_its_stem_and_number ... ok
test tests::only_logkeepers_own_names_are_logkeepers ... ok
test tests::every_time_of_day_this_renders_is_one_it_reads_back ... ok
test tests::the_calendar_round_trips_through_the_dates_that_break_one ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_xhci-64cc3df6bec03b92)

running 163 tests
test bot::tests::a_break_says_where_it_left_the_device_and_which_event_ended_it ... ok
test bot::tests::a_cbw_is_laid_out_as_the_class_defines_it ... ok
test bot::tests::a_byte_no_phase_publishes_reads_as_closed ... ok
test bot::tests::a_command_or_status_block_that_moved_short_breaks ... ok
test bot::tests::a_command_with_no_data_is_its_command_block_and_its_status ... ok
test bot::tests::a_csw_is_believed_only_when_it_is_valid_and_meaningful ... ok
test bot::tests::a_data_phase_runs_on_the_pipe_its_command_names ... ok
test bot::tests::a_data_phase_whose_pipe_will_not_restart_breaks_as_a_stall ... ok
test bot::tests::a_leg_that_fails_breaks_the_round_trip_where_it_failed ... ok
test bot::tests::a_stalled_data_phase_delivers_what_both_the_controller_and_the_device_say_arrived ... ok
test bot::tests::a_stalled_data_phase_is_restarted_and_its_status_read ... ok
test bot::tests::a_stalled_status_is_asked_for_again_once ... ok
test bot::tests::a_status_stalled_after_a_data_stall_is_still_asked_for_again ... ok
test bot::tests::every_phase_but_the_closed_one_is_a_device_holding_a_command ... ok
test bot::tests::every_phase_survives_the_byte_it_is_published_as ... ok
test bot::tests::no_two_phases_are_named_the_same_thing ... ok
test bot::tests::what_is_delivered_is_what_both_the_controller_and_the_device_say_arrived ... ok
test bot::tests::a_restart_answered_with_a_transfer_is_a_driver_bug - should panic ... ok
test call::tests::a_call_that_enters_the_ladder_a_rung_up_finds_that_rung_whole ... ok
test call::tests::a_call_whose_transport_has_not_broken_is_clipped_and_refused_nothing ... ok
test call::tests::a_command_sent_again_after_a_hold_leaves_the_last_rung_its_bound ... ok
test call::tests::a_command_sent_again_is_clipped_to_where_the_next_rung_begins ... ok
test call::tests::a_read_whose_wait_spent_the_operation_goes_out_again_after_the_port_reset_took ... ok
test call::tests::a_rung_entered_early_gets_its_own_bound_and_not_the_calls ... ok
test call::tests::a_rung_is_never_starved_by_what_was_spent_before_it ... ok
test call::tests::a_second_break_in_the_same_call_does_not_extend_it ... ok
test call::tests::a_silent_controller_is_sent_no_command_in_any_rung_and_its_port_is_still_reset ... ok
test call::tests::a_wait_is_cut_only_when_its_window_ended_it ... ok
test call::tests::nothing_but_the_command_sent_again_outlives_the_operations_budget ... ok
test configure::tests::a_bind_adds_and_drops_nothing ... ok
test configure::tests::a_binds_slot_context_names_the_speed_and_the_port ... ok
test configure::tests::a_recovery_drops_and_adds_both_endpoints ... ok
test configure::tests::a_recoverys_slot_context_is_context_entries_and_zeroes ... ok
test configure::tests::an_endpoint_context_carries_the_descriptors_own_numbers ... ok
test configure::tests::context_entries_is_the_higher_index_of_the_pair ... ok
test configure::tests::nothing_but_the_pair_is_ever_dropped ... ok
test configure::tests::the_recovery_describes_the_endpoints_exactly_as_the_bind_did ... ok
test descriptor::tests::a_configuration_names_its_interfaces_and_steps_over_its_endpoints ... ok
test descriptor::tests::a_device_descriptor_names_its_maker_its_product_and_its_class ... ok
test descriptor::tests::a_length_that_would_not_move_the_walk_is_refused ... ok
test descriptor::tests::a_short_answer_or_another_type_is_refused_by_name ... ok
test descriptor::tests::only_alternate_setting_zero_is_named ... ok
test descriptor::tests::the_walk_is_bounded_by_the_total_and_by_what_arrived ... ok
test enumerate::tests::a_boot_keyboard_is_addressed_described_configured_and_bound ... ok
test enumerate::tests::a_configuration_with_nothing_to_bind_is_refused_where_it_is_read ... ok
test enumerate::tests::a_device_that_answered_set_protocol_recovers_nothing ... ok
test enumerate::tests::a_device_that_states_another_packet_size_has_its_ep0_evaluated ... ok
test enumerate::tests::a_stalled_set_protocol_recovers_ep0_before_the_endpoints_are_configured ... ok
test enumerate::tests::a_stated_packet_size_a_device_of_that_speed_cannot_have_is_refused ... ok
test enumerate::tests::every_route_configures_its_endpoints_last ... ok
test enumerate::tests::every_speed_has_one_control_packet_size_or_none ... ok
test enumerate::tests::only_an_interface_with_a_boot_protocol_is_asked_for_one ... ok
test flush::tests::a_device_with_no_cache_owes_nothing_and_keeps_the_count ... ok
test flush::tests::a_loss_is_counted_once_and_never_uncounted ... ok
test flush::tests::a_write_is_owed_until_a_flush_that_succeeded_and_not_after ... ok
test identity::tests::a_device_that_differs_in_any_field_is_a_new_disk ... ok
test identity::tests::a_device_with_no_readable_serial_is_never_adopted ... ok
test identity::tests::a_disk_is_waited_for_only_after_a_reset_of_ours_and_only_inside_the_window ... ok
test identity::tests::a_language_is_read_only_from_a_string_descriptor_that_carries_one ... ok
test identity::tests::a_serial_prints_as_the_characters_it_carries_and_nothing_else ... ok
test identity::tests::a_string_descriptor_is_read_only_whole_and_well_formed ... ok
test identity::tests::the_same_device_is_the_same_disk ... ok
test job::tests::a_cancelled_operation_leaves_the_slot_free ... ok
test job::tests::a_completion_for_another_trb_is_not_this_one ... ok
test job::tests::a_data_stage_does_not_end_a_transfer_that_still_owes_its_status ... ok
test job::tests::a_failing_stage_ends_the_transfer_whatever_is_still_owed ... ok
test job::tests::a_failing_status_stage_is_the_answer ... ok
test job::tests::a_late_completion_from_an_abandoned_transfer_answers_nobody ... ok
test job::tests::a_stage_is_answered_by_its_own_trb_and_in_its_own_order ... ok
test job::tests::a_transfer_matches_on_its_trb_and_on_both_halves_of_its_endpoint ... ok
test job::tests::a_transfer_moved_what_its_residue_did_not_leave ... ok
test job::tests::a_transfer_that_answers_one_stage_and_stops_is_silent ... ok
test job::tests::an_answer_outlives_the_deadline ... ok
test job::tests::an_empty_slot_is_not_busy_and_has_no_deadline ... ok
test job::tests::only_the_first_answer_counts ... ok
test job::tests::the_deadline_produces_silence_and_nothing_else ... ok
test job::tests::submitting_over_an_outstanding_operation_panics - should panic ... ok
test job::tests::the_residue_is_the_first_stages_and_the_code_is_the_last ... ok
test ladder::tests::a_break_before_a_data_out_phase_is_done_leaves_the_device_owed_it ... ok
test ladder::tests::a_device_is_addressed_again_only_as_what_it_was_enumerated_as ... ok
test ladder::tests::a_break_elsewhere_climbs_every_rung ... ok
test ladder::tests::a_device_owed_data_out_is_never_given_the_class_reset ... ok
test ladder::tests::a_run_climbs_one_rung_per_break_until_a_round_trip_ends_it ... ok
test ladder::tests::a_rung_that_did_not_verify_left_exactly_where_its_port_no_longer_holds_the_device ... ok
test ladder::tests::every_run_of_breaks_climbs_strictly_and_ends_offline_after_a_port_reset ... ok
test ladder::tests::only_a_quiesce_that_failed_lets_the_rung_go_on ... ok
test ladder::tests::only_a_run_that_begins_owed_data_out_skips_the_class_reset ... ok
test ladder::tests::the_port_rung_resets_then_addresses_then_configures_then_asks ... ok
test late::tests::a_ring_that_keeps_producing_is_given_up_on_one_ring_past_the_deadline ... ok
test late::tests::an_answer_posted_before_the_deadline_passed_is_taken_after_it ... ok
test late::tests::before_the_deadline_nothing_is_given_up ... ok
test late::tests::past_the_deadline_the_first_empty_read_ends_the_wait ... ok
test port::tests::a_device_found_at_bring_up_is_never_enumerated_without_a_reset ... ok
test port::tests::a_device_its_class_reset_did_not_bring_back_gets_the_most_reset_its_port_has ... ok
test port::tests::a_port_whose_belief_moved_is_outstanding_until_it_is_read ... ok
test port::tests::a_warm_reset_is_finished_only_once_the_controller_has_cleared_pr ... ok
test port::tests::an_adopted_port_is_enumerated_by_its_reset_and_not_by_its_link ... ok
test portsc::tests::a_port_holds_its_device_only_while_it_reads_connected_with_no_change_unconsumed ... ok
test portsc::tests::a_write_never_carries_ped ... ok
test portsc::tests::a_write_never_sets_ped_and_pr_together ... ok
test portsc::tests::an_unseen_change_survives_the_acknowledge ... ok
test portsc::tests::bits_are_where_the_table_puts_them ... ok
test portsc::tests::neutral_keeps_exactly_the_bits_that_are_safe_to_write_back ... ok
test portsc::tests::powering_a_port_down_moves_that_bit_and_no_other ... ok
test protocol::tests::a_conformant_pair_covers_the_machine ... ok
test protocol::tests::a_port_claimed_twice_keeps_the_first_claim ... ok
test protocol::tests::a_range_that_would_wrap_is_refused_rather_than_folded ... ok
test protocol::tests::firmware_that_makes_no_sense_is_refused_by_name ... ok
test recovery::tests::a_halted_endpoint_is_reset_and_then_cleared_at_the_device ... ok
test recovery::tests::a_running_endpoint_is_stopped_and_never_cleared ... ok
test recovery::tests::a_stopped_endpoint_only_needs_its_ring_back ... ok
test recovery::tests::an_endpoint_in_error_only_needs_its_ring_back ... ok
test recovery::tests::disabled_and_reserved_states_are_refused_by_name ... ok
test recovery::tests::every_recovery_rebuilds_the_ring_exactly_once ... ok
test recovery::tests::only_a_halted_endpoint_is_cleared_at_the_device ... ok
test recovery::tests::the_bus_is_reached_only_after_every_command ... ok
test recovery::tests::the_endpoint_state_field_decodes_to_every_value_three_bits_can_hold ... ok
test reset_recovery::tests::a_context_state_error_is_followed_by_the_command_for_where_the_pipe_went ... ok
test reset_recovery::tests::a_command_that_took_is_not_issued_again_over_a_field_that_lags ... ok
test reset_recovery::tests::a_disabled_or_reserved_endpoint_refuses_the_whole_recovery ... ok
test reset_recovery::tests::a_halting_completion_code_outranks_a_field_that_still_reads_running ... ok
test reset_recovery::tests::a_pipe_refused_from_every_state_is_given_up_on_by_name ... ok
test reset_recovery::tests::a_refusal_that_is_not_about_state_and_a_silence_both_end_the_quiesce ... ok
test reset_recovery::tests::a_slot_goes_back_only_over_a_stopped_pair ... ok
test reset_recovery::tests::a_stopped_pair_is_asked_nothing ... ok
test reset_recovery::tests::every_command_is_defined_for_the_state_it_was_chosen_from ... ok
test reset_recovery::tests::every_pair_is_stopped_inside_the_bound_however_it_moves_and_however_the_field_lags ... ok
test reset_recovery::tests::only_a_halt_condition_or_a_trb_error_speaks_for_the_endpoint ... ok
test reset_recovery::tests::only_a_pair_a_reset_device_disabled_has_nothing_to_stop ... ok
test reset_recovery::tests::the_bound_is_the_worst_case ... ok
test reset_recovery::tests::the_in_pipe_is_quiesced_before_the_out_pipe ... ok
test ring::tests::a_controller_that_has_caught_up_has_nothing_pending ... ok
test ring::tests::a_pointer_that_is_no_position_on_this_ring_is_refused_by_name ... ok
test ring::tests::an_enqueue_point_past_the_end_of_the_ring_is_refused ... ok
test ring::tests::no_two_refusals_read_the_same ... ok
test ring::tests::the_count_is_the_wrapped_distance_between_the_two ... ok
test ring::tests::the_low_four_bits_of_the_field_are_not_address ... ok
test scan::tests::a_broken_endpoint_is_recovered_until_the_silence_bound_passes ... ok
test scan::tests::a_free_slot_and_nothing_broken_is_the_end_of_the_scan ... ok
test scan::tests::a_silent_controller_ends_the_scan_at_the_operations_deadline ... ok
test scan::tests::an_outstanding_operation_is_never_given_up_on ... ok
test scsi::tests::a_device_field_prints_as_the_characters_it_carries_and_nothing_else ... ok
test scsi::tests::a_device_that_is_not_a_disk_this_driver_serves_is_refused_by_name ... ok
test scsi::tests::a_disk_spinning_up_is_asked_for_its_sense_and_then_again ... ok
test scsi::tests::a_disk_that_never_becomes_ready_is_given_up_on_at_its_budget ... ok
test scsi::tests::a_disk_too_big_for_read_capacity_10_is_asked_the_16_byte_form ... ok
test scsi::tests::a_flush_the_device_does_not_implement_is_no_failure_and_every_other_refusal_is ... ok
test scsi::tests::a_question_unanswered_or_answered_short_refuses_the_device ... ok
test scsi::tests::a_ready_attempt_that_breaks_is_recovered_and_one_taken_offline_ends_it ... ok
test scsi::tests::a_ready_disk_is_asked_what_it_is_and_how_big_and_nothing_else ... ok
test scsi::tests::a_transfer_cdb_is_laid_out_as_sbc_defines_it ... ok
test scsi::tests::a_transfer_is_its_batches_in_order_and_only_a_whole_one_advances ... ok
test scsi::tests::a_transfer_past_the_disk_is_refused_and_an_empty_one_is_nothing ... ok
test scsi::tests::every_fixed_cdb_carries_its_own_length_direction_and_allocation ... ok
test scsi::tests::only_the_first_batch_may_answer_ask_again ... ok
test scsi::tests::an_answer_to_something_not_asked_is_a_driver_bug - should panic ... ok
test scsi::tests::sense_is_believed_only_when_its_ascq_arrived ... ok
test xecp::tests::a_list_that_leaves_the_window_or_never_ends_is_refused ... ok
test xecp::tests::every_smi_goes_off_and_every_latched_one_is_cleared ... ok
test xecp::tests::the_handoff_is_named_by_firmwares_semaphore_before_and_after ... ok
test xecp::tests::the_walk_finds_each_capability_of_an_id_in_order ... ok
test descriptor::tests::no_answer_panics_the_decoder ... ok
test call::tests::every_path_through_a_call_ends_inside_its_bounds ... ok

test result: ok. 163 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

     Running unittests src/lib.rs (target/debug/deps/toyos_xhci_sim-63d09615301ce01b)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/enumerate.rs (target/debug/deps/enumerate-fb375b5fc15e3b74)

running 7 tests
test an_enumeration_takes_one_act_per_pass_and_reports_once ... ok
test an_enumeration_is_abandoned_when_its_port_goes ... ok
test a_device_pulled_while_enable_slot_goes_unanswered_is_torn_down ... ok
test a_device_with_no_boot_protocol_is_never_asked_for_one ... ok
test an_enumeration_that_stops_being_answered_still_reports_its_slot ... ok
test a_slot_the_controller_has_not_named_yet_is_waited_for_even_when_the_port_goes ... ok
test gate_an_enumeration_that_outlives_its_port_costs_a_deadline ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/explore.rs (target/debug/deps/explore-2578a12a7d6446f1)

running 1 test
test no_sequence_breaks_an_invariant ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s

     Running tests/scenarios.rs (target/debug/deps/scenarios-2caebc991fe326a0)

running 15 tests
test gate_writing_back_what_was_read_disables_the_port ... ok
test a_device_that_bounces_back_out_is_never_enumerated ... ok
test gate_stepping_from_inside_an_effect_is_caught ... ok
test a_replug_inside_one_debounce_is_seen ... ok
test a_device_plugged_in_is_enumerated_once ... ok
test the_debounce_is_actually_waited_out ... ok
test gate_ignoring_the_connect_change_hides_a_replug ... ok
test gate_dropping_the_reset_deadline_wedges_the_port ... ok
test a_device_with_no_slot_settles_anyway ... ok
test gate_acknowledging_before_deciding_hides_a_replug ... ok
test a_device_replugged_inside_a_hot_reset_given_up_on_is_enumerated ... ok
test repeated_replugs_stay_balanced ... ok
test a_port_that_never_finishes_its_reset_is_given_up_on_and_left_alone ... ok
test unplugging_tears_the_device_down ... ok
test gate_restarting_the_debounce_never_enumerates ... ok

test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/superspeed.rs (target/debug/deps/superspeed-efbd8582fe9f60c1)

running 13 tests
test a_device_pulled_during_the_warm_retrain_is_not_enumerated ... ok
test a_device_pulled_as_its_enumeration_begins_is_torn_down ... ok
test a_link_already_inactive_is_warm_reset_at_once ... ok
test a_link_a_hot_reset_kills_is_recovered_warm ... ok
test a_port_of_unknown_protocol_is_still_reset ... ok
test a_port_given_up_on_is_not_reset_again_until_its_device_is_pulled ... ok
test a_trained_superspeed_link_is_not_reset ... ok
test a_usb2_completed_failure_is_refused_not_warm_reset ... ok
test a_link_that_never_trains_is_refused_by_its_own_name ... ok
test a_reset_that_completes_failed_is_warm_reset ... ok
test a_usb2_port_is_reset_as_before ... ok
test a_completed_failure_that_stays_failed_is_refused_by_name ... ok
test a_usb2_port_is_never_warm_reset ... ok

test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/teardown.rs (target/debug/deps/teardown-55cdc3cdc8a2e577)

running 9 tests
test a_running_endpoint_is_stopped_rather_than_reset ... ok
test a_recovery_the_controller_refuses_lets_the_device_go ... ok
test a_teardown_gives_the_slot_and_the_block_back ... ok
test gate_freeing_the_block_before_the_slot_is_caught ... ok
test a_recovery_is_abandoned_when_its_port_goes ... ok
test a_halted_endpoint_is_reset_cleared_and_delivering_again ... ok
test gate_acting_with_an_answer_outstanding_is_caught ... ok
test gate_a_recovery_that_outlives_its_port_costs_a_second_deadline ... ok
test a_controller_that_never_answers_still_releases_the_port ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/teeth.rs (target/debug/deps/teeth-389f5d40c3cdea55)

running 1 test
test every_flaw_changes_an_outcome ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests bcachefs

running 2 tests
test bcachefs/src/block_io.rs - block_io::DeviceError (line 62) - compile fail ... ok
test bcachefs/src/block_io.rs - block_io::DeviceError (line 66) - compile fail ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s

   Doc-tests kernel_loom

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests kernel_sim

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_abi

running 4 tests
test toyos-abi/src/usersafe.rs - usersafe::user_safe (line 70) - compile fail ... ok
test toyos-abi/src/usersafe.rs - usersafe::user_safe (line 53) - compile fail ... ok
test toyos-abi/src/usersafe.rs - usersafe::user_safe (line 63) ... ok
test toyos-abi/src/usersafe.rs - usersafe::user_safe (line 46) ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s

   Doc-tests toyos_acpi

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_blackbox

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_blockhold

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_blockring

running 2 tests
test toyos-blockring/src/wire.rs - wire::Opened (line 56) - compile fail ... ok
test toyos-blockring/src/wire.rs - wire::Opened (line 47) ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s

   Doc-tests toyos_bootmap

running 1 test
test toyos-bootmap/src/lib.rs - DirectMapEnd (line 64) - compile fail ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s

   Doc-tests toyos_cpuvuln

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_device_memory

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_dhcp

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_dma

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_dns

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_elf

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_elide

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_fat32

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_fat32_check

running 1 test
test toyos-fat32/check/src/lib.rs - (line 30) - compile ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s

   Doc-tests toyos_gicv3

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_gpt

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_hda

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_i219

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_inspect

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_its

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_keymap

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_libc_copies

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_logstream

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_manifest

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_microcode

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_net_ip

running 8 tests
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 463) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 483) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 478) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 468) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 473) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 493) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 488) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 436) ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s

   Doc-tests toyos_net_shard

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_net_tcp

running 5 tests
test toyos-net-shard/tcp/src/lib.rs - compile_fail::s_op_030_tcp_cannot_choose_dscp_ecn_or_df (line 354) - compile fail ... ok
test toyos-net-shard/tcp/src/lib.rs - compile_fail::s_hs_036_a_connection_cannot_connect_again (line 328) - compile fail ... ok
test toyos-net-shard/tcp/src/lib.rs - compile_fail::s_hs_036_a_connection_cannot_connect_again (line 335) - compile fail ... ok
test toyos-net-shard/tcp/src/lib.rs - compile_fail::s_op_030_tcp_cannot_choose_dscp_ecn_or_df (line 347) ... ok
test toyos-net-shard/tcp/src/lib.rs - compile_fail::s_hs_036_a_connection_cannot_connect_again (line 321) ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s

   Doc-tests toyos_net_testnet

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_net_udp

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_net_wire

running 18 tests
test toyos-net-wire/src/lib.rs - compile_fail::raw_payload_takes_no_transport_protocol_and_no_payload_is_forged (line 275) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_rt_010_transport_parse_takes_only_its_ipv4_view (line 255) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_tser_008_established_builder_cannot_hold_syn_only_options (line 229) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::raw_payload_takes_no_transport_protocol_and_no_payload_is_forged (line 270) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_rt_010_transport_parse_takes_only_its_ipv4_view (line 248) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 325) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_tser_008_established_builder_cannot_hold_syn_only_options (line 234) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_eth_030_builder_ethertype_admits_only_ipv4_and_arp (line 212) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_tser_008_established_builder_cannot_hold_syn_only_options (line 224) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 340) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 372) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 390) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 357) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_eth_030_builder_ethertype_admits_only_ipv4_and_arp (line 207) ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_tser_008_established_builder_cannot_hold_syn_only_options (line 219) ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 293) ... ok
test toyos-net-wire/src/lib.rs - compile_fail::raw_payload_takes_no_transport_protocol_and_no_payload_is_forged (line 264) ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_rt_010_transport_parse_takes_only_its_ipv4_view (line 241) ... ok

test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.77s

   Doc-tests toyos_osrelease

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_pci

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_phys

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_ps2

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_quiesce

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_random

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_rootimage

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_sha2

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_smmu

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_ssh

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_swap

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_symbols

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_tco

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_tmpdir

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_trace

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_transport

running 4 tests
test toyos-blockring/transport/src/queue.rs - queue::Place (line 43) - compile fail ... ok
test toyos-blockring/transport/src/queue.rs - queue::Place (line 48) - compile fail ... ok
test toyos-blockring/transport/src/queue.rs - queue::Place (line 53) - compile fail ... ok
test toyos-blockring/transport/src/queue.rs - queue::Place (line 36) ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s

   Doc-tests toyos_tsc

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_untrusted

running 5 tests
test toyos-untrusted/src/lib.rs - Untrusted (line 119) - compile fail ... ok
test toyos-untrusted/src/lib.rs - Untrusted (line 126) - compile fail ... ok
test toyos-untrusted/src/lib.rs - Untrusted (line 107) - compile fail ... ok
test toyos-untrusted/src/lib.rs - Untrusted (line 113) - compile fail ... ok
test toyos-untrusted/src/lib.rs - Untrusted (line 134) ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s

   Doc-tests toyos_update

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_usbhid

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_userbound

running 6 tests
test toyos-userbound/src/firmware.rs - firmware::SleepType (line 498) - compile fail ... ok
test toyos-userbound/src/firmware.rs - firmware::LockWordAt (line 261) - compile fail ... ok
test toyos-userbound/src/firmware.rs - firmware::MemoryAt (line 151) - compile fail ... ok
test toyos-userbound/src/firmware.rs - firmware::ConfigAt (line 447) - compile fail ... ok
test toyos-userbound/src/firmware.rs - firmware::FirmwareCall (line 348) - compile fail ... ok
test toyos-userbound/src/firmware.rs - firmware::PortAt (line 327) - compile fail ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s

   Doc-tests toyos_virtio

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_wallclock

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_xhci

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_xhci_sim

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:37:56 [ci] the workspace's host members: cargo test --workspace --exclude toyos-build --exclude bootloader --exclude kernel --exclude toyos --exclude acpiserver --exclude acpiserver-api --exclude toyos-aml --exclude calc --exclude compositor --exclude toyos-desktop --exclude console --exclude diskserver --exclude doom --exclude editor --exclude filepicker --exclude filepicker-api --exclude files --exclude fileserver --exclude host --exclude inspect --exclude kernelprobe --exclude logkeeper --exclude logkeeper-api --exclude metalprobe --exclude netstack --exclude toyos-mdns --exclude toyos-net-node --exclude paint --exclude pkg --exclude proctest --exclude shell --exclude snake --exclude soundserver --exclude toyos-mixer --exclude sprite --exclude sshserver --exclude supervisor --exclude swap --exclude symbolize --exclude terminal --exclude test-runner --exclude toybox --exclude toyos-font --exclude toyos-window --exclude trace --exclude update --exclude usbd

13:37:56 === [ci] the kernel's library
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.28s
     Running unittests pure/lib.rs (target/debug/deps/kernel-c59cf369e40e4e77)

running 178 tests
test bootwrite::tests::a_take_the_clock_has_not_reached_is_waited_for ... ok
test bootwrite::tests::a_write_that_has_retired_is_never_judged_by_the_clock ... ok
test mtrr::tests::two_registers_over_one_range_answer_as_the_architecture_orders_them ... ok
test mtrr::tests::a_default_or_a_covering_register_of_no_defined_encoding_is_unknown ... ok
test mtrr::tests::a_mask_with_no_address_bit_and_a_region_at_the_top_decide_without_overflow ... ok
test mtrr::tests::a_range_no_register_covers_has_the_default_type ... ok
test mtrr::tests::a_register_types_its_region_to_the_last_byte_and_no_further ... ok
test mtrr::tests::registers_that_are_off_and_not_the_boot_processors_are_off ... ok
test mtrr::tests::registers_that_are_off_type_nothing_uncacheable ... ok
test mtrr::tests::registers_that_are_on_and_not_the_boot_processors_are_different ... ok
test mtrr::tests::registers_that_are_word_for_word_the_boot_processors_are_the_same ... ok
test bootwrite::tests::a_handlers_time_is_not_the_kicks_and_the_kicks_is_not_the_handlers ... ok
test bootwrite::tests::a_kick_not_taken_in_the_span_is_a_deaf_boot_processor ... ok
test bootwrite::tests::a_handler_that_holds_the_span_has_outlasted_it_on_either_cpu ... ok
test pipe::tests::an_end_dropped_with_the_ring_neither_empty_nor_full_is_gone ... ok
test pcid::oracle::tests::a_flush_between_two_owners_clears_the_alias ... ok
test pcid::oracle::tests::the_model_flags_a_live_reissue ... ok
test pcid::tests::a_freed_tag_waits_for_a_flush_before_it_is_reissued ... ok
test pcid::tests::two_live_address_spaces_never_share_a_pcid ... ok
test pipe::tests::an_end_whose_other_end_is_held_is_not_told_it_is_gone ... ok
test pipe::tests::an_end_with_a_second_holder_outlives_the_first ... ok
test pipe::tests::readable_and_writable_say_nothing_of_the_other_end ... ok
test pipe::tests::the_last_holder_of_the_pipe_ends_it ... ok
test proclife::interleave::tests::a_join_racing_the_kill_that_takes_its_target ... ok
test proclife::interleave::tests::a_sibling_join_is_answered_however_the_two_interleave ... ok
test pcid::tests::churn_never_aliases_two_live_tags ... ok
test proclife::interleave::tests::a_process_that_kills_itself_ends ... ok
test proclife::interleave::tests::a_spawn_racing_a_kill_and_the_pass_that_reaps_it ... ok
test proclife::interleave::tests::a_kill_racing_a_spawn_leaves_no_unretired_thread ... ok
test proclife::interleave::tests::a_sibling_exit_a_spawn_and_the_processs_own_exit ... ok
test proclife::interleave::tests::a_reap_racing_a_teardown_and_a_join_breaks_no_law ... ok
test proclife::interleave::tests::a_published_exit_leaves_no_unretired_thread ... ok
test proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down ... ok
test proclife::interleave::tests::the_last_one_out_is_in_its_process_until_its_teardown_is_done ... ok
test pcid::oracle::tests::the_owned_allocator_admits_no_cross_space_read ... ok
test proclife::interleave::tests::a_kill_chain_of_three_ends ... ok
test proclife::interleave::tests::the_refusal_that_dropped_without_unmapping_is_the_leak_l5_reports ... ok
test proclife::join::tests::a_join_asked_after_it_collected_keeps_its_answer ... ok
test proclife::join::tests::a_live_thread_answers_wait_and_stays_in_the_table ... ok
test proclife::join::tests::a_process_being_torn_down_gives_up_no_thread ... ok
test proclife::join::tests::a_zombie_is_answered_once_and_the_second_join_finds_nothing ... ok
test proclife::join::tests::the_two_refusals_are_told_apart ... ok
test proclife::join::tests::a_settled_join_does_not_take_the_table_again ... ok
test proclife::interleave::tests::an_exit_whose_sibling_kills_the_process_killing_it ... ok
test proclife::pids::tests::a_pid_given_back_is_taken_again ... ok
test proclife::pids::tests::pids_are_issued_in_order_from_zero ... ok
test proclife::pids::tests::the_last_pid_is_one_below_max_and_none_follows_it ... ok
test proclife::reap::tests::nothing_is_taken_from_a_table_of_live_processes ... ok
test proclife::reap::tests::only_the_published_are_taken_and_they_come_back_in_pid_order ... ok
test proclife::spawn::tests::a_claimed_process_refuses_at_the_insert_too ... ok
test proclife::spawn::tests::a_claimed_process_refuses_at_the_start_in_both_arms ... ok
test proclife::spawn::tests::a_live_process_admits_a_thread_at_both_moments ... ok
test proclife::spawn::tests::a_missing_entry_is_refused_by_name_and_not_by_the_teardown_flag ... ok
test proclife::interleave::tests::two_spawns_race_one_teardown ... ok
test proclife::spawn::tests::a_full_process_refuses_at_the_start_until_a_join_collects ... ok
test proclife::interleave::tests::two_processes_killing_each_other_both_end ... ok
test proclife::teardown::tests::a_main_threads_exit_is_the_processs ... ok
test proclife::teardown::tests::a_process_that_is_gone_grants_no_claim ... ok
test proclife::teardown::tests::a_sibling_join_is_released_by_the_sibling_it_named ... ok
test proclife::teardown::tests::exactly_one_claimant_wins_however_many_arrive ... ok
test proclife::teardown::tests::only_the_thread_that_empties_a_claimed_process_tears_it_down ... ok
test proclife::spawn::tests::the_insert_refuses_the_spawn_a_sibling_filled_the_process_under ... ok
test proclife::teardown::tests::a_thread_leaves_once - should panic ... ok
test proclife::teardown::tests::the_retire_set_is_every_thread_still_in_but_the_caller ... ok
test proclife::tree::tests::a_chain_is_refused_at_max_depth_plus_one_below_the_supervisor ... ok
test proclife::tree::tests::a_child_landed_under_a_place_claimed_since_its_admission_is_claimed_with_it ... ok
test proclife::tree::tests::a_place_being_torn_down_admits_nothing ... ok
test proclife::tree::tests::a_spawn_past_the_last_pid_is_refused_and_a_refused_spawn_spends_none ... ok
test proclife::tree::tests::a_published_child_leaves_its_parents_children ... ok
test sched::cpu::tests::a_dying_task_resumes_when_the_rt_band_empties ... ok
test sched::cpu::pass_cost_tests::a_bucket_is_a_power_of_two_wide ... ok
test sched::cpu::pass_cost_tests::a_quantile_follows_the_mass_and_not_the_tail ... ok
test sched::cpu::pass_cost_tests::the_recorder_counts_what_it_was_given ... ok
test sched::cpu::tests::a_corpse_is_not_starved_for_ever_by_a_spinning_rt_task ... ok
test sched::cpu::tests::a_cpu_does_not_hand_over_the_context_it_is_still_standing_on ... ok
test sched::cpu::tests::a_dying_task_is_picked_before_the_fair_queue ... ok
test sched::cpu::tests::a_dying_task_that_exits_is_released_by_its_own_death ... ok
test sched::cpu::tests::a_killed_rt_thread_unwinds_in_the_normal_band ... ok
test proclife::interleave::tests::a_sibling_closing_a_spawns_handle_before_the_spawn_returns ... ok
test sched::cpu::tests::a_retire_that_loses_the_claim_leaves_the_wake_in_flight ... ok
test sched::cpu::tests::a_retire_of_the_running_task_asks_for_a_safe_point ... ok
test sched::cpu::tests::a_killed_task_that_expires_its_quantum_yields_to_a_ready_rt_task ... ok
test sched::cpu::tests::a_killed_task_that_yields_goes_back_to_the_dying_list ... ok
test sched::cpu::tests::a_live_fair_task_loses_the_cpu_to_a_ready_rt_task ... ok
test sched::cpu::tests::a_killed_task_that_expires_its_quantum_goes_back_to_the_dying_list ... ok
test sched::cpu::tests::a_killed_task_loses_the_cpu_before_its_quantum_expires ... ok
test sched::cpu::tests::a_killed_task_does_not_starve_a_ready_rt_task ... ok
test sched::cpu::tests::a_retire_moves_a_ready_task_to_the_dying_list ... ok
test sched::cpu::tests::a_running_task_refuses_the_parked_mark ... ok
test sched::cpu::tests::a_retire_wakes_a_parked_task_so_it_can_unwind ... ok
test sched::cpu::tests::a_stopped_task_is_never_picked_again ... ok
test sched::cpu::tests::a_steal_probe_goes_to_surplus_and_not_to_a_cpu_full_of_corpses ... ok
test sched::cpu::tests::a_wake_for_a_stopped_task_lands_in_the_band_and_not_the_run_queue ... ok
test sched::cpu::tests::an_adopt_of_a_killed_task_dispatches_it_on_arrival ... ok
test sched::cpu::tests::a_stopped_task_is_not_published_as_load ... ok
test sched::cpu::tests::an_aged_grant_is_not_undone_by_a_pass_inside_its_chunk ... ok
test sched::cpu::tests::an_unwind_under_saturated_rt_is_stretched_by_the_age_ratio ... ok
test sched::cpu::tests::placement_believes_a_cpu_that_answers_and_no_other ... ok
test sched::cpu::tests::a_spawned_task_is_adopted_and_dispatched ... ok
test sched::cpu::tests::stopping_outranks_killing ... ok
test sched::cpu::tests::the_balance_path_keeps_a_killed_task_rather_than_migrating_it ... ok
test sched::cpu::tests::the_pick_dispatches_a_killed_task_so_it_can_unwind ... ok
test sched::fair::tests::charge_accumulates_and_saturates ... ok
test sched::fair::tests::charge_nonrunnable_is_a_bug ... ok
test sched::fair::tests::frontier_is_monotonic ... ok
test sched::cpu::tests::the_dying_list_is_served_oldest_first ... ok
test sched::fair::tests::lag_clamps_in_both_directions ... ok
test sched::fair::tests::leave_stores_lag_and_wake_rederives_vruntime ... ok
test proclife::interleave::tests::a_spawn_racing_the_kill_of_its_own_spawner ... ok
test sched::fair::tests::nonrunnable_vruntime_tracks_the_live_frontier ... ok
test sched::park::tests::a_boosted_notify_always_kicks ... ok
test proclife::interleave::tests::a_childs_exit_racing_its_parents_kill ... ok
test sched::fair::tests::leave_when_nonrunnable_is_a_noop ... ok
test sched::fair::tests::new_process_starts_at_frontier_with_zero_lag ... ok
test sched::fair::tests::refcount_tracks_runnable_threads ... ok
test sched::mailbox::tests::a_node_carries_one_message_at_a_time ... ok
test sched::mailbox::tests::doorbell_kick_policy ... ok
test sched::mailbox::tests::fifo_across_nodes_and_recycling ... ok
test sched::mailbox::tests::releasing_an_unposted_claim_frees_the_node ... ok
test sched::mailbox::tests::sleep_needs_an_empty_mailbox_and_a_quiet_doorbell ... ok
test sched::mailbox::tests::dropping_a_queued_node_is_loud - should panic ... ok
test sched::park::tests::a_kill_beats_a_pre_park_claim_to_the_commit ... ok
test sched::park::tests::a_notify_before_phase_one_refuses_it ... ok
test sched::park::tests::a_notify_before_the_commit_refuses_the_park_and_sends_nothing ... ok
test sched::park::tests::an_uncancellable_ticket_parks_a_killed_task ... ok
test sched::park::tests::cancel_reports_a_claim_it_lost ... ok
test sched::park::tests::one_wake_node_serves_the_whole_lifecycle ... ok
test sched::park::tests::park_then_notify_delivers_exactly_one_message ... ok
test sched::park::tests::dropping_a_ticket_is_loud - should panic ... ok
test sched::retire::tests::a_wake_and_a_retire_ride_distinct_nodes ... ok
test sched::park::tests::a_kill_that_lands_before_the_commit_refuses_the_park ... ok
test sched::retire::tests::a_second_retirer_fails_fast - should panic ... ok
test sched::retire::tests::retire_goes_to_the_home_cpu_and_always_kicks ... ok
test sched::retire::tests::retiring_a_dead_task_posts_nothing ... ok
test sched::retire::tests::the_kill_bit_is_set_before_the_kick_and_before_the_chase_kick ... ok
test sched::task::tests::a_post_before_the_commit_refuses_it ... ok
test sched::task::tests::a_second_retirer_is_refused ... ok
test sched::task::tests::a_stale_generation_cannot_park_the_task ... ok
test sched::task::tests::cancel_reports_a_claim_it_lost ... ok
test sched::task::tests::claims_on_anything_but_a_waiter_are_lost ... ok
test sched::task::tests::park_then_wake_is_the_ordinary_path ... ok
test sched::task::tests::registration_forgets_a_post_or_revoke_to_an_earlier_wait ... ok
test sched::task::tests::sticky_bits_survive_transitions ... ok
test sched::task::tests::stopping_outranks_killing_at_a_safe_point ... ok
test sched::task::tests::wait_membership_is_single_watch ... ok
test sched::task::tests::word_roundtrips_every_state ... ok
test sched::watch::tests::a_bounded_post_skips_a_waiter_that_was_not_parked ... ok

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Gate: cargo run -- --ci host at 2c744d4, EXIT=0, part 6 of 8

test sched::watch::tests::a_post_between_registration_and_park_is_not_lost ... ok
test sched::watch::tests::a_post_in_place_fires_and_drops_nothing ... ok
test sched::watch::tests::a_post_wakes_every_parked_thread_and_fires_every_ring ... ok
test sched::watch::tests::a_registration_sweeps_the_entries_that_can_no_longer_fire ... ok
test sched::watch::tests::a_revoke_takes_the_registration_out_before_it_wakes ... ok
test sched::watch::tests::a_revoked_waiter_cannot_park_again ... ok
test sched::watch::tests::a_sweep_drops_what_it_took_out_with_the_list_lock_let_go ... ok
test sched::watch::tests::a_waiter_revoked_while_it_commits_cannot_park ... ok
test sched::watch::tests::a_second_registration_is_loud - should panic ... ok
test sched::watch::tests::cancel_and_drop_answer_every_live_poll_as_gone ... ok
test sched::watch_list::a_list_outgrowing_the_buffer_sized_for_it_is_not_moved_into_it ... ok
test sched::watch_list::a_re_arm_after_a_post_of_few_entries_is_one_section ... ok
test sched::watch_list::nothing_allocates_or_frees_under_the_list_lock_and_a_post_in_place_frees_nothing ... ok
test sched::windows::tests::a_pass_ends_the_preemption_off_window_and_starts_the_next ... ok
test sched::windows::tests::a_whole_set_opens_or_closes_only_across_zero ... ok
test sched::windows::tests::an_untracked_cpu_records_and_refuses_nothing ... ok
test sched::task::tests::an_edge_outside_the_table_panics - should panic ... ok
test sched::task::tests::a_post_claims_a_waiter_it_finds_parked_or_committing ... ok
test sched::retire::tests::the_chase_reuses_the_same_node ... ok
test sched::task::tests::a_dead_task_takes_no_post ... ok
test sched::windows::tests::the_idle_halt_inside_a_pass_is_no_window ... ok
test sched::task::tests::a_wake_between_registration_and_commit_refuses_the_park ... ok
test sched::watch::tests::a_waiter_revoked_before_it_parks_cannot_park ... ok
test sched::watch_list::a_post_of_one_entry_past_its_stack_fires_each_once_and_frees_none_under_the_lock ... ok
test sched::windows::tests::a_start_counts_from_how_the_cpu_stands ... ok
test sched::windows::tests::an_interrupts_off_window_is_mask_to_unmask_and_the_longest_is_taken_once ... ok
test sched::windows::tests::every_transition_nothing_reported_before_is_named ... ok
test sched::windows::tests::only_a_crossing_of_zero_opens_or_closes_a_preemption_off_window ... ok
test proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it ... ok
test proclife::interleave::tests::an_exit_publishes_after_every_end_below_it ... ok
test proclife::interleave::tests::a_spawn_under_an_unrelated_process_lands_between_two_claims_of_one_walk ... ok

test result: ok. 178 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s

13:37:56 [ci] the kernel's library: cargo test -p kernel --lib --features sched-check

13:37:56 === [ci] the licences of what ships
13:38:00   NOTICE section tests/testcases/ (LGPL-2.1-or-later AND BSD-3-Clause AND (MIT OR Apache-2.0)) is not shipped
13:38:00   NOTICE section "Rust crates and the forks" names no files: every crate, fork or not, is judged by the crate half of this gate
13:38:00   NOTICE section "licenses/CDLA-Permissive-2.0-webpki-root-certs.txt — the Mozilla roots, CDLA-Permissive-2.0" names no files: the roots the build writes out of a crate are judged, with this text beside them, by `judge_trust_roots`
13:38:00   NOTICE section tests/cavp/ (NIST-PD) is not shipped
13:38:00   crate fortanix-sgx-abi 0.6.1 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via std → fortanix-sgx-abi [x86_64-fortanix-unknown-sgx]
13:38:00   crate ucs2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → ucs2
13:38:00   crate uefi 0.26.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi
13:38:00   crate uefi-macros 0.13.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-macros
13:38:00   crate uefi-raw 0.5.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-raw
13:38:00   crate uefi-services 0.23.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi-services
13:38:00   crate doom 0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/userland/doom/Cargo.toml) is "GPL-2.0-only": not allowed: GPL-2.0-only; pulled in by doom
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: /system/bin/doom links doomgeneric, id's Doom source by way of Chocolate Doom (NOTICE); it leaves the image as a package at the stage where the apps leave this repository
13:38:00   crate windows-sys 0.61.100 (/Users/jan/Dev/jan/toyos-arm-g3/rust/library/windows-sys/Cargo.toml) is "": declares no licence; pulled in by std → dlmalloc [cfg(any(all(target_family = "wasm", not(any(unix, target_os = "wasi"))), target_os = "xous", target_os = "vexos", target_os = "toyos", all(target_vendor = "fortanix", target_env = "sgx")))] → windows-sys [cfg(target_os = "windows")]
    EXCEPTED, reached only under cfg(target_os = "windows"): std's empty in-tree stand-in for windows-sys, which declares no licence
13:38:00   crate windows-link 0.0.0 (/Users/jan/Dev/jan/toyos-arm-g3/rust/library/windows_link/Cargo.toml) is "": declares no licence; pulled in by std → windows-link [cfg(any(windows, target_os = "cygwin"))]
    EXCEPTED, reached only under cfg(any(windows, target_os = "cygwin")): std's in-tree stand-in for windows-link, which declares no licence
13:38:00   file assets/DOOM1.WAD is "LicenseRef-id-Software-DOOM1-Shareware": not allowed: LicenseRef-id-Software-DOOM1-Shareware; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: id's shareware terms: redistributable unmodified and not for consideration, so an image carrying it may not be sold (NOTICE); it leaves with doom
13:38:00   file assets/soundfont.sf2 is "LicenseRef-GeneralUser-GS-2.0": not allowed: LicenseRef-GeneralUser-GS-2.0; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: GeneralUser GS's own permissive licence, no standard one, with its author's caveat on where the samples came from (NOTICE); doom alone opens it, and it leaves with doom
13:38:00   NOTICE section userland/doom is "GPL-2.0-or-later": not allowed: GPL-2.0-or-later; pulled in by NOTICE
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: doomgeneric, the C half of the doom crate, fetched at build time and compiled into it; it leaves with doom
13:38:00 [ci] the licences of what ships: 6 exception(s) stand, and nothing else is refused

13:38:00 === [ci] clippy and the bare targets
info: component clippy is up to date
info: component rust-std for target x86_64-unknown-none is up to date
info: component rust-std for target x86_64-unknown-uefi is up to date
info: component rust-std for target aarch64-unknown-none-softfloat is up to date
info: component rust-std for target aarch64-unknown-uefi is up to date
13:38:00 [ci] clippy and the bare targets: installed

13:38:00 === [ci] clippy, warnings denied
13:38:00 === clippy: cargo clippy --workspace $GUESTS --all-targets --keep-going -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.54s
13:38:01 === clippy: cargo clippy --workspace $GUESTS --all-targets --keep-going --features $CONTROLS -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.48s
13:38:01 === clippy: cargo clippy -p kernel --lib --tests --features sched-check -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.12s
13:38:02 === clippy: cargo clippy -p kernel --lib --tests --features sched-check,protocol-port --features $KERNEL_CONTROLS -- $ADOPTED -D warnings
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.17s
13:38:02 === clippy: cargo clippy -p kernel --target x86_64-unknown-none -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.15s
13:38:02 === clippy: cargo clippy -p kernel --target x86_64-unknown-none --features boot-actuators,test-actuators -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.13s
13:38:02 === clippy: cargo clippy -p kernel --target x86_64-unknown-none --features boot-actuators -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.14s
13:38:03 === clippy: cargo clippy -p kernel --target x86_64-unknown-none --features debug-wait,sched-check,sched-tripwire,heap-tripwire,heap-sweep,pass-spin,stack-witness,switch-witness,switch-witness-mutate-frame,switch-witness-mutate-rsp,df-witness,df-witness-mutate,entry-df-unclean,mask-windows -- $ADOPTED -D warnings
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.20s
13:38:03 === clippy: cargo clippy -p kernel --target x86_64-unknown-none --features heap-band-notail,heap-lockspin -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.12s
13:38:03 === clippy: cargo clippy -p kernel --target x86_64-unknown-none --features heap-band-nohead -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.15s
13:38:04 === clippy: cargo clippy -p kernel --target aarch64-unknown-none-softfloat -- $ADOPTED -D warnings
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.35s
13:38:04 === clippy: cargo clippy -p kernel --target aarch64-unknown-none-softfloat --features boot-actuators,test-actuators -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.29s
13:38:04 === clippy: cargo clippy -p kernel --target aarch64-unknown-none-softfloat --features boot-actuators -- $ADOPTED -D warnings
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.29s
13:38:05 === clippy: cargo clippy -p kernel --target aarch64-unknown-none-softfloat --features debug-wait,sched-check,sched-tripwire,heap-tripwire,heap-sweep,pass-spin,stack-witness,switch-witness,switch-witness-mutate-frame,switch-witness-mutate-rsp,mask-windows -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.16s
13:38:05 === clippy: cargo clippy -p bootloader --target x86_64-unknown-uefi -- $ADOPTED -W clippy::undocumented_unsafe_blocks -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.18s
13:38:05 === clippy: cargo clippy -p bootloader --target aarch64-unknown-uefi -- $ADOPTED -W clippy::undocumented_unsafe_blocks -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.17s
13:38:06 === clippy: cargo clippy -p toyos-xhci --all-targets -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.10s
13:38:06 === clippy: cargo clippy -p kernel-loom --test loom_mailbox --features victim-retires-mid-probe -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.13s
13:38:06 === clippy: cargo clippy -p toyos-abi --all-targets --keep-going --target-dir target/clippy-abi -- -W clippy::undocumented_unsafe_blocks -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.13s
13:38:06 === clippy: cargo clippy --manifest-path userland/acpiserver/aml/Cargo.toml --all-targets -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
13:38:07 === clippy: cargo clippy --manifest-path userland/compositor/desktop/Cargo.toml --all-targets -- $ADOPTED -D warnings
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.18s
13:38:07 === clippy: cargo clippy --manifest-path userland/netstack/mdns/Cargo.toml --all-targets -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
13:38:07 === clippy: cargo clippy --manifest-path userland/netstack/node/Cargo.toml --all-targets -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.12s
13:38:07 === clippy: cargo clippy --manifest-path userland/soundserver/mixer/Cargo.toml --all-targets -- $ADOPTED -D warnings
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.14s
13:38:07 [ci] clippy, warnings denied: clean

13:38:07 === [ci] kernel-loom without loom
    Finished `test` profile [optimized + debuginfo] target(s) in 0.31s
     Running tests/log_body_words.rs (target/debug/deps/log_body_words-ba761697c24e5cd1)

running 2 tests
test a_shorter_record_does_not_inherit_the_longer_one_it_replaced ... ok
test every_field_survives_the_word_packing ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_cursor.rs (target/debug/deps/log_cursor-b3271d086aa5f722)

running 2 tests
test a_cursor_ahead_of_a_shard_is_refused ... ok
test a_cursors_loss_claim_is_not_read ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_zeroed_init.rs (target/debug/deps/log_zeroed_init-f65a416c9f0ef2f9)

running 1 test
test a_zero_allocated_ap_shard_issues_first_seq_first ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:38:08 [ci] kernel-loom without loom: cargo test -p kernel-loom --no-default-features --test log_zeroed_init --test log_body_words --test log_cursor

13:38:08 === [ci] control `wake-fence-off`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.19s
     Running tests/log_wake.rs (target/debug/deps/log_wake-fd96f3dce4f325b5)

running 1 test
test a_commit_and_an_arm_cannot_both_miss ... FAILED

failures:

---- a_commit_and_an_arm_cannot_both_miss stdout ----

thread 'a_commit_and_an_arm_cannot_both_miss' (261327663) panicked at kernel/loom/tests/log_wake.rs:98:9:
the producer posted nothing and the reader decided to park: a committed record is left with a parked reader, and only a missing fence can produce it
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_commit_and_an_arm_cannot_both_miss

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test log_wake`
13:38:08 [ci] control `wake-fence-off`: 1 verdict(s) reached

13:38:08 === [ci] control `lock-acquire-off`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.16s
     Running tests/ticket_lock.rs (target/debug/deps/ticket_lock-1441b3e0d5540721)

running 1 test
test try_lock_observes_the_previous_owners_writes ... FAILED

failures:

---- try_lock_observes_the_previous_owners_writes stdout ----

thread 'try_lock_observes_the_previous_owners_writes' (261327794) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent write accesses to `UnsafeCell`.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    try_lock_observes_the_previous_owners_writes

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test ticket_lock`
13:38:09 [ci] control `lock-acquire-off`: 1 verdict(s) reached

13:38:09 === [ci] control `owed-fence-off`
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.38s
     Running tests/owed_lock.rs (target/debug/deps/owed_lock-2028f07743415783)

running 1 test
test a_turned_away_cpu_holds_the_lock_or_is_answered ... FAILED

failures:

---- a_turned_away_cpu_holds_the_lock_or_is_answered stdout ----

thread 'a_turned_away_cpu_holds_the_lock_or_is_answered' (261328110) panicked at kernel/loom/tests/owed_lock.rs:52:9:
cpu 3 was turned away and nobody answered it
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_turned_away_cpu_holds_the_lock_or_is_answered

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test owed_lock`
13:38:09 [ci] control `owed-fence-off`: 1 verdict(s) reached

13:38:09 === [ci] control `seqlock-writer-fence-off`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running tests/panic_console_publish.rs (target/debug/deps/panic_console_publish-f3e00ff7db7a9c08)

running 1 test
test a_snapshot_is_one_publication_whole ... FAILED

failures:

---- a_snapshot_is_one_publication_whole stdout ----

thread 'a_snapshot_is_one_publication_whole' (261328229) panicked at kernel/loom/tests/panic_console_publish.rs:28:13:
a snapshot kept two publications' words: [1, 1, 1, 2]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_snapshot_is_one_publication_whole

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test panic_console_publish`
13:38:09 [ci] control `seqlock-writer-fence-off`: 1 verdict(s) reached

13:38:09 === [ci] control `serial-try-lock-then-some`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.14s
     Running tests/serial_lock.rs (target/debug/deps/serial_lock-f65ea87dbf3a7210)

running 2 tests
test a_lost_try_lock_leaves_the_lock_held ... FAILED
test two_writers_never_overlap ... FAILED

failures:

---- a_lost_try_lock_leaves_the_lock_held stdout ----

thread 'a_lost_try_lock_leaves_the_lock_held' (261328405) panicked at kernel/loom/tests/serial_lock.rs:24:9:
a lost try_lock released the lock its holder still has
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- two_writers_never_overlap stdout ----

thread 'two_writers_never_overlap' (261328406) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent write accesses to `UnsafeCell`.



failures:
    a_lost_try_lock_leaves_the_lock_held
    two_writers_never_overlap

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test serial_lock`
13:38:10 [ci] control `serial-try-lock-then-some`: 2 verdict(s) reached

13:38:10 === [ci] control `reap-raise-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running tests/reap_gate.rs (target/debug/deps/reap_gate-a6fae9c43f3f99ca)

running 1 test
test a_claim_sees_the_enrolled_work ... FAILED

failures:

---- a_claim_sees_the_enrolled_work stdout ----

thread 'a_claim_sees_the_enrolled_work' (261328699) panicked at kernel/loom/tests/reap_gate.rs:97:13:
assertion `left == right` failed: a claimed gate handed the reaper an unpublished exit — the raise did not carry the work it was raised for
  left: 0
 right: 1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_claim_sees_the_enrolled_work

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test reap_gate`
13:38:10 [ci] control `reap-raise-relaxed`: 1 verdict(s) reached

13:38:10 === [ci] control `shootdown-serve-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.19s
     Running tests/tlb_shootdown.rs (target/debug/deps/tlb_shootdown-a2e346343d56fb12)

running 2 tests
test an_acknowledged_flush_postdates_the_page_table_write ... FAILED
test one_serve_answers_two_concurrent_shootdowns ... FAILED

failures:

---- an_acknowledged_flush_postdates_the_page_table_write stdout ----

thread 'an_acknowledged_flush_postdates_the_page_table_write' (261328829) panicked at kernel/loom/tests/tlb_shootdown.rs:142:13:
assertion `left == right` failed: cpu 1 acknowledged the shootdown while still holding a translation for the page the initiator is about to free
  left: 1
 right: 0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- one_serve_answers_two_concurrent_shootdowns stdout ----

thread 'one_serve_answers_two_concurrent_shootdowns' (261328830) panicked at kernel/loom/tests/tlb_shootdown.rs:181:13:
assertion `left == right` failed: the first initiator freed a page cpu 1 could still reach
  left: 1
 right: 0


failures:
    an_acknowledged_flush_postdates_the_page_table_write
    one_serve_answers_two_concurrent_shootdowns

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.36s

error: test failed, to rerun pass `-p kernel-loom --test tlb_shootdown`
13:38:11 [ci] control `shootdown-serve-relaxed`: 2 verdict(s) reached

13:38:11 === [ci] control `shootdown-served-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running tests/counters_round.rs (target/debug/deps/counters_round-2f4dae6a97ddac0b)

running 1 test
test a_cpu_read_as_answered_is_read_with_its_answer ... FAILED

failures:

---- a_cpu_read_as_answered_is_read_with_its_answer stdout ----

thread 'a_cpu_read_as_answered_is_read_with_its_answer' (261329160) panicked at kernel/loom/tests/counters_round.rs:57:17:
assertion `left == right` failed: cpu 1 read as having answered the round, and its block did not copy out that answer
  left: None
 right: Some([2, 2])
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_cpu_read_as_answered_is_read_with_its_answer

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test counters_round`
13:38:11 [ci] control `shootdown-served-relaxed`: 1 verdict(s) reached

13:38:11 === [ci] control `roster-commit-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running tests/smp_bringup.rs (target/debug/deps/smp_bringup-890aba1ad9e2e955)

running 1 test
test a_committed_count_never_outruns_its_slot ... FAILED

failures:

---- a_committed_count_never_outruns_its_slot stdout ----

thread 'a_committed_count_never_outruns_its_slot' (261329533) panicked at kernel/loom/tests/smp_bringup.rs:50:17:
assertion `left == right` failed: a reader saw cpu1 counted while its hardware-id slot was still unfilled
  left: 4294967295
 right: 7
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_committed_count_never_outruns_its_slot

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test smp_bringup`
13:38:11 [ci] control `roster-commit-relaxed`: 1 verdict(s) reached

13:38:11 === [ci] control `smp-ready-split`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.11s
     Running tests/smp_bringup.rs (target/debug/deps/smp_bringup-12b06e12df4049d5)

running 1 test
test a_released_machine_is_answering ... FAILED

failures:

---- a_released_machine_is_answering stdout ----

thread 'a_released_machine_is_answering' (261329663) panicked at kernel/loom/tests/smp_bringup.rs:83:21:
a CPU saw the machine released but not answering: a shootdown here is local-only and skips an AP that may already have joined
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_released_machine_is_answering

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test smp_bringup`
13:38:11 [ci] control `smp-ready-split`: 1 verdict(s) reached

13:38:11 === [ci] control `log-commit-release-off`
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running tests/log_record.rs (target/debug/deps/log_record-8901e25c649904e8)

running 2 tests
test a_committed_record_is_whole_or_absent ... FAILED
test a_key_and_the_record_it_names_come_from_one_generation ... FAILED

failures:

---- a_committed_record_is_whole_or_absent stdout ----

thread 'a_committed_record_is_whole_or_absent' (261329947) panicked at kernel/loom/tests/log_record.rs:82:5:
assertion `left == right` failed: torn: at_ns is another record's
  left: 0
 right: 1007
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_key_and_the_record_it_names_come_from_one_generation stdout ----

thread 'a_key_and_the_record_it_names_come_from_one_generation' (261329948) panicked at kernel/loom/tests/log_record.rs:355:13:
assertion `left == right` failed: a key from the generation the slot used to hold
  left: 1007
 right: 5007


failures:
    a_committed_record_is_whole_or_absent
    a_key_and_the_record_it_names_come_from_one_generation

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test log_record`
13:38:12 [ci] control `log-commit-release-off`: 2 verdict(s) reached

13:38:12 === [ci] control `shard-publish-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.11s
     Running tests/log_publish.rs (target/debug/deps/log_publish-69909270b5c9854c)

running 1 test
test a_reader_that_finds_a_shard_finds_it_built ... FAILED

failures:

---- a_reader_that_finds_a_shard_finds_it_built stdout ----

thread 'a_reader_that_finds_a_shard_finds_it_built' (261330134) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent load and mut accesses.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_reader_that_finds_a_shard_finds_it_built

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test log_publish`
13:38:12 [ci] control `shard-publish-relaxed`: 1 verdict(s) reached

13:38:12 === [ci] control `log-ring-publish-relaxed`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.25s
     Running tests/log_ring.rs (target/debug/deps/log_ring-fd5970f45225a9ad)

running 3 tests
test a_lane_publishes_whole_and_reuses_only_after_a_read ... FAILED
test a_slot_is_reused_only_after_its_record_was_read ... FAILED
test a_published_record_is_whole_and_read_once ... FAILED

failures:

---- a_lane_publishes_whole_and_reuses_only_after_a_read stdout ----

thread 'a_lane_publishes_whole_and_reuses_only_after_a_read' (261330593) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent read and write accesses.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_slot_is_reused_only_after_its_record_was_read stdout ----

thread 'a_slot_is_reused_only_after_its_record_was_read' (261330595) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent read and write accesses.


---- a_published_record_is_whole_and_read_once stdout ----

thread 'a_published_record_is_whole_and_read_once' (261330594) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent read and write accesses.



failures:
    a_lane_publishes_whole_and_reuses_only_after_a_read
    a_published_record_is_whole_and_read_once
    a_slot_is_reused_only_after_its_record_was_read

test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p kernel-loom --test log_ring`
13:38:12 [ci] control `log-ring-publish-relaxed`: 3 verdict(s) reached

13:38:12 === [ci] control `log-ring-tail-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running tests/log_ring.rs (target/debug/deps/log_ring-65fb5473d901dbfd)

running 3 tests
test a_slot_is_reused_only_after_its_record_was_read ... FAILED
test a_lane_publishes_whole_and_reuses_only_after_a_read ... FAILED
test a_published_record_is_whole_and_read_once ... FAILED

failures:

---- a_slot_is_reused_only_after_its_record_was_read stdout ----

thread 'a_slot_is_reused_only_after_its_record_was_read' (261331201) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent read and write accesses to `UnsafeCell`.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_lane_publishes_whole_and_reuses_only_after_a_read stdout ----

thread 'a_lane_publishes_whole_and_reuses_only_after_a_read' (261331199) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent read and write accesses to `UnsafeCell`.


---- a_published_record_is_whole_and_read_once stdout ----

thread 'a_published_record_is_whole_and_read_once' (261331200) panicked at kernel/loom/tests/log_ring.rs:119:45:
assertion `left == right` failed
  left: Refused
 right: Written


failures:
    a_lane_publishes_whole_and_reuses_only_after_a_read
    a_published_record_is_whole_and_read_once
    a_slot_is_reused_only_after_its_record_was_read

test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p kernel-loom --test log_ring`
13:38:13 [ci] control `log-ring-tail-relaxed`: 3 verdict(s) reached

13:38:13 === [ci] control `log-ring-loads-swapped`
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.29s
     Running tests/log_ring.rs (target/debug/deps/log_ring-17a1cc881f842c98)

running 1 test
test a_published_record_is_whole_and_read_once ... FAILED

failures:

---- a_published_record_is_whole_and_read_once stdout ----

thread 'a_published_record_is_whole_and_read_once' (261331488) panicked at kernel/loom/tests/log_ring.rs:119:45:
assertion `left == right` failed
  left: Refused
 right: Written
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_published_record_is_whole_and_read_once

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p kernel-loom --test log_ring`
13:38:13 [ci] control `log-ring-loads-swapped`: 1 verdict(s) reached

13:38:13 === [ci] control `post-is-an-answer`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.15s
     Running tests/inbox_answer.rs (target/debug/deps/inbox_answer-bf78819351e10b6a)

running 3 tests
test a_post_with_nothing_to_read_answers_nothing ... FAILED
test a_poll_armed_again_does_not_end_the_look ... FAILED
test a_post_that_lands_after_its_bytes_were_read_answers_nothing ... FAILED

failures:

---- a_post_with_nothing_to_read_answers_nothing stdout ----

thread 'a_post_with_nothing_to_read_answers_nothing' (261331601) panicked at kernel/loom/tests/inbox_answer.rs:247:9:
assertion `left == right` failed: a post with nothing behind it was answered
  left: [(7, 1)]
 right: []

---- a_poll_armed_again_does_not_end_the_look stdout ----

thread 'a_poll_armed_again_does_not_end_the_look' (261331599) panicked at kernel/loom/tests/inbox_answer.rs:310:9:
assertion `left == right` failed
  left: [(3, 1), (4, 1)]
 right: [(4, 1)]

---- a_post_that_lands_after_its_bytes_were_read_answers_nothing stdout ----

thread 'a_post_that_lands_after_its_bytes_were_read_answers_nothing' (261331600) panicked at kernel/loom/tests/inbox_answer.rs:276:9:
assertion `left == right` failed: the payload's late post was answered
  left: [(7, 1)]
 right: []
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_poll_armed_again_does_not_end_the_look
    a_post_that_lands_after_its_bytes_were_read_answers_nothing
    a_post_with_nothing_to_read_answers_nothing

test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 13 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test inbox_answer`
13:38:13 [ci] control `post-is-an-answer`: 3 verdict(s) reached

13:38:13 === [ci] control `poll-fire-load-store`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.21s
     Running tests/poll_once.rs (target/debug/deps/poll_once-e7936a3e2ec155dd)

running 2 tests
test a_post_and_a_recheck_answer_a_poll_once ... FAILED
test a_withdrawal_and_a_post_never_both_take_a_poll ... FAILED

failures:

---- a_post_and_a_recheck_answer_a_poll_once stdout ----

thread 'a_post_and_a_recheck_answer_a_poll_once' (261332464) panicked at kernel/loom/tests/poll_once.rs:49:9:
assertion `left == right` failed: a ready poll is answered exactly once
  left: 2
 right: 1

---- a_withdrawal_and_a_post_never_both_take_a_poll stdout ----

thread 'a_withdrawal_and_a_post_never_both_take_a_poll' (261332465) panicked at kernel/loom/tests/poll_once.rs:72:9:
answered=true withdrawn=true
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_post_and_a_recheck_answer_a_poll_once
    a_withdrawal_and_a_post_never_both_take_a_poll

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p kernel-loom --test poll_once`
13:38:14 [ci] control `poll-fire-load-store`: 2 verdict(s) reached

13:38:14 === [ci] control `sleeplock-acquire-off`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.20s
     Running tests/sleep_lock.rs (target/debug/deps/sleep_lock-f3b193adf2ee818c)

running 2 tests
test a_parking_contender_observes_the_holders_writes ... FAILED
test two_holders_never_overlap ... FAILED

failures:

---- a_parking_contender_observes_the_holders_writes stdout ----

thread 'a_parking_contender_observes_the_holders_writes' (261333256) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent write accesses to `UnsafeCell`.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- two_holders_never_overlap stdout ----

thread 'two_holders_never_overlap' (261333257) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent write accesses to `UnsafeCell`.



failures:
    a_parking_contender_observes_the_holders_writes
    two_holders_never_overlap

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test sleep_lock`
13:38:14 [ci] control `sleeplock-acquire-off`: 2 verdict(s) reached

13:38:14 === [ci] control `device-irq-lossy`
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.15s
     Running tests/device_irq.rs (target/debug/deps/device_irq-9fe67f32f4d3986f)

running 1 test
test every_message_is_counted_once ... FAILED

failures:

---- every_message_is_counted_once stdout ----

thread 'every_message_is_counted_once' (261333650) panicked at kernel/loom/tests/device_irq.rs:51:9:
assertion `left == right` failed: two interrupts arrived, the reader took 0 and 1 were left: a driver that misses one waits for a device that has already spoken
  left: 1
 right: 2
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    every_message_is_counted_once

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.02s

error: test failed, to rerun pass `-p kernel-loom --test device_irq`
13:38:14 [ci] control `device-irq-lossy`: 1 verdict(s) reached

13:38:14 === [ci] control `no-preempt-guard`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.17s
     Running tests/loom_mailbox.rs (target/debug/deps/loom_mailbox-a88193098a4b07bc)

running 1 test

thread 'preempted_producer_strands_suffix' (261333871) panicked at kernel/loom/tests/loom_mailbox.rs:76:9:
I2: this CPU halted while its own interrupted context is inside a push. That context cannot resume while the CPU sleeps, so every message queued behind its unlinked node stays invisible with no doorbell edge left to raise. Drained so far: []
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test preempted_producer_strands_suffix ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s

13:38:15 [ci] control `no-preempt-guard`: 1 verdict(s) reached

13:38:15 === [ci] control `doorbell-kick-relaxed`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.25s
     Running tests/loom_sleep.rs (target/debug/deps/loom_sleep-c38cbcf547a528eb)

running 1 test

thread 'a_halted_cpu_with_queued_work_was_kicked' (261334715) panicked at kernel/loom/tests/loom_sleep.rs:104:13:
halted with 2 of 2 messages queued and no IPI in flight — a sleep-through
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'a_halted_cpu_with_queued_work_was_kicked' (261334715) panicked at kernel/loom/src/../../pure/sched/mailbox.rs:178:9:
mailbox node dropped with a message in flight
stack backtrace:
   0:        0x104b41edc - std[5d97c59e5e5fafcc]::backtrace_rs::backtrace::libunwind::trace
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:        0x104b41edc - std[5d97c59e5e5fafcc]::backtrace_rs::backtrace::trace_unsynchronized::<std[5d97c59e5e5fafcc]::sys::backtrace::_print_fmt::{closure#1}>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:        0x104b41edc - std[5d97c59e5e5fafcc]::sys::backtrace::_print_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:74:9
   3:        0x104b41edc - <<std[5d97c59e5e5fafcc]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[663bb9e1522ba5ef]::fmt::Display>::fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:44:26
   4:        0x104b5325c - <core[663bb9e1522ba5ef]::fmt::rt::Argument>::fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/fmt/rt.rs:152:76
   5:        0x104b5325c - core[663bb9e1522ba5ef]::fmt::write
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/fmt/mod.rs:1687:22
   6:        0x104b45a54 - std[5d97c59e5e5fafcc]::io::default_write_fmt::<alloc[cc4db322bb1ac55d]::vec::Vec<u8>>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/io/mod.rs:626:11
   7:        0x104b45a54 - <alloc[cc4db322bb1ac55d]::vec::Vec<u8> as std[5d97c59e5e5fafcc]::io::Write>::write_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/io/mod.rs:1730:13
   8:        0x104b28bd4 - <std[5d97c59e5e5fafcc]::sys::backtrace::BacktraceLock>::print
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:47:25
   9:        0x104b28bd4 - std[5d97c59e5e5fafcc]::panicking::default_hook::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:292:27
  10:        0x104b3b694 - std[5d97c59e5e5fafcc]::panicking::default_hook
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:316:9
  11:        0x104ad3c70 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/alloc/src/boxed.rs:2333:9
  12:        0x104ad3c70 - test[4aa3eea2f4983582]::test_main_inner::<test[4aa3eea2f4983582]::test_main_static::{closure#0}>::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/test/src/lib.rs:155:21
  13:        0x104b15c4c - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2333:9
  14:        0x104b15c4c - generator[50749e7e4996c531]::detail::gen::catch_unwind_filter::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>::{closure#0}::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:19:13
  15:        0x104b3bbd4 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/alloc/src/boxed.rs:2333:9
  16:        0x104b3bbd4 - std[5d97c59e5e5fafcc]::panicking::panic_with_hook
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:823:13
  17:        0x104b28c88 - std[5d97c59e5e5fafcc]::panicking::panic_handler::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:681:13
  18:        0x104b1fd60 - std[5d97c59e5e5fafcc]::sys::backtrace::__rust_end_short_backtrace::<std[5d97c59e5e5fafcc]::panicking::panic_handler::{closure#0}, !>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:182:18
  19:        0x104b293f4 - __rustc[100742bb89c490cb]::rust_begin_unwind
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:679:5
  20:        0x104b61ff4 - core[663bb9e1522ba5ef]::panicking::panic_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/panicking.rs:80:14
  21:        0x104ac7104 - <kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg> as core[663bb9e1522ba5ef]::ops::drop::Drop>::drop
                               at /Users/jan/Dev/jan/toyos-arm-g3/kernel/loom/src/../../pure/sched/mailbox.rs:178:9
  22:        0x104ac7104 - core[663bb9e1522ba5ef]::ptr::drop_glue::<kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  23:        0x104ac7104 - core[663bb9e1522ba5ef]::ptr::drop_glue::<[kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>]>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  24:        0x104ac7104 - core[663bb9e1522ba5ef]::ptr::drop_glue::<[kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>; 2usize]>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  25:        0x104ac7104 - core[663bb9e1522ba5ef]::ptr::drop_glue::<loom_sleep[8e8d7a68dd6c3415]::World>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  26:        0x104abf16c - core[663bb9e1522ba5ef]::ptr::drop_in_place::<loom_sleep[8e8d7a68dd6c3415]::World>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:818:14
  27:        0x104abf16c - <alloc[cc4db322bb1ac55d]::sync::Arc<loom_sleep[8e8d7a68dd6c3415]::World>>::drop_slow
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/sync.rs:2143:18
  28:        0x104ac2040 - loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}
                               at /Users/jan/Dev/jan/toyos-arm-g3/kernel/loom/tests/loom_sleep.rs:121:5
  29:        0x104ac2040 - <loom[709ac591f2027ef2]::model::Builder>::check::<loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}>::{closure#0}
                               at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/model.rs:194:17
  30:        0x104ac2040 - <<loom[709ac591f2027ef2]::model::Builder>::check<loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}>::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  31:        0x104b0b1d4 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>> as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2319:9
  32:        0x104b0b1d4 - loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}
                               at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/scheduler.rs:142:17
  33:        0x104b0b1d4 - <loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  34:        0x104b0b1d4 - <generator[50749e7e4996c531]::gen_impl::GeneratorImpl<core[663bb9e1522ba5ef]::option::Option<alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>>>, ()>>::init_code::<loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}>::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/gen_impl.rs:357:21
  35:        0x104b0b1d4 - <generator[50749e7e4996c531]::stack::StackBox<<generator[50749e7e4996c531]::gen_impl::GeneratorImpl<core[663bb9e1522ba5ef]::option::Option<alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>>>, ()>>::init_code<loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}>::{closure#0}>>::call_once
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/stack/mod.rs:137:13
  36:        0x104b5cbdc - <generator[50749e7e4996c531]::stack::Func>::call_once
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/stack/mod.rs:119:9
  37:        0x104b5cbdc - generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:35:14
  38:        0x104b5cbdc - <generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  39:        0x104b5cbdc - std[5d97c59e5e5fafcc]::panicking::catch_unwind::do_call::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panicking.rs:576:43
  40:        0x104b5cbdc - std[5d97c59e5e5fafcc]::panicking::catch_unwind::<(), generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panicking.rs:544:19
  41:        0x104b5cbdc - std[5d97c59e5e5fafcc]::panic::catch_unwind::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  42:        0x104b5cbdc - generator[50749e7e4996c531]::detail::gen::catch_unwind_filter::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:23:5
  43:        0x104b5cbdc - generator[50749e7e4996c531]::detail::gen::gen_init_impl
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:50:25
  44:        0x104b5cb6c - generator[50749e7e4996c531]::detail::asm::gen_init
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/aarch64_unix.rs:22:5

thread 'a_halted_cpu_with_queued_work_was_kicked' (261334715) panicked at kernel/loom/src/../../pure/sched/mailbox.rs:178:9:
mailbox node dropped with a message in flight
stack backtrace:
   0:        0x104b41edc - std[5d97c59e5e5fafcc]::backtrace_rs::backtrace::libunwind::trace
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:        0x104b41edc - std[5d97c59e5e5fafcc]::backtrace_rs::backtrace::trace_unsynchronized::<std[5d97c59e5e5fafcc]::sys::backtrace::_print_fmt::{closure#1}>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:        0x104b41edc - std[5d97c59e5e5fafcc]::sys::backtrace::_print_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:74:9
   3:        0x104b41edc - <<std[5d97c59e5e5fafcc]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[663bb9e1522ba5ef]::fmt::Display>::fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:44:26
   4:        0x104b5325c - <core[663bb9e1522ba5ef]::fmt::rt::Argument>::fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/fmt/rt.rs:152:76
   5:        0x104b5325c - core[663bb9e1522ba5ef]::fmt::write
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/fmt/mod.rs:1687:22
   6:        0x104b45a54 - std[5d97c59e5e5fafcc]::io::default_write_fmt::<alloc[cc4db322bb1ac55d]::vec::Vec<u8>>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/io/mod.rs:626:11
   7:        0x104b45a54 - <alloc[cc4db322bb1ac55d]::vec::Vec<u8> as std[5d97c59e5e5fafcc]::io::Write>::write_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/io/mod.rs:1730:13
   8:        0x104b28bd4 - <std[5d97c59e5e5fafcc]::sys::backtrace::BacktraceLock>::print
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:47:25
   9:        0x104b28bd4 - std[5d97c59e5e5fafcc]::panicking::default_hook::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:292:27
  10:        0x104b3b694 - std[5d97c59e5e5fafcc]::panicking::default_hook
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:316:9
  11:        0x104ad3c70 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/alloc/src/boxed.rs:2333:9
  12:        0x104ad3c70 - test[4aa3eea2f4983582]::test_main_inner::<test[4aa3eea2f4983582]::test_main_static::{closure#0}>::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/test/src/lib.rs:155:21
  13:        0x104b15c4c - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2333:9
  14:        0x104b15c4c - generator[50749e7e4996c531]::detail::gen::catch_unwind_filter::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>::{closure#0}::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:19:13
  15:        0x104b3bbd4 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/alloc/src/boxed.rs:2333:9
  16:        0x104b3bbd4 - std[5d97c59e5e5fafcc]::panicking::panic_with_hook
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:823:13
  17:        0x104b28c88 - std[5d97c59e5e5fafcc]::panicking::panic_handler::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:681:13
  18:        0x104b1fd60 - std[5d97c59e5e5fafcc]::sys::backtrace::__rust_end_short_backtrace::<std[5d97c59e5e5fafcc]::panicking::panic_handler::{closure#0}, !>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:182:18
  19:        0x104b293f4 - __rustc[100742bb89c490cb]::rust_begin_unwind
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:679:5
  20:        0x104b61ff4 - core[663bb9e1522ba5ef]::panicking::panic_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/panicking.rs:80:14
  21:        0x104ac67c8 - <kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg> as core[663bb9e1522ba5ef]::ops::drop::Drop>::drop
                               at /Users/jan/Dev/jan/toyos-arm-g3/kernel/loom/src/../../pure/sched/mailbox.rs:178:9
  22:        0x104ac67c8 - core[663bb9e1522ba5ef]::ptr::drop_glue::<kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  23:        0x104ac7144 - core[663bb9e1522ba5ef]::ptr::drop_glue::<[kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>]>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  24:        0x104ac7144 - core[663bb9e1522ba5ef]::ptr::drop_glue::<[kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>; 2usize]>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  25:        0x104ac7144 - core[663bb9e1522ba5ef]::ptr::drop_glue::<loom_sleep[8e8d7a68dd6c3415]::World>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  26:        0x104abf16c - core[663bb9e1522ba5ef]::ptr::drop_in_place::<loom_sleep[8e8d7a68dd6c3415]::World>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:818:14
  27:        0x104abf16c - <alloc[cc4db322bb1ac55d]::sync::Arc<loom_sleep[8e8d7a68dd6c3415]::World>>::drop_slow
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/sync.rs:2143:18
  28:        0x104ac2040 - loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}
                               at /Users/jan/Dev/jan/toyos-arm-g3/kernel/loom/tests/loom_sleep.rs:121:5
  29:        0x104ac2040 - <loom[709ac591f2027ef2]::model::Builder>::check::<loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}>::{closure#0}
                               at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/model.rs:194:17
  30:        0x104ac2040 - <<loom[709ac591f2027ef2]::model::Builder>::check<loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}>::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  31:        0x104b0b1d4 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>> as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Gate: cargo run -- --ci host at 2c744d4, EXIT=0, part 7 of 8

                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2319:9
  32:        0x104b0b1d4 - loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}
                               at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/scheduler.rs:142:17
  33:        0x104b0b1d4 - <loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  34:        0x104b0b1d4 - <generator[50749e7e4996c531]::gen_impl::GeneratorImpl<core[663bb9e1522ba5ef]::option::Option<alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>>>, ()>>::init_code::<loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}>::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/gen_impl.rs:357:21
  35:        0x104b0b1d4 - <generator[50749e7e4996c531]::stack::StackBox<<generator[50749e7e4996c531]::gen_impl::GeneratorImpl<core[663bb9e1522ba5ef]::option::Option<alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>>>, ()>>::init_code<loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}>::{closure#0}>>::call_once
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/stack/mod.rs:137:13
  36:        0x104b5cbdc - <generator[50749e7e4996c531]::stack::Func>::call_once
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/stack/mod.rs:119:9
  37:        0x104b5cbdc - generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:35:14
  38:        0x104b5cbdc - <generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  39:        0x104b5cbdc - std[5d97c59e5e5fafcc]::panicking::catch_unwind::do_call::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panicking.rs:576:43
  40:        0x104b5cbdc - std[5d97c59e5e5fafcc]::panicking::catch_unwind::<(), generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panicking.rs:544:19
  41:        0x104b5cbdc - std[5d97c59e5e5fafcc]::panic::catch_unwind::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  42:        0x104b5cbdc - generator[50749e7e4996c531]::detail::gen::catch_unwind_filter::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:23:5
  43:        0x104b5cbdc - generator[50749e7e4996c531]::detail::gen::gen_init_impl
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:50:25
  44:        0x104b5cb6c - generator[50749e7e4996c531]::detail::asm::gen_init
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/aarch64_unix.rs:22:5

thread 'a_halted_cpu_with_queued_work_was_kicked' (261334715) panicked at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/panicking.rs:233:5:
panic in a destructor during cleanup
thread caused non-unwinding panic. aborting.
error: test failed, to rerun pass `-p kernel-loom --test loom_sleep`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/loom_sleep-c38cbcf547a528eb --exact a_halted_cpu_with_queued_work_was_kicked` (signal: 6, SIGABRT: process abort signal)
13:38:16 [ci] control `doorbell-kick-relaxed`: 1 verdict(s) reached

13:38:16 === [ci] control `push-fence-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running tests/loom_push.rs (target/debug/deps/loom_push-9be859ddff6561a3)

running 1 test
test a_cpu_that_halts_without_seeing_the_surplus_was_pushed ... FAILED

failures:

---- a_cpu_that_halts_without_seeing_the_surplus_was_pushed stdout ----

thread 'a_cpu_that_halts_without_seeing_the_surplus_was_pushed' (261334959) panicked at kernel/loom/tests/loom_push.rs:143:9:
cpu1 halted with cpu0's surplus of 2 published and no push behind it — both sides of the store-buffer pair missed, which is the pull path's slept-before-the-surplus defect back again, in a window a fence would have closed
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_cpu_that_halts_without_seeing_the_surplus_was_pushed

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test loom_push`
13:38:16 [ci] control `push-fence-relaxed`: 1 verdict(s) reached

13:38:16 === [ci] control `commit-ignores-notify`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.18s
     Running tests/loom_watch.rs (target/debug/deps/loom_watch-f13a59174a717cf0)

running 2 tests
test a_post_racing_a_registration_leaves_nobody_parked ... FAILED
test a_fire_racing_a_submitters_park_is_never_lost ... FAILED

failures:

---- a_post_racing_a_registration_leaves_nobody_parked stdout ----

thread 'a_post_racing_a_registration_leaves_nobody_parked' (261335225) panicked at kernel/loom/tests/loom_watch.rs:244:13:
assertion `left == right` failed: parked with the condition true and no wake owed: the post was lost
  left: []
 right: [Wake(TaskKey(1), Woken)]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_fire_racing_a_submitters_park_is_never_lost stdout ----

thread 'a_fire_racing_a_submitters_park_is_never_lost' (261335224) panicked at kernel/loom/tests/loom_watch.rs:850:13:
assertion `left == right` failed: parked over a fired poll and no wake owed: a fire was lost
  left: []
 right: [Wake(TaskKey(1), Woken)]


failures:
    a_fire_racing_a_submitters_park_is_never_lost
    a_post_racing_a_registration_leaves_nobody_parked

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.09s

error: test failed, to rerun pass `-p kernel-loom --test loom_watch`
13:38:17 [ci] control `commit-ignores-notify`: 2 verdict(s) reached

13:38:17 === [ci] control `notify-flag-load-only`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.23s
     Running tests/loom_watch.rs (target/debug/deps/loom_watch-804d50fe30374251)

running 1 test
test a_second_post_is_not_lost_to_a_flag_the_waiter_consumed ... FAILED

failures:

---- a_second_post_is_not_lost_to_a_flag_the_waiter_consumed stdout ----

thread 'a_second_post_is_not_lost_to_a_flag_the_waiter_consumed' (261335474) panicked at kernel/loom/tests/loom_watch.rs:454:13:
assertion `left == right` failed: parked with both conditions true and no wake owed: a post answered off a load
  left: []
 right: [Wake(TaskKey(1), Woken)]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_second_post_is_not_lost_to_a_flag_the_waiter_consumed

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 11 filtered out; finished in 2.96s

error: test failed, to rerun pass `-p kernel-loom --test loom_watch`
13:38:20 [ci] control `notify-flag-load-only`: 1 verdict(s) reached

13:38:20 === [ci] control `gate-fence-off`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running tests/loom_watch.rs (target/debug/deps/loom_watch-2dd86f2d566d30a7)

running 1 test
test a_transition_racing_an_opening_gate_is_never_missed ... FAILED

failures:

---- a_transition_racing_an_opening_gate_is_never_missed stdout ----

thread 'a_transition_racing_an_opening_gate_is_never_missed' (261338226) panicked at kernel/loom/tests/loom_watch.rs:602:13:
assertion `left == right` failed: the stop parked over a thread that had parked, and nothing posted it
  left: []
 right: [Wake(TaskKey(1), Woken)]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_transition_racing_an_opening_gate_is_never_missed

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 11 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test loom_watch`
13:38:20 [ci] control `gate-fence-off`: 1 verdict(s) reached

13:38:20 === [ci] control `poll-fire-load-store`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.17s
     Running tests/loom_watch.rs (target/debug/deps/loom_watch-c3e0e112b9250e74)

running 3 tests
test a_poll_on_two_watches_racing_both_posts_completes_exactly_once ... FAILED
test a_poll_registered_racing_a_post_in_place_completes_exactly_once ... FAILED
test a_poll_registered_racing_a_post_completes_exactly_once ... FAILED

failures:

---- a_poll_on_two_watches_racing_both_posts_completes_exactly_once stdout ----

thread 'a_poll_on_two_watches_racing_both_posts_completes_exactly_once' (261338420) panicked at kernel/loom/tests/loom_watch.rs:658:9:
assertion `left == right` failed: a poll over a ready object completes once
  left: 2
 right: 1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_poll_registered_racing_a_post_in_place_completes_exactly_once stdout ----

thread 'a_poll_registered_racing_a_post_in_place_completes_exactly_once' (261338422) panicked at kernel/loom/tests/loom_watch.rs:351:5:
assertion `left == right` failed: a poll over a ready object completes once
  left: 2
 right: 1

---- a_poll_registered_racing_a_post_completes_exactly_once stdout ----

thread 'a_poll_registered_racing_a_post_completes_exactly_once' (261338421) panicked at kernel/loom/tests/loom_watch.rs:351:5:
assertion `left == right` failed: a poll over a ready object completes once
  left: 2
 right: 1


failures:
    a_poll_on_two_watches_racing_both_posts_completes_exactly_once
    a_poll_registered_racing_a_post_completes_exactly_once
    a_poll_registered_racing_a_post_in_place_completes_exactly_once

test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test loom_watch`
13:38:21 [ci] control `poll-fire-load-store`: 3 verdict(s) reached

13:38:21 === [ci] control `fault-posted-before-it-is-set`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.16s
     Running tests/loom_watch.rs (target/debug/deps/loom_watch-342ffd79d5171796)

running 2 tests
test a_poll_registered_racing_a_post_in_place_completes_exactly_once ... FAILED
test a_poll_registered_racing_a_post_completes_exactly_once ... FAILED

failures:

---- a_poll_registered_racing_a_post_in_place_completes_exactly_once stdout ----

thread 'a_poll_registered_racing_a_post_in_place_completes_exactly_once' (261338682) panicked at kernel/loom/tests/loom_watch.rs:350:5:
assertion `left != right` failed: a poll over a ready object was completed by neither
  left: 0
 right: 0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_poll_registered_racing_a_post_completes_exactly_once stdout ----

thread 'a_poll_registered_racing_a_post_completes_exactly_once' (261338681) panicked at kernel/loom/tests/loom_watch.rs:350:5:
assertion `left != right` failed: a poll over a ready object was completed by neither
  left: 0
 right: 0


failures:
    a_poll_registered_racing_a_post_completes_exactly_once
    a_poll_registered_racing_a_post_in_place_completes_exactly_once

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test loom_watch`
13:38:21 [ci] control `fault-posted-before-it-is-set`: 3 verdict(s) reached

13:38:21 === [ci] control `victim-retires-mid-probe`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running tests/loom_mailbox.rs (target/debug/deps/loom_mailbox-854161e9182e6318)

running 1 test

thread 'a_probe_outstanding_when_its_victim_retires_is_never_reclaimed' (261338822) panicked at kernel/loom/tests/loom_mailbox.rs:254:5:
assertion `left == right` failed: the victim retired with a probe still linked in its queue, so the node stays claimed for the rest of the boot and every later `claim()` by its thief answers `None` — one CPU stopping costs a second CPU its pull half permanently
  left: 1
 right: 0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
caught the verdict: the victim retired with a probe still linked in its queue
test a_probe_outstanding_when_its_victim_retires_is_never_reclaimed ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s

13:38:21 [ci] control `victim-retires-mid-probe`: 1 verdict(s) reached

13:38:21 === [ci] control `counting-allocator`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.11s
     Running unittests pure/lib.rs (target/debug/deps/kernel-6097f575e1539c4c)

running 2 tests
test pcid::oracle::tests::the_counting_allocator_produces_a_cross_space_read ... ok
test pcid::tests::two_live_address_spaces_never_share_a_pcid ... FAILED

failures:

---- pcid::tests::two_live_address_spaces_never_share_a_pcid stdout ----

thread 'pcid::tests::two_live_address_spaces_never_share_a_pcid' (261338981) panicked at kernel/pure/pcid/mod.rs:171:21:
the allocator reissued tag 1, still held by a live address space
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    pcid::tests::two_live_address_spaces_never_share_a_pcid

test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 171 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:38:21 [ci] control `counting-allocator`: 2 verdict(s) reached

13:38:21 === [ci] control `mutate-spawn-skips-the-insert-recheck`
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running unittests pure/lib.rs (target/debug/deps/kernel-0678184e0e5d49cf)

running 2 tests
test proclife::interleave::tests::a_published_exit_leaves_no_unretired_thread ... FAILED
test proclife::interleave::tests::a_kill_racing_a_spawn_leaves_no_unretired_thread ... FAILED

failures:

---- proclife::interleave::tests::a_published_exit_leaves_no_unretired_thread stdout ----

thread 'proclife::interleave::tests::a_published_exit_leaves_no_unretired_thread' (261339154) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0 was claimed for teardown and never published an exit
  schedule: spawn_thread#1 -> exit#0 -> exit#0 -> spawn_thread#1 -> spawn_thread#1 -> out 0/0 -> out 0/0 -> out 0/1 -> out 0/1

---- proclife::interleave::tests::a_kill_racing_a_spawn_leaves_no_unretired_thread stdout ----

thread 'proclife::interleave::tests::a_kill_racing_a_spawn_leaves_no_unretired_thread' (261339153) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0 was claimed for teardown and never published an exit
  schedule: spawn_thread#1 -> kill#0 -> kill#0 -> spawn_thread#1 -> spawn_thread#1 -> out 0/0 -> out 0/0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_kill_racing_a_spawn_leaves_no_unretired_thread
    proclife::interleave::tests::a_published_exit_leaves_no_unretired_thread

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 172 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:38:22 [ci] control `mutate-spawn-skips-the-insert-recheck`: 2 verdict(s) reached

13:38:22 === [ci] control `mutate-claim-teardown-always-wins`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.23s
     Running unittests pure/lib.rs (target/debug/deps/kernel-6e184e18194cdfe1)

running 1 test
test proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down ... FAILED

failures:

---- proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down stdout ----

thread 'proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down' (261339314) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0: 2 teardown claims succeeded
  schedule: exit#0 -> exit#0 -> kill#1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:38:22 [ci] control `mutate-claim-teardown-always-wins`: 1 verdict(s) reached

13:38:22 === [ci] control `mutate-kill-waits-for-its-victims`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running unittests pure/lib.rs (target/debug/deps/kernel-cafdcd0f4db5baa9)

running 2 tests
test proclife::interleave::tests::a_kill_chain_of_three_ends ... FAILED
test proclife::interleave::tests::two_processes_killing_each_other_both_end ... FAILED

failures:

---- proclife::interleave::tests::a_kill_chain_of_three_ends stdout ----

thread 'proclife::interleave::tests::a_kill_chain_of_three_ends' (261339605) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
a kill waits on pid 1's teardown
  schedule: kill#0 -> kill#0

---- proclife::interleave::tests::two_processes_killing_each_other_both_end stdout ----

thread 'proclife::interleave::tests::two_processes_killing_each_other_both_end' (261339606) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
a kill waits on pid 1's teardown
  schedule: kill#0 -> kill#0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_kill_chain_of_three_ends
    proclife::interleave::tests::two_processes_killing_each_other_both_end

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:38:22 [ci] control `mutate-kill-waits-for-its-victims`: 2 verdict(s) reached

13:38:22 === [ci] control `mutate-first-out-tears-down`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.11s
     Running unittests pure/lib.rs (target/debug/deps/kernel-20f5b15b9e4ec2b0)

running 1 test
test proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down ... FAILED

failures:

---- proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down stdout ----

thread 'proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down' (261339770) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0 was torn down with tid 1 still in it
  schedule: exit#0 -> exit#0 -> kill#1 -> out 0/0 -> out 0/0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:38:22 [ci] control `mutate-first-out-tears-down`: 1 verdict(s) reached

13:38:22 === [ci] control `mutate-join-collects-in-a-teardown`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.24s
     Running unittests pure/lib.rs (target/debug/deps/kernel-f021dcce956c5b5a)

running 1 test
test proclife::interleave::tests::a_join_racing_the_kill_that_takes_its_target ... FAILED

failures:

---- proclife::interleave::tests::a_join_racing_the_kill_that_takes_its_target stdout ----

thread 'proclife::interleave::tests::a_join_racing_the_kill_that_takes_its_target' (261340000) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0 tid 1: its entry and its mapped TLS went while a sibling was still in the process
  schedule: kill#0 -> kill#0 -> thread_join#1 -> out 0/0 -> out 0/0 -> out 0/1 -> thread_join#1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_join_racing_the_kill_that_takes_its_target

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:38:23 [ci] control `mutate-join-collects-in-a-teardown`: 1 verdict(s) reached

13:38:23 === [ci] control `mutate-last-out-leaves-before-its-teardown`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.10s
     Running unittests pure/lib.rs (target/debug/deps/kernel-9a2779cc48b5db37)

running 2 tests
test proclife::teardown::tests::only_the_thread_that_empties_a_claimed_process_tears_it_down ... FAILED
test proclife::interleave::tests::the_last_one_out_is_in_its_process_until_its_teardown_is_done ... FAILED

failures:

---- proclife::teardown::tests::only_the_thread_that_empties_a_claimed_process_tears_it_down stdout ----

thread 'proclife::teardown::tests::only_the_thread_that_empties_a_claimed_process_tears_it_down' (261340099) panicked at kernel/pure/proclife/teardown.rs:219:9:
assertion `left == right` failed: the last one out is in its process until its teardown is done
  left: Some(Zombie(-1))
 right: Some(Scheduled)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- proclife::interleave::tests::the_last_one_out_is_in_its_process_until_its_teardown_is_done stdout ----

thread 'proclife::interleave::tests::the_last_one_out_is_in_its_process_until_its_teardown_is_done' (261340098) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0 tid 0 is tearing its process down and the table has it out, so a stop would not wait for it
  schedule: exit#0 -> exit#0 -> out 0/0


failures:
    proclife::interleave::tests::the_last_one_out_is_in_its_process_until_its_teardown_is_done
    proclife::teardown::tests::only_the_thread_that_empties_a_claimed_process_tears_it_down

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:38:23 [ci] control `mutate-last-out-leaves-before-its-teardown`: 2 verdict(s) reached

13:38:23 === [ci] control `mutate-place-skips-the-insert-recheck`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running unittests pure/lib.rs (target/debug/deps/kernel-b6048955f34d9084)

running 1 test
test proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it ... FAILED

failures:

---- proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it stdout ----

thread 'proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it' (261340344) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 3 landed unclaimed under a place whose end was already claimed
  schedule: spawn_under#1 -> kill#0 -> kill#0 -> kill#0 -> kill#0 -> spawn_under#1 -> spawn_under#1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:38:23 [ci] control `mutate-place-skips-the-insert-recheck`: 1 verdict(s) reached

13:38:23 === [ci] control `mutate-refused-spawn-keeps-the-count`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running unittests pure/lib.rs (target/debug/deps/kernel-f3f33b9b59a9f859)

running 1 test
test proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it ... FAILED

failures:

---- proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it stdout ----
a spawn racing its place's kill: 1641 states

thread 'proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it' (261340610) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 1 was claimed for teardown and never published an exit
  schedule: spawn_under#1 -> kill#0 -> kill#0 -> kill#0 -> kill#0 -> spawn_under#1 -> out 1/0 -> out 1/0 -> out 1/0 -> out 1/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.02s

error: test failed, to rerun pass `-p kernel --lib`
13:38:23 [ci] control `mutate-refused-spawn-keeps-the-count`: 1 verdict(s) reached

13:38:23 === [ci] control `mutate-landed-child-retires-nothing`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running unittests pure/lib.rs (target/debug/deps/kernel-fc90b694e79e1ca6)

running 2 tests
test proclife::tree::tests::a_child_landed_under_a_place_claimed_since_its_admission_is_claimed_with_it ... FAILED
test proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it ... FAILED

failures:

---- proclife::tree::tests::a_child_landed_under_a_place_claimed_since_its_admission_is_claimed_with_it stdout ----

thread 'proclife::tree::tests::a_child_landed_under_a_place_claimed_since_its_admission_is_claimed_with_it' (261340867) panicked at kernel/pure/proclife/tree.rs:274:9:
assertion `left == right` failed: the child's spawner was not answered its thread to retire
  left: []
 right: [Tid(0)]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it stdout ----

thread 'proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it' (261340866) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 1 was claimed for teardown and never published an exit
pid 3 was claimed for teardown and never published an exit
pid 3 outlived the end of pid 1 above it
  schedule: spawn_under#1 -> kill#0 -> kill#0 -> kill#0 -> kill#0 -> spawn_under#1 -> spawn_under#1 -> spawn_under#1 -> out 1/0 -> out 1/0 -> out 1/0 -> out 1/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0


failures:
    proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it
    proclife::tree::tests::a_child_landed_under_a_place_claimed_since_its_admission_is_claimed_with_it

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:38:24 [ci] control `mutate-landed-child-retires-nothing`: 2 verdict(s) reached

13:38:24 === [ci] control `mutate-publish-before-the-children`
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.16s
     Running unittests pure/lib.rs (target/debug/deps/kernel-eced1954074bce19)

running 1 test
test proclife::interleave::tests::an_exit_publishes_after_every_end_below_it ... FAILED

failures:

---- proclife::interleave::tests::an_exit_publishes_after_every_end_below_it stdout ----

thread 'proclife::interleave::tests::an_exit_publishes_after_every_end_below_it' (261341088) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 1 was published with pid 2 still unpublished below it
pid 1 was published with pid 4 still unpublished below it
  schedule: exit#0 -> exit#0 -> exit#0 -> exit#0 -> exit#0 -> exit#0 -> exit#0 -> exit#0 -> out 1/0 -> out 1/0 -> out 1/0 -> out 1/0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::an_exit_publishes_after_every_end_below_it

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:38:24 [ci] control `mutate-publish-before-the-children`: 1 verdict(s) reached

13:38:24 === [ci] control `mutate-walk-in-one-hold`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running unittests pure/lib.rs (target/debug/deps/kernel-29ba8b7ce3d370b6)

running 1 test
test proclife::interleave::tests::a_spawn_under_an_unrelated_process_lands_between_two_claims_of_one_walk ... FAILED

failures:

---- proclife::interleave::tests::a_spawn_under_an_unrelated_process_lands_between_two_claims_of_one_walk stdout ----

thread 'proclife::interleave::tests::a_spawn_under_an_unrelated_process_lands_between_two_claims_of_one_walk' (261341325) panicked at kernel/pure/proclife/interleave.rs:894:9:
no ordering landed the unrelated spawn between the walk's two claims below the end: the walk holds the table across its claims
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_spawn_under_an_unrelated_process_lands_between_two_claims_of_one_walk

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.03s

error: test failed, to rerun pass `-p kernel --lib`
13:38:24 [ci] control `mutate-walk-in-one-hold`: 1 verdict(s) reached

13:38:24 === [ci] control `mutate-spawner-handle-after-the-landing`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.14s
     Running unittests pure/lib.rs (target/debug/deps/kernel-2483b96922d9df2a)

running 2 tests
test proclife::interleave::tests::a_spawn_racing_the_kill_of_its_own_spawner ... FAILED
test proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it ... FAILED

failures:

---- proclife::interleave::tests::a_spawn_racing_the_kill_of_its_own_spawner stdout ----

thread 'proclife::interleave::tests::a_spawn_racing_the_kill_of_its_own_spawner' (261341572) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 3: a handle to it was minted after its last one had gone
  schedule: spawn_under#1 -> kill#0 -> kill#0 -> kill#0 -> kill#0 -> spawn_under#1 -> spawn_under#1 -> spawn_under#1 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 3/0 -> out 3/0 -> spawn_under#1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it stdout ----

thread 'proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it' (261341571) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 3: a handle to it was minted after its last one had gone
  schedule: spawn_under#1 -> kill#0 -> kill#0 -> kill#0 -> kill#0 -> spawn_under#1 -> spawn_under#1 -> spawn_under#1 -> out 1/0 -> out 1/0 -> out 1/0 -> out 1/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 3/0 -> out 3/0 -> spawn_under#1


failures:
    proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it
    proclife::interleave::tests::a_spawn_racing_the_kill_of_its_own_spawner

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p kernel --lib`
13:38:25 [ci] control `mutate-spawner-handle-after-the-landing`: 2 verdict(s) reached

13:38:25 === [ci] control `mutate-spawner-handle-before-the-childs-own`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.11s
     Running unittests pure/lib.rs (target/debug/deps/kernel-68c27e53bbdb2954)

running 1 test
test proclife::interleave::tests::a_sibling_closing_a_spawns_handle_before_the_spawn_returns ... FAILED

failures:

---- proclife::interleave::tests::a_sibling_closing_a_spawns_handle_before_the_spawn_returns stdout ----

thread 'proclife::interleave::tests::a_sibling_closing_a_spawns_handle_before_the_spawn_returns' (261341827) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 2: a handle to it was minted after its last one had gone
  schedule: spawn_under#0 -> spawn_under#0 -> close#1 -> spawn_under#0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_sibling_closing_a_spawns_handle_before_the_spawn_returns

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p kernel --lib`
13:38:25 [ci] control `mutate-spawner-handle-before-the-childs-own`: 1 verdict(s) reached

13:38:25 === [ci] control `placement-ignores-staleness`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.15s
     Running tests/policy.rs (target/debug/deps/policy-fb61fd9cdbfa04f7)

running 1 test
test a_stopped_cpu_stops_taking_work ... FAILED

failures:

---- a_stopped_cpu_stops_taking_work stdout ----
stopped_cpu: worst never_ran 10, total 114 over 16 seeds, bound 4 of 24

thread 'a_stopped_cpu_stops_taking_work' (261342135) panicked at kernel/sim/tests/policy.rs:1419:5:
a stopped cpu took 10 of 24 programs, against the 4 its published numbers are believed for
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_stopped_cpu_stops_taking_work

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 11 filtered out; finished in 0.02s

error: test failed, to rerun pass `-p kernel-sim --test policy`
13:38:25 [ci] control `placement-ignores-staleness`: 1 verdict(s) reached

13:38:25 === [ci] control `mutate-session-end-forgets`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running unittests src/lib.rs (target/debug/deps/toyos_blockring-c60f1ce9c5880c03)

running 1 test
test model::tests::every_request_is_answered_exactly_once ... FAILED

failures:

---- model::tests::every_request_is_answered_exactly_once stdout ----
Failures { resets: 0, crashes: 0, errors: 0 }: 28 end states, 0 with a flush given up, None
Failures { resets: 1, crashes: 0, errors: 0 }: 492 end states, 0 with a flush given up, None
Failures { resets: 0, crashes: 1, errors: 0 }: 4 end states, 0 with a flush given up, Some((Answers, "ticket 3 ended answered None, after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > ask 4 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > take Flush#7 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > done Flush#7 > read #5 Ok > read #6 Ok > crash([None, None] [3, 2]) > notice > reconnect > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > read #12 Ok > read #9 Ok > take Flush#16 > done Flush#16 > read #16 Ok"))

thread 'model::tests::every_request_is_answered_exactly_once' (261342304) panicked at toyos-blockring/src/model.rs:722:17:
Failures { resets: 0, crashes: 1, errors: 0 }: ticket 3 ended answered None, after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > ask 4 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > take Flush#7 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > done Flush#7 > read #5 Ok > read #6 Ok > crash([None, None] [3, 2]) > notice > reconnect > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > read #12 Ok > read #9 Ok > take Flush#16 > done Flush#16 > read #16 Ok
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    model::tests::every_request_is_answered_exactly_once

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 22 filtered out; finished in 7.78s

error: test failed, to rerun pass `-p toyos-blockring --lib`
13:38:33 [ci] control `mutate-session-end-forgets`: 1 verdict(s) reached

13:38:33 === [ci] control `mutate-abort-keeps-inflight`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.54s
     Running unittests src/lib.rs (target/debug/deps/toyos_blockring-9da8b607da72767a)

running 1 test
test model::tests::every_request_is_answered_exactly_once ... FAILED

failures:

---- model::tests::every_request_is_answered_exactly_once stdout ----
Failures { resets: 0, crashes: 0, errors: 0 }: 28 end states, 0 with a flush given up, None
Failures { resets: 1, crashes: 0, errors: 0 }: 2 end states, 0 with a flush given up, Some((Answers, "the client met a second completion for tag 7, after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > ask 4 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > take Flush#7 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > read #5 Ok > read #6 Ok > read #8 Ok > reset([7] [None, None] [3, 2]) > read #7 Device > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > read #12 Ok > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#16 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#16 > read #9 Ok > read #16 Ok > take Flush#20 > done Flush#20 > read #20 Lost > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#24 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#13 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#24 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#13 > read #24 Ok > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#28 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#28 > read #13 Ok > read #28 Ok > take Flush#32 > done Flush#32 > read #32 Ok > posted #7 > read #7 Ok"))

thread 'model::tests::every_request_is_answered_exactly_once' (261355741) panicked at toyos-blockring/src/model.rs:722:17:
Failures { resets: 1, crashes: 0, errors: 0 }: the client met a second completion for tag 7, after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > ask 4 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > take Flush#7 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > read #5 Ok > read #6 Ok > read #8 Ok > reset([7] [None, None] [3, 2]) > read #7 Device > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > read #12 Ok > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#16 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#16 > read #9 Ok > read #16 Ok > take Flush#20 > done Flush#20 > read #20 Lost > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#24 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#13 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#24 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#13 > read #24 Ok > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#28 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#28 > read #13 Ok > read #28 Ok > take Flush#32 > done Flush#32 > read #32 Ok > posted #7 > read #7 Ok
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    model::tests::every_request_is_answered_exactly_once

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 22 filtered out; finished in 0.02s

error: test failed, to rerun pass `-p toyos-blockring --lib`
13:38:34 [ci] control `mutate-abort-keeps-inflight`: 1 verdict(s) reached

13:38:34 === [ci] control `mutate-no-reissue-after-loss`
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.22s
     Running unittests src/lib.rs (target/debug/deps/toyos_blockring-05042003800e3648)

running 1 test
test model::tests::what_a_flush_calls_durable_is_on_the_medium ... FAILED

failures:

---- model::tests::what_a_flush_calls_durable_is_on_the_medium stdout ----
Failures { resets: 0, crashes: 0, errors: 0 }: 28 end states, 0 with a flush given up, None
Failures { resets: 1, crashes: 0, errors: 0 }: 20 end states, 0 with a flush given up, Some((Durable, "flush 4 was answered durable with block 0 holding 1, not the 3 acknowledged before it (or a later one of [3]), after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > read #5 Ok > read #6 Ok > read #8 Ok > ask 4 > take Flush#12 > reset([] [None, None] [1, 2]) > read #12 Device > take Flush#16 > done Flush#16 > read #16 Lost > take Flush#20 > done Flush#20 > read #20 Ok"))

thread 'model::tests::what_a_flush_calls_durable_is_on_the_medium' (261355980) panicked at toyos-blockring/src/model.rs:733:17:
Failures { resets: 1, crashes: 0, errors: 0 }: flush 4 was answered durable with block 0 holding 1, not the 3 acknowledged before it (or a later one of [3]), after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > read #5 Ok > read #6 Ok > read #8 Ok > ask 4 > take Flush#12 > reset([] [None, None] [1, 2]) > read #12 Device > take Flush#16 > done Flush#16 > read #16 Lost > take Flush#20 > done Flush#20 > read #20 Ok
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    model::tests::what_a_flush_calls_durable_is_on_the_medium

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 22 filtered out; finished in 0.02s

error: test failed, to rerun pass `-p toyos-blockring --lib`
13:38:34 [ci] control `mutate-no-reissue-after-loss`: 1 verdict(s) reached

13:38:34 === [ci] control `publish-relaxed`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.20s
     Running tests/loom.rs (target/debug/deps/loom-24a430a1f85efe05)

running 1 test
test a_published_entry_is_read_whole ... FAILED

failures:

---- a_published_entry_is_read_whole stdout ----

thread 'a_published_entry_is_read_whole' (261356468) panicked at toyos-blockring/transport/tests/loom.rs:76:9:
assertion `left == right` failed: an entry was read before its words
  left: [[0, 0], [0, 0]]
 right: [[100, 3], [101, 10]]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_published_entry_is_read_whole

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p toyos-transport --test loom`
13:38:34 [ci] control `publish-relaxed`: 1 verdict(s) reached

13:38:34 === [ci] control `no-clamp`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.19s
     Running tests/loom.rs (target/debug/deps/loom-eb33bfc56f80c86a)

running 1 test
test a_hostile_producer_yields_entries_or_a_violation ... FAILED

failures:

---- a_hostile_producer_yields_entries_or_a_violation stdout ----

thread 'a_hostile_producer_yields_entries_or_a_violation' (261356791) panicked at toyos-blockring/transport/tests/loom.rs:107:9:
took 3 entries from a ring of 2 without releasing one
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_hostile_producer_yields_entries_or_a_violation

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p toyos-transport --test loom`
13:38:35 [ci] control `no-clamp`: 1 verdict(s) reached

13:38:35 === [ci] control `end-keeps-inflight`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.27s
     Running unittests src/lib.rs (target/debug/deps/toyos_transport-ed091dbee8d19249)

running 1 test
test inflight::tests::an_end_answers_every_tag_once_and_a_late_completion_nothing ... FAILED

failures:

---- inflight::tests::an_end_answers_every_tag_once_and_a_late_completion_nothing stdout ----

thread 'inflight::tests::an_end_answers_every_tag_once_and_a_late_completion_nothing' (261357010) panicked at toyos-blockring/transport/src/inflight.rs:150:9:
assertion `left == right` failed
  left: []
 right: [(4, 0), (6, 2)]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    inflight::tests::an_end_answers_every_tag_once_and_a_late_completion_nothing

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p toyos-transport --lib`
13:38:35 [ci] control `end-keeps-inflight`: 1 verdict(s) reached

13:38:35 === [ci] userland/acpiserver
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.17s
     Running unittests src/main.rs (target/debug/deps/acpiserver-c834e39970f9f7ec)

running 28 tests
test ec::tests::a_query_writes_its_command_once_the_input_is_empty_and_reads_once_the_output_is_full ... ok
test host::tests::a_lock_the_firmware_holds_is_denied_by_name_and_counted ... ok
test ec::tests::a_byte_before_the_command_is_refused - should panic ... ok
test aml::tests::a_machine_that_stops_mid_load_ends_it_with_nothing_refused ... ok
test aml::tests::every_refusals_kind_is_free_of_what_the_firmware_chose ... ok
test host::tests::a_lock_the_kernel_cannot_take_is_denied_and_never_reported_held ... ok
test aml::tests::tables_in_memory_of_a_type_the_kernel_keeps_are_refused_by_that_name_and_type ... ok
test host::tests::a_page_the_firmware_lists_nowhere_is_counted_under_a_name_of_its_own ... ok
test aml::tests::a_refused_dsdt_leaves_no_namespace_and_loads_no_ssdt ... ok
test aml::tests::tables_the_kernel_will_not_read_are_refused_by_its_name_for_it ... ok
test host::tests::a_read_is_the_kernels_in_each_space_and_counted_by_space_and_page ... ok
test host::tests::a_read_the_kernel_refuses_is_denied_under_the_kernels_name_and_counted ... ok
test host::tests::a_stopping_machine_denies_everything_and_is_no_refusal_of_the_firmwares ... ok
test host::tests::the_lock_is_taken_and_given_back_through_the_kernel ... ok
test aml::tests::a_refused_ssdt_is_one_block_refused_and_the_rest_load ... ok
test aml::tests::an_s5_that_is_no_package_of_two_integers_is_refused_by_kind ... ok
test host::tests::nothing_is_written_and_the_controllers_space_is_not_reached ... ok
test sci::tests::a_press_and_the_controllers_gpe_are_both_read_off_one_sci ... ok
test aml::tests::a_lock_field_read_at_load_takes_the_lock_and_a_held_lock_refuses_the_table ... ok
test ledger::tests::a_thing_is_new_once_and_counted_every_time ... ok
test sci::tests::a_status_set_with_its_enable_clear_is_no_event ... ok
test aml::tests::only_an_s5_the_kernel_kept_is_a_power_off ... ok
test sci::tests::an_enabled_event_outside_the_served_set_is_refused_by_name ... ok
test sci::tests::only_a_press_on_a_machine_handed_no_sleep_type_is_dropped ... ok
test aml::tests::qemus_tables_load_and_s5_is_what_its_kernel_decoded ... ok
test tables::tests::a_range_is_fetched_whole_in_qwords_and_then_bytes_and_kept ... ok
test tables::tests::a_range_the_kernel_refuses_any_byte_of_is_not_readable_and_says_why ... ok
test tables::tests::a_stopping_machine_reads_no_table ... ok

test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:38:35 [ci] userland/acpiserver: cargo test --manifest-path userland/acpiserver/Cargo.toml

13:38:35 === [ci] userland/acpiserver/aml
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.17s
     Running unittests src/lib.rs (target/debug/deps/toyos_aml-f74bbb7a41540e23)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/evaluate.rs (target/debug/deps/evaluate-9d6f462fe5ccdee5)

running 27 tests
test bcd_converts_both_ways_and_refuses_what_is_not_bcd ... ok
test index_reaches_into_buffers_strings_and_packages ... ok
test if_else_and_while_with_break_and_continue ... ok
test an_arg_holding_a_reference_stores_through_it ... ok
test break_and_continue_outside_a_while_are_refused ... ok
test concatenate_takes_the_first_operands_type ... ok
test events_count_signals_and_a_wait_without_one_times_out ... ok
test a_method_without_return_returns_nothing_usable ... ok
test divide_stores_remainder_and_quotient_and_refuses_zero ... ok
test logical_operators_answer_ones_or_zero ... ok
test buffers_and_packages_are_sized_as_declared ... ok
test methods_take_their_declared_arguments_and_return_a_copy ... ok
test match_finds_the_first_element_both_tests_accept ... ok
test comparisons_follow_the_first_operands_type ... ok
test explicit_conversions_follow_their_definitions ... ok
test integer_arithmetic_wraps_at_the_integer_width ... ok
test mutexes_follow_sync_levels_and_are_released_by_the_end ... ok
test mid_takes_what_lies_within ... ok
test notify_sleep_stall_and_fatal_reach_the_host ... ok
test resource_templates_join_under_one_end_tag ... ok
test s5_evaluates_to_its_sleep_types ... ok
test references_are_made_followed_and_asked_about ... ok
test osi_answers_like_windows ... ok
test the_debug_object_takes_writes_and_refuses_reads ... ok
test source_operands_convert_by_the_conversion_rules ... ok
test recursion_runs_until_its_bound ... ok
test store_converts_to_the_named_type_and_copy_object_does_not ... ok

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/heap.rs (target/debug/deps/heap-1073d2dccd4a0b58)

running 19 tests
test a_nest_of_concatenates_holds_one_buffers_copy ... ok
test a_nest_of_mids_holds_one_copy ... ok
test a_nest_of_to_strings_holds_one_copy ... ok
test buffers_of_a_mebibyte_fill_it_to_the_bound ... ok
test a_returned_value_of_buffers_is_held_while_it_is_built ... ok
test a_returned_value_of_packages_is_held_while_it_is_built ... ok
test a_nest_of_concatenates_holds_one_strings_copy ... ok
test fields_read_through_each_other_are_held_while_they_are_read ... ok
test a_returned_value_is_given_back_when_it_is_the_callers ... ok
test a_refused_load_gives_back_what_it_took ... ok
test field_units_fill_it_to_the_bound ... ok
test package_elements_naming_nothing_yet_fill_it_to_the_bound ... ok
test a_nest_of_packages_is_held_while_it_is_read ... ok
test a_parent_whose_last_child_is_unwound_holds_no_map ... ok
test a_walk_is_held_against_the_bound_while_it_lasts ... ok
test empty_buffers_fill_it_to_the_bound ... ok
test a_full_interpreter_reads_a_field_that_fits_an_integer ... ok
test references_into_a_buffer_fill_it_to_the_bound ... ok
test devices_of_one_child_each_fill_it_to_the_bound ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s

     Running tests/hostile.rs (target/debug/deps/hostile-cdadefcf70eaf473)

running 24 tests
test a_reference_outliving_its_object_names_nothing ... ok
test a_reference_to_a_local_ends_with_its_method ... ok
test an_alias_goes_with_what_created_it ... ok
test a_reference_chain_cannot_form ... ok
test a_caller_value_is_refused_where_it_is_malformed ... ok
test a_loop_that_sleeps_is_bounded_in_time_asked ... ok
test a_package_length_that_leaves_its_package_is_refused ... ok
test a_field_beyond_what_is_held_is_refused ... ok
test a_resource_template_join_is_bounded ... ok
test names_and_strings_hold_only_what_their_encoding_allows ... ok
test objects_are_bounded_in_size ... ok
test the_wait_limit_is_exact_and_a_loads_too ... ok
test every_truncation_yields_a_value_or_a_refusal ... ok
test waits_and_stalls_are_bounded_in_time_asked ... ok
test a_conversion_is_bounded_in_what_it_constructs ... ok
test what_is_held_live_is_bounded_in_sum ... ok
test a_string_stored_to_a_field_is_bounded_as_it_is_written ... ok
test usage_is_each_calls_own_and_a_refusals_too ... ok
test a_loop_without_end_is_bounded_in_steps ... ok
test tables_and_names_are_held_against_the_live_bound ... ok
test work_in_one_step_is_charged_in_proportion ... ok
test nesting_is_bounded_before_the_stack ... ok
test a_walk_or_a_read_a_table_sizes_is_charged_for_all_of_it ... ok
test mutated_tables_yield_a_value_or_a_refusal ... ok

test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s

     Running tests/namespace.rs (target/debug/deps/namespace-be3e867676d2ee7e)

running 18 tests
test an_external_defines_nothing ... ok
test a_definition_needs_every_segment_but_its_last ... ok
test a_prefix_above_the_root_finds_nothing ... ok
test a_dsdt_loads_first_and_then_ssdts ... ok
test a_scope_opens_only_what_has_one ... ok
test definition_block_level_code_runs_at_load ... ok
test names_a_method_creates_go_when_it_exits ... ok
test a_dsdt_below_revision_2_makes_every_integer_32_bits ... ok
test a_collision_refuses_the_table_and_leaves_none_of_it ... ok
test a_caller_names_only_absolute_paths_and_passes_the_declared_arguments ... ok
test a_lone_name_is_searched_for_toward_the_root_and_a_path_is_not ... ok
test an_alias_acts_exactly_as_its_source ... ok
test a_processor_parses_opens_a_scope_and_takes_notify ... ok
test a_package_names_its_elements ... ok
test parent_prefixes_climb_one_scope_each ... ok
test the_predefined_objects_are_there_before_any_table ... ok
test qemus_dsdt_loads_and_its_s5_is_what_its_boot_logged ... ok
test qemus_methods_run_against_the_registers_they_read ... ok

test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/regions.rs (target/debug/deps/regions-8ea02fd76c87c2af)

running 18 tests
test a_buffer_field_over_a_conversion_and_a_conversion_into_one ... ok
test a_field_is_read_shifted_and_masked_from_its_units ... ok
test a_host_refusal_and_a_space_not_carried_are_refused_by_name ... ok
test a_field_wider_than_an_integer_is_a_buffer ... ok
test a_lock_field_holds_the_global_lock_across_its_access ... ok
test a_pci_config_region_addresses_its_devices_function ... ok
test a_pci_config_region_below_bridges_is_on_the_nearest_ones_secondary_bus ... ok
test a_pci_config_region_below_more_bridges_than_buses_is_refused ... ok
test an_access_past_its_region_is_refused ... ok
test an_access_type_sets_the_unit_and_anyacc_takes_the_narrowest_natural_one ... ok
test an_address_out_of_its_form_is_refused ... ok
test an_index_field_writes_its_offset_then_reaches_the_data ... ok
test a_bank_field_selects_its_bank_first ... ok
test a_field_store_writes_its_source_as_it_was_when_firmware_changes_it ... ok
test copy_object_into_a_field_writes_an_integer_or_buffer_alone ... ok
test buffer_fields_read_and_write_their_buffer ... ok
test system_io_and_the_embedded_controller_are_addressed_by_offset ... ok
test the_update_rule_completes_a_unit_the_field_covers_in_part ... ok

test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/walk.rs (target/debug/deps/walk-42edf53a674c656b)

running 6 tests
test every_object_is_walked_as_what_it_is ... ok
test siblings_are_read_in_the_order_they_were_declared ... ok
test an_alias_is_not_walked ... ok
test a_parent_of_thousands_is_walked_in_their_order ... ok
test a_namespace_nested_deep_is_walked_whole ... ok
test a_walk_takes_its_links_and_its_deepest_path_from_the_bound ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s

13:38:36 [ci] userland/acpiserver/aml: cargo test --manifest-path userland/acpiserver/aml/Cargo.toml

13:38:36 === [ci] userland/calc
    Finished `test` profile [optimized + debuginfo] target(s) in 0.16s
     Running unittests src/lib.rs (target/debug/deps/calc-7a1d2621a9ccb550)

running 64 tests
test app::tests::the_hex_letters_are_live_only_in_hex ... ok
test bigint::tests::addition_crosses_the_limb_boundary ... ok
test bigint::tests::conversions_refuse_what_does_not_fit ... ok
test app::tests::prog_reads_digits_in_the_active_base_and_refuses_the_others ... ok
test app::tests::the_expression_line_is_a_text_field ... ok
test app::tests::the_sign_button_flips_the_number_it_stands_after ... ok
test app::tests::every_button_reaches_the_same_place_a_key_does ... ok
test app::tests::typing_previews_and_equals_commits ... ok
test app::tests::a_whole_number_crosses_into_prog_and_back ... ok

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Gate: cargo run -- --ci host at 2c744d4, EXIT=0, part 8 of 8

test app::tests::a_fraction_is_cleared_on_the_way_into_prog_rather_than_rounded ... ok
test app::tests::a_caret_in_the_middle_of_a_wide_character_is_unreachable ... ok
test bigint::tests::multiplication_matches_a_known_product ... ok
test bigint::tests::gcd_is_non_negative_and_divides_both ... ok
test bigint::tests::division_is_exact_over_many_shapes ... ok
test bigint::tests::radix_parsing_and_lengths ... ok
test bigint::tests::powers_and_roots_agree ... ok
test bigint::tests::zero_has_one_representation ... ok
test dec::tests::arithmetic_survives_a_wide_exponent_gap ... ok
test app::tests::every_button_of_both_layouts_is_pressable_from_any_state ... ok
test dec::tests::a_whole_power_works_on_a_negative_base ... ok
test dec::tests::root_two_matches_its_published_digits ... ok
test dec::tests::rounding_is_half_to_even_and_canonical ... ok
test app::tests::the_angle_button_says_which_one_it_is ... ok
test dec::tests::ln_two_matches_its_published_digits ... ok
test dec::tests::e_matches_its_published_digits_and_the_factorial_series ... ok
test dec::tests::the_refusals_are_named_rather_than_taken ... ok
test num::tests::a_non_terminating_exact_value_is_shown_rounded_and_marked ... ok
test app::tests::a_field_that_is_full_says_so_rather_than_growing ... ok
test num::tests::division_by_zero_is_refused_on_both_paths ... ok
test num::tests::exact_arithmetic_stays_exact ... ok
test dec::tests::sine_and_cosine_of_one_match_their_published_digits ... ok
test num::tests::percent_is_an_exact_hundredth ... ok
test num::tests::powers_are_exact_while_that_is_worth_doing ... ok
test num::tests::rendering_switches_to_a_scientific_form_rather_than_dropping_digits ... ok
test num::tests::the_marker_propagates_once_it_is_earned ... ok
test num::tests::a_whole_power_of_an_approximation_does_not_need_a_positive_base ... ok
test num::tests::degrees_are_converted_at_the_call ... ok
test parser::tests::every_refusal_is_named_and_none_is_a_crash ... ok
test prog::tests::a_fractional_division_is_refused_rather_than_rounded ... ok
test prog::tests::arithmetic_wraps_at_the_word ... ok
test prog::tests::digits_are_read_in_the_active_base ... ok
test parser::tests::values_side_by_side_multiply ... ok
test dec::tests::pi_matches_its_published_digits_and_machin ... ok
test parser::tests::the_four_operations_stay_exact ... ok
test parser::tests::precedence_and_associativity ... ok
test parser::tests::degrees_are_a_toggle_and_nothing_else ... ok
test prog::tests::shifts_saturate_rather_than_wrap_the_count ... ok
test prog::tests::the_logic_operators_have_c_precedence ... ok
test prog::tests::the_panes_show_the_same_bits_three_ways ... ok
test rational::tests::a_tenth_plus_two_tenths_is_three_tenths ... ok
test rational::tests::a_decimal_terminates_only_on_twos_and_fives ... ok
test rational::tests::a_third_times_three_is_one ... ok
test rational::tests::construction_normalizes ... ok
test rational::tests::division_by_zero_is_the_only_refusal ... ok
test rational::tests::exact_roots_only_where_both_halves_are_squares ... ok
test rational::tests::ordering_is_by_value ... ok
test rational::tests::parsing_takes_what_a_literal_may_be ... ok
test rational::tests::powers_include_the_reciprocal ... ok
test parser::tests::functions_are_typeable_by_name ... ok
test parser::tests::an_application_finishes_before_a_power_does ... ok
test parser::tests::a_negative_base_under_a_fractional_power_is_named ... ok
test prog::tests::nothing_typeable_panics_here_either ... ok
test dec::tests::the_identities_hold_to_the_displayed_precision ... ok
test parser::tests::no_string_over_the_alphabet_panics ... ok

test result: ok. 64 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

     Running unittests src/main.rs (target/debug/deps/calc-d3e4f49f042c74be)

running 6 tests
test tests::hit_testing_follows_the_layout_at_every_size ... ok
test tests::the_keys_tile_the_panel_at_every_size ... ok
test tests::tracks_never_lose_a_pixel ... ok
test tests::every_face_the_panel_shows_was_baked ... ok
test tests::every_key_face_fits_its_key ... ok
test tests::the_longest_answer_is_never_cut ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/parser_identities.rs (target/debug/deps/parser_identities-a0fd5819088424fa)

running 6 tests
test the_rest_of_the_table_is_where_it_was ... ok
test the_typo_is_refused_by_name ... ok
test a_logarithm_round_trips_through_the_parser ... ok
test the_reported_expressions_have_the_values_they_should ... ok
test a_power_after_a_call_squares_what_the_call_returned ... ok
test the_pythagorean_identity_holds_through_the_parser ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

13:38:37 [ci] userland/calc: cargo test --manifest-path userland/calc/Cargo.toml

13:38:37 === [ci] userland/compositor/desktop
    Finished `test` profile [optimized + debuginfo] target(s) in 0.15s
     Running unittests src/lib.rs (target/debug/deps/toyos_desktop-a34f95729f9983c3)

running 95 tests
test budget::tests::a_client_that_names_no_size_is_never_too_large ... ok
test budget::tests::a_window_larger_than_the_screen_is_refused_by_name ... ok
test budget::tests::capacity_is_checked_before_size ... ok
test budget::tests::the_poller_ceiling_binds_before_memory_does ... ok
test damage::tests::an_empty_rect_is_not_damage ... ok
test damage::tests::a_contained_rect_changes_nothing ... ok
test damage::tests::take_clips_to_the_screen_and_drops_what_falls_outside ... ok
test damage::tests::the_bound_holds_and_the_list_stays_disjoint ... ok
test damage::tests::two_distant_rects_stay_two ... ok
test budget::tests::a_window_costs_whole_pages ... ok
test damage::tests::a_bridging_rect_collapses_both_it_joins ... ok
test budget::tests::a_machine_with_almost_no_memory_still_gets_one_window ... ok
test budget::tests::a_bigger_screen_affords_fewer_windows ... ok
test hit::tests::an_open_launcher_covers_the_window_beneath_it ... ok
test hit::tests::each_button_answers_for_exactly_the_rect_it_is_drawn_in ... ok
test hit::tests::nothing_under_the_pointer_is_the_desktop ... ok
test hit::tests::the_bar_past_its_own_buttons_is_desktop ... ok
test hit::tests::the_front_window_wins_an_overlap_and_a_minimized_one_never_does ... ok
test hit::tests::the_launcher_is_only_hit_while_it_is_open ... ok
test hit::tests::the_resize_corner_belongs_to_normal_windows_only ... ok
test hit::tests::the_taskbar_takes_precedence_over_a_window_reaching_into_it ... ok
test input::tests::a_batch_folds_to_its_transitions_and_its_last_position ... ok
test input::tests::a_button_already_down_is_not_a_press ... ok
test input::tests::a_click_on_a_maximized_title_bar_does_not_unmaximize_it ... ok
test input::tests::a_press_on_a_normal_title_bar_drags_at_once ... ok
test input::tests::a_release_is_always_the_window_s ... ok
test input::tests::a_resize_in_progress_keeps_the_resize_cursor_wherever_the_pointer_went ... ok
test input::tests::a_resize_grab_changes_the_size_and_not_the_origin ... ok
test input::tests::a_tab_click_reveals_minimizes_or_raises ... ok
test input::tests::a_truncated_report_is_not_decoded_from_what_follows_it ... ok
test input::tests::a_window_closed_mid_drag_ends_the_grab_instead_of_panicking_or_moving_another ... ok
test input::tests::alt_tab_cycles_even_with_nothing_focused_and_ctrl_n_spawns ... ok
test input::tests::dragging_reports_both_the_rect_it_left_and_the_one_it_took ... ok
test input::tests::an_unclaimed_super_chord_reaches_the_window ... ok
test input::tests::dragging_survives_a_lower_window_closing_and_still_moves_the_right_one ... ok
test input::tests::escape_closes_the_launcher_only_while_it_is_open ... ok
test input::tests::no_window_means_no_super_chord_does_anything ... ok
test input::tests::releasing_a_drag_at_an_edge_snaps_and_anywhere_else_does_not ... ok
test input::tests::the_cursor_belongs_to_the_window_under_it_and_not_to_the_focused_one ... ok
test input::tests::releasing_a_resize_asks_for_the_buffer_and_never_snaps ... ok
test input::tests::the_super_chords_toggle_against_the_mode_the_window_is_in ... ok
test input::tests::the_tablet_range_maps_onto_the_screen_and_never_off_it ... ok
test input::tests::travelling_past_the_threshold_restores_the_window_under_the_pointer ... ok
test layout::tests::a_maximized_frame_is_exactly_the_work_area ... ok
test layout::tests::a_drag_cannot_put_a_title_bar_off_the_top ... ok
test layout::tests::a_normal_window_has_no_mode_frame ... ok
test layout::tests::a_requested_window_is_centred_in_the_work_area ... ok
test layout::tests::a_resize_floors_at_the_minimum_and_never_moves_the_origin ... ok
test layout::tests::an_unmaximized_window_keeps_the_pointer_at_the_same_fraction_of_its_title ... ok
test layout::tests::buttons_sit_inside_the_title_bar_and_do_not_overlap ... ok
test layout::tests::reflow_keeps_the_size_and_brings_the_frame_back_on_screen ... ok
test layout::tests::frame_and_content_are_inverses ... ok
test layout::tests::reflow_leaves_a_window_that_already_fits_where_it_is ... ok
test layout::tests::restoring_under_a_pointer_at_the_left_edge_keeps_the_title_bar_reachable ... ok
test layout::tests::snapped_halves_never_overlap_and_never_reach_the_taskbar ... ok
test layout::tests::successive_unsized_windows_cascade_and_wrap ... ok
test layout::tests::the_layout_follows_the_metrics_it_is_given ... ok
test plan::tests::a_blit_never_reads_outside_the_buffer ... ok
test plan::tests::a_clip_that_misses_the_window_blits_nothing ... ok
test plan::tests::a_minimized_window_is_not_drawn_and_does_not_hide_the_wallpaper ... ok
test plan::tests::a_region_wholly_inside_the_taskbar_plans_only_the_bar ... ok
test plan::tests::a_window_mid_resize_does_not_cover_the_wallpaper_it_cannot_paint ... ok
test plan::tests::an_opaque_window_covering_the_region_costs_no_wallpaper ... ok
test plan::tests::an_empty_desktop_is_wallpaper_and_the_bar ... ok
test plan::tests::no_region_is_left_with_nothing_to_draw_in_it ... ok
test plan::tests::the_launcher_is_planned_over_every_window ... ok
test plan::tests::the_wallpaper_never_reaches_under_the_taskbar ... ok
test plan::tests::windows_are_planned_bottom_to_top_and_only_where_they_reach ... ok
test rect::tests::confine_brings_a_window_back_onto_a_smaller_screen ... ok
test rect::tests::a_point_on_the_far_edge_is_outside ... ok
test rect::tests::a_wire_rect_cannot_wrap_into_the_whole_screen ... ok
test rect::tests::containment_and_overlap_agree_on_touching_edges ... ok
test rect::tests::extents_never_go_negative ... ok
test rect::tests::union_ignores_an_empty_operand ... ok
test stack::tests::a_topmost_window_raises_above_every_other_topmost_one ... ok
test stack::tests::an_ordinary_window_opened_after_a_topmost_one_goes_under_it ... ok
test stack::tests::cycling_leaves_a_topmost_window_on_top ... ok
test stack::tests::cycling_needs_two_ordinary_windows ... ok
test stack::tests::cycling_sends_the_top_window_to_the_bottom_and_reveals_the_next ... ok
test stack::tests::focus_is_the_topmost_window_that_is_not_minimized ... ok
test stack::tests::raising_the_window_already_on_top_leaves_it_there ... ok
test stack::tests::raising_an_ordinary_window_cannot_lift_it_over_a_topmost_one ... ok
test taskbar::tests::a_crowded_bar_has_no_gap_rather_than_a_backwards_one ... ok
test taskbar::tests::a_narrow_screen_keeps_the_status_box_on_it ... ok
test taskbar::tests::a_tab_face_stays_inside_its_tab ... ok
test taskbar::tests::tabs_are_adjacent_and_the_new_button_follows_the_last ... ok
test taskbar::tests::the_gap_is_exactly_what_the_tabs_and_the_status_box_leave ... ok
test taskbar::tests::the_launcher_sits_on_the_bar_and_grows_upward ... ok
test taskbar::tests::the_strip_is_the_bottom_of_the_screen_and_nothing_else ... ok
test window::tests::a_client_cannot_damage_more_than_its_own_window ... ok
test window::tests::a_minimized_window_is_never_opaque ... ok
test window::tests::a_window_shrunk_below_its_buffer_is_still_opaque ... ok
test window::tests::only_the_first_departure_from_normal_is_saved ... ok
test window::tests::a_window_mid_resize_is_not_opaque_and_its_backing_is_the_buffer ... ok
test damage::tests::coverage_survives_a_random_stream ... ok

test result: ok. 95 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:38:37 [ci] userland/compositor/desktop: cargo test --manifest-path userland/compositor/desktop/Cargo.toml

13:38:37 === [ci] userland/diskserver
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.15s
     Running unittests src/lib.rs (target/debug/deps/diskserver-2e5dc1c785f21dcd)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/main.rs (target/debug/deps/diskserver-388b5f963aa1f320)

running 3 tests
test tests::an_open_reaches_only_what_its_grant_admits ... ok
test tests::a_listing_names_only_what_its_grant_admits ... ok
test tests::an_unusable_or_unclaimed_controller_is_refused_and_an_absent_one_lists_nothing ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:38:37 [ci] userland/diskserver: cargo test --manifest-path userland/diskserver/Cargo.toml

13:38:37 === [ci] userland/fileserver
    Finished `test` profile [optimized + debuginfo] target(s) in 0.16s
     Running unittests src/lib.rs (target/debug/deps/fileserver-eb78af729d24b848)

running 40 tests
test cache::tests::a_write_past_the_disk_is_refused ... ok
test cache::tests::a_write_reaches_the_disk_at_the_flush_and_not_before ... ok
test cache::tests::dirty_runs_go_out_in_runs ... ok
test cache::tests::contiguous_misses_are_one_request_and_a_second_read_is_none ... ok
test data::tests::a_file_unlinked_while_open_answers_gone ... ok
test data::tests::a_file_reads_back_what_was_written_across_pages_and_holes ... ok
test data::tests::data_is_one_partition_counted_over_both_sources ... ok
test data::tests::a_shrink_zeroes_what_it_cut_and_regrowth_reads_zeros ... ok
test fat::tests::a_device_error_is_io_and_not_not_found ... ok
test data::tests::a_rename_moves_an_open_file_and_a_directory_with_its_contents ... ok
test fat::tests::a_partial_write_over_an_unreadable_block_writes_nothing ... ok
test data::tests::an_entry_refused_costs_only_its_own_file ... ok
test data::tests::directories_are_listed_and_refuse_what_posix_refuses ... ok
test data::tests::a_closed_file_keeps_its_length_across_a_remount ... ok
test fat::tests::a_refused_read_is_an_error_and_never_zeros ... ok
test resolve::tests::a_cycle_is_refused_and_not_followed_for_ever ... ok
test resolve::tests::a_link_that_stays_inside_by_going_up_and_back_resolves ... ok
test data::tests::a_refused_rename_over_an_open_file_keeps_its_unsynced_writes ... ok
test resolve::tests::a_plain_path_lands_under_the_root ... ok
test resolve::tests::a_relative_link_is_read_against_its_own_directory ... ok
test resolve::tests::an_absolute_link_is_handed_back_with_the_rest_of_the_path ... ok
test resolve::tests::an_empty_target_names_nothing ... ok
test resolve::tests::no_link_climbs_out_of_the_root ... ok
test resolve::tests::the_last_link_is_left_alone_when_asked ... ok
test rights::tests::a_request_the_wire_does_not_have_is_neither ... ok
test rights::tests::an_open_changes_the_directory_by_every_flag_but_read ... ok
test rights::tests::every_request_that_writes_changes_the_directory_and_none_that_reads_does ... ok
test volume::tests::the_anchor_is_the_kernels ... ok
test writeback::tests::a_sync_that_left_a_file_unwritten_is_due_again ... ok
test volume::tests::a_clock_that_always_straddles_is_refused_by_name - should panic ... ok
test data::tests::a_directory_rename_the_format_refuses_part_way_moves_nothing ... ok
test data::tests::a_write_its_entry_could_not_name_is_refused_and_every_accepted_one_kept ... ok
test cache::tests::at_the_dirty_limit_a_refused_flush_refuses_the_write_and_the_cache_grows_no_larger ... ok
test fat::tests::a_read_only_volume_never_writes_its_disk ... ok
test cache::tests::clean_blocks_are_bounded_and_dirty_ones_are_kept ... ok
test data::tests::every_file_reads_back_as_a_plain_map_of_its_accepted_writes ... ok
test fat::tests::an_unreadable_entry_is_io_and_not_undated ... ok
test fat::tests::a_file_that_will_not_level_costs_only_its_own_file ... ok
test data::tests::a_directory_rename_is_whole_under_one_name_wherever_the_server_is_killed ... ok
test data::tests::a_directory_rename_is_whole_under_one_name_whichever_write_is_refused ... ok

test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.41s

     Running unittests src/main.rs (target/debug/deps/fileserver-1f58d9b70a9fbdc1)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:38:40 [ci] userland/fileserver: cargo test --manifest-path userland/fileserver/Cargo.toml

13:38:40 === [ci] userland/logkeeper
    Finished `test` profile [optimized + debuginfo] target(s) in 0.11s
     Running unittests src/main.rs (target/debug/deps/logkeeper-d1443c6ba5f4ad71)

running 9 tests
test store::tests::a_flooding_boot_costs_its_own_middle_and_nobody_elses_start ... ok
test origin::tests::a_closing_record_ends_its_writers_line_and_nothing_else ... ok
test origin::tests::a_stamp_ahead_of_the_clock_is_read_as_now ... ok
test origin::tests::a_writers_pieces_are_its_line_whoever_wrote_between_them ... ok
test origin::tests::what_is_held_is_bounded_and_said ... ok
test policy::tests::every_step_names_itself ... ok
test store::tests::nothing_goes_while_there_is_room ... ok
test store::tests::whole_old_boots_go_first_then_earlier_continuations ... ok
test tests::readers_and_inspect_share_one_port_and_never_one_request ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:38:40 [ci] userland/logkeeper: cargo test --manifest-path userland/logkeeper/Cargo.toml

13:38:40 === [ci] userland/netstack
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running unittests src/main.rs (target/debug/deps/netstack-a376e3d5013a3049)

running 6 tests
test virtio_net::tests::a_full_transmit_queue_has_no_room_until_the_device_gives_heads_back ... ok
test virtio_net::tests::a_used_index_past_every_frame_offered_ends_the_driver - should panic ... ok
test virtio_net::tests::a_used_head_past_the_table_ends_the_driver - should panic ... ok
test virtio_net::tests::a_frame_offered_to_a_full_transmit_queue_is_not_taken - should panic ... ok
test virtio_net::tests::a_used_length_past_the_chains_writable_bytes_ends_the_driver - should panic ... ok
test virtio_net::tests::a_used_head_with_no_chain_in_flight_ends_the_driver - should panic ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:38:41 [ci] userland/netstack: cargo test --manifest-path userland/netstack/Cargo.toml

13:38:41 === [ci] userland/netstack/mdns
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.21s
     Running unittests src/lib.rs (target/debug/deps/toyos_mdns-aa5c41f3fcc05721)

running 36 tests
test tests::a_host_name_is_one_label ... ok
test tests::a_legacy_resolver_gets_its_id_its_question_and_a_short_ttl ... ok
test tests::a_links_return_under_a_lost_name_probes_at_once_in_place_of_the_retry ... ok
test tests::a_query_for_this_name_is_answered_to_the_group ... ok
test tests::a_name_under_probe_is_answered_to_nobody ... ok
test tests::a_question_spelled_by_a_pointer_is_read ... ok
test tests::a_flapping_link_restarts_the_probe_and_nothing_is_announced_until_one_runs_whole ... ok
test tests::a_retry_no_host_answers_claims_and_announces_the_name ... ok
test tests::a_question_that_is_not_this_hosts_is_not_answered ... ok
test tests::a_retry_the_holder_answers_loses_again_and_the_next_is_a_minute_after_it ... ok
test tests::a_query_from_off_the_link_is_not_answered ... ok
test tests::a_name_is_matched_whatever_its_case_and_any_asks_for_it_too ... ok
test tests::a_malformed_message_is_no_question ... ok
test tests::an_address_after_none_is_probed_for_and_a_new_one_under_a_held_name_is_announced ... ok
test tests::a_lost_name_is_probed_for_again_a_minute_after_the_loss_and_not_before ... ok
test tests::forged_probes_that_win_every_tiebreak_cost_one_probe_in_five_seconds_and_the_name_is_claimed_when_they_stop ... ok
test tests::no_cut_of_a_conflicting_response_or_of_a_winning_probe_is_one ... ok
test tests::rfc6762_6_a_probe_for_a_held_name_is_answered_at_once_by_unicast_or_250_ms_after_the_records_last_multicast ... ok
test tests::rfc6762_8_1_a_conflicting_response_received_as_the_last_250_ms_end_takes_the_name ... ok
test tests::rfc6762_8_1_a_conflicting_response_under_the_probe_takes_the_name_and_nothing_else_does ... ok
test tests::rfc6762_8_1_a_probe_asks_any_for_the_name_with_the_unicast_bit_and_proposes_its_record_in_the_authority_section ... ok
test tests::rfc6762_8_1_nothing_heard_before_the_first_probe_is_sent_is_a_conflict ... ok
test tests::rfc6762_8_1_a_probe_attempt_within_ten_seconds_of_a_conflict_waits_five_seconds_first ... ok
test tests::rfc6762_8_a_link_that_returns_is_probed_on_before_the_name_is_announced_or_answered_with_again ... ok
test tests::rfc6762_9_a_held_name_another_host_answers_for_under_the_new_probe_is_lost ... ok
test tests::the_group_address_maps_to_its_ethernet_address ... ok
test tests::the_record_is_multicast_at_most_once_a_second_and_a_query_inside_it_waits ... ok
test tests::the_unicast_bit_sends_the_answer_back_to_the_asker ... ok
test tests::rfc6762_9_a_conflicting_response_resets_a_held_name_to_probing_and_nothing_else_does ... ok
test tests::a_storm_of_forged_conflicts_at_a_lost_name_costs_one_probe_a_minute ... ok
test tests::rfc6762_8_1_three_probes_250_ms_apart_follow_the_drawn_delay_and_the_name_is_announced_250_ms_after_the_third ... ok
test tests::rfc6762_8_2_a_probe_is_compared_by_class_then_type_then_data_and_a_longer_list_wins ... ok
test tests::rfc6762_8_2_the_lexicographically_later_data_wins_a_simultaneous_probe_and_the_earlier_waits_a_second ... ok
test tests::forged_probes_that_win_every_tiebreak_at_a_lost_name_cost_one_probe_a_minute ... ok
test tests::a_storm_of_forged_answers_costs_one_probe_and_the_name ... ok
test tests::forged_answers_that_spare_every_probe_cost_one_probing_in_five_seconds_and_the_name_is_held_when_they_stop ... ok

test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

13:38:41 [ci] userland/netstack/mdns: cargo test --manifest-path userland/netstack/mdns/Cargo.toml

13:38:41 === [ci] userland/netstack/node
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.24s
     Running unittests src/lib.rs (target/debug/deps/toyos_net_node-aa2c64cc625e7067)

running 1 test
test lease::tests::the_log_lines_are_taken_and_the_report_before_them_keeps_its_turn ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/datagram.rs (target/debug/deps/datagram-e86a84e5f5c26267)

running 9 tests
test a_refusal_is_logged_by_the_call_that_met_it ... ok
test a_datagram_leaves_as_the_call_named_it ... ok
test a_clients_datagram_for_a_host_nobody_answers_for_is_dropped_and_the_client_is_told_nothing ... ok
test a_datagram_accepted_for_a_host_is_no_broadcast_after_the_server_renews_a_narrower_prefix ... ok
test a_closed_socket_frees_its_port_and_what_it_accepted_still_leaves ... ok
test a_broadcast_needs_its_permission ... ok
test a_datagram_for_a_bound_port_is_handed_over_with_where_it_came_from ... ok
test each_refusal_is_answered_in_the_pipes_word_for_it ... ok
test a_socket_holds_the_port_it_named_or_the_one_its_draw_picked ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/host.rs (target/debug/deps/host-803046cba786c7e9)

running 1 test
test a_host_gives_a_connection_the_nodelay_its_listener_had_when_it_began ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

     Running tests/lease.rs (target/debug/deps/lease-b278d53b751b0a1a)

running 21 tests
test a_hundred_refused_replies_are_one_line_and_a_count ... ok
test a_lease_that_runs_out_under_the_probe_leaves_no_address ... ok
test a_link_that_returns_keeps_a_held_lease_and_announces_it ... ok
test a_renewal_without_a_router_takes_the_route_and_keeps_the_address ... ok
test a_probe_the_link_drops_under_is_abandoned ... ok
test a_message_with_no_link_is_counted_and_not_sent ... ok
test a_renewed_prefix_reaches_ip_before_its_router ... ok
test a_nak_takes_address_route_and_resolvers_in_one_step ... ok
test a_reply_without_the_cookie_is_refused_by_name ... ok
test a_router_ip_refuses_is_no_router ... ok
test a_renewal_for_a_server_nobody_answers_for_waits_and_is_dropped_and_the_client_is_told_nothing ... ok
test a_link_that_returns_with_no_lease_starts_discovery_over_at_once ... ok
test a_conflict_under_the_probe_declines_and_holds_nothing ... ok
test a_listener_stands_while_its_address_is_lost_and_answers_when_it_is_back ... ok
test expiry_takes_address_route_and_resolvers_in_one_step ... ok
test next_deadline_is_the_earliest_of_the_clients_and_the_stacks ... ok
test no_cut_of_the_ack_is_an_ack ... ok
test no_frame_is_from_the_address_before_it_is_verified ... ok
test the_lease_end_to_end ... ok
test a_second_conflict_takes_a_held_lease_and_declines_it ... ok
test no_flipped_bit_of_the_ack_yields_another_lease ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s

     Running tests/listeners.rs (target/debug/deps/listeners-0155aace57c521d2)

running 31 tests
test a_listen_at_every_address_takes_no_port_held_at_the_machines_address ... ok
test a_listen_on_a_taken_port_is_refused_and_a_drawn_port_listens ... ok
test a_datagram_socket_holds_a_place_and_a_bind_without_one_makes_nothing ... ok
test a_listener_holds_a_place_and_a_listen_without_one_makes_nothing ... ok
test a_connect_between_two_accepts_is_queued_not_reset ... ok
test a_listen_at_the_machines_address_takes_no_port_held_at_every_address ... ok
test a_connect_past_the_places_is_refused_and_sends_nothing ... ok
test a_listener_holds_the_option_its_listen_named_from_its_first_connection ... ok
test a_listener_is_at_the_address_it_named_and_only_one_the_machine_holds ... ok
test a_listener_answers_a_syn_and_wakes_its_owner_when_the_handshake_ends ... ok
test a_listener_ended_for_its_wake_gives_its_place_to_another_in_the_same_pass ... ok
test a_handshake_nobody_finishes_leaves_the_port_open_and_is_given_up ... ok
test a_handshake_reset_before_it_ends_leaves_the_next_connection_its_listeners_option ... ok
test a_stream_reset_for_its_pipe_gives_its_place_to_a_connection_that_waits ... ok
test a_second_listen_at_the_machines_address_takes_no_port_held_there ... ok
test a_departed_clients_connection_holds_its_place_until_it_is_cut ... ok
test a_wake_is_owed_only_for_a_connection_there_is_a_place_for ... ok
test a_stream_starts_with_the_options_its_connection_took_from_its_listener ... ok
test a_wake_left_by_a_connection_its_peer_reset_stands_for_the_next ... ok
test closing_a_listener_resets_what_waits_and_frees_its_port ... ok
test a_request_for_a_stream_that_was_cut_names_nothing ... ok
test an_accept_answers_the_option_of_a_stream_its_own_pass_let_go ... ok
test a_wake_the_owners_pipe_refuses_ends_the_listener ... ok
test an_accept_spends_a_wake_whatever_it_answers ... ok
test closing_a_listener_gives_its_place_to_a_connection_that_waits_at_another ... ok
test closing_a_connect_gives_its_place_to_a_connection_that_waits ... ok
test more_places_wake_the_owner_of_a_connection_that_waits ... ok
test no_cut_of_a_syn_is_a_syn ... ok
test peers_at_more_addresses_than_there_are_places_hold_no_stream_past_them ... ok
test an_accepted_stream_is_one_of_its_peers_addresss_sixteen ... ok
test no_flipped_bit_of_a_syn_wakes_an_owner_or_ends_a_listener ... ok

test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/name.rs (target/debug/deps/name-8c603c20311b1485)

running 21 tests
test a_query_from_off_the_link_is_not_answered ... ok
test an_answer_goes_to_the_group_or_to_the_asker_as_the_query_asked ... ok
test a_name_has_no_link_while_the_link_is_down_and_the_links_return_is_probed_on ... ok
test a_held_name_is_defended_and_probed_for_again_when_another_host_answers_for_it ... ok
test a_lost_name_is_probed_for_again_a_minute_after_each_loss_and_claimed_once_no_host_answers ... ok
test a_links_return_under_a_lost_name_is_probed_on_at_once_and_no_retry_follows_it ... ok
test a_held_name_is_probed_for_again_when_the_link_returns_and_announced_only_then ... ok
test a_second_query_inside_a_second_waits_for_the_second_to_end ... ok
test a_held_lease_is_probed_for_three_times_and_its_name_announced_only_then ... ok
test an_answer_udp_refuses_is_counted_and_dropped ... ok
test a_later_probe_of_another_hosts_makes_the_node_wait_a_second_and_probe_again ... ok
test a_conflicting_response_received_as_the_probing_ends_takes_the_name ... ok
test a_query_in_a_frame_to_the_groups_address_reaches_the_responder ... ok
test an_answer_to_a_link_local_asker_goes_to_its_own_link_address ... ok
test every_message_leaves_with_ttl_255 ... ok
test another_hosts_answer_under_the_probe_takes_the_name_and_the_node_says_so ... ok
test no_cut_of_a_query_is_answered ... ok
test the_group_is_joined_and_its_membership_reported ... ok
test the_name_is_answered_only_while_its_lease_is_held ... ok
test the_names_port_is_held_by_one_socket ... ok
test the_first_probe_follows_the_delay_the_callers_draw_gives ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/resolve.rs (target/debug/deps/resolve-94085b0fb47f9deb)

running 33 tests
test a_lookup_ends_when_its_leases_resolvers_change ... ok
test a_query_holds_its_port_while_its_answer_is_read_and_an_ended_lookup_holds_none ... ok
test a_lookup_is_not_carried_by_a_later_ones_schedule ... ok
test a_lookup_with_no_resolver_to_ask_is_refused_as_not_connected ... ok
test a_query_is_rfc_1035s_octets_from_a_port_and_with_an_id_of_its_own_draws ... ok
test a_lookup_udp_refuses_every_resolver_of_ends_in_the_call_that_started_it ... ok
test a_query_for_a_resolver_ip_has_given_up_ends_its_lookup_in_the_opportunity_that_would_have_carried_it ... ok
test a_forged_report_of_the_querys_own_addresses_and_ports_ends_nothing_and_the_answer_behind_it_is_taken ... ok
test a_lookup_outlives_a_renewal_that_names_the_same_resolvers ... ok
test a_lookup_let_go_after_it_ended_takes_its_answer_with_it ... ok
test a_burst_at_a_resolver_not_yet_resolved_is_on_the_wire_once_the_resolver_answers_arp ... ok
test a_clients_datagrams_behind_the_burst_wait_in_their_own_socket_and_take_no_querys_place ... ok
test a_lookup_ends_when_its_lease_is_lost ... ok
test a_query_udp_refuses_is_counted_holds_no_port_and_the_next_resolver_is_asked_at_once ... ok
test a_lookup_let_go_frees_its_ports_and_its_place_at_once ... ok
test a_query_the_network_reports_unreachable_is_counted_and_ends_a_lookup_with_no_other_resolver ... ok
test a_query_its_resolver_refuses_by_icmp_is_counted_and_the_next_resolver_is_asked_at_once ... ok
test a_recorded_reply_of_a_public_resolver_answers_the_nodes_query ... ok
test a_reply_from_port_0_is_not_read ... ok
test a_reply_is_read_only_at_the_address_its_query_left_from ... ok
test a_reply_is_read_only_from_port_53 ... ok
test a_reply_is_read_only_from_the_resolver_its_query_went_to ... ok
test a_reply_on_another_querys_port_is_not_read ... ok
test a_resolver_that_never_answers_is_asked_at_each_waits_end ... ok
test an_alias_answered_late_restarts_the_lookup_and_lets_the_old_names_queries_go ... ok
test a_report_that_is_not_about_the_query_or_is_a_hint_ends_no_wait ... ok
test forged_reports_and_another_resolvers_failures_end_nothing_and_the_answer_behind_them_is_taken ... ok
test a_resolver_the_lease_names_twice_is_asked_once_a_wait_whatever_it_reports ... ok
test the_query_asked_in_a_dropped_querys_place_leaves_in_the_same_opportunity ... ok
test reports_alone_end_no_lookup_and_ask_no_resolver_twice_inside_a_wait ... ok
test nothing_but_its_answer_ends_a_lookup ... ok
test the_lookup_past_the_cap_is_refused_until_an_answer_is_taken ... ok
test a_query_with_no_port_to_leave_from_ends_its_lookup_by_name ... ok

test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/slirp.rs (target/debug/deps/slirp-093165c007ff89fc)

running 3 tests
test slirps_offer_is_answered_with_a_request_for_what_it_offered ... ok
test slirps_ack_is_the_lease_its_bytes_name ... ok
test the_lease_is_read_from_the_acks_own_mask ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/streams.rs (target/debug/deps/streams-1e6b36f14ca6826f)

running 40 tests
test a_connect_before_the_lease_is_refused_and_sends_nothing ... ok
test a_connect_past_its_deadline_is_timed_out_at_the_deadline ... ok
test a_close_sends_what_the_pipe_held_and_then_the_fin ... ok
test a_connect_closed_before_its_answer_is_answered_closed ... ok
test a_close_with_text_unread_resets ... ok
test a_client_that_left_is_finished_by_the_stack ... ok
test a_connect_is_a_handshake_and_its_answer_names_the_port ... ok
test a_connect_nobody_answers_arp_for_fails_when_tcp_knows ... ok
test a_finished_send_pipe_goes_with_its_reader ... ok
test a_deadline_moves_an_established_stream_with_no_opportunity_after_it ... ok
test a_client_done_writing_after_the_peers_fin_has_100_seconds_without_progress ... ok
test a_frame_moves_an_established_stream_with_no_opportunity_after_it ... ok
test a_full_pipe_keeps_the_rest_in_the_stack_and_is_watched_for_room ... ok
test a_pipe_that_is_no_pipe_resets_its_connection ... ok
test a_reader_that_left_is_not_written_to_again ... ok
test a_refused_connect_is_answered_with_the_refusal ... ok
test a_live_client_that_is_done_writing_is_not_timed ... ok
test a_refused_watch_resets_only_a_stream_that_holds_the_end ... ok
test a_reset_after_the_clients_shutdown_lets_the_send_pipe_go_first ... ok
test a_reset_after_the_peers_fin_ends_the_send_pipe ... ok
test a_reset_ends_both_pipes_and_the_stream ... ok
test a_shutdown_after_the_peers_fin_keeps_the_send_pipe_past_the_connections_end ... ok
test a_shutdown_sends_what_the_pipe_held_and_then_the_fin ... ok
test a_writer_that_leaves_after_the_shutdown_leaves_the_stream_to_its_reader ... ok
test an_established_streams_connect_deadline_is_gone ... ok
test a_departed_clients_unsent_bytes_have_100_seconds ... ok
test room_in_the_pipe_opens_the_window_at_the_next_opportunity ... ok
test nodelay_reaches_the_stack ... ok
test text_the_pipe_had_no_room_for_outlives_both_fins ... ok
test nothing_leaves_the_pipe_that_the_stack_will_not_take ... ok
test a_departed_clients_tail_arrives_whole_while_its_peer_takes_it ... ok
test the_end_of_the_clients_writing_is_a_fin_and_the_peer_still_sends ... ok
test no_cut_of_a_segment_is_a_segment ... ok
test nothing_leaves_the_stack_that_the_pipe_did_not_take ... ok
test the_peers_fin_ends_the_clients_reading_and_not_its_writing ... ok
test the_peers_fin_after_the_clients_shutdown_leaves_the_send_pipe_to_its_writer ... ok
test a_peer_at_another_address_keeps_its_own_sixteen ... ok
test no_flipped_bit_of_a_segment_delivers_other_bytes ... ok
test a_departed_clients_connection_past_the_sixteen_is_one_of_them_once_one_is_done ... ok
test a_peer_keeps_sixteen_departed_clients_connections_alive_and_no_more ... ok

test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s

13:38:42 [ci] userland/netstack/node: cargo test --manifest-path userland/netstack/node/Cargo.toml

13:38:42 === [ci] userland/pkg
    Finished `test` profile [optimized + debuginfo] target(s) in 0.28s
     Running unittests src/lib.rs (target/debug/deps/pkg-267920d77a81bf09)

running 12 tests
test archive::tests::a_directory_and_two_files_come_back_whole ... ok
test archive::tests::a_header_that_does_not_sum_and_a_size_past_the_end_are_both_refused ... ok
test archive::tests::a_name_that_leaves_the_archive_is_refused ... ok
test archive::tests::every_type_but_a_file_and_a_directory_is_refused ... ok
test sums::tests::a_line_that_is_not_one_and_a_name_given_twice_are_both_refused ... ok
test sums::tests::hex_is_the_spelling_the_file_uses ... ok
test sums::tests::the_one_line_for_this_asset_is_the_answer ... ok
test tests::a_file_name_that_states_no_version_is_refused ... ok
test tests::a_digest_the_manifest_cannot_carry_stops_the_install ... ok
test tests::a_path_the_archive_names_as_both_a_file_and_a_directory_is_refused ... ok
test tests::an_archive_that_is_not_one_directory_installs_nothing ... ok
test tests::the_real_asset_plans_the_directory_the_track_describes ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/main.rs (target/debug/deps/pkg-4b1d46c1bd33bdbe)

running 3 tests
test tests::an_archive_that_inflates_past_the_ceiling_is_refused_unread ... ok
test tests::an_install_that_cannot_finish_takes_its_directory_back_down ... ok
test tests::a_tree_of_any_depth_comes_off_and_leaves_no_directory ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s

13:38:43 [ci] userland/pkg: cargo test --manifest-path userland/pkg/Cargo.toml

13:38:43 === [ci] userland/soundserver
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.63s
     Running unittests src/main.rs (target/debug/deps/soundserver-357eddc3ef0ef6da)

running 3 tests
test control::tests::a_control_message_is_refused_unless_its_width_and_its_state_both_fit ... ok
test mix::tests::published_totals_are_exactly_the_sum_of_every_window ... ok
test client::tests::the_stronger_witness_wins_in_either_order ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:38:44 [ci] userland/soundserver: cargo test --manifest-path userland/soundserver/Cargo.toml

13:38:44 === [ci] userland/soundserver/mixer
    Finished `test` profile [optimized + debuginfo] target(s) in 0.23s
     Running unittests src/lib.rs (target/debug/deps/toyos_mixer-55f41f11fc4bfc95)

running 55 tests
test channel::tests::a_mono_client_is_the_same_sample_in_both_channels ... ok
test channel::tests::an_append_lands_after_what_is_already_there ... ok
test channel::tests::planar_and_interleaved_convert_alike ... ok
test channel::tests::the_downmix_averages_rather_than_sums ... ok
test channel::tests::an_append_past_the_reserved_capacity_is_refused - should panic ... ok
test channel::tests::the_interleave_reads_only_the_frames_produced ... ok
test dll::tests::a_batch_is_measured_against_its_last_grid_point ... ok
test dll::tests::a_grid_that_runs_fast_is_followed ... ok
test dll::tests::a_reset_forgets_the_grid_and_the_drift ... ok
test dll::tests::the_first_record_anchors_and_decides_nothing ... ok
test dll::tests::a_wild_timestamp_cannot_collapse_or_run_away_the_period ... ok
test format::tests::full_scale_clamps_instead_of_wrapping ... ok
test format::tests::a_half_rounds_away_from_zero ... ok
test format::tests::a_period_quantizes_as_its_samples_do ... ok
test corpus::tests::the_crate_agrees_with_the_captured_shell ... ok
test format::tests::passthrough_is_bit_exact_for_every_i16 ... ok
test format::tests::the_generator_cannot_be_seeded_into_silence ... ok
test gain::tests::a_fade_stays_between_its_endpoints ... ok
test gain::tests::a_ramp_lands_exactly_on_its_target ... ok
test gain::tests::a_ramp_to_its_own_level_is_a_ramp_to_nowhere ... ok
test gain::tests::a_retarget_starts_from_the_level_reached ... ok
test gain::tests::a_settled_ramp_holds_its_level ... ok
test gain::tests::a_volume_that_is_not_a_number_is_refused_and_the_rest_is_clamped ... ok
test gain::tests::advancing_past_the_end_settles ... ok
test mix::tests::a_client_at_unity_is_added_unscaled ... ok
test mix::tests::a_period_of_the_wrong_width_is_refused - should panic ... ok
test mix::tests::a_silent_client_leaves_the_bus_untouched ... ok
test mix::tests::clients_sum_and_the_bus_is_not_clamped ... ok
test mix::tests::both_channels_of_a_frame_get_one_gain ... ok
test mix::tests::the_composite_is_the_conversion_and_the_sum ... ok
test shape::tests::a_client_at_the_device_s_own_rate_gets_the_device_s_period ... ok
test shape::tests::a_shape_the_mixer_cannot_render_is_refused_and_nothing_divides_by_zero ... ok
test shape::tests::a_rate_too_low_for_the_ramp_or_the_grid_is_refused ... ok
test corpus::tests::the_corpus_is_reproduced_bit_for_bit ... ok
test format::tests::the_draw_stays_inside_half_an_lsb ... ok
test shape::tests::a_pipeline_with_nothing_to_reserve_disables_deferral ... ok
test shape::tests::no_accepted_rate_overruns_the_shipped_scratch ... ok
test format::tests::the_dither_is_a_triangular_distribution_and_not_merely_shaped_like_one ... ok
test shape::tests::the_scratch_covers_every_rate_a_client_may_ask_for ... ok
test shape::tests::the_shipped_device_shape_is_served ... ok
test shape::tests::the_shipped_grid_and_ramp ... ok
test shape::tests::the_shipped_pipeline_keeps_five_periods_in_reserve ... ok
test stats::tests::a_late_wake_is_one_past_a_whole_period ... ok
test stats::tests::a_later_shorter_run_does_not_lower_the_worst ... ok
test stats::tests::a_software_grid_blames_only_itself ... ok
test stats::tests::empty_wakes_belong_to_the_wake_that_ends_them ... ok
test stats::tests::one_covered_period_ends_a_run ... ok
test stats::tests::only_the_wake_nothing_asked_for_is_named ... ok
test stats::tests::silence_outside_a_stream_costs_nothing ... ok
test stats::tests::the_halves_come_from_one_wake ... ok
test corpus::tests::a_one_lsb_change_anywhere_moves_the_transcript ... ok
test stats::tests::the_halves_sum_to_the_whole ... ok
test stats::tests::the_run_length_separates_a_gap_from_scattered_misses ... ok
test format::tests::a_signal_under_one_lsb_survives_the_quantizer ... ok
test format::tests::the_rounding_is_std_s_over_every_float_there_is ... ok

test result: ok. 55 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.46s

13:38:46 [ci] userland/soundserver/mixer: cargo test --manifest-path userland/soundserver/mixer/Cargo.toml

13:38:46 === [ci] userland/sshserver
    Finished `test` profile [optimized + debuginfo] target(s) in 0.39s
     Running unittests src/main.rs (target/debug/deps/sshserver-55278c998eec2a64)

running 29 tests
test command::tests::a_bare_name_resolves_under_system_bin ... ok
test sftp::tests::a_second_init_ends_the_session ... ok
test sftp::tests::a_handle_nobody_opened_is_refused ... ok
test sftp::tests::a_file_that_is_not_there_is_no_such_file ... ok
test sftp::tests::a_request_outside_the_profile_is_refused_by_name ... ok
test sftp::tests::a_request_before_init_ends_the_session ... ok
test command::tests::quotes_hold_a_word_together ... ok
test command::tests::a_shell_command_reaches_the_shell_whole ... ok
test command::tests::a_bare_command_is_its_words ... ok
test command::tests::backslash_escapes_one_character ... ok
test command::tests::a_line_that_names_nothing_is_refused ... ok
test command::tests::metacharacters_are_ordinary_bytes ... ok
test command::tests::an_unfinished_quote_is_refused ... ok
test sftp::tests::a_truncated_request_is_a_bad_message_and_not_a_panic ... ok
test sftp::tests::an_oversized_length_ends_the_session ... ok
test sftp::tests::framing_waits_for_a_whole_packet ... ok
test tests::a_file_that_names_nobody_authorizes_nobody ... ok
test tests::an_unlisted_key_is_not_authorized ... ok
test tests::the_comment_is_not_part_of_the_key ... ok
test tests::a_listed_key_is_authorized ... ok
test tests::an_unparseable_line_does_not_disarm_the_rest ... ok
test tests::a_key_listed_with_options_authorizes_nothing ... ok
test tests::input_for_a_program_that_is_gone_is_not_a_stall ... ok
test tests::input_a_program_is_reading_is_taken ... ok
test tests::a_key_is_found_among_several_and_blank_lines ... ok
test sftp::tests::the_profile_moves_a_file_and_lists_it ... ok
test sftp::tests::a_listing_longer_than_one_reply_continues_where_it_left_off ... ok
test tests::input_nothing_takes_is_given_up_on ... ok
test sftp::tests::a_directory_past_the_ceiling_is_refused_by_name ... ok

test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.94s

13:38:49 [ci] userland/sshserver: cargo test --manifest-path userland/sshserver/Cargo.toml

13:38:49 === [ci] userland/symbolize
    Finished `test` profile [optimized + debuginfo] target(s) in 0.11s
     Running unittests src/main.rs (target/debug/deps/symbolize-9b3eaa77d97dc9da)

running 5 tests
test tests::a_name_is_read_under_the_root ... ok
test tests::a_name_some_host_reads_as_a_drive_or_separator_is_refused ... ok
test tests::a_name_that_leaves_the_root_is_refused ... ok
test tests::a_name_windows_reserves_for_a_device_is_refused ... ok
test tests::a_record_that_leaves_the_root_is_refused_on_its_line ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:38:49 [ci] userland/symbolize: cargo test --manifest-path userland/symbolize/Cargo.toml

13:38:49 === [ci] the apps for linux
info: component rust-std for target x86_64-unknown-linux-gnu is up to date
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.22s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.15s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.23s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.44s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.27s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.20s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.20s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.27s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.34s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.21s
13:38:52 [ci] the apps for linux: 10 app(s) pass `cargo check --target x86_64-unknown-linux-gnu`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare

13:38:52 === [ci] the apps for macos
info: component rust-std is up to date
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.57s
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.32s
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.15s
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.29s
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.19s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.20s
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.19s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.27s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.36s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.13s
13:38:56 [ci] the apps for macos: 10 app(s) pass `cargo build`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare

13:38:56 === [ci] the apps for windows
info: component rust-std for target x86_64-pc-windows-msvc is up to date
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.22s
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.29s
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.19s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.12s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.16s
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.20s
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.22s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.36s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.38s
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.23s
13:38:59 [ci] the apps for windows: 10 app(s) pass `cargo check --target x86_64-pc-windows-msvc`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare

13:38:59 === [ci] the toyos SDK
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.20s
     Running unittests src/lib.rs (target/debug/deps/toyos-f91d9b0c3685a5e7)

running 47 tests
test fs::tests::a_listing_entry_round_trips_and_a_short_one_is_refused ... ok
test fs::tests::a_path_is_canonical_only_without_empty_dot_or_dotdot_components ... ok
test fs::tests::bytes_no_grant_was_encoded_as_are_refused ... ok
test fs::tests::a_grant_round_trips_at_every_bound ... ok
test fs::tests::no_grant_carries_a_root_the_wire_refuses_or_one_past_the_badge ... ok
test ipc::tests::a_batch_past_the_bound_is_refused_and_closed ... ok
test ipc::tests::a_taken_move_closes_nothing ... ok
test ipc::tests::a_refused_move_closes_every_handle_it_consumed ... ok
test launch::tests::a_request_names_its_parent_by_one_word ... ok
test launch::tests::a_batch_names_each_handle_once_and_never_its_connection ... ok
test log::proof::a_position_that_never_lands_is_counted_by_the_sweep ... ok
test log::proof::a_ring_has_four_lanes_to_claim ... ok
test log::proof::a_placeholder_owned_ring_keeps_its_slots_from_every_pid_until_named ... ok
test log::proof::scribbled_words_bound_the_reader_and_never_panic_it ... ok
test log::proof::slots_left_to_others_are_theirs ... ok
test fs::tests::the_window_copies_every_length_at_every_offset ... ok
test log::proof::the_region_carries_a_record_whole ... ok
test log::stdio::tests::a_formatted_line_is_one_ended_record ... ok
test log::stdio::tests::a_line_in_pieces_is_one_record ... ok
test log::stdio::tests::a_line_a_flush_opened_is_closed_at_its_end ... ok
test log::stdio::tests::a_long_line_is_records_in_order_with_nothing_lost ... ok
test log::stdio::tests::a_newline_ends_a_record_and_a_carriage_return_before_it_goes ... ok
test net::tests::a_binds_request_ends_in_its_listeners_options ... ok
test net::tests::a_code_netstack_chose_is_still_its_own_answer ... ok
test net::tests::a_gone_handle_transfer_is_a_netstack_that_is_not_there ... ok
test net::tests::a_not_found_is_not_a_netstack_that_is_not_there ... ok
test net::tests::a_read_that_hung_up_is_a_netstack_that_is_not_there ... ok
test net::tests::an_option_request_is_three_words_on_the_wire ... ok
test net::tests::an_accepts_answer_ends_in_its_connections_options ... ok
test net::tests::nothing_else_becomes_a_missing_netstack ... ok
test poller::tests::a_submission_is_the_whole_entry_where_the_kernel_reads_it ... ok
test log::stdio::tests::a_stream_held_by_two_writers_keeps_each_line_whole ... ok
test poller::tests::every_accessor_lands_on_the_abi_offset ... ok
test poller::tests::pending_counts_what_the_kernel_has_not_claimed ... ok
test poller::tests::a_tail_the_kernel_publishes_mid_drain_is_observed ... ok
test syscap::tests::a_machine_that_grew_once_is_read_grown ... ok
test syscap::tests::a_machine_that_grows_every_round_is_refused_by_name ... ok
test poller::tests::the_drop_counter_is_read_from_the_page ... ok
test syscap::tests::a_record_that_does_not_decode_is_refused_and_not_dropped ... ok
test syscap::tests::a_refused_count_is_refused_and_not_an_empty_inventory ... ok
test syscap::tests::a_refused_read_is_refused_and_not_an_empty_inventory ... ok
test syscap::tests::an_empty_inventory_is_its_count ... ok
test syscap::tests::every_record_is_read ... ok
test log::proof::a_lane_gives_its_reader_every_record_in_order_or_counts_it_refused ... ok
test log::proof::every_record_is_read_once_in_its_writers_order_or_counted_refused ... ok
test log::proof::a_real_time_write_allocates_nothing ... ok
test log::proof::a_full_ring_or_lane_refuses_at_once_and_never_waits ... ok

test result: ok. 47 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

   Doc-tests toyos

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:38:59 [ci] the toyos SDK: cargo test -p toyos

13:38:59 === [ci] nothing left in $TMPDIR or /tmp
13:38:59 [ci] nothing left in $TMPDIR or /tmp: every test took its scratch with it
13:38:59 [ci] Host: 77 step(s), all green
EXIT=0


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Gate: cargo test --test toyos-build (the default guest suite, x86-64 under TCG and virt under HVF) at 2c744d4, EXIT=0, part 1 of 1

==> final-guest-suite.uptime <==
15:32  up 11 days,  3:16, 6 users, load averages: 37.13 37.24 49.10
15:34  up 11 days,  3:18, 6 users, load averages: 28.69 34.29 46.07

==> final-guest-suite.log <==
   Compiling toyos-build v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3)
    Finished `test` profile [optimized + debuginfo] target(s) in 10.62s
     Running tests/toyos.rs (target/debug/deps/toyos_build-20cd9f517c1368c3)

13:32:12 running 55 tests, 12 wide

13:32:12   RUN   iommu_virtio_platform
13:32:12   RUN   libc_sockets
13:32:12   RUN   netstack_socket_churn
13:32:12   RUN   acpi_lock_given_back_on_one_cpu
13:32:12   RUN   https_fetch
13:32:12   RUN   machine_shutdown
13:32:12   RUN   nested_nmi_is_loud
13:32:12   RUN   netstack_streams
13:32:12   RUN   acpi_power_button
13:32:12   RUN   acpi_mediated_access
13:32:12   RUN   acpi_supply_outlives_holder
13:32:12   RUN   netstack_streams_e1000e
13:32:12   BUILD x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn
13:32:12   BUILD x86_64 netstack_streams of tests/toyos-rust-tests, for netstack_streams
13:32:12   BUILD x86_64 acpi_mediated of tests/toyos-rust-tests, for acpi_lock_given_back_on_one_cpu
13:32:12   BUILD x86_64 netstack_streams of tests/toyos-rust-tests, for netstack_streams_e1000e
13:32:12   BUILD x86_64 kernel, loader, ROOT of tests/testcases, for acpi_power_button
13:32:12   BUILD x86_64 kernel, loader, ROOT of tests/testcases, for machine_shutdown
13:32:12   BUILD x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for nested_nmi_is_loud
13:32:12   BUILD x86_64 https_get of tests/toyos-rust-tests, for https_fetch
13:32:12   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for iommu_virtio_platform
13:32:16 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:16 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:16 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:16 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:16 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:16 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:16 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:16 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:16   BUILD x86_64 nodelay_accepted of tests/toyos-rust-tests, for libc_sockets
13:32:19 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 3s so far
13:32:30   BUILT x86_64 acpi_mediated of tests/toyos-rust-tests, for acpi_lock_given_back_on_one_cpu  (18s)
13:32:30 [build-lock] artifact staging acquired after 14.0s
13:32:30   BUILD x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/acpicase, for acpi_lock_given_back_on_one_cpu
13:32:30   BUILD x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/acpicase, for acpi_mediated_access
13:32:30   BUILD x86_64 kernel, loader, ROOT of tests/acpicase, for acpi_supply_outlives_holder
13:32:30   BUILT x86_64 netstack_streams of tests/toyos-rust-tests, for netstack_streams  (19s)
13:32:30 [build-lock] artifact staging acquired after 14.5s
13:32:30   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for netstack_streams
13:32:31   BUILT x86_64 netstack_socket_churn of tests/toyos-rust-tests, for netstack_socket_churn  (19s)
13:32:31 [build-lock] artifact staging acquired after 14.8s
13:32:31   BUILD x86_64 kernel, loader, ROOT of tests/netcase, for netstack_socket_churn
13:32:32 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:32:32 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:32:32 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:32:32 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:32:33 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 2s so far
13:32:44 [build-lock] artifact staging acquired after 28.1s
13:32:44 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:46 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 77505 (artifact staging), 2s so far
13:32:46 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 77505 (artifact staging), 2s so far
13:32:46 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 77505 (artifact staging), 2s so far
13:32:46 [build-lock] still waiting for the artifact lock (artifact staging), 30s so far — held by pid 77505 (artifact staging), 2s so far
13:32:48 [build-lock] artifact staging acquired after 31.9s
13:32:48 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:48   BUILT x86_64 netstack_streams of tests/toyos-rust-tests, for netstack_streams_e1000e  (36s)
13:32:48 [build-lock] artifact staging acquired after 32.0s
13:32:48 [build-lock] artifact staging acquired after 32.0s
13:32:48   BUILD x86_64 ROOT of tests/netcase, for netstack_streams_e1000e
13:32:48 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:48   BUILT x86_64 https_get of tests/toyos-rust-tests, for https_fetch  (37s)
13:32:48   BUILD x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch
13:32:48 [build-lock] artifact staging acquired after 32.3s
13:32:48 [build-lock] artifact staging acquired after 29.7s
13:32:48 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:49   BUILT x86_64 nodelay_accepted of tests/toyos-rust-tests, for libc_sockets  (32s)
13:32:49   BUILD x86_64 stream_ends_std of tests/toyos-rust-tests, for libc_sockets
13:32:49 [build-lock] artifact staging acquired after 16.5s
13:32:49 [build-lock] artifact staging acquired after 16.5s
13:32:49 [build-lock] artifact staging acquired after 16.5s
13:32:49 [build-lock] artifact staging acquired after 16.3s
13:32:49 [build-lock] artifact staging acquired after 16.0s
13:32:49 [build-lock] artifact staging acquired after 4.5s
13:32:49 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:49 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:49 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:49 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:49 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:32:51 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 2s so far
13:32:52 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 3s so far
13:32:53 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 4s so far
13:32:59 [build-lock] artifact staging acquired after 11.6s
13:32:59   BUILT x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for nested_nmi_is_loud  (48s)
13:33:00 [build-lock] artifact staging acquired after 11.6s
13:33:00   BUILT x86_64 kernel, loader, ROOT of tests/testcases, for machine_shutdown  (48s)
13:33:00 [build-lock] artifact staging acquired after 11.4s
13:33:00   BUILT x86_64 kernel, loader, ROOT of tests/testcases, for acpi_power_button  (48s)
13:33:00 [build-lock] artifact staging acquired after 11.3s
13:33:00   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for iommu_virtio_platform  (48s)
13:33:00 [build-lock] artifact staging acquired after 11.4s
13:33:00   BUILT x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/acpicase, for acpi_lock_given_back_on_one_cpu  (30s)
13:33:00 [build-lock] artifact staging acquired after 11.6s
13:33:00   BUILT x86_64 kernel boot-actuators,test-actuators, loader, ROOT of tests/acpicase, for acpi_mediated_access  (30s)
13:33:00 [build-lock] artifact staging acquired after 11.8s
13:33:01   BUILT x86_64 kernel, loader, ROOT of tests/acpicase, for acpi_supply_outlives_holder  (31s)
13:33:01 [build-lock] artifact staging acquired after 12.0s
13:33:01   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for netstack_socket_churn  (30s)
13:33:01 [build-lock] artifact staging acquired after 10.1s
13:33:01 [build-lock] artifact staging acquired after 8.6s
13:33:01   BUILT x86_64 kernel, loader, ROOT of tests/netcase, for netstack_streams  (30s)
13:33:01 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:01   BUILT x86_64 ring_kat of tests/toyos-rust-tests, for https_fetch  (13s)
13:33:01 [build-lock] artifact staging acquired after 8.3s
13:33:01   BUILD x86_64 ROOT of tests/netcase, for https_fetch
13:33:02   BUILT x86_64 stream_ends_std of tests/toyos-rust-tests, for libc_sockets  (13s)
13:33:02 [build-lock] artifact staging acquired after 864.3ms
13:33:02   BUILD x86_64 ROOT of tests/netcase, for libc_sockets
13:33:02   BUILT x86_64 ROOT of tests/netcase, for netstack_streams_e1000e  (14s)
13:33:03   [nmi] nested: [nmi] NESTED NMI on cpu 0: a second NMI entered while IST2 was still in use.
13:33:03   PASS  nested_nmi_is_loud  (4s)
13:33:03   RUN   machine_shutdown_short_stop
13:33:03   BUILD x86_64 stop_short of tests/toyos-rust-tests, for machine_shutdown_short_stop
13:33:03   BUILT x86_64 ROOT of tests/netcase, for https_fetch  (2s)
13:33:04   BUILT x86_64 ROOT of tests/netcase, for libc_sockets  (2s)
13:33:07   BUILT x86_64 stop_short of tests/toyos-rust-tests, for machine_shutdown_short_stop  (3s)
13:33:07   BUILD x86_64 ROOT of tests/testcases, for machine_shutdown_short_stop
13:33:07   [iommu] headless: 3 virtio function(s) behind a unit = true, the audio function 00:04.0 among them
13:33:07   [power] shutdown: QEMU stopped the guest for guest-shutdown
13:33:07   PASS  machine_shutdown  (7s)
13:33:07   RUN   machine_shutdown_wire_held
13:33:07   [power] 1 table(s) loaded; [ 6.914 acpiserver] acpiserver: \_S5 handed to the kernel: SLP_TYPa=0 beside [ 6.914 cpu0 kernel] power: S5 is PM1a 0x604 with SLP_TYPa=0, as the acpi claim's holder supplied it
13:33:07   [power] the press: acpiserver: the power button was pressed, on SCI 1 of this boot; asking the supervisor to power off
13:33:07   PASS  acpi_power_button  (7s)
13:33:07   RUN   machine_shutdown_wire_kept
13:33:07   [acpi] [ 4.342 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
13:33:07   [acpi] [ 6.952 test-runner pid=8] acpi: an unbound claim was refused its access, the lock and the power-off's sleep type
13:33:07   [acpi] [ 6.954 test-runner pid=8] acpi: RAM was refused both ways as UsableMemory
13:33:07   [acpi] [ 6.954 test-runner pid=8] acpi: the RSDP read through as type 9 and its write was refused TableWrite
13:33:07   [acpi] [ 6.955 test-runner pid=8] acpi: an unlisted register was read and refused its write MemoryType, an unlisted address below 1 MiB was refused UnlistedCached, and the interrupt controllers, the HPET and a function's BAR DeviceMemory
13:33:07   [acpi] [ 6.955 test-runner pid=8] acpi: the FACS read through as type 10, its write was refused FacsWrite, and the memory after it was written and put back
13:33:07   [acpi] [ 6.956 test-runner pid=8] acpi: COM1, the CMOS index, the 8259 and the configuration mechanism were refused KernelPort; the i8042's row ClaimedPort; PM1a_CNT read and refused its write ReadOnlyPort; the POST port was written
13:33:07   [acpi] [ 7.005 test-runner pid=8] acpi: ACPI_ENABLE and ACPI_DISABLE were refused SMI_CMD as KernelCommand and SCI_EN stayed set, a write wider than a byte was refused CommandSpan, every firmware call made was read back from the port and counted on the boot processor, and a storm of them was refused CommandRate
13:33:07   [acpi] [ 7.006 test-runner pid=8] acpi: the host bridge read as 0x29c08086 by its address and through ECAM, and every write to configuration space was refused ConfigWrite
13:33:07   [acpi] [ 7.006 test-runner pid=8] acpi: the lock a dead holder left taken read free; it was taken and given back, given back with GBL_RLS where the firmware had asked, and found pending while the firmware owned it
13:33:07   [acpi] [ 7.006 test-runner pid=8] acpi: a sleep type wider than three bits was refused InvalidArgument, the next holder's replaced a dead one's, and a second under one claim was refused AlreadyExists
13:33:07   [acpi] [ 7.005 test-runner pid=8] acpi: firmware calls of 0x51, 0x52, 0x53 were asked from the CPUs of x2APIC id [0, 0, 0]; this chipset's SMI_EN reads 0x00000000, APMC_EN clear, so no call interrupts its firmware
13:33:07   [acpi] [ 7.005 test-runner pid=8] acpi: 8 firmware calls were made before call 6 of the storm was refused
13:33:07   [acpi] [ 6.971 cpu0 kernel] acpi: firmware call 0x51 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 17017ns, its SMI count unread before the write and unread after; the first of that byte
13:33:07   [acpi] [ 6.980 cpu0 kernel] acpi: firmware call 0x52 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1001ns, its SMI count unread before the write and unread after; the first of that byte
13:33:07   [acpi] [ 6.980 cpu0 kernel] acpi: firmware call 0x53 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
13:33:07   [acpi] [ 6.980 cpu0 kernel] acpi: firmware call 0x54 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
13:33:07   [acpi] [ 6.981 cpu0 kernel] acpi: firmware call 0x55 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
13:33:07   [acpi] [ 6.838 cpu0 kernel] shutdown: no ACPI server supplied S5 — refused
13:33:07   [acpi] [ 7.042 cpu0 kernel] acpi: the Global Lock given back for a holder that left it taken (the machine is stopping)
13:33:07   [acpi] QEMU stopped the guest for guest-shutdown, on the probe's sleep type and not the keeper's
13:33:07   PASS  acpi_lock_given_back_on_one_cpu  (7s)
13:33:07   RUN   machine_shutdown_wire_at_the_seal
13:33:10   [acpi] [ 5.524 cpu0 kernel] mtrr: the boot processor's range registers: IA32_MTRR_DEF_TYPE 0xc06 and 8 variable pairs
13:33:10   [acpi] [ 5.538 cpu1 kernel] mtrr: cpu1's range registers are off (IA32_MTRR_DEF_TYPE 0x0) and not the boot processor's: every read this CPU makes is uncached
13:33:10   [acpi] [ 8.749 test-runner pid=8] acpi: an unbound claim was refused its access, the lock and the power-off's sleep type
13:33:10   [acpi] [ 8.750 test-runner pid=8] acpi: RAM was refused both ways as UsableMemory
13:33:10   [acpi] [ 8.750 test-runner pid=8] acpi: the RSDP read through as type 9 and its write was refused TableWrite
13:33:10   [acpi] [ 8.751 test-runner pid=8] acpi: an unlisted register was read and refused its write MemoryType, an unlisted address below 1 MiB was refused UnlistedCached, and the interrupt controllers, the HPET and a function's BAR DeviceMemory
13:33:10   [acpi] [ 8.751 test-runner pid=8] acpi: the FACS read through as type 10, its write was refused FacsWrite, and the memory after it was written and put back
13:33:10   [acpi] [ 8.752 test-runner pid=8] acpi: COM1, the CMOS index, the 8259 and the configuration mechanism were refused KernelPort; the i8042's row ClaimedPort; PM1a_CNT read and refused its write ReadOnlyPort; the POST port was written
13:33:10   [acpi] [ 8.985 test-runner pid=8] acpi: ACPI_ENABLE and ACPI_DISABLE were refused SMI_CMD as KernelCommand and SCI_EN stayed set, a write wider than a byte was refused CommandSpan, every firmware call made was read back from the port and counted on the boot processor, and a storm of them was refused CommandRate
13:33:10   [acpi] [ 8.994 test-runner pid=8] acpi: the host bridge read as 0x29c08086 by its address and through ECAM, and every write to configuration space was refused ConfigWrite
13:33:10   [acpi] [ 8.995 test-runner pid=8] acpi: the lock a dead holder left taken read free; it was taken and given back, given back with GBL_RLS where the firmware had asked, and found pending while the firmware owned it
13:33:10   [acpi] [ 8.995 test-runner pid=8] acpi: a sleep type wider than three bits was refused InvalidArgument, the next holder's replaced a dead one's, and a second under one claim was refused AlreadyExists
13:33:10   [acpi] [ 8.985 test-runner pid=8] acpi: firmware calls of 0x51, 0x52, 0x53 were asked from the CPUs of x2APIC id [1, 1, 1]; this chipset's SMI_EN reads 0x00000000, APMC_EN clear, so no call interrupts its firmware
13:33:10   [acpi] [ 8.985 test-runner pid=8] acpi: 8 firmware calls were made before call 6 of the storm was refused
13:33:10   [acpi] [ 8.942 cpu1 kernel tid=2] acpi: firmware call 0x51 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 28011ns, its SMI count unread before the write and unread after; the first of that byte
13:33:10   [acpi] [ 8.947 cpu1 kernel tid=3] acpi: firmware call 0x52 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 3001ns, its SMI count unread before the write and unread after; the first of that byte
13:33:10   [acpi] [ 8.961 cpu1 kernel tid=4] acpi: firmware call 0x53 written to SMI_CMD 0xb2 on cpu0, asked from cpu1; the write held cpu0 4002ns, its SMI count unread before the write and unread after; the first of that byte
13:33:10   [acpi] [ 8.970 cpu0 kernel] acpi: firmware call 0x54 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 1000ns, its SMI count unread before the write and unread after; the first of that byte
13:33:10   [acpi] [ 8.971 cpu0 kernel] acpi: firmware call 0x55 written to SMI_CMD 0xb2 on cpu0, asked from cpu0; the write held cpu0 0ns, its SMI count unread before the write and unread after; the first of that byte
13:33:10   [acpi] [ 8.713 cpu0 kernel] shutdown: no ACPI server supplied S5 — refused
13:33:10   [acpi] [ 9.225 cpu0 kernel] acpi: the Global Lock given back for a holder that left it taken (the machine is stopping)
13:33:10   [acpi] QEMU stopped the guest for guest-shutdown, on the probe's sleep type and not the keeper's
13:33:10   PASS  acpi_mediated_access  (28s)
13:33:10   RUN   bar_map_again
13:33:10   BUILD x86_64 bar_map_again of tests/toyos-rust-tests, for bar_map_again
13:33:10   [acpi] [ 9.345 cpu1 kernel] Shutting down.
13:33:10   [acpi] QEMU stopped the guest for guest-shutdown, with no claim held, on the sleep type a holder that is gone supplied
13:33:10   PASS  acpi_supply_outlives_holder  (28s)
13:33:10   RUN   console_image_boots
13:33:10   BUILD x86_64 ROOT of console, for console_image_boots
13:33:11   BUILT x86_64 ROOT of tests/testcases, for machine_shutdown_short_stop  (5s)
13:33:12   PASS  netstack_socket_churn  (11s)
13:33:12   RUN   nvme_disk_keeps_log_and_home
13:33:13   PASS  netstack_streams  (12s)
13:33:13   RUN   block_grants_reach_their_partitions
13:33:13   BUILD x86_64 partition_grant of tests/toyos-rust-tests, for block_grants_reach_their_partitions
13:33:13 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:13   BUILT x86_64 bar_map_again of tests/toyos-rust-tests, for bar_map_again  (3s)
13:33:13 [build-lock] artifact staging acquired after 268.3ms
13:33:13   BUILD x86_64 ROOT of tests/testcases, for bar_map_again
13:33:13   PASS  netstack_streams_e1000e  (11s)
13:33:13   RUN   update_writes_the_idle_slot_through_the_block_service
13:33:13   BUILD x86_64 update_idle_slot of tests/toyos-rust-tests, for update_writes_the_idle_slot_through_the_block_service
13:33:14 assets: leaving out assets/soundfont.sf2 — only /system/bin/doom opens it and this image builds no doom
13:33:14 assets: leaving out assets/DOOM1.WAD — only /system/bin/doom opens it and this image builds no doom
13:33:14   BUILT x86_64 ROOT of console, for console_image_boots  (4s)
13:33:15 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:15 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:15   BUILT x86_64 partition_grant of tests/toyos-rust-tests, for block_grants_reach_their_partitions  (3s)
13:33:15 [build-lock] artifact staging acquired after 116.9ms
13:33:15 [build-lock] artifact staging acquired after 89.1ms
13:33:15   BUILD x86_64 ROOT of tests/blockgrantcase, for block_grants_reach_their_partitions
13:33:15 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:16   BUILT x86_64 update_idle_slot of tests/toyos-rust-tests, for update_writes_the_idle_slot_through_the_block_service  (2s)
13:33:16 [build-lock] artifact staging acquired after 279.0ms
13:33:16   BUILD x86_64 ROOT of tests/slotscase, for update_writes_the_idle_slot_through_the_block_service
13:33:16   [iommu] headless-no-iommu: 2 virtio function(s) behind a unit = false, the audio function 00:04.0 among them; the NIC's claim refused for want of a unit
13:33:16   PASS  https_fetch  (13s)
13:33:16   RUN   usbd_drives_the_spare
13:33:16   BUILD x86_64 usbd_spare of tests/toyos-rust-tests, for usbd_drives_the_spare
13:33:16   [power] klogd held the wire across the stop; the record and the last word reached it
13:33:16   PASS  machine_shutdown_wire_held  (9s)
13:33:16   RUN   usb_keyboard_rollover
13:33:17   PASS  libc_sockets  (17s)
13:33:17   RUN   screen_panic_muted
13:33:17   [power] the stop held the wire at the last word and across the seal; the last word reached it
13:33:17   PASS  machine_shutdown_wire_at_the_seal  (9s)
13:33:17   RUN   screen_fatal_behind_a_painter
13:33:17 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:33:17 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:33:17 [build-lock] artifact staging acquired after 348.3ms
13:33:17 [build-lock] artifact staging acquired after 50.8ms
13:33:17   BUILT x86_64 ROOT of tests/testcases, for bar_map_again  (4s)
13:33:17 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:18 [build-lock] artifact staging acquired after 242.8ms
13:33:18   BUILT x86_64 ROOT of tests/blockgrantcase, for block_grants_reach_their_partitions  (2s)
13:33:18 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:19 [build-lock] artifact staging acquired after 443.0ms
13:33:19   BUILT x86_64 ROOT of tests/slotscase, for update_writes_the_idle_slot_through_the_block_service  (3s)
13:33:19   PASS  console_image_boots  (5s)
13:33:19   RUN   screen_fatal_halt_composited
13:33:19   BUILD x86_64 ROOT of tests/panelcase, for screen_fatal_halt_composited
13:33:19   [power] a short stop, then the power-off: stop: 17 of 19 userland thread(s) stopped across 1 cpu(s) in 0 ms of a 0 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; this reset lands wherever the other 2 are
13:33:19   PASS  machine_shutdown_short_stop  (8s)
13:33:19   RUN   screen_loader_clears
13:33:19   BUILT x86_64 usbd_spare of tests/toyos-rust-tests, for usbd_drives_the_spare  (3s)
13:33:19   BUILD x86_64 ROOT of tests/testcases, for usbd_drives_the_spare
13:33:21   PASS  screen_panic_muted  (4s)
13:33:21   RUN   virt_early_panic
13:33:21   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_panic
13:33:22   [power] klogd held the wire across the stop and kept it; the record and the last word reached it
13:33:22   PASS  machine_shutdown_wire_kept  (15s)
13:33:22   RUN   virt_early_fault
13:33:22   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_fault
13:33:22 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:33:23   [iommu] declined: [ 6.351 cpu0 kernel] virtio-sound: NOT INITIALISED — PCI 00:04.0 refused the feature set 0x100000000 the driver accepted, leaving DEVICE_STATUS=0x3 without FEATURES_OK
13:33:23   PASS  iommu_virtio_platform  (24s)
13:33:23   RUN   virt_el2_drop
13:33:23   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_el2_drop
13:33:24   [usbhid] [ 7.369 cpu0 kernel] xHCI: slot 1 keyboard report in rollover, its modifiers believed and its other keys held, 1 since it bound
13:33:24   PASS  usb_keyboard_rollover  (8s)
13:33:24   RUN   virt_user_mode
13:33:24   BUILD aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode
13:33:24 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 3s so far
13:33:24 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 3s so far
13:33:25   [grant] partition_grant: the log's grant opened the log and was refused the boot volume NotGranted
13:33:25   [grant] partition_grant: DATA's grant opened DATA and was refused the log NotGranted
13:33:25   [grant] partition_grant: the boot volume's read-only grant read it and was refused a write ReadOnly
13:33:25   [grant] partition_grant: the port's own connector was refused a listing and an open NotGranted
13:33:25   [grant] partition_grant: the running ROOT was refused Held to the grant naming it
13:33:25   PASS  block_grants_reach_their_partitions  (7s)
13:33:25   RUN   virt_timer_preempts
13:33:25   BUILD aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts
13:33:26   PASS  screen_fatal_behind_a_painter  (9s)
13:33:26   RUN   virt_irq_storm
13:33:26   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_irq_storm
13:33:26   [claims] bar_map_again: two answers held at once map apart, and the later outlives the earlier
13:33:26   [claims] bar_map_again: answered with a handle that maps
13:33:26   [claims] bar_map_again: answered after the refusal with a handle that maps
13:33:26   PASS  bar_map_again  (9s)
13:33:26   RUN   virt_timer_floor
13:33:26   BUILD aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_timer_floor
13:33:27 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 6s so far
13:33:27   [update] supervisor: the idle slot is B, granted with the slot table read through the block service
13:33:27   [update] update_idle_slot: update said: update: installed version 1099511627520 in slot B (1048576 bytes of ROOT in 113 ms, 238 ms in all); it boots at the next reboot
13:33:27   [update] the disk's slot table marks B at version 1099511627520, and B's ROOT mounts carrying the update's etc/update-test
13:33:27   [update] slot B's volume checks out, carrying the update's toyos/image.sig, toyos/kernel.elf, toyos/cmdline byte for byte
13:33:27   PASS  update_writes_the_idle_slot_through_the_block_service  (8s)
13:33:27   RUN   virt_fp_isolation
13:33:28 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 7s so far
13:33:29 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 8s so far
13:33:29   PASS  screen_loader_clears  (9s)
13:33:29   RUN   virt_first_entry
13:33:29 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 8s so far
13:33:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 9s so far
13:33:30 [build-lock] artifact staging acquired after 8.2s
13:33:30 [build-lock] artifact staging acquired after 6.0s
13:33:30 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:30 assets: leaving out assets/soundfont.sf2 — only /system/bin/doom opens it and this image builds no doom
13:33:30 assets: leaving out assets/DOOM1.WAD — only /system/bin/doom opens it and this image builds no doom
13:33:30   BUILT x86_64 ROOT of tests/panelcase, for screen_fatal_halt_composited  (11s)
13:33:34   [disk] after the reboot /home/kept-77505-1791639192437236000/release is the 10 lines of /system/etc/os-release, and /log/2026-10-10-133318.log: test-runner said kept-77505-1791639192437236000
13:33:34   PASS  nvme_disk_keeps_log_and_home  (22s)
13:33:34   RUN   virt_unmap_touch
13:33:41   [panic] the fatal report is on the panel and sealed in the black box (14257 bytes)
13:33:41   PASS  screen_fatal_halt_composited  (11s)
13:33:41   RUN   virt_debug_refused
13:33:44 [build-lock] artifact staging acquired after 19.2s
13:33:44 [build-lock] artifact staging acquired after 17.0s
13:33:44 [build-lock] artifact staging acquired after 16.1s
13:33:44 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:44 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:44 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:51 [build-lock] artifact staging acquired after 22.0s
13:33:51 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:51   BUILT aarch64 abuse_readonly_copyout of tests/toyos-rust-tests, for virt_timer_preempts  (26s)
13:33:51   BUILD aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts
13:33:51 [build-lock] artifact staging acquired after 21.3s
13:33:51 [build-lock] artifact staging acquired after 21.1s
13:33:51 [build-lock] artifact staging acquired after 20.7s
13:33:51 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:51 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:51 [build-lock] artifact staging acquired after 7.1s
13:33:51   BUILT x86_64 ROOT of tests/testcases, for usbd_drives_the_spare  (31s)
13:33:51 [build-lock] artifact staging acquired after 7.3s
13:33:51   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_panic  (30s)
13:33:51 [build-lock] artifact staging acquired after 7.5s
13:33:51   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_el2_drop  (28s)
13:33:51 [build-lock] artifact staging acquired after 768.1ms
13:33:51   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_early_fault  (30s)
13:33:52 [build-lock] artifact staging acquired after 838.8ms
13:33:52   BUILT aarch64 kernel, loader, ROOT of tests/testcases, for virt_user_mode  (28s)
13:33:52   PASS  virt_early_panic  (598ms)
13:33:52   RUN   virt_readonly_copyout
13:33:52 [build-lock] artifact staging acquired after 1.0s
13:33:52   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_timer_floor  (25s)
13:33:52   BUILT aarch64 kernel boot-actuators,test-actuators, loader, ROOT of tests/testcases, for virt_irq_storm  (26s)
13:33:52   PASS  virt_early_fault  (741ms)
13:33:52   RUN   virt_ring0_timer_in_syscall
13:33:52   PASS  virt_el2_drop  (1s)
13:33:52   RUN   virt_mask_windows
13:33:52   BUILT aarch64 ring0_timer_in_syscall of tests/toyos-rust-tests, for virt_timer_preempts  (2s)
13:33:52   BUILD aarch64 random_draws of tests/toyos-rust-tests, for virt_timer_preempts
13:33:54   PASS  virt_user_mode  (2s)
13:33:54   RUN   virt_smp
13:33:54   [virt] [ 1.979 cpu0 kernel] timer-floor: PASS span=240 floor=240 ticks: the comparator past the counter it was set from
13:33:54   PASS  virt_timer_floor  (2s)
13:33:54   RUN   virt_el1_smp
13:33:54   BUILT aarch64 random_draws of tests/toyos-rust-tests, for virt_timer_preempts  (2s)
13:33:54   BUILD aarch64 counters_read of tests/toyos-rust-tests, for virt_mask_windows
13:33:54   BUILD aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts
13:33:54   BUILD aarch64 ROOT of tests/virtjobcase, for virt_unmap_touch
13:33:54   BUILD aarch64 ROOT of tests/virtjobcase, for virt_readonly_copyout
13:33:54   BUILD aarch64 ROOT of tests/virtjobcase, for virt_first_entry
13:33:54   BUILD aarch64 ROOT of tests/virtjobcase, for virt_debug_refused
13:33:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:56 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:56   BUILT aarch64 counters_read of tests/toyos-rust-tests, for virt_mask_windows  (2s)
13:33:56   BUILD aarch64 trace_read of tests/toyos-rust-tests, for virt_mask_windows
13:33:56 [build-lock] artifact staging acquired after 77.2ms
13:33:56 [build-lock] artifact staging acquired after 69.9ms
13:33:57 [build-lock] artifact staging acquired after 63.5ms
13:33:57 [build-lock] artifact staging acquired after 63.1ms
13:33:57 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:57 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:57 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:57 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:57 [build-lock] artifact staging acquired after 150.6ms
13:33:57 [build-lock] artifact staging acquired after 140.7ms
13:33:57   BUILT aarch64 ROOT of tests/virtjobcase, for virt_first_entry  (3s)
13:33:57 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:33:57 [build-lock] artifact staging acquired after 286.8ms
13:33:57   BUILT aarch64 ROOT of tests/virtjobcase, for virt_readonly_copyout  (3s)
13:33:57 [build-lock] artifact staging acquired after 441.7ms
13:33:57   BUILT aarch64 ROOT of tests/virtjobcase, for virt_debug_refused  (3s)
13:33:57 [build-lock] artifact staging acquired after 431.5ms
13:33:57   BUILT aarch64 ROOT of tests/virtjobcase, for virt_timer_preempts  (3s)
13:33:57   BUILT aarch64 ROOT of tests/virtjobcase, for virt_unmap_touch  (3s)
qemu-system-x86_64: vtd_iova_to_sspte: detected sspte permission error (iova=0x400042000000, level=0x3, sspte=0x0, write=0, pasid=0x0)
qemu-system-x86_64: vtd_iommu_translate: detected translation failure (dev=00:02:00, iova=0x400042000000)
qemu-system-x86_64: New fault is not recorded due to compression of faults
13:33:57   [usbd] 00:02.0: two devices named twice; aimed at 0x400042000000: [ 6.494 cpu0 kernel] iommu: DMA FAULT owner=slot1 unit0 stream=00:02.0 addr=0x0000400042000000 access=read reason=0x06 domain=6 bme=cleared unitfaults=1 streamfaults=1 first=y read-permission
13:33:58   BUILT aarch64 trace_read of tests/toyos-rust-tests, for virt_mask_windows  (2s)
13:33:58   BUILD aarch64 kernel mask-windows, ROOT of tests/virtsmpcase, for virt_mask_windows
13:33:58   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_el1_smp
13:33:58   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_smp
13:33:59   [virt] [ 2.199 test-runner pid=6] first_entry: x1-x30 were zero at a new thread's first instruction
13:33:59   PASS  virt_first_entry  (28s)
13:33:59   RUN   virt_failed_ap_leaves_no_hole
13:33:59   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole
13:33:59   [virt] [ 2.383 test-runner pid=19] a syscall writes only where its caller could store
13:34:00   PASS  virt_readonly_copyout  (5s)
13:34:00   RUN   virt_fatal_halts_the_others_first
13:34:00   BUILD aarch64 panic_halts_first of tests/toyos-rust-tests, for virt_fatal_halts_the_others_first
13:34:00   [virt] [ 2.089 test-runner pid=4] preempt: the counting thread was preempted twice, at counts 4275858 and 7151503
13:34:00   PASS  virt_timer_preempts  (2s)
13:34:00   RUN   virt_reboot
13:34:00   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot
13:34:00   [virt] [ 2.406 test-runner pid=16] debug_refused: SYS_DEBUG's double fault and TLB acknowledgement delay were refused
13:34:00   PASS  virt_debug_refused  (16s)
13:34:00   RUN   virt_off_names_the_cpus_left_on
13:34:00   BUILD aarch64 ROOT of tests/virtsmpcase, for virt_off_names_the_cpus_left_on
13:34:00   [virt] [ 2.473 test-runner pid=7] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
13:34:00   PASS  virt_unmap_touch  (23s)
13:34:00   RUN   virt_reboot_refused_without_psci
13:34:00   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot_refused_without_psci
13:34:01 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:34:01 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:34:01   [virt] [ 2.309 test-runner pid=5] fp_isolation: v0-v31, FPCR and FPSR survived 3 switches to a thread that loads another state
13:34:01   PASS  virt_fp_isolation  (34s)
13:34:01   RUN   virt_reboot_wire_held
13:34:01   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot_wire_held
13:34:01   [virt] [ 2.499 test-runner pid=17] ring0_timer_in_syscall: the timer interrupted the syscall's body and re-armed a quantum
13:34:01   PASS  virt_ring0_timer_in_syscall  (9s)
13:34:01   RUN   virt_reboot_wire_kept
13:34:01   BUILD aarch64 ROOT of tests/virtrebootcase, for virt_reboot_wire_kept
13:34:02 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:34:02 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:34:02 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:34:02 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:34:02 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 1s so far
13:34:03 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 2s so far
13:34:03 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 2s so far
13:34:05   [virt] [12.488 cpu0 kernel] irq-storm: PASS sgis=6690898/6690898 ticks=1000: the timer fired through the flood, and every SGI sent was taken
13:34:05   PASS  virt_irq_storm  (13s)
13:34:05   RUN   virt_jobs_at_el2
13:34:05   PASS  usbd_drives_the_spare  (14s)
13:34:05   RUN   virt_random_differs
13:34:07   [virt] [ 2.404 test-runner pid=18] random_draws: 8 threads drew 1000 times each and no two draws were alike; one more: cbbbd97127c7e4207c70be698835fe427044861b94a4a4182a7aa6bd54765108
13:34:08   [virt] [ 2.936 test-runner pid=4] preempt: the counting thread was preempted twice, at counts 1455240 and 5763340
13:34:08   [virt] [ 3.127 test-runner pid=5] fp_isolation: v0-v31, FPCR and FPSR survived 3 switches to a thread that loads another state
13:34:08   [virt] [ 3.179 test-runner pid=6] first_entry: x1-x30 were zero at a new thread's first instruction
13:34:09   [virt] [ 3.694 test-runner pid=7] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
13:34:09   [virt] [ 3.723 test-runner pid=16] debug_refused: SYS_DEBUG's double fault and TLB acknowledgement delay were refused
13:34:09   [virt] [ 3.737 test-runner pid=17] ring0_timer_in_syscall: the timer interrupted the syscall's body and re-armed a quantum
13:34:09   [virt] [ 3.818 test-runner pid=18] random_draws: 8 threads drew 1000 times each and no two draws were alike; one more: a9d4521f63bc49e2f7b89469fa774a82dbe087e72dd3e8473def71c2d39ad55a
13:34:09   [virt] [ 3.863 test-runner pid=19] a syscall writes only where its caller could store
13:34:09   PASS  virt_jobs_at_el2  (4s)
13:34:09   RUN   virt_smmu
13:34:10   [virt] [ 0.697 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 4 functions' streams aborting in a table of 64, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
13:34:10   [virt] GBPA 0x101000: ABORT
13:34:10   [virt] [ 0.692 cpu0 kernel] smmu-selftest: 00:03.0, StreamID 0x18, is given no route, as a function never enumerated is not
13:34:10   [virt] [ 0.705 cpu0 kernel] smmu-selftest: 00:04.0's write at 0x40800000, on the entry its stream starts with, answered 0xdead0002: refused
13:34:10   [virt] [ 0.707 cpu0 kernel] smmu-selftest: 00:04.0's write at 0x400000000040, mapped to 0x40800040, answered 0x0: landed there
13:34:10   [virt] [ 0.708 cpu0 kernel] smmu-selftest: 00:03.0's write 1 at 0x40800000, under no route, answered 0xdead0002: refused
13:34:10   [virt] [ 0.708 cpu0 kernel] smmu-selftest: 00:03.0's write 2 at 0x40800000, under no route, answered 0xdead0002: refused
13:34:10   [virt] [ 0.709 cpu0 kernel] smmu-selftest: 00:03.0's write 3 at 0x40800000, under no route, answered 0xdead0002: refused
13:34:10   [virt] [ 0.712 cpu0 kernel] smmu-selftest: 00:04.0's write at 0x400000000040 again, which its domain no longer maps, answered 0xdead0002: refused
13:34:10   [virt] [ 0.709 cpu0 kernel] iommu: DMA FAULT owner=none unit0 stream=0x18 addr=0x0000000000000000 access=none reason=0x04 domain=unknown bme=unknown-function unitfaults=1 streamfaults=1 first=y C_BAD_STE
13:34:10   [virt] [ 0.710 cpu0 kernel] iommu: DMA FAULT owner=none unit0 stream=0x18 addr=0x0000000000000000 access=none reason=0x04 domain=unknown bme=unknown-function unitfaults=2 streamfaults=2 first=y C_BAD_STE
13:34:10   [virt] [ 0.713 cpu0 kernel] iommu: DMA FAULT owner=kernel unit0 stream=00:04.0 addr=0x0000400000000040 access=write reason=0x10 domain=1 bme=cleared unitfaults=4 streamfaults=1 first=n F_TRANSLATION
13:34:10   PASS  virt_smmu  (850ms)
13:34:10   RUN   virt_claim_lpi
13:34:10   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
13:34:10   [virt] [ 2.697 test-runner pid=18] random_draws: 8 threads drew 1000 times each and no two draws were alike; one more: cba5dfd30091c57be1ba8e3696398f658f10b8def0fc60bdc5d42b845f53f84a
13:34:10   [virt] two boots keyed from the loader's seed printed two draws
13:34:10   PASS  virt_random_differs  (6s)
13:34:10   RUN   virt_no_seed_refused
13:34:12 [build-lock] artifact staging acquired after 11.2s
13:34:12 [build-lock] artifact staging acquired after 11.1s
13:34:12 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:34:12 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:34:12 [build-lock] artifact staging acquired after 10.4s
13:34:12 [build-lock] artifact staging acquired after 10.1s
13:34:12 [build-lock] artifact staging acquired after 10.1s
13:34:12   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_smp  (14s)
13:34:12 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:34:12 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:34:12 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:34:12   BUILT aarch64 panic_halts_first of tests/toyos-rust-tests, for virt_fatal_halts_the_others_first  (13s)
13:34:12 [build-lock] artifact staging acquired after 10.2s
13:34:12   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_off_names_the_cpus_left_on  (13s)
13:34:12 [build-lock] artifact staging acquired after 9.9s
13:34:12 [build-lock] artifact staging acquired after 9.1s
13:34:12 [build-lock] artifact staging acquired after 9.0s
13:34:12   BUILD aarch64 ROOT of tests/virtpaniccase, for virt_fatal_halts_the_others_first
13:34:12 [build-lock] artifact staging acquired after 405.9ms
13:34:12 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:34:12 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:34:12 [build-lock] waiting for the artifact lock (artifact staging) — held by pid 77505 (artifact staging), 0s so far
13:34:12 [build-lock] artifact staging acquired after 561.5ms
13:34:12   BUILT aarch64 kernel mask-windows, ROOT of tests/virtsmpcase, for virt_mask_windows  (14s)
13:34:13 [build-lock] artifact staging acquired after 556.8ms
13:34:13   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_el1_smp  (14s)
13:34:13 [build-lock] artifact staging acquired after 700.9ms
13:34:13   BUILT aarch64 ROOT of tests/virtsmpcase, for virt_failed_ap_leaves_no_hole  (14s)
13:34:13 [build-lock] artifact staging acquired after 744.8ms
13:34:13   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot  (13s)
13:34:13   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (3s)
13:34:13 [build-lock] artifact staging acquired after 724.2ms
13:34:13   BUILD aarch64 ROOT of tests/virtclaimcase, for virt_claim_lpi
13:34:13 [build-lock] artifact staging acquired after 891.6ms
13:34:13   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot_refused_without_psci  (13s)
13:34:14 [build-lock] artifact staging acquired after 1.3s
13:34:14   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot_wire_kept  (12s)
13:34:14   BUILT aarch64 ROOT of tests/virtrebootcase, for virt_reboot_wire_held  (13s)
13:34:16   [virt] reboot: this machine has no reset this kernel performs — refused, and the job ended exit 1
13:34:16   PASS  virt_reboot_refused_without_psci  (3s)
13:34:16   [virt] [ 4.019 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
13:34:16   [virt] 8 CPUs entered at EL2, started through SMC, and scheduling
13:34:16   BUILT aarch64 ROOT of tests/virtpaniccase, for virt_fatal_halts_the_others_first  (4s)
13:34:17   [virt] [ 4.336 test-runner pid=13] counters_read: every cpu answered for itself, and each counter is a right's
13:34:17   [virt] [ 4.429 test-runner pid=15] trace_read: a wake precedes its pick, a cursor is its reader's own, and the diary is TRACE's
13:34:17   [virt] stop: 5 of 5 userland thread(s) stopped across 8 cpu(s) in 0 ms of a 2010 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; every CPU but 0x0 called CPU_OFF, then 0x0 SYSTEM_OFF
13:34:17   PASS  virt_smp  (9s)
13:34:17   [virt] [ 4.588 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
13:34:17   [virt] [ 4.711 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
13:34:17   PASS  virt_no_seed_refused  (7s)
13:34:17   BUILT aarch64 ROOT of tests/virtclaimcase, for virt_claim_lpi  (4s)
13:34:18   [virt] [ 4.710 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
13:34:18   [virt] 8 CPUs entered at EL1, started through HVC, and scheduling
13:34:18   [virt] [ 4.885 test-runner pid=13] counters_read: every cpu answered for itself, and each counter is a right's
13:34:18   [virt] [ 4.989 test-runner pid=15] trace_read: a wake precedes its pick, a cursor is its reader's own, and the diary is TRACE's
13:34:18   [virt] stop: 5 of 5 userland thread(s) stopped across 8 cpu(s) in 0 ms of a 2010 ms budget over 1 sweep(s), 0 of 0 userland block operation(s) still open; every CPU but 0x0 called CPU_OFF, then 0x0 SYSTEM_OFF
13:34:18   PASS  virt_el1_smp  (10s)
13:34:18   [windows] cpu0 irqs_off_ns=2706000 preempt_off_ns=21688000
13:34:18   [windows] cpu1 irqs_off_ns=13065000 preempt_off_ns=13081000
13:34:18   [windows] cpu2 irqs_off_ns=1154000 preempt_off_ns=10530000
13:34:18   [windows] cpu3 irqs_off_ns=11034000 preempt_off_ns=32777000
13:34:18   [windows] cpu4 irqs_off_ns=810000 preempt_off_ns=6363000
13:34:18   [windows] cpu5 irqs_off_ns=2002000 preempt_off_ns=28670000
13:34:18   [windows] cpu6 irqs_off_ns=50135000 preempt_off_ns=53143000
13:34:18   [windows] cpu7 irqs_off_ns=7316000 preempt_off_ns=10911000
13:34:18   PASS  virt_mask_windows  (7s)
13:34:18   [virt] Rebooting., then one SYSTEM_RESET, and QEMU stopped for guest-reset
13:34:18   PASS  virt_reboot  (5s)
13:34:19   [virt] Rebooting., then one SYSTEM_RESET, and QEMU stopped for guest-reset
13:34:19   PASS  virt_reboot_wire_held  (5s)
13:34:20   [virt] [ 2.128 test-runner pid=4] claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each
13:34:20   [virt] [ 0.542 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
13:34:20   [virt] [ 2.128 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
13:34:20   [virt] [ 2.127 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
13:34:20   [virt] [ 2.128 cpu0 kernel] pcidev: slot 0 took its first message on LPI 8192
13:34:20   [virt] [ 2.128 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
13:34:20   [virt] [ 2.128 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
13:34:20   PASS  virt_claim_lpi  (2s)
13:34:20   [panic] the fatal path on cpu2 left every other CPU halted with interrupts masked
13:34:20   PASS  virt_fatal_halts_the_others_first  (4s)
13:34:21   [virt] [ 7.771 test-runner pid=4] unmap_touch: 4 reads of a page just unmapped on the unmapping thread, and 4 on another, each ended their process
13:34:21   [virt] a non-last AP never started and the dense machine ran its job
13:34:21   PASS  virt_failed_ap_leaves_no_hole  (8s)
13:34:22   [virt] [6, 7] left on and named; the rest CPU_OFF, then 0x0 SYSTEM_OFF; 4131 PSCI call(s) traced
13:34:22   PASS  virt_off_names_the_cpus_left_on  (10s)
13:34:24   [virt] Rebooting., then one SYSTEM_RESET, and QEMU stopped for guest-reset
13:34:24   PASS  virt_reboot_wire_kept  (10s)
13:34:24   --- 59 guests, 35 of them not the shipping kernel, 3 kernel build(s): ["", "boot-actuators,test-actuators", "mask-windows"]

13:34:24 host: fastest boot 466 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
13:34:24 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
13:34:24 test result: ok. 55 passed, 55 total (132.3s; workers: 985s building, 545s testing)
EXIT=0


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Gate: cargo run -- --build-only at 2c744d4, EXIT=0, part 1 of 1

==> final-build-x86.log <==
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.47s
     Running `target/debug/toyos-build --build-only`
   Compiling kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `toyos` profile [optimized + debuginfo] target(s) in 2.44s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.29s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `toyos` profile [optimized + debuginfo] target(s) in 1.24s
    Blocking waiting for file lock on package cache
warning: the following packages contain code that will be rejected by a future version of Rust: winit v0.30.13 (https://github.com/ToyOSOrg/winit?branch=toyos-0.30.13#f58e1f3b)
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
13:40:56 root: adding 'bin/acpiserver' (1003456 bytes)
13:40:56 root: adding 'bin/calc' (1285840 bytes)
13:40:56 root: adding 'bin/compositor' (2581312 bytes)
13:40:56 root: adding 'bin/diskserver' (755232 bytes)
13:40:56 root: adding 'bin/doom' (1830296 bytes)
13:40:56 root: adding 'bin/editor' (787944 bytes)
13:40:56 root: adding 'bin/filepicker' (741200 bytes)
13:40:56 root: adding 'bin/files' (2392912 bytes)
13:40:56 root: adding 'bin/fileserver' (1521352 bytes)
13:40:56 root: adding 'bin/host' (565216 bytes)
13:40:56 root: adding 'bin/inspect' (721936 bytes)
13:40:56 root: adding 'bin/logkeeper' (910592 bytes)
13:40:56 root: adding 'bin/netstack' (2043584 bytes)
13:40:56 root: adding 'bin/paint' (733320 bytes)
13:40:56 root: adding 'bin/pkg' (798424 bytes)
13:40:56 root: adding 'bin/proctest' (686064 bytes)
13:40:56 root: adding 'bin/shell' (792128 bytes)
13:40:56 root: adding 'bin/snake' (997320 bytes)
13:40:56 root: adding 'bin/soundserver' (916512 bytes)
13:40:56 root: adding 'bin/sshserver' (4798032 bytes)
13:40:56 root: adding 'bin/supervisor' (1504944 bytes)
13:40:56 root: adding 'bin/swap' (707976 bytes)
13:40:56 root: adding 'bin/symbolize' (692760 bytes)
13:40:56 root: adding 'bin/terminal' (810264 bytes)
13:40:56 root: adding 'bin/toybox' (1106064 bytes)
13:40:56 root: adding 'bin/trace' (563056 bytes)
13:40:56 root: adding 'bin/update' (928432 bytes)
13:40:56 root: adding 'etc/os-release' (287 bytes)
13:40:56 root: adding 'etc/ssl/CDLA-Permissive-2.0.txt' (2371 bytes)
13:40:56 root: adding 'etc/ssl/cert.pem' (181603 bytes)
13:40:56 root: adding 'etc/system.manifest' (2912 bytes)
13:40:56 root: adding 'share/doom1.wad' (4196020 bytes)
13:40:56 root: adding 'share/fonts/JetBrainsMono-Regular-8x16.font' (66404 bytes)
13:40:56 root: adding 'share/fonts/ofl.txt' (4216 bytes)
13:40:56 root: adding 'share/fonts/opensans-bold.ttf' (147264 bytes)
13:40:56 root: adding 'share/fonts/opensans-bolditalic.ttf' (153308 bytes)
13:40:56 root: adding 'share/fonts/opensans-italic.ttf' (153256 bytes)
13:40:56 root: adding 'share/fonts/opensans-regular.ttf' (147528 bytes)
13:40:56 root: adding 'share/hello.rs' (55 bytes)
13:40:56 root: adding 'share/icons/arrow-down-right-bold.svg' (211 bytes)
13:40:56 root: adding 'share/icons/crosshair-simple-bold.svg' (809 bytes)
13:40:56 root: adding 'share/icons/cursor-bold.svg' (560 bytes)
13:40:56 root: adding 'share/icons/file-bold.svg' (293 bytes)
13:40:56 root: adding 'share/icons/folder-bold.svg' (303 bytes)
13:40:56 root: adding 'share/icons/minus-bold.svg' (253 bytes)
13:40:56 root: adding 'share/icons/square-bold.svg' (264 bytes)
13:40:56 root: adding 'share/icons/x-bold.svg' (392 bytes)
13:40:56 root: adding 'share/soundfont.sf2' (15546764 bytes)
13:40:56 root: adding 'share/wallpaper.rgb' (6220808 bytes)
13:40:56 root: symlink 'bin/cat' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/cp' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/echo' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/free' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/grep' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/hexdump' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/locale' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/ls' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/mkdir' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/mv' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/net' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/ps' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/pwd' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/reboot' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/rm' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/screen' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/shutdown' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/spin' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/stats' -> '/system/bin/toybox'
13:40:56 root: symlink 'bin/tone' -> '/system/bin/toybox'
13:40:57 Signed with this checkout's throwaway key SHA256:mAxpQb65Q+K2AjqTY7K6erZ7Cwg+0SGewD+WA/Ws4lw at version 1791639647
13:40:58 Build finished.
Boot image: /Users/jan/Dev/jan/toyos-arm-g3/target/bootable.img
EXIT=0


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Gate: cargo run -- --build-only --arch aarch64 at 2c744d4, EXIT=0, part 1 of 1

==> final-build-a64.log <==
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.89s
     Running `target/debug/toyos-build --build-only --arch aarch64`
   Compiling kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `toyos` profile [optimized + debuginfo] target(s) in 2.33s
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.23s
    Finished `toyos` profile [optimized + debuginfo] target(s) in 0.61s
warning: the following packages contain code that will be rejected by a future version of Rust: winit v0.30.13 (https://github.com/ToyOSOrg/winit?branch=toyos-0.30.13#f58e1f3b)
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
13:41:07 root: adding 'bin/acpiserver' (1116152 bytes)
13:41:07 root: adding 'bin/calc' (1405992 bytes)
13:41:07 root: adding 'bin/compositor' (2737808 bytes)
13:41:07 root: adding 'bin/diskserver' (834544 bytes)
13:41:07 root: adding 'bin/doom' (2096408 bytes)
13:41:07 root: adding 'bin/editor' (866336 bytes)
13:41:07 root: adding 'bin/filepicker' (816208 bytes)
13:41:07 root: adding 'bin/files' (2524240 bytes)
13:41:07 root: adding 'bin/fileserver' (1624904 bytes)
13:41:07 root: adding 'bin/host' (605880 bytes)
13:41:07 root: adding 'bin/inspect' (788472 bytes)
13:41:07 root: adding 'bin/logkeeper' (1003976 bytes)
13:41:07 root: adding 'bin/netstack' (2174512 bytes)
13:41:07 root: adding 'bin/paint' (809032 bytes)
13:41:07 root: adding 'bin/pkg' (852848 bytes)
13:41:07 root: adding 'bin/proctest' (738960 bytes)
13:41:07 root: adding 'bin/shell' (850576 bytes)
13:41:07 root: adding 'bin/snake' (1108600 bytes)
13:41:07 root: adding 'bin/soundserver' (1025040 bytes)
13:41:07 root: adding 'bin/sshserver' (5032680 bytes)
13:41:07 root: adding 'bin/supervisor' (1645144 bytes)
13:41:07 root: adding 'bin/swap' (777848 bytes)
13:41:07 root: adding 'bin/symbolize' (756752 bytes)
13:41:07 root: adding 'bin/terminal' (887072 bytes)
13:41:07 root: adding 'bin/toybox' (1234720 bytes)
13:41:07 root: adding 'bin/trace' (610296 bytes)
13:41:07 root: adding 'bin/update' (992848 bytes)
13:41:07 root: adding 'etc/os-release' (286 bytes)
13:41:07 root: adding 'etc/ssl/CDLA-Permissive-2.0.txt' (2371 bytes)
13:41:07 root: adding 'etc/ssl/cert.pem' (181603 bytes)
13:41:07 root: adding 'etc/system.manifest' (2912 bytes)
13:41:07 root: adding 'share/doom1.wad' (4196020 bytes)
13:41:07 root: adding 'share/fonts/JetBrainsMono-Regular-8x16.font' (66404 bytes)
13:41:07 root: adding 'share/fonts/ofl.txt' (4216 bytes)
13:41:07 root: adding 'share/fonts/opensans-bold.ttf' (147264 bytes)
13:41:07 root: adding 'share/fonts/opensans-bolditalic.ttf' (153308 bytes)
13:41:07 root: adding 'share/fonts/opensans-italic.ttf' (153256 bytes)
13:41:07 root: adding 'share/fonts/opensans-regular.ttf' (147528 bytes)
13:41:07 root: adding 'share/hello.rs' (55 bytes)
13:41:07 root: adding 'share/icons/arrow-down-right-bold.svg' (211 bytes)
13:41:07 root: adding 'share/icons/crosshair-simple-bold.svg' (809 bytes)
13:41:07 root: adding 'share/icons/cursor-bold.svg' (560 bytes)
13:41:07 root: adding 'share/icons/file-bold.svg' (293 bytes)
13:41:07 root: adding 'share/icons/folder-bold.svg' (303 bytes)
13:41:07 root: adding 'share/icons/minus-bold.svg' (253 bytes)
13:41:07 root: adding 'share/icons/square-bold.svg' (264 bytes)
13:41:07 root: adding 'share/icons/x-bold.svg' (392 bytes)
13:41:07 root: adding 'share/soundfont.sf2' (15546764 bytes)
13:41:07 root: adding 'share/wallpaper.rgb' (6220808 bytes)
13:41:07 root: symlink 'bin/cat' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/cp' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/echo' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/free' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/grep' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/hexdump' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/locale' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/ls' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/mkdir' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/mv' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/net' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/ps' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/pwd' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/reboot' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/rm' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/screen' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/shutdown' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/spin' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/stats' -> '/system/bin/toybox'
13:41:07 root: symlink 'bin/tone' -> '/system/bin/toybox'
13:41:07 Signed with this checkout's throwaway key SHA256:mAxpQb65Q+K2AjqTY7K6erZ7Cwg+0SGewD+WA/Ws4lw at version 1791639659
13:41:07 Build finished.
Boot image: /Users/jan/Dev/jan/toyos-arm-g3/target/bootable.aarch64.img
EXIT=0


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Negative control: the change's production half reverted onto f72d53d, virt_claim_lpi kept, EXIT=1, part 1 of 2

==> negative.sh <==
#!/bin/sh
# negative.sh <forward-patch> <log>: the change's production half reverted
# onto its base, the claim test run, the change put back.
set -u
cd /Users/jan/Dev/jan/toyos-arm-g3 || exit 2
git apply -R --check "$1" || { echo "PATCH DOES NOT REVERT" > "$2"; exit 2; }
git apply -R "$1"
cargo test --test toyos-build -- virt_claim_lpi > "$2" 2>&1
echo "EXIT=$?" >> "$2"
git apply "$1"
git status --porcelain >> "$2"

==> negative-control.patch <==
diff --git a/Cargo.lock b/Cargo.lock
index 4df80a990..46a4fa906 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3013,6 +3013,7 @@ dependencies = [
  "toyos-gicv3",
  "toyos-gpt",
  "toyos-hda",
+ "toyos-its",
  "toyos-pci",
  "toyos-phys",
  "toyos-ps2",
diff --git a/kernel/Cargo.toml b/kernel/Cargo.toml
index 38083419d..d3a3b8adf 100644
--- a/kernel/Cargo.toml
+++ b/kernel/Cargo.toml
@@ -489,6 +489,7 @@ toyos-elf = { path = "../toyos-elf" }
 toyos-gicv3 = { path = "gicv3" }
 toyos-gpt = { path = "../toyos-gpt" }
 toyos-hda = { path = "../toyos-hda" }
+toyos-its = { path = "../toyos-its" }
 toyos-pci = { path = "pci" }
 toyos-phys = { path = "../toyos-phys" }
 toyos-smmu = { path = "../toyos-smmu" }
diff --git a/kernel/src/arch/aarch64/irqchip.rs b/kernel/src/arch/aarch64/irqchip.rs
index 08efbb0de..9fcf1627f 100644
--- a/kernel/src/arch/aarch64/irqchip.rs
+++ b/kernel/src/arch/aarch64/irqchip.rs
@@ -1,22 +1,21 @@
 //! The interrupt controller and the timer: a GICv3 — the distributor the
-//! MADT names, this CPU's redistributor, and the system-register CPU
-//! interface (GIC architecture specification IHI 0069H) — and the generic
-//! timer's EL1 virtual timer (Arm ARM K.a, chapter D12), whose PPI the GTDT
-//! names.
+//! MADT names, this CPU's redistributor, the system-register CPU interface
+//! and the ITS ([`its`]) (GIC architecture specification IHI 0069H) — and the
+//! generic timer's EL1 virtual timer (Arm ARM K.a, chapter D12), whose PPI the
+//! GTDT names.
 //!
-//! **What this kernel takes is SGIs, the timer's PPI and the IOMMU's event
-//! SPI ([`route_iommu_events`]), and nothing else.** No other SPI is routed
-//! and no LPI exists: a device's interrupt is a message the
-//! GICv3 ITS translates, and every device that would take one is either a
-//! driver the small-kernel track moves out of the kernel or a claimed function,
-//! which the SMMUv3 of the port's stage 6 must translate first
-//! (`super::msi_message`).
+//! **What this kernel takes is SGIs, the timer's PPI, the IOMMU's event SPI
+//! ([`route_iommu_events`]) and one LPI per claim slot ([`its`]), and nothing
+//! else.** No other SPI is routed: a device's interrupt is a message the ITS
+//! translates, and only a claimed function's is.
 //!
 //! **The virtual timer, not the physical**: it is the one EL1 owns outright —
 //! under a hypervisor the physical one traps — and with `CNTVOFF_EL2` written
 //! zero by the entry from EL2 the two count alike. It is level-triggered, so a
 //! handler that neither re-arms nor stops it takes it again at once.
 
+pub mod its;
+
 use core::sync::atomic::{AtomicBool, AtomicU32, AtomicU64, Ordering::Relaxed};
 
 use alloc::vec::Vec;
@@ -31,9 +30,7 @@ use crate::mm::policy::MmioPolicy;
 use crate::mm::{DirectMap, Mmio};
 use crate::hw::MIN_ONE_SHOT;
 
-/// Every INTID this kernel names, in one space: the SGIs it raises, then the
-/// identities the generic drivers program for a message-signalled interrupt,
-/// which `super::msi_message` refuses on this machine.
+/// The SGIs this kernel raises.
 #[repr(u8)]
 pub(super) enum Intid {
     /// Asks a CPU for a scheduler pass, or for its counters: x86-64's kick.
@@ -44,8 +41,6 @@ pub(super) enum Intid {
     Off,
     /// What `irq-storm` floods this CPU with.
     Storm,
-    Hda,
-    VirtioSound,
 }
 
 pub(super) const SGI_KICK: u32 = Intid::Kick as u32;
@@ -165,17 +160,20 @@ impl Gic {
 pub fn init(rsdp_addr: u64) -> Gic {
     let madt = toyos_acpi::find_table(direct_phys(), rsdp_addr, b"APIC", toyos_acpi::MADT_ENTRIES)
         .unwrap_or_else(|e| panic!("GIC: the MADT is unusable: {e:?}"));
-    let (mut gicd, mut ranges, mut cpus) = (None, Vec::new(), Vec::new());
+    let (mut gicd, mut ranges, mut cpus, mut translators) = (None, Vec::new(), Vec::new(), Vec::new());
     for entry in toyos_acpi::madt_entries(&madt) {
+        let entry = entry.unwrap_or_else(|halt| {
+            panic!("GIC: a MADT entry at +{} declares {} bytes of a {}-byte list", halt.at, halt.declared, halt.list_len)
+        });
         match entry {
-            Ok(MadtEntry::Gicd { base, .. }) => gicd = Some(base),
-            Ok(MadtEntry::Gicr { base, length }) => ranges.push((
+            MadtEntry::Gicd { base, .. } => gicd = Some(base),
+            MadtEntry::Gicr { base, length } => ranges.push((
                 base,
                 crate::mm::paging::map_mmio(base, u64::from(length), MmioPolicy::Uncacheable),
             )),
-            Ok(MadtEntry::Gicc(gicc)) if gicc.enabled => cpus.push(gicc),
-            Ok(_) => {}
-            Err(halt) => panic!("GIC: a MADT entry at +{} declares {} bytes of a {}-byte list", halt.at, halt.declared, halt.list_len),
+            MadtEntry::Gicc(gicc) if gicc.enabled => cpus.push(gicc),
+            MadtEntry::Its { id, base } => translators.push((id, base)),
+            _ => {}
         }
     }
     let gicd = gicd.expect("GIC: the MADT names no distributor");
@@ -205,10 +203,18 @@ pub fn init(rsdp_addr: u64) -> Gic {
     );
 
     let gic = Gic { cpus, ranges };
-    init_cpu(gic.redistributor(cpu::hardware_id()));
+    let frame = gic.redistributor(cpu::hardware_id());
+    init_cpu(frame);
+    its::init(&translators, frame, rsdp_addr);
     gic
 }
 
+/// `GICD_TYPER`, which says whether the distributor takes LPIs and how wide
+/// an INTID is.
+fn distributor_typer() -> u32 {
+    Mmio::new(DirectMap::from_phys(DISTRIBUTOR.load(Relaxed)), FRAME).read_u32(GICD_TYPER)
+}
+
 /// Bring this CPU's redistributor — the frame at `frame`, which
 /// [`Gic::redistributor`] mapped — its CPU interface and its timer up: every
 /// SGI and the timer's PPI enabled at [`PRIORITY`], the timer stopped.
diff --git a/kernel/src/arch/aarch64/irqchip/its.rs b/kernel/src/arch/aarch64/irqchip/its.rs
new file mode 100644
index 000000000..e1047ca29
--- /dev/null
+++ b/kernel/src/arch/aarch64/irqchip/its.rs
@@ -0,0 +1,446 @@
+//! The GICv3 Interrupt Translation Service (IHI 0069H.b chapter 5), driven
+//! with `toyos_its`'s encodings: what turns a claimed function's message into
+//! that claim's own LPI, and into no other.
+//!
+//! **A message is translated by the DeviceID of the function that wrote it**,
+//! which the bus says and the function cannot (§5.1, §5.2.1): a claim's
+//! function is mapped to a translation table of its own (`MAPD`) whose one
+//! event is its slot's LPI (`MAPTI`), so whatever a function writes to the
+//! doorbell, it raises its own slot's LPI or nothing. A DeviceID no claim
+//! holds is mapped to no table, and its writes are dropped (§5.3.10).
+//!
+//! **Every LPI is collection 0's, on the boot CPU's redistributor**, as every
+//! claimed function's interrupt on x86-64 is cpu0's.
+//!
+//! **What the ITS and the redistributor read is handed over before it is
+//! named:** each table is written whole through [`Mmio`], whose write orders
+//! it before the register write or command that names it, and the
+//! configuration of every claim slot's LPI is written, enabled, before the
+//! redistributor's `EnableLPIs`, so no `INV` is owed (§5.1.1).
+//!
+//! An ITS this kernel cannot drive is left disabled, and every claim is
+//! refused on its account ([`is_armed`]); a command the ITS refuses, or does
+//! not consume within [`TIMEOUT_PER_SECOND`]'s bound, is a kernel defect, and
+//! panics.
+
+use alloc::vec::Vec;
+
+use toyos_acpi::Route;
+use toyos_its::command::Command;
+use toyos_its::lpi::{self, Layout, Lpi};
+use toyos_its::{Collection, CommandQueue, EventBits, Its, Table, Target};
+use toyos_phys::Phys;
+
+use crate::drivers::acpi::direct_phys;
+use crate::iommu::StreamId;
+use crate::log;
+use crate::mm::pmm::{self, PhysPage};
+use crate::mm::policy::MmioPolicy;
+use crate::mm::{DirectMap, Mmio, PAGE_2M};
+use crate::pcidev::MAX_FUNCTIONS;
+use crate::sync::Lock;
+
+/// A command is consumed within a second, and a register settles in one:
+/// `settles` takes the bound as a rate.
+const TIMEOUT_PER_SECOND: u64 = 1;
+
+/// The ITS's control frame; the translation frame is the next 64 KiB.
+const FRAME: u64 = 0x1_0000;
+
+/// `GITS_CTLR.Quiescent` [31] (§12.19.4): the ITS has finished with every
+/// table and may be reprogrammed.
+const CTLR_QUIESCENT: u32 = 1 << 31;
+
+/// Offsets in a redistributor's `RD_base` frame (§12.10).
+const GICR_CTLR: u64 = 0x0000;
+const GICR_TYPER: u64 = 0x0008;
+
+/// INTID bits the LPI tables are laid out for: the least that names an LPI
+/// (§5.1.1), 8192 of them, which no claim slot count comes near.
+const ID_BITS: u8 = 14;
+
+/// The widest DeviceID a claim is given: a PCI requester ID's, which is what
+/// the IORT maps each function from. The device table holds no more.
+const DEVICE_BITS: u8 = 16;
+
+/// One event per claim, so the least table there is: two events.
+const EVENT_BITS: u8 = 1;
+
+/// A claim's one event: what its message carries as data.
+const EVENT: u32 = 0;
+
+/// Every LPI a claim slot raises runs at the one priority every SGI and PPI
+/// does (`super::PRIORITY`).
+const PRIORITY: u8 = super::PRIORITY;
+
+/// `GITS_BASER<n>`'s `Type` [58:56] and `Entry_Size` [52:48], which the ITS
+/// states and a write leaves as they are (§12.19.1).
+const BASER_READ_ONLY: u64 = 0b111 << 56 | 0x1F << 48;
+
+/// The translation table entries one claim's function writes are read
+/// through: `MAPD`'s `ITT_addr` is 256-byte aligned (§5.3.10).
+const ITT_ALIGN: u64 = 256;
+
+static ITS: Lock<Option<Live>> = Lock::new(None);
+
+/// The ITS this kernel drives, armed.
+struct Live {
+    regs: Mmio,
+    /// The MADT's id for it, which the IORT names it by.
+    id: u32,
+    /// `GITS_TRANSLATER`'s physical address: every claim's message address.
+    doorbell: u32,
+    queue: Mmio,
+    commands: CommandQueue,
+    /// `GITS_CWRITER` as last written.
+    cwriter: u64,
+    /// The boot CPU's redistributor, as this ITS names it.
+    target: Target,
+    collection: Collection,
+    events: EventBits,
+    /// Each claim slot's translation table, and the DeviceID mapped to it
+    /// while the slot is claimed.
+    itts: [Phys<8>; MAX_FUNCTIONS],
+    held: [Option<u32>; MAX_FUNCTIONS],
+    /// Each slot's LPI.
+    lpis: [Lpi; MAX_FUNCTIONS],
+    /// Where the IORT is read from at each claim.
+    rsdp: u64,
+    /// The pages every table is in: never given back, since the ITS and the
+    /// redistributor may read any of them for the machine's life.
+    _pages: Vec<PhysPage>,
+}
+
+impl Live {
+    /// `commands`, then a `SYNC` to the boot CPU's redistributor, consumed:
+    /// every one has taken effect when this returns (§5.3.15).
+    fn issue(&mut self, commands: &[Command]) {
+        let (regs, queue) = (self.regs, self.commands);
+        for command in commands.iter().copied().chain([Command::Sync(self.target)]) {
+            let cwriter = self.cwriter;
+            super::settles(TIMEOUT_PER_SECOND, "ITS: room in its command queue", || {
+                !queue.is_full(cwriter, regs.read_u64(toyos_its::GITS_CREADR as u64))
+            });
+            let at = u64::from(queue.offset(cwriter));
+            for (i, word) in command.words().iter().enumerate() {
+                self.queue.write_u64(at + 8 * i as u64, *word);
+            }
+            self.cwriter = queue.after(cwriter);
+        }
+        let cwriter = self.cwriter;
+        regs.write_u64(toyos_its::GITS_CWRITER as u64, cwriter);
+        super::settles(TIMEOUT_PER_SECOND, "ITS: its commands consumed", || {
+            let creadr = regs.read_u64(toyos_its::GITS_CREADR as u64);
+            assert!(
+                creadr & toyos_its::CREADR_STALLED == 0,
+                "ITS: stalled on the command at {:#x} of {commands:?}",
+                queue.offset(creadr)
+            );
+            queue.is_empty(cwriter, creadr)
+        });
+    }
+}
+
+/// Bump-allocated zeroed memory, aligned as asked, out of 2 MiB pages.
+struct Memory {
+    pages: Vec<PhysPage>,
+    used: u64,
+}
+
+impl Memory {
+    fn alloc(&mut self, bytes: u64, align: u64) -> u64 {
+        assert!(align.is_power_of_two() && bytes <= PAGE_2M, "ITS: {bytes:#x} bytes aligned to {align:#x}");
+        let mut at = self.used.next_multiple_of(align);
+        if self.pages.is_empty() || at + bytes > PAGE_2M {
+            // Zeroed by the allocator.
+            self.pages.push(pmm::alloc_page().expect("ITS: no memory for its tables"));
+            at = 0;
+        }
+        self.used = at + bytes;
+        self.pages.last().expect("a page was just pushed").direct_map().phys() + at
+    }
+}
+
+/// `bytes` of [`Memory`] at `phys`.
+fn window(phys: u64, bytes: u64) -> Mmio {
+    // SAFETY: every caller names memory `Memory::alloc` handed out, which
+    // `Live` keeps for the machine's life and the direct map covers.
+    unsafe { Mmio::over_phys(DirectMap::from_phys(phys), bytes) }
+}
+
+/// What claim slot `slot`'s message raises, for the record.
+pub(crate) fn slot_interrupt(slot: usize) -> impl core::fmt::Display {
+    let intid = lpi::FIRST + slot as u32;
+    alloc::format!("LPI {intid}")
+}
+
+/// The claim slot LPI `intid` is raised for, for the interrupt's handler:
+/// `None` for any INTID no slot owns.
+pub(in crate::arch::aarch64) fn slot_of(intid: u32) -> Option<usize> {
+    let slot = usize::try_from(intid.checked_sub(lpi::FIRST)?).ok()?;
+    (slot < MAX_FUNCTIONS).then_some(slot)
+}
+
+/// Bring the one ITS the MADT names up, on the boot CPU's redistributor at
+/// `frame`, once that CPU's GIC is, from the `(id, base)` of every ITS the
+/// MADT names: every refusal is logged and leaves no claim a message.
+pub(super) fn init(named: &[(u32, u64)], frame: u64, rsdp: u64) {
+    let (id, base) = match *named {
+        [] => {
+            log!("ITS: the MADT names none, so no claimed function is given an interrupt");
+            return;
+        }
+        [one] => one,
+        _ => {
+            log!("ITS: the MADT names {}, and this kernel drives one: no claimed function is given an interrupt", named.len());
+            return;
+        }
+    };
+    match bring_up(id, base, frame, rsdp) {
+        Ok(live) => {
+            log!(
+                "ITS: {id} at {base:#x} armed: doorbell {:#x}, collection 0 on the boot CPU's redistributor at {frame:#x}, \
+                 LPIs {:?} for the claim slots",
+                live.doorbell,
+                live.lpis.map(|lpi| lpi.intid()),
+            );
+            *ITS.lock() = Some(live);
+        }
+        Err(why) => log!("ITS: {id} at {base:#x} is left disabled, so no claimed function is given an interrupt: {why}"),
+    }
+}
+
+fn bring_up(id: u32, base: u64, frame: u64, rsdp: u64) -> Result<Live, alloc::string::String> {
+    use alloc::format;
+    let doorbell = base + FRAME + toyos_its::GITS_TRANSLATER;
+    let doorbell = u32::try_from(doorbell)
+        .map_err(|_| format!("GITS_TRANSLATER at {doorbell:#x} is past the 32 bits a message address this kernel writes holds"))?;
+    let regs = crate::mm::paging::map_mmio(base, FRAME, MmioPolicy::Uncacheable);
+    let typer = regs.read_u64(toyos_its::GITS_TYPER as u64);
+    let its: Its = toyos_its::probe(typer).map_err(|lacks| format!("it lacks {lacks:?} (GITS_TYPER {typer:#x})"))?;
+    let events = its.events(EVENT_BITS).ok_or_else(|| format!("it has no EventID (GITS_TYPER {typer:#x})"))?;
+    if its.device_bits < DEVICE_BITS {
+        return Err(format!("its DeviceIDs are {} bits, short of a requester ID's {DEVICE_BITS}", its.device_bits));
+    }
+
+    // Disabled and quiescent before any table is named (§12.19.4).
+    let ctlr = regs.read_u32(toyos_its::GITS_CTLR as u64);
+    if ctlr & toyos_its::CTLR_ENABLED != 0 {
+        regs.write_u32(toyos_its::GITS_CTLR as u64, ctlr & !toyos_its::CTLR_ENABLED);
+    }
+    super::settles(TIMEOUT_PER_SECOND, "ITS: GITS_CTLR.Quiescent", || {
+        regs.read_u32(toyos_its::GITS_CTLR as u64) & CTLR_QUIESCENT != 0
+    });
+
+    // The redistributor first: an ITS whose LPIs no redistributor takes
+    // would translate into nothing.
+    let rd = Mmio::new(DirectMap::from_phys(frame), FRAME);
+    let rd_typer = rd.read_u64(GICR_TYPER);
+    if rd_typer & lpi::TYPER_PLPIS == 0 {
+        return Err(format!("the boot CPU's redistributor takes no physical LPI (GICR_TYPER {rd_typer:#x})"));
+    }
+    if rd.read_u32(GICR_CTLR) & lpi::CTLR_ENABLE_LPIS != 0 {
+        return Err("the boot CPU's redistributor was handed over with its LPIs enabled, whose tables nothing may move".into());
+    }
+    let gicd_typer = super::distributor_typer();
+    let layout = Layout::new(gicd_typer, ID_BITS)
+        .ok_or_else(|| format!("the distributor takes no LPI of {ID_BITS} bits (GICD_TYPER {gicd_typer:#x})"))?;
+
+    let mut memory = Memory { pages: Vec::new(), used: 0 };
+    let configuration = memory.alloc(layout.configuration_bytes(), 1 << 12);
+    let pending = memory.alloc(layout.pending_bytes(), 1 << 16);
+    let queue_at = memory.alloc(4096, 1 << 16);
+    let commands = CommandQueue::new(1).expect("one page is a queue");
+
+    // Each `GITS_BASER<n>` that asks for a table this kernel needs is given
+    // one; the others back nothing (§12.19.1).
+    let mut collections_in_table = 0;
+    for n in 0..8 {
+        let at = toyos_its::gits_baser(n).expect("eight registers") as u64;
+        let backing = toyos_its::table(regs.read_u64(at));
+        let entries = match backing.table {
+            Table::Unimplemented | Table::Other(_) => continue,
+            Table::Devices => 1u64 << DEVICE_BITS,
+            // One collection: the boot CPU's.
+            Table::Collections => 1,
+        };
+        let pages = backing
+            .pages(entries)
+            .ok_or_else(|| format!("GITS_BASER{n} cannot hold {entries} entries in a flat table"))?;
+        let bytes = u64::from(pages) * backing.page.bytes();
+        if bytes > PAGE_2M {
+            return Err(format!("GITS_BASER{n}'s table of {entries} entries is {bytes:#x} bytes, past a page"));
+        }
+        let table = Phys::<16>::new(memory.alloc(bytes, 1 << 16)).expect("a 64 KiB-aligned page below 2^48");
+        let value = backing.baser(table, pages).expect("pages inside the field");
+        regs.write_u64(at, value);
+        let read = regs.read_u64(at);
+        if read & !BASER_READ_ONLY != value {
+            return Err(format!("GITS_BASER{n} reads {read:#x} after {value:#x} was written"));
+        }
+        if backing.table == Table::Collections {
+            collections_in_table = backing.entries(pages);
+        }
+    }
+    let collection = its
+        .collections(collections_in_table)
+        .collection(0)
+        .ok_or_else(|| format!("it holds no collection, and no GITS_BASER backs a table of them (GITS_TYPER {typer:#x})"))?;
+
+    let queue_phys = Phys::<16>::new(queue_at).expect("a 64 KiB-aligned page below 2^48");
+    regs.write_u64(toyos_its::GITS_CBASER as u64, commands.cbaser(queue_phys));
+    regs.write_u64(toyos_its::GITS_CWRITER as u64, 0);
+
+    let propbaser = layout.propbaser(Phys::new(configuration).expect("a 4 KiB-aligned page below 2^48"));
+    rd.write_u64(lpi::GICR_PROPBASER as u64, propbaser);
+    let read = rd.read_u64(lpi::GICR_PROPBASER as u64);
+    let space = layout.space(read).ok_or_else(|| format!("GICR_PROPBASER reads {read:#x} after {propbaser:#x} was written"))?;
+    // Every slot's LPI enabled, before the redistributor reads the table.
+    let lpis: [Lpi; MAX_FUNCTIONS] = core::array::from_fn(|slot| {
+        space.lpi(lpi::FIRST + slot as u32).expect("a claim slot's LPI is among the 8192 the layout holds")
+    });
+    let config = window(configuration, layout.configuration_bytes());
+    for lpi in lpis {
+        config.write_u8(lpi.configuration_index() as u64, lpi::configuration(PRIORITY, true));
+    }
+    rd.write_u64(lpi::GICR_PENDBASER as u64, lpi::pendbaser(Phys::new(pending).expect("a 64 KiB-aligned page below 2^48")));
+    rd.write_u32(GICR_CTLR, rd.read_u32(GICR_CTLR) | lpi::CTLR_ENABLE_LPIS);
+    if rd.read_u32(GICR_CTLR) & lpi::CTLR_ENABLE_LPIS == 0 {
+        return Err("the boot CPU's redistributor reads EnableLPIs clear after it was set".into());
+    }
+
+    regs.write_u32(toyos_its::GITS_CTLR as u64, toyos_its::CTLR_ENABLED);
+    if regs.read_u32(toyos_its::GITS_CTLR as u64) & toyos_its::CTLR_ENABLED == 0 {
+        return Err("GITS_CTLR reads Enabled clear after it was set".into());
+    }
+
+    let target = its.target(lpi::processor_number(rd_typer), Phys::new(frame).expect("a redistributor frame is 64 KiB aligned"));
+    let itt_bytes = its.itt_bytes(events).next_multiple_of(ITT_ALIGN);
+    let itts = core::array::from_fn(|_| Phys::<8>::new(memory.alloc(itt_bytes, ITT_ALIGN)).expect("256-byte aligned below 2^48"));
+    let mut live = Live {
+        regs,
+        id,
+        doorbell,
+        queue: window(queue_at, 4096),
+        commands,
+        cwriter: 0,
+        target,
+        collection,
+        events,
+        itts,
+        held: [None; MAX_FUNCTIONS],
+        lpis,
+        rsdp,
+        _pages: memory.pages,
+    };
+    live.issue(&[Command::MapCollection { collection, target }]);
+    Ok(live)
+}
+
+/// The 4 KiB page `GITS_TRANSLATER` is in, where an ITS is armed: what every
+/// claimed function's domain maps for its messages to reach it.
+pub(in crate::arch::aarch64) fn doorbell_page() -> Option<u64> {
+    ITS.lock().as_ref().map(|live| u64::from(live.doorbell) & !(crate::mm::PAGE_SIZE - 1))
+}
+
+/// Whether an ITS is armed to give a claimed function its own LPI.
+pub fn is_armed() -> bool {
+    ITS.lock().is_some()
+}
+
+pub struct Msi {
+    pub address: u32,
+    pub data: u32,
+}
+
+/// Why a source could not be given a message.
+#[derive(Clone, Copy)]
+pub enum Refused {
+    /// It is a driver in this kernel's.
+    KernelDriver,
+    /// The IORT gives it no DeviceID at this ITS behind the SMMUv3.
+    NoDeviceId,
+    /// Its DeviceID is past the device table's.
+    DeviceIdTooWide(u32),
+    /// Its DeviceID is another claim's: one table translates both, so each
+    /// could raise the other's interrupt.
+    DeviceIdHeld(u32),
+}
+
+impl core::fmt::Display for Refused {
+    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+        match self {
+            Self::KernelDriver => write!(
+                f,
+                "a driver in this kernel is given no LPI: the ITS maps only a claimed function's \
+                 DeviceID, and such a driver has no address space for its DMA"
+            ),
+            Self::NoDeviceId => write!(
+                f,
+                "the IORT gives it no DeviceID at this kernel's ITS behind the SMMUv3, so no \
+                 table of its own would translate its message"
+            ),
+            Self::DeviceIdTooWide(id) => write!(f, "its DeviceID {id:#x} is past the ITS's device table"),
+            Self::DeviceIdHeld(id) => write!(
+                f,
+                "the IORT gives it DeviceID {id:#x}, which another claimed function's messages \
+                 are already translated by"
+            ),
+        }
+    }
+}
+
+/// A driver in this kernel is given no LPI: only a claim slot's function is
+/// mapped, and a driver in this kernel on this machine has no address space
+/// to do DMA in (`super::super::iommu_unit`).
+pub fn msi(_source: StreamId, _irq: crate::arch::DriverIrq) -> Result<Msi, Refused> {
+    Err(Refused::KernelDriver)
+}
+
+/// The DeviceID the IORT gives `source` at the ITS behind the SMMUv3.
+fn device_of(live: &Live, source: StreamId) -> Result<u32, Refused> {
+    let iort = toyos_acpi::iort(direct_phys(), live.rsdp).map_err(|_| Refused::NoDeviceId)?;
+    let segment = u32::from(crate::pcidev::segment());
+    match iort.route(segment, source.requester()) {
+        Ok(Route::Translated { its: Some(device), .. }) if device.its == live.id => {
+            if device.device >> DEVICE_BITS == 0 {
+                Ok(device.device)
+            } else {
+                Err(Refused::DeviceIdTooWide(device.device))
+            }
+        }
+        _ => Err(Refused::NoDeviceId),
+    }
+}
+
+/// Map claim slot `slot`'s translation table to `source`'s DeviceID, its one
+/// event to the slot's LPI, and answer the message that raises it.
+pub fn claim(slot: usize, source: StreamId) -> Result<Msi, Refused> {
+    let mut held = ITS.lock();
+    let live = held.as_mut().unwrap_or_else(|| panic!("ITS: claim slot {slot} mapped with no ITS armed"));
+    assert!(live.held[slot].is_none(), "ITS: claim slot {slot} is still mapped");
+    let device = device_of(live, source)?;
+    if live.held.contains(&Some(device)) {
+        return Err(Refused::DeviceIdHeld(device));
+    }
+    let event = live.events.event(EVENT).expect("event 0 is in every table");
+    let (table, lpi, collection, events) = (live.itts[slot], live.lpis[slot], live.collection, live.events);
+    live.issue(&[
+        Command::MapDevice { device, table, events },
+        Command::MapEvent { device, event, lpi, collection },
+    ]);
+    live.held[slot] = Some(device);
+    log!("ITS: {source}, DeviceID {device:#x}, event {EVENT} is slot {slot}'s LPI {}", lpi.intid());
+    Ok(Msi { address: live.doorbell, data: EVENT })
+}
+
+/// Claim slot `slot`'s DeviceID unmapped, and anything it left pending
+/// dropped, before this returns.
+pub fn release(slot: usize, source: StreamId) {
+    let mut held = ITS.lock();
+    let live = held.as_mut().unwrap_or_else(|| panic!("ITS: claim slot {slot} released with no ITS armed"));
+    let device = live.held[slot].take().unwrap_or_else(|| panic!("ITS: claim slot {slot} released unmapped"));
+    let event = live.events.event(EVENT).expect("event 0 is in every table");
+    live.issue(&[Command::Discard { device, event }, Command::UnmapDevice { device }]);
+    log!("ITS: {source}, DeviceID {device:#x}, unmapped from slot {slot}");
+}
diff --git a/kernel/src/arch/aarch64/mod.rs b/kernel/src/arch/aarch64/mod.rs
index a3c29dfc6..6d9c87c2c 100644
--- a/kernel/src/arch/aarch64/mod.rs
+++ b/kernel/src/arch/aarch64/mod.rs
@@ -39,21 +39,14 @@ pub mod tlb;
 pub mod trap;
 pub mod watchdog;
 
+pub use irqchip::its as message_unit;
+pub(crate) use irqchip::its::slot_interrupt;
 pub use smmu as iommu_unit;
+pub use trap::DriverIrq;
 
 /// The machine every program image this kernel loads must be built for.
 pub const ELF_MACHINE: toyos_elf::Machine = toyos_elf::Machine::Aarch64;
 
-/// A message-signalled interrupt's address and data for `vector` on CPU
-/// `dest`, which this machine does not give: the doorbell is an ITS's
-/// `GITS_TRANSLATER` and the data an event the ITS maps, and nothing here
-/// drives an ITS. Every function that would take one is a driver the
-/// small-kernel track moves out of the kernel, or a claimed function the
-/// SMMUv3 of the port's stage 6 must translate first; each is refused by name.
-pub fn msi_message(_dest: u32, _vector: u8) -> Result<(u32, u32), &'static str> {
-    Err("AArch64 delivers no message-signalled interrupt to this kernel: the GICv3 ITS is unported")
-}
-
 /// Interrupts masked on this CPU for as long as the guard lives, and then put
 /// back as they were — restored, not enabled — so a guard nests inside a region
 /// that is already masked. `DAIF`'s `I` and `F` are what it closes; `D` and `A`
diff --git a/kernel/src/arch/aarch64/smmu/domain.rs b/kernel/src/arch/aarch64/smmu/domain.rs
index 4b61ff63c..f40e4c641 100644
--- a/kernel/src/arch/aarch64/smmu/domain.rs
+++ b/kernel/src/arch/aarch64/smmu/domain.rs
@@ -1,8 +1,14 @@
 //! A device's address space: one context descriptor, tagged with an ASID of
-//! its own, over stage 1 tables that map 2 MiB blocks and nothing else
+//! its own, over stage 1 tables that map 2 MiB blocks
 //! (`toyos_smmu::table`), and the device addresses it hands out, over the
 //! unit's 48-bit input (`crate::iommu::window`).
 //!
+//! **And the ITS's doorbell, the one 4 KiB page at its own address**: the unit
+//! translates a function's message as it does any write it makes, so a domain
+//! without that page is one whose function's messages it refuses. The page
+//! holds `GITS_TRANSLATER` and nothing else a device may write, and below
+//! memory it is no address a domain hands out.
+//!
 //! A new leaf needs no invalidation — the unit caches no translation that
 //! faulted — and a removed one is invalidated by the domain's ASID, behind a
 //! `CMD_SYNC`, before [`unmap`] returns.
@@ -19,6 +25,11 @@ use crate::iommu::{DomainId, IommuError, Iova, StreamId};
 use crate::log;
 use crate::mm::{PAGE_2M, PAGE_SIZE};
 
+/// One 2 MiB block of memory at `phys`, which a device reads and writes.
+fn block(phys: u64) -> Leaf {
+    Leaf::Memory(Phys::<21>::new(phys).expect("SMMU: a 2 MiB-aligned page of memory"), Access::ReadWrite)
+}
+
 /// Domain ids start at 1: `DomainId` is never 0.
 const FIRST: u16 = 1;
 
@@ -34,10 +45,9 @@ impl Live {
         &mut self.domains[usize::from(id.raw() - FIRST)]
     }
 
-    /// One 2 MiB block of `phys` at `at`, its tables grown on the way.
-    fn put(&mut self, root: Phys<12>, at: u64, phys: u64) {
-        let block = Phys::<21>::new(phys).expect("SMMU: a 2 MiB-aligned page of memory");
-        let path = plan(at, Leaf::Memory(block, Access::ReadWrite), &self.unit).expect("SMMU: a handed-out address");
+    /// `leaf` at `at`, its tables grown on the way.
+    fn put(&mut self, root: Phys<12>, at: u64, leaf: Leaf) {
+        let path = plan(at, leaf, &self.unit).expect("SMMU: a handed-out address");
         let mut table = root;
         let (leaf, walk) = path.indices().split_last().expect("a path names at least its leaf's table");
         for (level, index) in walk.iter().enumerate() {
@@ -83,6 +93,7 @@ impl Live {
 /// A new domain, with `room` bytes of it handed out first: refused, with no id
 /// spent, where it would have less than that.
 pub fn create(room: u64) -> Result<(DomainId, Iova), IommuError> {
+    let doorbell = super::super::irqchip::its::doorbell_page();
     let mut held = UNIT.lock();
     let live = held.as_mut().ok_or(IommuError::NoUnit)?;
     let domains = if live.unit.asid(0x100).is_some() { 1 << 16 } else { 1 << 8 };
@@ -98,14 +109,22 @@ pub fn create(room: u64) -> Result<(DomainId, Iova), IommuError> {
         descriptor.write_u64(8 * i as u64, *word);
     }
     descriptor.write_u64(0, words[0]);
+    if let Some(page) = doorbell {
+        assert!(page < addresses.floor(), "SMMU: the doorbell at {page:#x} is inside the addresses a domain hands out");
+        live.put(root, page, Leaf::Doorbell(Phys::new(page).expect("SMMU: a 4 KiB page below 2^48")));
+    }
     let domain = Domain { asid, root, context, addresses };
     log!(
-        "iommu: domain{id} root={:#x} context={:#x} asid={} addresses from {:#x} to {:#x}",
+        "iommu: domain{id} root={:#x} context={:#x} asid={} addresses from {:#x} to {:#x}, the doorbell {}",
         root.get(),
         context.get(),
         asid.get(),
         addresses.floor(),
-        addresses.ceiling()
+        addresses.ceiling(),
+        match doorbell {
+            Some(page) => alloc::format!("page at {page:#x}"),
+            None => "page nowhere: no ITS is armed".into(),
+        },
     );
     live.domains.push(domain);
     Ok((DomainId::new(id), first))
@@ -121,7 +140,7 @@ pub fn map(id: DomainId, phys: u64, bytes: u64) -> Result<Iova, IommuError> {
     let at = domain.addresses.reserve(bytes).ok_or(IommuError::AddressesExhausted(domain.addresses.ceiling()))?;
     let root = domain.root;
     for offset in (0..bytes).step_by(PAGE_2M as usize) {
-        live.put(root, at.raw() + offset, phys + offset);
+        live.put(root, at.raw() + offset, block(phys + offset));
     }
     log!("iommu: domain{} maps {phys:#x}..{:#x} at {:#x}", id.raw(), phys + bytes.next_multiple_of(PAGE_2M), at.raw());
     Ok(at)
@@ -148,7 +167,7 @@ pub fn place(id: DomainId, at: Iova, phys: u64, bytes: u64) -> Result<u16, Iommu
     assert!(domain.addresses.handed_out(at, bytes), "iommu: domain{} never handed out {:#x}+{bytes:#x}", id.raw(), at.raw());
     let root = domain.root;
     for offset in (0..bytes).step_by(PAGE_2M as usize) {
-        live.put(root, at.raw() + offset, phys + offset);
+        live.put(root, at.raw() + offset, block(phys + offset));
     }
     Ok(id.raw())
 }
diff --git a/kernel/src/arch/aarch64/smmu/mod.rs b/kernel/src/arch/aarch64/smmu/mod.rs
index 379fa132a..6bffe4ff4 100644
--- a/kernel/src/arch/aarch64/smmu/mod.rs
+++ b/kernel/src/arch/aarch64/smmu/mod.rs
@@ -414,39 +414,3 @@ fn program(
     );
     Some(live)
 }
-
-pub mod interrupt {
-    use crate::iommu::{Refused, StreamId};
-
-    pub struct Msi {
-        pub address: u32,
-        pub data: u32,
-    }
-
-    pub struct Pin {
-        pub low: u32,
-        pub high: u32,
-    }
-
-    /// The SMMUv3 remaps no interrupt: a message is an ITS's to translate,
-    /// and nothing here drives one.
-    pub fn is_armed() -> bool {
-        false
-    }
-
-    pub fn msi(_source: StreamId, _vector: u8, _dest: u32) -> Result<Msi, Refused> {
-        unreachable!("no interrupt remapping on this machine, and `is_armed` said so")
-    }
-
-    pub fn claim(_slot: usize, _source: StreamId, _vector: u8) -> Msi {
-        unreachable!("no interrupt remapping on this machine, and `is_armed` said so")
-    }
-
-    pub fn release(_slot: usize, _source: StreamId) {
-        unreachable!("no interrupt remapping on this machine, and `is_armed` said so")
-    }
-
-    pub fn pin(_apic_id: u8, _vector: u8, _dest: u32, _level: bool) -> Result<Pin, Refused> {
-        unreachable!("no interrupt remapping on this machine, and `is_armed` said so")
-    }
-}
diff --git a/kernel/src/arch/aarch64/trap.rs b/kernel/src/arch/aarch64/trap.rs
index 41881d733..4266f67d3 100644
--- a/kernel/src/arch/aarch64/trap.rs
+++ b/kernel/src/arch/aarch64/trap.rs
@@ -160,6 +160,11 @@ fn exception(frame: &Frame, entry: u64) -> ! {
 /// from EL0 a tick or a kick does, once the handler is done, since the context
 /// holds nothing; from EL1 it only asks for the pass the context will run when
 /// it may.
+///
+/// **Every device arm runs with the preempt count raised**, as x86-64's
+/// `device_irq_entry` brackets its handler: an arm that posts a watch or lets
+/// go of a `Lock` reaches `preempt::enable`, whose pass at depth zero would
+/// otherwise run inside the handler, before its `end`.
 fn irq(frame: &Frame, from_el0: bool) -> bool {
     let Some(intid) = irqchip::acknowledge() else {
         percpu::irq_took(Source::Spurious);
@@ -202,37 +207,47 @@ fn irq(frame: &Frame, from_el0: bool) -> bool {
         // own, so the interface signals this CPU nothing and the halt stays.
         irqchip::SGI_HALT => cpu::halt(),
         irqchip::SGI_OFF => super::power::cpu_off(),
+        _ => {}
+    }
+    percpu::preempt_count_up();
+    let resched = match intid {
         irqchip::SGI_KICK => {
             percpu::irq_took(Source::Kick);
-            // Raised as an interrupt entry raises it, so the answer's post runs no pass here.
-            percpu::preempt_count_up();
             crate::counters::serve_here();
-            percpu::preempt_count_down();
-            irqchip::end(intid);
-            if from_el0 {
-                return true;
-            }
-            crate::preempt::set_need_resched();
+            true
         }
         #[cfg(feature = "boot-actuators")]
         irqchip::SGI_STORM => {
             storm::sgi();
-            irqchip::end(intid);
+            false
         }
         // Zero until routed, which the kick's arm above takes first.
         intid if intid == irqchip::iommu_events() => {
             percpu::irq_took(Source::DmaFault);
-            percpu::preempt_count_up();
             crate::iommu::fault_interrupt();
-            percpu::preempt_count_down();
-            irqchip::end(intid);
+            false
         }
-        _ => {
-            percpu::irq_took(Source::Unclaimed);
-            UNCLAIMED.fetch_add(1, Relaxed);
-            LAST_UNCLAIMED.store(intid, Relaxed);
-            irqchip::end(intid);
+        _ => match irqchip::its::slot_of(intid) {
+            Some(slot) => {
+                percpu::irq_took(Source::UserDev);
+                crate::pcidev::isr(slot);
+                true
+            }
+            None => {
+                percpu::irq_took(Source::Unclaimed);
+                UNCLAIMED.fetch_add(1, Relaxed);
+                LAST_UNCLAIMED.store(intid, Relaxed);
+                false
+            }
+        },
+    };
+    percpu::preempt_count_down();
+    irqchip::end(intid);
+    if resched {
+        if from_el0 {
+            return true;
         }
+        crate::preempt::set_need_resched();
     }
     false
 }
@@ -497,8 +512,24 @@ pub fn install() {
     }
 }
 
-pub const HDA_VECTOR: u8 = irqchip::Intid::Hda as u8;
-pub const VIRTIO_SOUND_VECTOR: u8 = irqchip::Intid::VirtioSound as u8;
+/// What a driver in this kernel names its function's interrupt by, which
+/// it is refused a message for (`irqchip::its::msi`).
+#[derive(Clone, Copy, Debug)]
+pub enum DriverIrq {
+    Xhci,
+    Hda,
+    VirtioSound,
+}
+
+impl core::fmt::Display for DriverIrq {
+    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+        write!(f, "{self:?}'s")
+    }
+}
+
+pub const XHCI_VECTOR: DriverIrq = DriverIrq::Xhci;
+pub const HDA_VECTOR: DriverIrq = DriverIrq::Hda;
+pub const VIRTIO_SOUND_VECTOR: DriverIrq = DriverIrq::VirtioSound;
 
 /// The crash report for a panic, from the frame pointer the panic handler
 /// stood on: the backtrace, which CPU is on which stack, and what the
diff --git a/kernel/src/arch/x86_64/apic.rs b/kernel/src/arch/x86_64/apic.rs
index 03079ebe0..79b2583a1 100644
--- a/kernel/src/arch/x86_64/apic.rs
+++ b/kernel/src/arch/x86_64/apic.rs
@@ -47,10 +47,14 @@ pub const TIMER_VECTOR: u8 = 0x20;
 /// event all start here.
 pub const MSI_DOORBELL: u32 = 0xFEE0_0000;
 
-/// The compatibility-format message that raises `vector` on the CPU whose APIC
-/// ID is `dest`: the destination in address bits 19:12, the vector in the data.
-pub fn msi_message(dest: u32, vector: u8) -> Result<(u32, u32), &'static str> {
-    Ok((MSI_DOORBELL | (dest << 12), vector as u32))
+/// Every device interrupt in this kernel targets cpu0, named as a destination
+/// for a message and for a remapping entry.
+pub(crate) const MSG_DEST: u32 = 0;
+
+/// The compatibility-format message that raises `vector` on [`MSG_DEST`]: the
+/// destination in address bits 19:12, the vector in the data.
+pub(super) fn msi_message(vector: u8) -> (u32, u32) {
+    (MSI_DOORBELL | (MSG_DEST << 12), vector as u32)
 }
 
 /// Calibrated LAPIC timer ticks per 10ms (computed on BSP, reused by APs),
diff --git a/kernel/src/arch/x86_64/idt/mod.rs b/kernel/src/arch/x86_64/idt/mod.rs
index 4194826b6..b6d5f9b07 100644
--- a/kernel/src/arch/x86_64/idt/mod.rs
+++ b/kernel/src/arch/x86_64/idt/mod.rs
@@ -14,6 +14,8 @@ mod user_dev;
 mod virtio_sound;
 mod xhci;
 
+pub(crate) use user_dev::{claim_vector, slot_interrupt};
+
 use core::arch::naked_asm;
 
 use super::cpu;
@@ -43,11 +45,31 @@ pub const ISA_VECTORS: [u8; crate::isa::MAX_ROWS] = [Vector::Isa0 as u8, Vector:
 /// The vector an IOMMU writes into its own `FEDATA`.
 pub const DMA_FAULT_VECTOR: u8 = Vector::DmaFault as u8;
 
+/// The vector a driver in this kernel arms its function's message with: one
+/// of the three below, each its own gate.
+#[derive(Clone, Copy)]
+pub struct DriverIrq(Vector);
+
+impl DriverIrq {
+    pub(crate) const fn vector(self) -> u8 {
+        self.0 as u8
+    }
+}
+
+impl core::fmt::Display for DriverIrq {
+    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+        write!(f, "vector {:#x}", self.vector())
+    }
+}
+
+/// The vector the xHCI controller's message-signalled interrupt carries.
+pub const XHCI_VECTOR: DriverIrq = DriverIrq(Vector::Xhci);
+
 /// The vector the HDA controller's message-signalled interrupt carries.
-pub const HDA_VECTOR: u8 = Vector::Hda as u8;
+pub const HDA_VECTOR: DriverIrq = DriverIrq(Vector::Hda);
 
 /// The vector the virtio-sound device's MSI-X entry carries.
-pub const VIRTIO_SOUND_VECTOR: u8 = Vector::VirtioSound as u8;
+pub const VIRTIO_SOUND_VECTOR: DriverIrq = DriverIrq(Vector::VirtioSound);
 
 const PF_PRESENT: u64 = 1 << 0;
 const PF_WRITE: u64 = 1 << 1;
diff --git a/kernel/src/arch/x86_64/idt/user_dev.rs b/kernel/src/arch/x86_64/idt/user_dev.rs
index 9ad2dccbc..f26206dfc 100644
--- a/kernel/src/arch/x86_64/idt/user_dev.rs
+++ b/kernel/src/arch/x86_64/idt/user_dev.rs
@@ -10,6 +10,22 @@
 //! the claim's watch is posted from the handler.
 
 use super::device_irq::device_irq_entry;
+use super::Vector;
+
+/// The vector each claim slot's message carries, by slot: the vector is how
+/// the kernel knows which claim a message belongs to.
+const VECTORS: [Vector; crate::pcidev::MAX_FUNCTIONS] =
+    [Vector::UserDev0, Vector::UserDev1, Vector::UserDev2, Vector::UserDev3];
+
+/// The vector claim slot `slot`'s remapping entry delivers.
+pub(crate) fn claim_vector(slot: usize) -> u8 {
+    VECTORS[slot] as u8
+}
+
+/// What claim slot `slot`'s message raises, for the record.
+pub(crate) fn slot_interrupt(slot: usize) -> impl core::fmt::Display {
+    super::DriverIrq(VECTORS[slot])
+}
 
 fn took(slot: usize) {
     crate::arch::percpu::irq_took!(UserDev);
diff --git a/kernel/src/arch/x86_64/ioapic.rs b/kernel/src/arch/x86_64/ioapic.rs
index a46b44129..577e60124 100644
--- a/kernel/src/arch/x86_64/ioapic.rs
+++ b/kernel/src/arch/x86_64/ioapic.rs
@@ -21,7 +21,6 @@ pub use toyos_acpi::{Polarity, Trigger};
 
 use crate::arch::IrqGuard;
 use crate::drivers::acpi::MadtInfo;
-use crate::iommu::Delivery;
 use crate::log;
 use crate::mm::policy::MmioPolicy;
 use crate::mm::Mmio;
@@ -245,7 +244,7 @@ fn locate(gsi: Gsi) -> Result<(&'static Unit, u32), RouteError> {
 ///
 /// Under remapping the entry names a table slot and the destination lives in
 /// that slot — but the id must still fit whatever names it, so `DestTooWide`
-/// moves rather than disappearing and arrives as [`Delivery::Refused`].
+/// moves rather than disappearing and arrives as [`RouteError::NotRemappable`].
 pub fn route(
     gsi: Gsi,
     vector: u8,
@@ -255,17 +254,20 @@ pub fn route(
 ) -> Result<(), RouteError> {
     let (unit, n) = locate(gsi)?;
     let level = trigger == Trigger::Level;
-    let (index, high) =
-        match crate::iommu::remap_pin(unit.id, vector, dest_apic_id, level) {
-            Delivery::Direct => {
-                if dest_apic_id >= 0xFF {
-                    return Err(RouteError::DestTooWide(dest_apic_id));
-                }
-                (0, dest_apic_id << 24)
-            }
-            Delivery::Remapped(pin) => (pin.low, pin.high),
-            Delivery::Refused(why) => return Err(RouteError::NotRemappable(gsi, why)),
-        };
+    // Under no unit that remaps, the entry names its CPU itself; under one, a
+    // pin with no entry of its own is refused rather than written in a form
+    // the unit blocks.
+    let (index, high) = if !super::vtd::interrupt::is_armed() {
+        if dest_apic_id >= 0xFF {
+            return Err(RouteError::DestTooWide(dest_apic_id));
+        }
+        (0, dest_apic_id << 24)
+    } else {
+        match super::vtd::interrupt::pin(unit.id, vector, dest_apic_id, level) {
+            Ok(pin) => (pin.low, pin.high),
+            Err(why) => return Err(RouteError::NotRemappable(gsi, why)),
+        }
+    };
     let low = vector as u32
         | index
         | if polarity == Polarity::Low { RTE_POLARITY_LOW } else { 0 }
diff --git a/kernel/src/arch/x86_64/mod.rs b/kernel/src/arch/x86_64/mod.rs
index de6dfb94d..c1fe5528e 100644
--- a/kernel/src/arch/x86_64/mod.rs
+++ b/kernel/src/arch/x86_64/mod.rs
@@ -46,8 +46,11 @@ pub use apic as irqchip;
 pub use i8042 as keyboard_controller;
 pub use idt as trap;
 pub use vtd as iommu_unit;
+pub use vtd::interrupt as message_unit;
 
-pub use apic::{msi_message, MSI_DOORBELL};
+pub use apic::MSI_DOORBELL;
+pub use idt::DriverIrq;
+pub(crate) use idt::slot_interrupt;
 
 /// The machine every program image this kernel loads must be built for.
 pub const ELF_MACHINE: toyos_elf::Machine = toyos_elf::Machine::X86_64;
diff --git a/kernel/src/arch/x86_64/pio.rs b/kernel/src/arch/x86_64/pio.rs
index 05b014183..c27e1d761 100644
--- a/kernel/src/arch/x86_64/pio.rs
+++ b/kernel/src/arch/x86_64/pio.rs
@@ -194,7 +194,7 @@ pub fn route(row: usize, wire: Wire) -> Result<Line, String> {
     ioapic::route(
         wire.gsi,
         super::idt::ISA_VECTORS[row],
-        crate::drivers::pci::MSG_DEST,
+        super::apic::MSG_DEST,
         wire.trigger,
         wire.polarity,
     )
diff --git a/kernel/src/arch/x86_64/vtd/interrupt.rs b/kernel/src/arch/x86_64/vtd/interrupt.rs
index a4d8b2546..c6596c24e 100644
--- a/kernel/src/arch/x86_64/vtd/interrupt.rs
+++ b/kernel/src/arch/x86_64/vtd/interrupt.rs
@@ -35,8 +35,9 @@
 use crate::log;
 use alloc::vec::Vec;
 
-use crate::drivers::pci::MSG_DEST;
-use crate::iommu::{Refused, StreamId};
+use super::super::apic::MSG_DEST;
+use super::super::idt::DriverIrq;
+use crate::iommu::StreamId;
 use crate::sync::Lock;
 
 use super::table::Table;
@@ -73,6 +74,32 @@ pub struct Msi {
     pub data: u32,
 }
 
+/// Why a source could not be given an entry. Carried rather than collapsed:
+/// one message for all three sends whoever reads it looking in the wrong place.
+#[derive(Clone, Copy)]
+pub enum Refused {
+    /// Wider than the destination an entry holds without extended interrupt mode.
+    DestinationTooWide(u32),
+    /// Every entry in the table is already spoken for.
+    TableFull,
+    /// Firmware's device scopes named no requester id for this interrupt controller.
+    ControllerUnnamed(u8),
+}
+
+impl core::fmt::Display for Refused {
+    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
+        match self {
+            Self::DestinationTooWide(id) => {
+                write!(f, "apic id {id:#x} does not fit a remapping entry's destination")
+            }
+            Self::TableFull => write!(f, "the interrupt remapping table is full"),
+            Self::ControllerUnnamed(id) => {
+                write!(f, "firmware named no requester id for interrupt controller {id}")
+            }
+        }
+    }
+}
+
 pub struct Pin {
     pub low: u32,
     pub high: u32,
@@ -211,13 +238,22 @@ fn message(index: u16) -> Msi {
     }
 }
 
-pub fn msi(source: StreamId, vector: u8, dest: u32) -> Result<Msi, Refused> {
-    Ok(message(allocate(source, vector, dest, false)?))
+/// The message a kernel driver's `source` raises `irq` with: an entry of its
+/// own where the table is armed, and the compatibility format where no unit
+/// remaps, which is what that message has always said.
+pub fn msi(source: StreamId, irq: DriverIrq) -> Result<Msi, Refused> {
+    if !is_armed() {
+        let (address, data) = super::super::apic::msi_message(irq.vector());
+        return Ok(Msi { address, data });
+    }
+    Ok(message(allocate(source, irq.vector(), MSG_DEST, false)?))
 }
 
-/// Claim slot `slot`'s entry, written for `source` at `vector` and published
-/// to every unit before this returns, and the message that reaches it.
-pub fn claim(slot: usize, source: StreamId, vector: u8) -> Msi {
+/// Claim slot `slot`'s entry, written for `source` at the slot's vector and
+/// published to every unit before this returns, and the message that reaches
+/// it.
+pub fn claim(slot: usize, source: StreamId) -> Result<Msi, Refused> {
+    let vector = super::super::idt::claim_vector(slot);
     let (index, read) = {
         let remap = REMAP.lock();
         let Some(table) = remap.table else {
@@ -239,7 +275,7 @@ pub fn claim(slot: usize, source: StreamId, vector: u8) -> Msi {
         (index, table.read_pair(slot))
     };
     report(index, source, MSG_DEST, read);
-    message(index)
+    Ok(message(index))
 }
 
 /// Claim slot `slot`'s entry not present again, and gone from every unit's
diff --git a/kernel/src/drivers/pci.rs b/kernel/src/drivers/pci.rs
index adfa2773c..78f795f67 100644
--- a/kernel/src/drivers/pci.rs
+++ b/kernel/src/drivers/pci.rs
@@ -25,10 +25,6 @@ const INVALID_VENDOR: u16 = 0xFFFF;
 /// The one MSI-X table entry this kernel programs; a device's queues must point at it too.
 pub const MSIX_ENTRY: u16 = 0;
 
-// Every device interrupt in this kernel targets cpu0, named as a destination for
-// the message and for the unit to put in an entry.
-pub(crate) const MSG_DEST: u32 = 0;
-
 /// Why a walk of a function's capability list answered no capability.
 pub enum NoCapability {
     /// The walk reached the list's terminator and nothing on it carried the id.
@@ -278,20 +274,20 @@ impl PciDevice {
         self.mmio.read_u16(COMMAND);
     }
 
-    /// Point this function's [`MSIX_ENTRY`] at `vector` and enable it: a
-    /// kernel driver's arming, whose message is compatibility format on a
-    /// machine that remaps nothing. A claimed function is armed by
+    /// Point this function's [`MSIX_ENTRY`] at `irq` and enable it: a kernel
+    /// driver's arming, whose message the architecture makes
+    /// ([`crate::iommu::driver_msi`]). A claimed function is armed by
     /// [`arm_claimed_msix`] instead.
     ///
     /// Answers the entry's own window, which stays this kernel's: masking is a
     /// write to it, and a claimant that could reach it could aim the device's
     /// message at any address the LAPIC decodes.
     ///
-    /// `None` where it has no MSI-X entry this kernel can write, or the unit
-    /// refuses its message.
-    pub(in crate::drivers) fn enable_msix(&self, vector: u8) -> Option<Mmio> {
+    /// `None` where it has no MSI-X entry this kernel can write, or it is
+    /// refused a message.
+    pub(in crate::drivers) fn enable_msix(&self, irq: crate::arch::DriverIrq) -> Option<Mmio> {
         let entry = self.msix_entry().ok()?;
-        let (address, data) = self.message(vector)?;
+        let (address, data) = self.message(irq)?;
         Some(self.write_msix(entry, address, data))
     }
 
@@ -358,31 +354,21 @@ impl PciDevice {
             self.bus, self.dev, self.func);
     }
 
-    /// The address and data this function's interrupt registers take for `vector`.
+    /// The address and data this function's interrupt registers take for `irq`.
     ///
-    /// `None` refuses the device: the machine remaps interrupts and this
-    /// function has no entry, so the message it would otherwise write is one the
-    /// unit blocks.
-    fn message(&self, vector: u8) -> Option<(u32, u32)> {
-        let dest = MSG_DEST;
-        match crate::iommu::remap_msi(self.bus, self.dev, self.func, vector, dest) {
-            // The same CPU the remappable one would name.
-            crate::iommu::Delivery::Direct => match crate::arch::msi_message(dest, vector) {
-                Ok(message) => Some(message),
-                Err(why) => {
-                    log!("PCI {:02x}:{:02x}.{}: not armed — {why}", self.bus, self.dev, self.func);
-                    None
-                }
-            },
-            crate::iommu::Delivery::Remapped(m) => Some((m.address, m.data)),
-            crate::iommu::Delivery::Refused(why) => {
+    /// `None` refuses the device: the message it would otherwise write is one
+    /// nothing delivers.
+    fn message(&self, irq: crate::arch::DriverIrq) -> Option<(u32, u32)> {
+        match crate::iommu::driver_msi(self.bus, self.dev, self.func, irq) {
+            Ok(message) => Some((message.address, message.data)),
+            Err(why) => {
                 log!("PCI {:02x}:{:02x}.{}: not armed — {why}", self.bus, self.dev, self.func);
                 None
             }
         }
     }
 
-    /// Point this function's single MSI message at `vector` and enable it: a
+    /// Point this function's single MSI message at `irq` and enable it: a
     /// kernel driver's arming, as [`Self::enable_msix`] is.
     ///
     /// **A driver in this kernel may arm this however the MSI-X walk failed**, a
@@ -390,11 +376,11 @@ impl PciDevice {
     /// holder, so an MSI-X table past that link is one nobody but this kernel
     /// could reach. A hand-over is the caller that has to tell the two apart,
     /// and `crate::pcidev`'s header says why.
-    pub(in crate::drivers) fn enable_msi(&self, vector: u8) -> bool {
+    pub(in crate::drivers) fn enable_msi(&self, irq: crate::arch::DriverIrq) -> bool {
         let Ok(cap) = self.capability(msi::CAP_ID) else {
             return false;
         };
-        let Some((address, data)) = self.message(vector) else {
+        let Some((address, data)) = self.message(irq) else {
             return false;
         };
         self.write_msi(cap, address, data);
@@ -495,8 +481,8 @@ impl PciDevice {
     }
 }
 
-/// Point a claimed function's [`MSIX_ENTRY`] at its slot's own remapping
-/// entry and enable it. Takes the message and nothing else: the function is
+/// Point a claimed function's [`MSIX_ENTRY`] at its slot's own message and
+/// enable it. Takes the message and nothing else: the function is
 /// the one the entry was written for, and no other message reaches here.
 pub fn arm_claimed_msix(message: &crate::iommu::Remapped) -> Result<Mmio, NoEntry> {
     let pci = message.function();
diff --git a/kernel/src/drivers/virtio_sound.rs b/kernel/src/drivers/virtio_sound.rs
index e39ff6c5b..910b4a261 100644
--- a/kernel/src/drivers/virtio_sound.rs
+++ b/kernel/src/drivers/virtio_sound.rs
@@ -449,6 +449,6 @@ fn arm_interrupt(pci: &PciDevice, device: &VirtioDevice) -> bool {
         );
         return false;
     }
-    log!("virtio-sound: MSI-X vector {vector:#x} on table entry {MSIX_ENTRY}");
+    log!("virtio-sound: MSI-X {vector} on table entry {MSIX_ENTRY}");
     true
 }
diff --git a/kernel/src/drivers/xhci/mod.rs b/kernel/src/drivers/xhci/mod.rs
index fd76926ad..4977346b7 100644
--- a/kernel/src/drivers/xhci/mod.rs
+++ b/kernel/src/drivers/xhci/mod.rs
@@ -67,8 +67,6 @@ const IR0_ERSTSZ: u64 = 0x28;
 const IR0_ERSTBA: u64 = 0x30; // 64-bit
 const IR0_ERDP:   u64 = 0x38; // 64-bit
 
-const XHCI_VECTOR: u8 = 0x21;
-
 #[repr(C)]
 #[derive(Clone, Copy)]
 struct Trb {
diff --git a/kernel/src/drivers/xhci/wait/boot.rs b/kernel/src/drivers/xhci/wait/boot.rs
index 92915c6f2..4f1843f75 100644
--- a/kernel/src/drivers/xhci/wait/boot.rs
+++ b/kernel/src/drivers/xhci/wait/boot.rs
@@ -15,7 +15,8 @@ use device::{begin, reset_done, reset_port};
 use super::super::{ErstEntry, Layout, MscBlock, PortMask, Portsc, Protocols, TrbRing};
 use super::super::{XhciController, PAGE, RING_SIZE, USB_TIMEOUT_NS};
 use super::super::{CAP_CAPLENGTH, CAP_DBOFF, CAP_HCCPARAMS1, CAP_HCSPARAMS1, CAP_HCSPARAMS2};
-use super::super::{CAP_RTSOFF, HCC_PPC, XHCI_VECTOR};
+use super::super::{CAP_RTSOFF, HCC_PPC};
+use crate::arch::trap::XHCI_VECTOR;
 use super::super::{IR0_ERDP, IR0_ERSTBA, IR0_ERSTSZ, IR0_IMAN, IR0_IMOD};
 use super::super::{OFF_CMD_RING, OFF_DCBAA, OFF_ERST, OFF_EVT_RING};
 use super::super::{OP_CONFIG, OP_CRCR, OP_DCBAAP, OP_PAGESIZE, OP_PORT_BASE, OP_USBCMD, OP_USBSTS};
@@ -252,7 +253,7 @@ fn init_one(pci_dev: &PciDevice) -> Option<XhciController> {
         );
         return None;
     };
-    log!("xHCI: {irq} enabled (vector {XHCI_VECTOR:#x})");
+    log!("xHCI: {irq} enabled ({XHCI_VECTOR})");
 
     let bar = crate::mm::paging::map_mmio(bar_addr, 0x10000, MmioPolicy::Uncacheable);
 
diff --git a/kernel/src/iommu/mod.rs b/kernel/src/iommu/mod.rs
index 003e4cd14..667d2e086 100644
--- a/kernel/src/iommu/mod.rs
+++ b/kernel/src/iommu/mod.rs
@@ -2,7 +2,7 @@
 //!
 //! Inventories the machine's IOMMU units, turns translation on, and hands a driver an address space of its own to put its DMA in; an unusable unit is logged and left off rather than halting boot. Names above the backend stay backend-neutral, and what every backend decides alike is declared here once: a domain's addresses ([`window`]) and what a fault record ends ([`fault`]).
 //!
-//! The refusal is deliberately not yet built for a driver in this kernel: landing it before any userspace driver exists would cost every machine and protect nothing. A function a *process* drives is the other case and is refused ([`OwnSpace`], [`remapping`]), because a descriptor it writes a physical address into is an arbitrary read and write over all of memory, and a message it sends unremapped is any vector at any CPU; its message is its claim slot's own entry ([`Remapped`]).
+//! The refusal is deliberately not yet built for a driver in this kernel: landing it before any userspace driver exists would cost every machine and protect nothing. A function a *process* drives is the other case and is refused ([`OwnSpace`], [`remapping`]), because a descriptor it writes a physical address into is an arbitrary read and write over all of memory, and a message nothing translates for it alone raises any claim's interrupt; its message is its claim slot's own, translated for it alone ([`Remapped`]).
 //!
 //! `trait Iommu` is deliberately not added: with one backend it would have a single implementor.
 
@@ -10,6 +10,7 @@
 #![warn(clippy::undocumented_unsafe_blocks)]
 
 use crate::arch::iommu_unit as unit;
+use crate::arch::message_unit as messages;
 
 pub(crate) mod fault;
 pub(crate) mod window;
@@ -275,81 +276,40 @@ pub fn init(
     unit::init(rsdp_addr, devices, windows);
 }
 
-/// How a kernel driver's source must address its interrupt. Not a yes/no: a
-/// caller that folded the third answer into [`Delivery::Direct`] would write a
-/// message the unit blocks and lose the device in silence.
-pub enum Delivery<T> {
-    /// No unit remaps interrupts on this machine; write what has always been written.
-    Direct,
-    /// Write this instead — the interrupt now reaches its destination through the unit.
-    Remapped(T),
-    /// The unit remaps and this source has no entry; the caller refuses the device.
-    Refused(Refused),
-}
-
-/// Why a source could not be given an entry. Carried rather than collapsed:
-/// one message for all three sends whoever reads it looking in the wrong place.
-#[derive(Clone, Copy)]
-pub enum Refused {
-    /// Wider than the destination an entry holds without extended interrupt mode.
-    DestinationTooWide(u32),
-    /// Every entry in the table is already spoken for.
-    TableFull,
-    /// Firmware's device scopes named no requester id for this interrupt controller.
-    ControllerUnnamed(u8),
-}
-
-impl core::fmt::Display for Refused {
-    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
-        match self {
-            Self::DestinationTooWide(id) => {
-                write!(f, "apic id {id:#x} does not fit a remapping entry's destination")
-            }
-            Self::TableFull => write!(f, "the interrupt remapping table is full"),
-            Self::ControllerUnnamed(id) => {
-                write!(f, "firmware named no requester id for interrupt controller {id}")
-            }
-        }
-    }
-}
+/// Why a source could not be given a message: the architecture's own reasons.
+pub use messages::Refused;
 
 pub struct MsiMessage {
     pub address: u32,
     pub data: u32,
 }
 
-pub struct PinRedirect {
-    pub low: u32,
-    pub high: u32,
-}
-

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Negative control: the change's production half reverted onto f72d53d, virt_claim_lpi kept, EXIT=1, part 2 of 2

-/// Every unit on this machine remaps interrupts, so a claimed function can be
-/// given a message only its own entry delivers. Only [`remapping`] makes one.
+/// Every claimed function's message is translated to its claim slot's own
+/// interrupt, and no other's. Only [`remapping`] makes one.
 #[derive(Clone, Copy)]
 pub struct Remapping(());
 
-/// No unit remaps this machine's interrupts, so a function a process drives
-/// would carry a compatibility-format message, which names any vector at any
-/// CPU.
+/// Nothing on this machine translates a claimed function's message to its
+/// claim's own interrupt, so the message it would carry names any.
 pub struct NotRemapped;
 
 /// Whether a claimed function's message can be remapped: a fact of the
 /// machine, fixed before the first driver arms anything.
 pub fn remapping() -> Result<Remapping, NotRemapped> {
-    if unit::interrupt::is_armed() {
+    if messages::is_armed() {
         Ok(Remapping(()))
     } else {
         Err(NotRemapped)
     }
 }
 
-/// A claimed function's message: claim slot `slot`'s own remapping entry,
-/// written for [`Self::function`] alone.
+/// A claimed function's message: claim slot `slot`'s own, translated for
+/// [`Self::function`] alone.
 ///
 /// The only message a function a process drives is armed with, since
-/// [`claim_msi`] is the only thing that makes one; and dropping it puts the
-/// entry back to not present, so no refusal after it is written leaves the
-/// function an entry it can reach.
+/// [`claim_msi`] is the only thing that makes one; and dropping it takes the
+/// translation back, so no refusal after it is written leaves the function a
+/// message that reaches anything.
 pub struct Remapped {
     slot: usize,
     function: crate::drivers::pci::PciDevice,
@@ -377,49 +337,32 @@ impl Remapped {
 
 impl Drop for Remapped {
     fn drop(&mut self) {
-        unit::interrupt::release(self.slot, self.stream());
+        messages::release(self.slot, self.stream());
     }
 }
 
-/// Write claim slot `slot`'s entry for `function` at `vector`.
+/// Claim slot `slot`'s message, translated for `function` alone.
 pub fn claim_msi(
     _: Remapping,
     slot: usize,
     function: &crate::drivers::pci::PciDevice,
-    vector: u8,
-) -> Remapped {
+) -> Result<Remapped, Refused> {
     let stream = StreamId::pci(function.bus, function.dev, function.func);
-    let msi = unit::interrupt::claim(slot, stream, vector);
-    Remapped { slot, function: *function, address: msi.address, data: msi.data }
+    let msi = messages::claim(slot, stream)?;
+    Ok(Remapped { slot, function: *function, address: msi.address, data: msi.data })
 }
 
-/// Where a kernel driver's `bus:device.function`'s message-signalled interrupt
-/// must point. Takes the triple, not a [`StreamId`]: what a requester id is
-/// stays in this module.
-pub fn remap_msi(
+/// The message a kernel driver's `bus:device.function` raises `irq` with.
+/// Takes the triple, not a [`StreamId`]: what a requester id is stays in this
+/// module.
+pub fn driver_msi(
     bus: u8,
     device: u8,
     function: u8,
-    vector: u8,
-    dest: u32,
-) -> Delivery<MsiMessage> {
-    if !unit::interrupt::is_armed() {
-        return Delivery::Direct;
-    }
-    match unit::interrupt::msi(StreamId::pci(bus, device, function), vector, dest) {
-        Ok(msi) => Delivery::Remapped(MsiMessage { address: msi.address, data: msi.data }),
-        Err(why) => Delivery::Refused(why),
-    }
-}
-
-pub fn remap_pin(apic_id: u8, vector: u8, dest: u32, level: bool) -> Delivery<PinRedirect> {
-    if !unit::interrupt::is_armed() {
-        return Delivery::Direct;
-    }
-    match unit::interrupt::pin(apic_id, vector, dest, level) {
-        Ok(pin) => Delivery::Remapped(PinRedirect { low: pin.low, high: pin.high }),
-        Err(why) => Delivery::Refused(why),
-    }
+    irq: crate::arch::DriverIrq,
+) -> Result<MsiMessage, Refused> {
+    messages::msi(StreamId::pci(bus, device, function), irq)
+        .map(|msi| MsiMessage { address: msi.address, data: msi.data })
 }
 
 /// Record that `bus:device.function` is driven by a process on `slot`, or is no
@@ -429,7 +372,7 @@ pub fn remap_pin(apic_id: u8, vector: u8, dest: u32, level: bool) -> Delivery<Pi
 /// driver of which is in this kernel has nothing to hand a fault to, so the
 /// response is a halt; a stream a process drives has an owner to refuse, and
 /// the machine keeps running. Takes the triple rather than a [`StreamId`], like
-/// [`remap_msi`]: what a requester id is stays in this module.
+/// [`driver_msi`]: what a requester id is stays in this module.
 pub fn note_user_owned(bus: u8, device: u8, function: u8, slot: Option<usize>) {
     fault::user_owned(StreamId::pci(bus, device, function), slot);
 }
diff --git a/kernel/src/pcidev/mod.rs b/kernel/src/pcidev/mod.rs
index 0b5487fa7..9cc224fad 100644
--- a/kernel/src/pcidev/mod.rs
+++ b/kernel/src/pcidev/mod.rs
@@ -3,9 +3,9 @@
 //! The line through the device is **who can name an address**. This module
 //! keeps config space — there is no write path to it from userland — puts the
 //! function in an address space of its own at the unit *before* it enables bus
-//! mastering, programs the interrupt vector into whichever of the function's two
-//! message mechanisms it has, through its slot's own remapping entry and no
-//! other message, and hands out every device address a descriptor
+//! mastering, programs its slot's own message into whichever of the function's
+//! two message mechanisms it has, translated for that function alone and no
+//! other, and hands out every device address a descriptor
 //! may carry. Nothing the holder writes into a descriptor can make the device
 //! touch memory the kernel did not grant it: the domain maps the grants — the
 //! claim's own, and the regions of ordinary memory its holder lends it
@@ -101,8 +101,8 @@
 //! by the time it was used. The binding is lent by the claim under the lock
 //! its release takes it with (`object::Held`): a call runs wholly before the
 //! release or finds no binding. Outside a claim's own mint and release, only
-//! the two handlers name a slot, by the vector and the requester the hardware
-//! gave them.
+//! the two handlers name a slot, by the interrupt and the requester the
+//! hardware gave them.
 //!
 //! **A poll is on a slot's watch only while its claim holds the slot.** It is
 //! registered with the binding ([`add_poll`]), so before the release, whose
@@ -131,7 +131,7 @@ use toyos_pci::{af, aperture, bar, express, msix, placement, pm, probe};
 
 use crate::device::{Claim, ClaimError};
 use crate::drivers::pci::{arm_claimed_msi, arm_claimed_msix, NoCapability, NoEntry, PciDevice};
-use crate::iommu::{IommuError, OwnSpace, Remapped};
+use crate::iommu::{IommuError, OwnSpace, Refused, Remapped};
 use crate::mm::policy::{CachePolicy, MmioPolicy};
 use crate::mm::{align_2m, DirectMap, Mmio, PAGE_2M};
 use crate::object::shm::{Region, SharedMemObject};
@@ -141,15 +141,10 @@ use crate::watch::IrqWatch;
 
 /// How many functions this machine can hand out at once.
 ///
-/// A small fixed number because each one costs an interrupt vector, and a
-/// vector in `arch::idt` is declared rather than allocated.
+/// A small fixed number because each one costs an interrupt of its own, which
+/// the architecture declares per slot rather than allocates.
 pub const MAX_FUNCTIONS: usize = 4;
 
-/// The vectors those functions' messages carry, one per slot. Declared here and
-/// in `arch::idt`'s table; `VECTORS.len() == MAX_FUNCTIONS` is what keeps the
-/// two from disagreeing.
-pub const VECTORS: [u8; MAX_FUNCTIONS] = [0x28, 0x29, 0x2A, 0x2B];
-
 /// The most one grant may be. A driver's rings and buffers are kilobytes to a
 /// megabyte; this is room for a queue depth nothing in reach uses, and a bound
 /// so a refused-but-plausible request is a refusal rather than the machine's
@@ -234,9 +229,9 @@ struct Aimed {
 static RESIDUE: [Lock<Vec<Aimed>>; MAX_FUNCTIONS] =
     [const { Lock::new(Vec::new()) }; MAX_FUNCTIONS];
 
-/// How a claimed function was made to speak, and the slot's remapping entry it
-/// speaks through. Both deliver [`VECTORS`]`[slot]` into the same
-/// [`Interrupt`] and the claim answers the same handle either way.
+/// How a claimed function was made to speak, and the slot's message it speaks
+/// with. Both deliver the slot's own interrupt into the same [`Interrupt`] and
+/// the claim answers the same handle either way.
 enum Armed {
     /// This function's one MSI-X table entry, mapped for the kernel alone.
     Msix(Mmio, Remapped),
@@ -599,9 +594,11 @@ fn account_for(firmware: &[RootBridgeWindow], decoded: &[(u16, u64, u64)]) {
 /// Why a function could not be handed over. Carried rather than collapsed: one
 /// message for all of them sends whoever reads the log looking in the wrong
 /// place.
-#[derive(Clone, Copy, PartialEq, Eq, Debug)]
+#[derive(Clone, Copy)]
 enum Refusal {
     NotRemapped,
+    /// The machine translates messages, and none could be made for this function.
+    NoMessage(Refused),
     NoInterrupt,
     MsixUnusable,
     CapsTruncated,
@@ -639,6 +636,7 @@ impl core::fmt::Display for Refusal {
                 "its interrupts would not be remapped on this machine, and a message that is not \
                  remapped can raise any vector on any CPU"
             ),
+            Self::NoMessage(why) => write!(f, "no message of its own could be made for it — {why}"),
             Self::NoInterrupt => write!(
                 f,
                 "neither its MSI-X nor its MSI could be armed, and a claim with no interrupt \
@@ -769,14 +767,13 @@ pub fn claim(id: PciId) -> Result<(PciFunctionInfo, Claim), ClaimError> {
             IRQ[slot].clear();
             crate::iommu::note_user_owned(pci.bus, pci.dev, pci.func, Some(slot));
             log!(
-                "pcidev: PCI {:02x}:{:02x}.{} [{:04x}:{:04x}] handed over on slot {slot}, \
-                 vector {:#x}",
+                "pcidev: PCI {:02x}:{:02x}.{} [{:04x}:{:04x}] handed over on slot {slot}, {}",
                 pci.bus,
                 pci.dev,
                 pci.func,
                 id.vendor,
                 id.device,
-                VECTORS[slot],
+                crate::arch::slot_interrupt(slot),
             );
             Ok((info, Claim::pci(binding)))
         }
@@ -826,7 +823,7 @@ fn bring_up(pci: PciDevice, id: PciId, slot: usize) -> Result<Bound, Refusal> {
     // mechanism can be armed on is one no holder could ever be told anything
     // about. Every refusal from here drops `message`, which puts the slot's
     // entry back to not present.
-    let message = crate::iommu::claim_msi(remapping, slot, &pci, VECTORS[slot]);
+    let message = crate::iommu::claim_msi(remapping, slot, &pci).map_err(Refusal::NoMessage)?;
     let armed = match arm_claimed_msix(&message) {
         Ok(entry) => Armed::Msix(entry, message),
         Err(NoEntry::Unusable) => return Err(Refusal::MsixUnusable),
@@ -1737,7 +1734,7 @@ pub fn take_record(binding: &Binding) -> Result<Option<DeviceIrqRecord>, Syscall
     }
     let taken = IRQ[slot].take();
     if taken.is_some() && IRQ[slot].take_unannounced() {
-        log!("pcidev: slot {slot} took its first message on vector {:#x}", VECTORS[slot]);
+        log!("pcidev: slot {slot} took its first message on {}", crate::arch::slot_interrupt(slot));
     }
     Ok(taken.map(|count| DeviceIrqRecord { count }))
 }
@@ -1748,10 +1745,15 @@ pub fn has_irq(binding: &Binding) -> bool {
     IRQ[binding.slot].armed() || IRQ[binding.slot].faulted()
 }
 
-/// Records one message and posts the claim's watch. Called from the vector's
-/// handler, so it allocates nothing; `record.rs` owns the counting, and
-/// `kernel-loom` models it against a concurrent reader.
+/// Records one message and posts the claim's watch. Called from the
+/// interrupt's handler, so it allocates nothing; `record.rs` owns the
+/// counting, and `kernel-loom` models it against a concurrent reader.
+///
+/// **The handler holds the preempt count raised across it**: the post lets go
+/// of a count of its own, and at depth zero that would run a scheduler pass
+/// inside the handler, before its end of interrupt.
 pub fn isr(slot: usize) {
+    assert!(crate::preempt::count() > 0, "pcidev: slot {slot}'s interrupt arrived with the preempt count at zero");
     IRQ[slot].took();
     WATCHES[slot].post_in_place();
 }

==> negative-control.log <==
    Finished `test` profile [optimized + debuginfo] target(s) in 0.55s
     Running tests/toyos.rs (target/debug/deps/toyos_build-20cd9f517c1368c3)

13:40:30 running 1 tests, 12 wide

13:40:30   RUN   virt_claim_lpi
13:40:30   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
13:40:36   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (6s)
13:40:36   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
13:40:43   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (7s)
13:40:46 FAIL virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([ 2.431 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 0.453 cpu0 loader] ToyOS Bootloader 1.0
[ 0.454 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 0.455 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 0.455 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 0.457 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-I2cb396434f3096b1 (image scope) holds 0
[ 0.459 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 0.460 cpu0 loader] RSDP address: 0xbcb43018
[ 0.460 cpu0 loader] Boot partition: LBA 2048+69632 signature [b7, 94, 13, 54, ed, 88, fb, 49, b4, 44, d7, f3, 71, 1d, 38, 17]
[ 0.462 cpu0 loader] Log partition: signature [11, 81, da, a3, 50, 76, 74, 44, a4, ae, 1c, 85, 93, d2, 37, ad]
[ 0.500 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 0.556 cpu0 loader] Slot A: signed header fd1b5eca3dbdb6c4f83bd2e909cbbd4ce4c856d18d40771b67fafa1996ac6310 verifies under this loader's key, version 1791639636
[ 0.618 cpu0 loader] ROOT: read into memory at 0xbbcc5000+0x500000 from LBA 212992+10240, 1048576 bytes a request (optimal granularity: not reported), in 1155399 counter ticks
[ 0.632 cpu0 loader] Slot A: ROOT hashed in 291436 counter ticks
[ 0.637 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 0.639 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 0.646 cpu0 loader] Kernel: 2526480 bytes
[ 0.648 cpu0 loader] Boot parameter: "root=f6fab6853d4547175fc24b6d59ca38a4,boot-slot=A"
[ 0.649 cpu0 loader] Loading kernel elf...
[ 0.649 cpu0 loader] Kernel stack size: 8388608
[ 0.651 cpu0 loader] Kernel memory size: 13668352
[ 0.656 cpu0 loader] Kernel memory located at: 0xbae00000
[ 0.667 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 482968 }, filesz: 482968, file_offset: 0, flags: SegmentFlags(4) }
[ 0.672 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 548864, len: 1052788 }, filesz: 1052788, file_offset: 483328, flags: SegmentFlags(5) }
[ 0.673 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1667192, len: 3976 }, filesz: 240, file_offset: 1536120, flags: SegmentFlags(6) }
[ 0.675 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1732968, len: 3544165 }, filesz: 26696, file_offset: 1536360, flags: SegmentFlags(6) }
[ 0.678 cpu0 loader] Applied 2947 relocations
[ 0.700 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 0.701 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 0.704 cpu0 loader] Starting kernel...
[ 0.705 cpu0 loader] CPU: entered at EL1
[ 0.706 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 0.707 cpu0 loader] GCD: 0x10200000+0x2ee00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.711 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.712 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.713 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 0.715 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 0.717 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 0.718 cpu0 loader] Boot map: root 0xbadad000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 0.720 cpu0 loader] Kernel image: 0xbae00000+0xd09000 is inside the 0x100000000-byte boot map
[ 0.722 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 0.724 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 0.726 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 0.729 cpu0 loader] Loader counter: 10797448 at entry, 17511146 at the handoff
[ 0.730 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 0.734 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 0.735 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 0.735 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 0.738 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 0.740 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 0.740 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 0.741 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 0.742 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 0.742 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 0.743 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 0.744 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 0.747 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 0.748 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 0.748 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 0.749 cpu0 kernel] memory: 0x000048000000..0x0000badaa000 uefi type 7
[ 0.749 cpu0 kernel] memory: 0x0000badaa000..0x0000bc431000 uefi type 2
[ 0.750 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 0.750 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 0.751 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 0.752 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 0.753 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 0.753 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 0.754 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 0.756 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 0.756 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 0.756 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 0.757 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f8000 uefi type 7
[ 0.757 cpu0 kernel] memory: 0x0000be0f8000..0x0000bfa38000 uefi type 4
[ 0.760 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 0.760 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 0.760 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 0.761 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 0.762 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 0.763 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 0.764 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 0.764 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 0.766 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 0.769 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 0.770 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 0.770 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 0.771 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 0.771 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 0.772 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 0.773 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 0.773 cpu0 kernel] boot: memory map 0xbadab018+0x318, kernel 0xbae00000+0xd09000, stack image+0x509000+0x800000
[ 0.774 cpu0 kernel] boot: kernel elf 0xbc1c5018+0x268d10, rsdp 0xbcb43018, boot pml4 0xbadad000
[ 0.774 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 0.774 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [b7, 94, 13, 54, ed, 88, fb, 49, b4, 44, d7, f3, 71, 1d, 38, 17]
[ 0.776 cpu0 kernel] boot: log partition guid [11, 81, da, a3, 50, 76, 74, 44, a4, ae, 1c, 85, 93, d2, 37, ad]
[ 0.777 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 0.777 cpu0 kernel] boot: root=f6fab6853d4547175fc24b6d59ca38a4
[ 0.778 cpu0 kernel] boot: slot A, the one the slot table marks
[ 0.778 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 0.779 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 0.780 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 0.782 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 0.784 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 0.784 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 0.784 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 0.784 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 0.784 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 0.785 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 0.785 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 0.785 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 0.785 cpu0 kernel] PSCI: 1.1 through HVC
[ 0.785 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 0.785 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 0.786 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 0.786 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 0.786 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 0.786 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 0.786 cpu0 kernel] symbols: loaded 18099 kernel symbols
[ 0.787 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 0.787 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 0.787 cpu0 kernel] Boot: CPU ready (0ms)
[ 0.788 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 0.788 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 0.788 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 0.788 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 0.788 cpu0 kernel] PCI: Enumerating devices...
[ 0.788 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 0.789 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 0.789 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 0.789 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 0.802 cpu0 kernel] PCI: Enumeration complete, 4 functions.
[ 0.802 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x4000000..0x8000000, mem 0x10200000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 0.813 cpu0 kernel] pcidev: 4 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 0.814 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 0.814 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 0.814 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 0.814 cpu0 kernel] pcidev:   0x10101000..0x40000000 (766 MiB)
[ 0.814 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 0.814 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 0.814 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 0.815 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 0.815 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 0.844 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 4 functions' streams aborting in a table of 32, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 0.845 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 0.845 cpu0 kernel] gpt: the boot volume names A3DA8111-7650-4474-A4AE-1C8593D237AD as the log partition
[ 0.846 cpu0 kernel] gpt: firmware booted us from partition 541394B7-88ED-49FB-B444-D7F3711D3817 at LBA 2048+69632
[ 0.847 cpu0 kernel] Boot: peripherals ready (59ms)
[ 0.848 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 0.848 cpu0 kernel] root: mounted read-only from memory at 0xbbcc5000+0x500000, filesystem f6fab6853d4547175fc24b6d59ca38a4, 1280 blocks
[ 0.849 cpu0 kernel] Boot: subsystems ready (1ms)
[ 0.853 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=2ms total=3ms)
[ 0.853 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 0.853 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 0.854 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 0.854 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 0.854 cpu0 kernel] PCI 00:01.0: not armed — AArch64 delivers no message-signalled interrupt to this kernel: the GICv3 ITS is unported
[ 0.854 cpu0 kernel] PCI 00:01.0: not armed — AArch64 delivers no message-signalled interrupt to this kernel: the GICv3 ITS is unported
[ 0.854 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 0.855 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 2.356 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 2.356 cpu0 kernel] root: the partition ROOT was read from, 64D3093A-0997-4074-8EE9-829FA9906CDD, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 2.356 cpu0 kernel] Boot: storage ready (1502ms)
[ 2.357 cpu0 kernel] virtio-console: no device found
[ 2.357 cpu0 kernel] GPU: using UEFI GOP
[ 2.357 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 2.357 cpu0 kernel] GPU: none this boot, running headless
[ 2.357 cpu0 kernel] Boot: devices ready (0ms)
[ 2.358 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 2.358 cpu0 kernel] Boot: complete (1571ms)
[ 2.358 cpu0 kernel] boot: power-on to loader 449 ms, loader 279 ms (ROOT read 48 ms), kernel to Boot: complete 1628 ms
[ 2.359 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 2.364 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.401 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=35ms relocs=0ms deps=0ms tls=1ms total=36ms)
[ 2.425 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.426 cpu0 kernel] pcidev: PCI 00:03.0 NOT HANDED OVER — its interrupts would not be remapped on this machine, and a message that is not remapped can raise any vector on any CPU
[ 2.427 cpu0 kernel] exit: test_rs_claim_lpi pid=4 code=101 cpu=1ms peak=4MB allocs=3 frees=0 syscalls=41 syscall_wall=1ms 1=2 6=1 9=2 10=6 13=2 14=3 21=1 50=1 51=1 63=2 72=1 73=1 91=2 99=2 102=4 105=4 106=5 111=1
[ 2.360 supervisor] supervisor: build 2c744d434cbb7e4b238c638bac9b5a0751e403a6 dirty, committed 2026-10-10 13:31:56 UTC, toolchain b3f5ad494486c67d, aarch64
[ 2.362 supervisor tid=1] supervisor: /home/toy could not be made, so this boot has no session home: permission denied
[ 2.362 supervisor] supervisor: logkeeper: /state/logkeeper could not be made: permission denied
[ 2.364 supervisor] supervisor: started logkeeper
[ 2.410 logkeeper] logkeeper: cannot create /log/unknown-00.log: permission denied
[ 2.410 logkeeper] logkeeper: no /log on this machine - this boot's kernel log is on the console only (undated: this machine will not say what time it is)
[ 2.431 cpu0 kernel tid=1] exit: test-runner pid=3 code=0 cpu=12ms peak=6MB allocs=3 frees=0 syscalls=39 syscall_wall=17ms 6=1 10=8 14=1 21=1 24=1 25=1 40=1 50=4 51=1 63=2 72=1 73=2 91=1 99=2 102=4 105=3 106=4 108=1
[ 2.423 test-runner] ===READY===
[ 2.424 test-runner] ===TEST_START test_rs_claim_lpi===
[ 2.426 test-runner error pid=4] 
[ 2.426 test-runner error pid=4] thread 'main' (1) panicked at src/bin/claim_lpi.rs:37:63:
[ 2.426 test-runner error pid=4] claim_lpi: the claim on edu was refused: NotSupported
[ 2.426 test-runner error pid=4] stack backtrace:
[ 2.427 test-runner error pid=4]    0:      0x10000065eac - _Unwind_Backtrace
[ 2.427 test-runner error pid=4]    1:      0x100000510ac - <<std[d6d2712760615b7]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[f28ba090d62d1c7]::fmt::Display>::fmt
[ 2.427 test-runner error pid=4]    2:      0x1000006a080 - core[f28ba090d62d1c7]::fmt::write
[ 2.427 test-runner error pid=4]    3:      0x10000054e40 - <std[d6d2712760615b7]::sys::stdio::toyos::Stderr as core[f28ba090d62d1c7]::io::write::Write>::write_fmt
[ 2.427 test-runner error pid=4]    4:      0x1000003b218 - std[d6d2712760615b7]::panicking::default_hook::{closure#0}
[ 2.427 test-runner error pid=4]    5:      0x1000004c794 - std[d6d2712760615b7]::panicking::default_hook
[ 2.427 test-runner error pid=4]    6:      0x1000004c958 - std[d6d2712760615b7]::panicking::panic_with_hook
[ 2.427 test-runner error pid=4]    7:      0x1000003b2bc - std[d6d2712760615b7]::panicking::panic_handler::{closure#0}
[ 2.427 test-runner error pid=4]    8:      0x10000034458 - std[d6d2712760615b7]::sys::backtrace::__rust_end_short_backtrace::<std[d6d2712760615b7]::panicking::panic_handler::{closure#0}, !>
[ 2.427 test-runner error pid=4]    9:      0x1000003ba94 - __rustc[d0c72ce299f394e5]::rust_begin_unwind
[ 2.427 test-runner error pid=4]   10:      0x1000006a814 - core[f28ba090d62d1c7]::panicking::panic_fmt
[ 2.427 test-runner error pid=4]   11:      0x10000029d48 - claim_lpi[e297ea72218eb836]::main::{closure#0}
[ 2.427 test-runner error pid=4]   12:      0x1000002a154 - claim_lpi[e297ea72218eb836]::main
[ 2.427 test-runner error pid=4]   13:      0x1000002a418 - std[d6d2712760615b7]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
[ 2.427 test-runner error pid=4]   14:      0x1000002a718 - std[d6d2712760615b7]::rt::lang_start::<()>::{closure#0}
[ 2.427 test-runner error pid=4]   15:      0x1000004c12c - std[d6d2712760615b7]::rt::lang_start_internal
[ 2.427 test-runner error pid=4]   16:      0x1000002a2d0 - main
[ 2.427 test-runner error pid=4]   17:      0x1000004fb30 - std[d6d2712760615b7]::sys::pal::toyos::start_rust
[ 2.427 test-runner error pid=4]   18:      0x1000002b904 - _start
[ 2.431 test-runner] ===TEST_END test_rs_claim_lpi exit=101===
[ 2.432 supervisor] supervisor: started test-runner

13:40:46   FAIL  virt_claim_lpi  (3s)
13:40:46   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

13:40:46 host: fastest boot 793 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
13:40:46 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
13:40:46 failures:
13:40:46     virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([ 2.431 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)

13:40:46 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (16.0s; workers: 13s building, 3s testing)
13:40:46 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-22746-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-20cd9f517c1368c3 virt_claim_lpi` (exit status: 1)
EXIT=1


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation irq-no-preempt-count at 2c744d4, virt_claim_lpi, EXIT=1, part 1 of 1

==> mutate.sh <==
#!/bin/sh
# mutate.sh <patch> <log> <test...>: apply a checked patch, run the guest
# tests named, record the exit, restore the tree.
set -u
cd /Users/jan/Dev/jan/toyos-arm-g3 || exit 2
patch=$1; log=$2; shift 2
git apply --check "$patch" || { echo "PATCH DOES NOT APPLY: $patch" > "$log"; exit 2; }
git apply "$patch"
cargo test --test toyos-build -- "$@" > "$log" 2>&1
echo "EXIT=$?" >> "$log"
git apply -R "$patch"
git status --porcelain >> "$log"

==> irq-no-preempt-count.patch <==
diff --git a/kernel/src/arch/aarch64/trap.rs b/kernel/src/arch/aarch64/trap.rs
index 4266f67d3..586935f5c 100644
--- a/kernel/src/arch/aarch64/trap.rs
+++ b/kernel/src/arch/aarch64/trap.rs
@@ -209,7 +209,6 @@ fn irq(frame: &Frame, from_el0: bool) -> bool {
         irqchip::SGI_OFF => super::power::cpu_off(),
         _ => {}
     }
-    percpu::preempt_count_up();
     let resched = match intid {
         irqchip::SGI_KICK => {
             percpu::irq_took(Source::Kick);
@@ -241,7 +240,6 @@ fn irq(frame: &Frame, from_el0: bool) -> bool {
             }
         },
     };
-    percpu::preempt_count_down();
     irqchip::end(intid);
     if resched {
         if from_el0 {

==> irq-no-preempt-count.log <==
    Finished `test` profile [optimized + debuginfo] target(s) in 0.67s
     Running tests/toyos.rs (target/debug/deps/toyos_build-20cd9f517c1368c3)

13:39:09 running 1 tests, 12 wide

13:39:09   RUN   virt_claim_lpi
13:39:09   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
13:39:14   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (5s)
13:39:14   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
13:39:28   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (14s)
13:39:45 FAIL virt_claim_lpi: kernel panic: PANIC: panicked at kernel/src/pcidev/mod.rs:1756:5: — the guest went quiet because every CPU is halted, not because it was still working. The panic is the finding and the guard never got to be one. It was waiting for the job test_rs_claim_lpi to end
--- what the kernel said as it died ---
[ 2.381 cpu0 kernel alert] PANIC: panicked at kernel/src/pcidev/mod.rs:1756:5:
pcidev: slot 0's interrupt arrived with the preempt count at zero
[ 2.381 cpu0 kernel]   Backtrace:
[ 2.381 cpu0 kernel]     0xffff8000baf904b0  core::panicking::panic_fmt+0x28
[ 2.381 cpu0 kernel]     0xffff8000baee6754  kernel::pcidev::isr+0x9c
[ 2.381 cpu0 kernel]     0xffff8000baedbe8c  kernel::arch::aarch64::trap::irq+0x34c
[ 2.381 cpu0 kernel]     0xffff8000baedbfc8  kernel::arch::aarch64::trap::dispatch+0x34
[ 2.381 cpu0 kernel]     0xffff8000baedaffc  [kernel+0xffff8000000daffc]
[ 2.381 cpu0 kernel]   Contexts: cpu0 crashed at sp=0xffff80004033bcd0, asking about ctx 0xffff800040210360
[ 2.381 cpu0 kernel]   cpu0 is on ctx 0xffff800040210360 pid=4 tid=0 stack_top=0xffff80004033c000 saved_sp=0xffff80004033bd80
[ 2.381 cpu0 kernel]   Running: pid=4 tid=Some(Tid(0))
[ 2.399 cpu0 kernel alert] panic: rebooting in 60 s, timed by the calibrated clock
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 0.494 cpu0 loader] ToyOS Bootloader 1.0
[ 0.495 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 0.496 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 0.498 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 0.499 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-I88dcfc2c25da1005 (image scope) holds 0
[ 0.500 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 0.501 cpu0 loader] RSDP address: 0xbcb43018
[ 0.503 cpu0 loader] Boot partition: LBA 2048+69632 signature [1d, c1, fa, 00, 7d, 20, 1f, 42, b2, 98, f3, 14, 08, b7, 1b, f5]
[ 0.504 cpu0 loader] Log partition: signature [75, c8, bf, 65, 21, bd, 8d, 49, 96, cc, 24, 38, ea, ec, e1, 73]
[ 0.535 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 0.550 cpu0 loader] Slot A: signed header 8dc465f94efa5a71b2b59ce5ccb67bf7f9aa8820829f1301553fe400af66e007 verifies under this loader's key, version 1791639554
[ 0.567 cpu0 loader] ROOT: read into memory at 0xbbcb2000+0x500000 from LBA 212992+10240, 1048576 bytes a request (optimal granularity: not reported), in 180776 counter ticks
[ 0.579 cpu0 loader] Slot A: ROOT hashed in 257442 counter ticks
[ 0.579 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 0.583 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 0.585 cpu0 loader] Kernel: 2602584 bytes
[ 0.586 cpu0 loader] Boot parameter: "root=f6fab6853d4547175fc24b6d59ca38a4,boot-slot=A"
[ 0.589 cpu0 loader] Loading kernel elf...
[ 0.590 cpu0 loader] Kernel stack size: 8388608
[ 0.591 cpu0 loader] Kernel memory size: 13717504
[ 0.595 cpu0 loader] Kernel memory located at: 0xbae00000
[ 0.596 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 500640 }, filesz: 500640, file_offset: 0, flags: SegmentFlags(4) }
[ 0.599 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 567296, len: 1084548 }, filesz: 1084548, file_offset: 501760, flags: SegmentFlags(5) }
[ 0.599 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1717384, len: 2936 }, filesz: 240, file_offset: 1586312, flags: SegmentFlags(6) }
[ 0.600 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1783160, len: 3542984 }, filesz: 27072, file_offset: 1586552, flags: SegmentFlags(6) }
[ 0.601 cpu0 loader] Applied 3059 relocations
[ 0.601 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 0.602 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 0.603 cpu0 loader] Starting kernel...
[ 0.603 cpu0 loader] CPU: entered at EL1
[ 0.603 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 0.604 cpu0 loader] GCD: 0x10200000+0x2ee00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.605 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.605 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.606 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 0.608 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 0.610 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 0.614 cpu0 loader] Boot map: root 0xbad8e000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 0.615 cpu0 loader] Kernel image: 0xbae00000+0xd15000 is inside the 0x100000000-byte boot map
[ 0.617 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 0.618 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 0.620 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 0.621 cpu0 loader] Loader counter: 11801122 at entry, 14921397 at the handoff
[ 0.622 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 0.624 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 0.624 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 0.625 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 0.626 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 0.627 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 0.627 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 0.627 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 0.628 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 0.628 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 0.629 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 0.629 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 0.630 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 0.630 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 0.630 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 0.631 cpu0 kernel] memory: 0x000048000000..0x0000bad8b000 uefi type 7
[ 0.631 cpu0 kernel] memory: 0x0000bad8b000..0x0000bc431000 uefi type 2
[ 0.632 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 0.632 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 0.632 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 0.633 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 0.633 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 0.633 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 0.634 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 0.634 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 0.634 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 0.635 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 0.640 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f8000 uefi type 7
[ 0.640 cpu0 kernel] memory: 0x0000be0f8000..0x0000bfa38000 uefi type 4
[ 0.640 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 0.641 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 0.641 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 0.642 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 0.642 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 0.643 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 0.643 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 0.644 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 0.644 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 0.645 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 0.645 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 0.658 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 0.659 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 0.659 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 0.659 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 0.659 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 0.659 cpu0 kernel] boot: memory map 0xbad8c018+0x318, kernel 0xbae00000+0xd15000, stack image+0x515000+0x800000
[ 0.660 cpu0 kernel] boot: kernel elf 0xbc1b2018+0x27b658, rsdp 0xbcb43018, boot pml4 0xbad8e000
[ 0.661 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 0.661 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [1d, c1, fa, 00, 7d, 20, 1f, 42, b2, 98, f3, 14, 08, b7, 1b, f5]
[ 0.663 cpu0 kernel] boot: log partition guid [75, c8, bf, 65, 21, bd, 8d, 49, 96, cc, 24, 38, ea, ec, e1, 73]
[ 0.663 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 0.663 cpu0 kernel] boot: root=f6fab6853d4547175fc24b6d59ca38a4
[ 0.663 cpu0 kernel] boot: slot A, the one the slot table marks
[ 0.664 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 0.664 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 0.665 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 0.665 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 0.667 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 0.667 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 0.667 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 0.668 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 0.668 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 0.673 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 0.674 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 0.674 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 0.685 cpu0 kernel] PSCI: 1.1 through HVC
[ 0.685 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 0.692 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 0.692 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 0.692 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 0.693 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 0.693 cpu0 kernel] mmio: 0x8080000+0x10000 Uncacheable
[ 0.696 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
[ 0.697 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 0.698 cpu0 kernel] symbols: loaded 18639 kernel symbols
[ 0.699 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 0.700 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 0.714 cpu0 kernel] Boot: CPU ready (15ms)
[ 0.715 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 0.715 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 0.715 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 0.715 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 0.715 cpu0 kernel] PCI: Enumerating devices...
[ 0.716 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 0.716 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 0.721 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 0.721 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 0.756 cpu0 kernel] PCI: Enumeration complete, 4 functions.
[ 0.756 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x4000000..0x8000000, mem 0x10200000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 0.759 cpu0 kernel] pcidev: 4 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 0.760 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 0.760 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 0.760 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 0.760 cpu0 kernel] pcidev:   0x10101000..0x40000000 (766 MiB)
[ 0.761 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 0.761 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 0.761 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 0.762 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 0.762 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 0.763 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 4 functions' streams aborting in a table of 32, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 0.764 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 0.764 cpu0 kernel] gpt: the boot volume names 65BFC875-BD21-498D-96CC-2438EAECE173 as the log partition
[ 0.770 cpu0 kernel] gpt: firmware booted us from partition 00FAC11D-207D-421F-B298-F31408B71BF5 at LBA 2048+69632
[ 0.771 cpu0 kernel] Boot: peripherals ready (56ms)
[ 0.772 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 0.777 cpu0 kernel] root: mounted read-only from memory at 0xbbcb2000+0x500000, filesystem f6fab6853d4547175fc24b6d59ca38a4, 1280 blocks
[ 0.778 cpu0 kernel] Boot: subsystems ready (6ms)
[ 0.781 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 0.782 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 0.782 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 0.782 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 0.782 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 0.782 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.783 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.783 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 0.784 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 2.284 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 2.286 cpu0 kernel] root: the partition ROOT was read from, BBEEDE6A-CEC1-4705-8F9F-672A41F7CF32, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 2.291 cpu0 kernel] Boot: storage ready (1509ms)
[ 2.292 cpu0 kernel] virtio-console: no device found
[ 2.293 cpu0 kernel] GPU: using UEFI GOP
[ 2.293 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 2.294 cpu0 kernel] GPU: none this boot, running headless
[ 2.295 cpu0 kernel] Boot: devices ready (3ms)
[ 2.296 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 2.313 cpu0 kernel] Boot: complete (1614ms)
[ 2.315 cpu0 kernel] boot: power-on to loader 491 ms, loader 130 ms (ROOT read 7 ms), kernel to Boot: complete 1691 ms
[ 2.316 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 2.323 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=2ms)
[ 2.326 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=2ms)
[ 2.318 supervisor] supervisor: build 2c744d434cbb7e4b238c638bac9b5a0751e403a6 dirty, committed 2026-10-10 13:31:56 UTC, toolchain b3f5ad494486c67d, aarch64
[ 2.320 supervisor tid=1] supervisor: /home/toy could not be made, so this boot has no session home: permission denied
[ 2.320 supervisor] supervisor: logkeeper: /state/logkeeper could not be made: permission denied
[ 2.323 supervisor] supervisor: started logkeeper
[ 2.326 supervisor] supervisor: started test-runner
[ 2.328 logkeeper] logkeeper: cannot create /log/unknown-00.log: permission denied
[ 2.328 logkeeper] logkeeper: no /log on this machine - this boot's kernel log is on the console only (undated: this machine will not say what time it is)
[ 2.378 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=2ms)
[ 2.379 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 2.380 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.380 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.380 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 2.380 cpu0 kernel] mmio: 0x10200000+0x200000 Uncacheable
[ 2.380 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10200000 — inside firmware's mem 0x10200000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 2.380 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.380 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.380 cpu0 kernel] shm: 0x10200000 mapped Uncacheable into pid 4
[ 2.381 cpu0 kernel] iommu: domain1 maps 0x46400000..0x46600000 at 0x400002000000
[ 2.381 cpu0 kernel alert] PANIC: panicked at kernel/src/pcidev/mod.rs:1756:5:
pcidev: slot 0's interrupt arrived with the preempt count at zero
[ 2.381 cpu0 kernel]   Backtrace:
[ 2.381 cpu0 kernel]     0xffff8000baf904b0  core::panicking::panic_fmt+0x28
[ 2.381 cpu0 kernel]     0xffff8000baee6754  kernel::pcidev::isr+0x9c
[ 2.381 cpu0 kernel]     0xffff8000baedbe8c  kernel::arch::aarch64::trap::irq+0x34c
[ 2.381 cpu0 kernel]     0xffff8000baedbfc8  kernel::arch::aarch64::trap::dispatch+0x34
[ 2.381 cpu0 kernel]     0xffff8000baedaffc  [kernel+0xffff8000000daffc]
[ 2.381 cpu0 kernel]   Contexts: cpu0 crashed at sp=0xffff80004033bcd0, asking about ctx 0xffff800040210360
[ 2.381 cpu0 kernel]   cpu0 is on ctx 0xffff800040210360 pid=4 tid=0 stack_top=0xffff80004033c000 saved_sp=0xffff80004033bd80
[ 2.381 cpu0 kernel]   Running: pid=4 tid=Some(Tid(0))
[ 2.399 cpu0 kernel alert] panic: rebooting in 60 s, timed by the calibrated clock

13:39:45   FAIL  virt_claim_lpi  (18s)
13:39:45   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

13:39:45 host: fastest boot 704 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
13:39:45 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
13:39:45 failures:
13:39:45     virt_claim_lpi: kernel panic: PANIC: panicked at kernel/src/pcidev/mod.rs:1756:5: — the guest went quiet because every CPU is halted, not because it was still working. The panic is the finding and the guard never got to be one. It was waiting for the job test_rs_claim_lpi to end

13:39:45 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (36.8s; workers: 19s building, 18s testing)
13:39:45 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-82290-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-20cd9f517c1368c3 virt_claim_lpi` (exit status: 1)
EXIT=1


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation no-doorbell-leaf at 2c744d4, virt_claim_lpi, EXIT=1, part 1 of 1

==> mutate.sh <==
#!/bin/sh
# mutate.sh <patch> <log> <test...>: apply a checked patch, run the guest
# tests named, record the exit, restore the tree.
set -u
cd /Users/jan/Dev/jan/toyos-arm-g3 || exit 2
patch=$1; log=$2; shift 2
git apply --check "$patch" || { echo "PATCH DOES NOT APPLY: $patch" > "$log"; exit 2; }
git apply "$patch"
cargo test --test toyos-build -- "$@" > "$log" 2>&1
echo "EXIT=$?" >> "$log"
git apply -R "$patch"
git status --porcelain >> "$log"

==> no-doorbell-leaf.patch <==
diff --git a/kernel/src/arch/aarch64/smmu/domain.rs b/kernel/src/arch/aarch64/smmu/domain.rs
index f40e4c641..c44aa9d2e 100644
--- a/kernel/src/arch/aarch64/smmu/domain.rs
+++ b/kernel/src/arch/aarch64/smmu/domain.rs
@@ -111,7 +111,6 @@ pub fn create(room: u64) -> Result<(DomainId, Iova), IommuError> {
     descriptor.write_u64(0, words[0]);
     if let Some(page) = doorbell {
         assert!(page < addresses.floor(), "SMMU: the doorbell at {page:#x} is inside the addresses a domain hands out");
-        live.put(root, page, Leaf::Doorbell(Phys::new(page).expect("SMMU: a 4 KiB page below 2^48")));
     }
     let domain = Domain { asid, root, context, addresses };
     log!(

==> no-doorbell-leaf.log <==
    Finished `test` profile [optimized + debuginfo] target(s) in 0.42s
     Running tests/toyos.rs (target/debug/deps/toyos_build-20cd9f517c1368c3)

13:39:46 running 1 tests, 12 wide

13:39:46   RUN   virt_claim_lpi
13:39:46   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
13:39:49   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (3s)
13:39:49   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
13:39:58   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (9s)
13:40:01 FAIL virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([ 2.237 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 0.510 cpu0 loader] ToyOS Bootloader 1.0
[ 0.511 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 0.512 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 0.513 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 0.514 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-Ic8f345d919ba55f2 (image scope) holds 0
[ 0.515 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 0.517 cpu0 loader] RSDP address: 0xbcb43018
[ 0.517 cpu0 loader] Boot partition: LBA 2048+69632 signature [81, 55, ab, 32, 82, d5, cf, 47, 93, a4, 4b, 34, c9, d3, 33, 18]
[ 0.519 cpu0 loader] Log partition: signature [08, 3b, d8, 21, ce, c8, dc, 47, af, b1, 41, e1, 3e, 94, 3c, eb]
[ 0.533 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 0.544 cpu0 loader] Slot A: signed header 442561dd491f19a6daafd93747ec9b05b306444c8f64ae8f81e606ed3b111487 verifies under this loader's key, version 1791639589
[ 0.569 cpu0 loader] ROOT: read into memory at 0xbbcb2000+0x500000 from LBA 212992+10240, 1048576 bytes a request (optimal granularity: not reported), in 223073 counter ticks
[ 0.585 cpu0 loader] Slot A: ROOT hashed in 316365 counter ticks
[ 0.585 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 0.588 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 0.590 cpu0 loader] Kernel: 2602560 bytes
[ 0.591 cpu0 loader] Boot parameter: "root=f6fab6853d4547175fc24b6d59ca38a4,boot-slot=A"
[ 0.591 cpu0 loader] Loading kernel elf...
[ 0.592 cpu0 loader] Kernel stack size: 8388608
[ 0.593 cpu0 loader] Kernel memory size: 13717504
[ 0.598 cpu0 loader] Kernel memory located at: 0xbae00000
[ 0.600 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 500520 }, filesz: 500520, file_offset: 0, flags: SegmentFlags(4) }
[ 0.602 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 567296, len: 1084592 }, filesz: 1084592, file_offset: 501760, flags: SegmentFlags(5) }
[ 0.604 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1717424, len: 2896 }, filesz: 240, file_offset: 1586352, flags: SegmentFlags(6) }
[ 0.608 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1783200, len: 3542944 }, filesz: 27072, file_offset: 1586592, flags: SegmentFlags(6) }
[ 0.610 cpu0 loader] Applied 3058 relocations
[ 0.611 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 0.611 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 0.612 cpu0 loader] Starting kernel...
[ 0.613 cpu0 loader] CPU: entered at EL1
[ 0.613 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 0.614 cpu0 loader] GCD: 0x10200000+0x2ee00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.615 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.616 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.618 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 0.619 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 0.620 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 0.621 cpu0 loader] Boot map: root 0xbad8e000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 0.622 cpu0 loader] Kernel image: 0xbae00000+0xd15000 is inside the 0x100000000-byte boot map
[ 0.623 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 0.624 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 0.624 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 0.625 cpu0 loader] Loader counter: 12169985 at entry, 15021383 at the handoff
[ 0.626 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 0.628 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 0.628 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 0.628 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 0.629 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 0.630 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 0.630 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 0.631 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 0.631 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 0.631 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 0.631 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 0.632 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 0.632 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 0.632 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 0.633 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 0.633 cpu0 kernel] memory: 0x000048000000..0x0000bad8b000 uefi type 7
[ 0.633 cpu0 kernel] memory: 0x0000bad8b000..0x0000bc431000 uefi type 2
[ 0.633 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 0.634 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 0.634 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 0.634 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 0.635 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 0.635 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 0.635 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 0.635 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 0.636 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 0.636 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 0.636 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f8000 uefi type 7
[ 0.637 cpu0 kernel] memory: 0x0000be0f8000..0x0000bfa38000 uefi type 4
[ 0.637 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 0.637 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 0.637 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 0.638 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 0.638 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 0.638 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 0.639 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 0.639 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 0.639 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 0.639 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 0.639 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 0.640 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 0.640 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 0.640 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 0.640 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 0.640 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 0.640 cpu0 kernel] boot: memory map 0xbad8c018+0x318, kernel 0xbae00000+0xd15000, stack image+0x515000+0x800000
[ 0.641 cpu0 kernel] boot: kernel elf 0xbc1b2018+0x27b640, rsdp 0xbcb43018, boot pml4 0xbad8e000
[ 0.641 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 0.641 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [81, 55, ab, 32, 82, d5, cf, 47, 93, a4, 4b, 34, c9, d3, 33, 18]
[ 0.642 cpu0 kernel] boot: log partition guid [08, 3b, d8, 21, ce, c8, dc, 47, af, b1, 41, e1, 3e, 94, 3c, eb]
[ 0.642 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 0.642 cpu0 kernel] boot: root=f6fab6853d4547175fc24b6d59ca38a4
[ 0.642 cpu0 kernel] boot: slot A, the one the slot table marks
[ 0.643 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 0.643 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 0.643 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 0.644 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 0.646 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 0.646 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 0.647 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 0.647 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 0.647 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 0.648 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 0.648 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 0.648 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 0.648 cpu0 kernel] PSCI: 1.1 through HVC
[ 0.649 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 0.649 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 0.649 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 0.649 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 0.650 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 0.650 cpu0 kernel] mmio: 0x8080000+0x10000 Uncacheable
[ 0.651 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
[ 0.652 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 0.652 cpu0 kernel] symbols: loaded 18637 kernel symbols
[ 0.653 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 0.654 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 0.654 cpu0 kernel] Boot: CPU ready (1ms)
[ 0.654 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 0.655 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 0.655 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 0.655 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 0.655 cpu0 kernel] PCI: Enumerating devices...
[ 0.655 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 0.656 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 0.656 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 0.657 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 0.667 cpu0 kernel] PCI: Enumeration complete, 4 functions.
[ 0.667 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x4000000..0x8000000, mem 0x10200000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 0.668 cpu0 kernel] pcidev: 4 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 0.668 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 0.668 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 0.668 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 0.668 cpu0 kernel] pcidev:   0x10101000..0x40000000 (766 MiB)
[ 0.668 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 0.668 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 0.669 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 0.669 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 0.669 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 0.670 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 4 functions' streams aborting in a table of 32, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 0.670 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 0.670 cpu0 kernel] gpt: the boot volume names 21D83B08-C8CE-47DC-AFB1-41E13E943CEB as the log partition
[ 0.670 cpu0 kernel] gpt: firmware booted us from partition 32AB5581-D582-47CF-93A4-4B34C9D33318 at LBA 2048+69632
[ 0.671 cpu0 kernel] Boot: peripherals ready (16ms)
[ 0.671 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 0.671 cpu0 kernel] root: mounted read-only from memory at 0xbbcb2000+0x500000, filesystem f6fab6853d4547175fc24b6d59ca38a4, 1280 blocks
[ 0.672 cpu0 kernel] Boot: subsystems ready (0ms)
[ 0.673 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 0.674 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 0.674 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 0.674 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 0.675 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 0.675 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.676 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.676 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 0.677 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 2.177 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 2.198 cpu0 kernel] root: the partition ROOT was read from, 9855774F-3E3B-4ADA-9AAA-16A66A833DF5, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 2.199 cpu0 kernel] Boot: storage ready (1524ms)
[ 2.199 cpu0 kernel] virtio-console: no device found
[ 2.199 cpu0 kernel] GPU: using UEFI GOP
[ 2.199 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 2.201 cpu0 kernel] GPU: none this boot, running headless
[ 2.201 cpu0 kernel] Boot: devices ready (2ms)
[ 2.202 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 2.203 cpu0 kernel] Boot: complete (1550ms)
[ 2.203 cpu0 kernel] boot: power-on to loader 507 ms, loader 118 ms (ROOT read 9 ms), kernel to Boot: complete 1577 ms
[ 2.206 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 2.214 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.216 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.222 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.223 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 2.223 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.223 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.223 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 2.223 cpu0 kernel] mmio: 0x10200000+0x200000 Uncacheable
[ 2.211 supervisor] supervisor: build 2c744d434cbb7e4b238c638bac9b5a0751e403a6 dirty, committed 2026-10-10 13:31:56 UTC, toolchain b3f5ad494486c67d, aarch64
[ 2.212 supervisor tid=1] supervisor: /home/toy could not be made, so this boot has no session home: permission denied
[ 2.212 supervisor] supervisor: logkeeper: /state/logkeeper could not be made: permission denied
[ 2.214 supervisor] supervisor: started logkeeper
[ 2.216 supervisor] supervisor: started test-runner
[ 2.218 logkeeper] logkeeper: cannot create /log/unknown-00.log: permission denied
[ 2.218 logkeeper] logkeeper: no /log on this machine - this boot's kernel log is on the console only (undated: this machine will not say what time it is)
[ 2.220 test-runner] ===READY===
[ 2.223 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10200000 — inside firmware's mem 0x10200000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 2.223 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.223 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.223 cpu0 kernel] shm: 0x10200000 mapped Uncacheable into pid 4
[ 2.223 cpu0 kernel] iommu: domain1 maps 0x46400000..0x46600000 at 0x400002000000
[ 2.224 cpu0 kernel] iommu: DMA FAULT owner=slot0 unit0 stream=00:03.0 addr=0x0000000008090040 access=write reason=0x10 domain=1 bme=cleared unitfaults=1 streamfaults=1 first=y F_TRANSLATION
[ 2.225 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.225 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.221 test-runner] ===TEST_START test_rs_claim_lpi===
[ 2.224 test-runner error pid=4] 
[ 2.224 test-runner error pid=4] thread 'main' (1) panicked at src/bin/claim_lpi.rs:54:25:
[ 2.224 test-runner error pid=4] claim_lpi: message 1 was not read as the claim's interrupt within 10s: Io
[ 2.224 test-runner error pid=4] stack backtrace:
[ 2.225 test-runner error pid=4]    0:      0x10000065eac - _Unwind_Backtrace
[ 2.225 test-runner error pid=4]    1:      0x100000510ac - <<std[d6d2712760615b7]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[f28ba090d62d1c7]::fmt::Display>::fmt
[ 2.225 test-runner error pid=4]    2:      0x1000006a080 - core[f28ba090d62d1c7]::fmt::write
[ 2.225 cpu0 kernel] exit: test_rs_claim_lpi pid=4 code=101 cpu=2ms peak=4MB allocs=3 frees=0 syscalls=54 syscall_wall=2ms 1=3 6=1 9=2 10=10 13=2 14=3 21=1 50=1 51=1 63=2 66=2 72=1 73=1 89=1 90=1 91=2 99=2 102=4 105=4 106=7 111=1 117=1 118=1
[ 2.237 cpu0 kernel tid=1] exit: test-runner pid=3 code=0 cpu=3ms peak=6MB allocs=3 frees=0 syscalls=39 syscall_wall=17ms 6=1 10=8 14=1 21=1 24=1 25=1 40=1 50=4 51=1 63=2 72=1 73=2 91=1 99=2 102=4 105=3 106=4 108=1
[ 2.225 test-runner error pid=4]    3:      0x10000054e40 - <std[d6d2712760615b7]::sys::stdio::toyos::Stderr as core[f28ba090d62d1c7]::io::write::Write>::write_fmt
[ 2.225 test-runner error pid=4]    4:      0x1000003b218 - std[d6d2712760615b7]::panicking::default_hook::{closure#0}
[ 2.225 test-runner error pid=4]    5:      0x1000004c794 - std[d6d2712760615b7]::panicking::default_hook
[ 2.225 test-runner error pid=4]    6:      0x1000004c958 - std[d6d2712760615b7]::panicking::panic_with_hook
[ 2.225 test-runner error pid=4]    7:      0x1000003b2bc - std[d6d2712760615b7]::panicking::panic_handler::{closure#0}
[ 2.225 test-runner error pid=4]    8:      0x10000034458 - std[d6d2712760615b7]::sys::backtrace::__rust_end_short_backtrace::<std[d6d2712760615b7]::panicking::panic_handler::{closure#0}, !>
[ 2.225 test-runner error pid=4]    9:      0x1000003ba94 - __rustc[d0c72ce299f394e5]::rust_begin_unwind
[ 2.225 test-runner error pid=4]   10:      0x1000006a814 - core[f28ba090d62d1c7]::panicking::panic_fmt
[ 2.225 test-runner error pid=4]   11:      0x1000002a0cc - claim_lpi[e297ea72218eb836]::main
[ 2.225 test-runner error pid=4]   12:      0x1000002a418 - std[d6d2712760615b7]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
[ 2.225 test-runner error pid=4]   13:      0x1000002a718 - std[d6d2712760615b7]::rt::lang_start::<()>::{closure#0}
[ 2.225 test-runner error pid=4]   14:      0x1000004c12c - std[d6d2712760615b7]::rt::lang_start_internal
[ 2.225 test-runner error pid=4]   15:      0x1000002a2d0 - main
[ 2.225 test-runner error pid=4]   16:      0x1000004fb30 - std[d6d2712760615b7]::sys::pal::toyos::start_rust
[ 2.225 test-runner error pid=4]   17:      0x1000002b904 - _start
[ 2.237 test-runner] ===TEST_END test_rs_claim_lpi exit=101===

13:40:01   FAIL  virt_claim_lpi  (3s)
13:40:01   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

13:40:01 host: fastest boot 689 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
13:40:01 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
13:40:01 failures:
13:40:01     virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([ 2.237 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)

13:40:01 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (14.4s; workers: 12s building, 3s testing)
13:40:01 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-1058-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-20cd9f517c1368c3 virt_claim_lpi` (exit status: 1)
EXIT=1


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation wrong-slot-lpi at 2c744d4, virt_claim_lpi, EXIT=1, part 1 of 1

==> mutate.sh <==
#!/bin/sh
# mutate.sh <patch> <log> <test...>: apply a checked patch, run the guest
# tests named, record the exit, restore the tree.
set -u
cd /Users/jan/Dev/jan/toyos-arm-g3 || exit 2
patch=$1; log=$2; shift 2
git apply --check "$patch" || { echo "PATCH DOES NOT APPLY: $patch" > "$log"; exit 2; }
git apply "$patch"
cargo test --test toyos-build -- "$@" > "$log" 2>&1
echo "EXIT=$?" >> "$log"
git apply -R "$patch"
git status --porcelain >> "$log"

==> wrong-slot-lpi.patch <==
diff --git a/kernel/src/arch/aarch64/irqchip/its.rs b/kernel/src/arch/aarch64/irqchip/its.rs
index e1047ca29..c1b6d54e8 100644
--- a/kernel/src/arch/aarch64/irqchip/its.rs
+++ b/kernel/src/arch/aarch64/irqchip/its.rs
@@ -424,7 +424,7 @@ pub fn claim(slot: usize, source: StreamId) -> Result<Msi, Refused> {
         return Err(Refused::DeviceIdHeld(device));
     }
     let event = live.events.event(EVENT).expect("event 0 is in every table");
-    let (table, lpi, collection, events) = (live.itts[slot], live.lpis[slot], live.collection, live.events);
+    let (table, lpi, collection, events) = (live.itts[slot], live.lpis[(slot + 1) % MAX_FUNCTIONS], live.collection, live.events);
     live.issue(&[
         Command::MapDevice { device, table, events },
         Command::MapEvent { device, event, lpi, collection },

==> wrong-slot-lpi.log <==
    Finished `test` profile [optimized + debuginfo] target(s) in 0.26s
     Running tests/toyos.rs (target/debug/deps/toyos_build-20cd9f517c1368c3)

13:41:15 running 1 tests, 12 wide

13:41:15   RUN   virt_claim_lpi
13:41:15   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
13:41:17   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (2s)
13:41:17   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
13:41:21   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (4s)
13:41:33 FAIL virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([12.044 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 0.383 cpu0 loader] ToyOS Bootloader 1.0
[ 0.385 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 0.386 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 0.387 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 0.388 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-Ic6090ba840913271 (image scope) holds 0
[ 0.389 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 0.390 cpu0 loader] RSDP address: 0xbcb43018
[ 0.390 cpu0 loader] Boot partition: LBA 2048+69632 signature [af, 28, 58, ac, b1, 7b, b0, 45, aa, 06, b5, 9d, 2a, c1, d5, fb]
[ 0.391 cpu0 loader] Log partition: signature [67, 25, 67, 15, 53, b5, f6, 48, bd, 73, b0, e4, c3, d6, d1, 74]
[ 0.401 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 0.408 cpu0 loader] Slot A: signed header 9666a1f3d8a7b5751ce2c7570f3d90d45825866cf7550f551cea101f9d6e1388 verifies under this loader's key, version 1791639677
[ 0.426 cpu0 loader] ROOT: read into memory at 0xbbcb2000+0x500000 from LBA 212992+10240, 1048576 bytes a request (optimal granularity: not reported), in 152093 counter ticks
[ 0.438 cpu0 loader] Slot A: ROOT hashed in 262230 counter ticks
[ 0.438 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 0.440 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 0.440 cpu0 loader] Kernel: 2602656 bytes
[ 0.441 cpu0 loader] Boot parameter: "root=f6fab6853d4547175fc24b6d59ca38a4,boot-slot=A"
[ 0.441 cpu0 loader] Loading kernel elf...
[ 0.442 cpu0 loader] Kernel stack size: 8388608
[ 0.442 cpu0 loader] Kernel memory size: 13717504
[ 0.445 cpu0 loader] Kernel memory located at: 0xbae00000
[ 0.445 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 500640 }, filesz: 500640, file_offset: 0, flags: SegmentFlags(4) }
[ 0.447 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 567296, len: 1084668 }, filesz: 1084668, file_offset: 501760, flags: SegmentFlags(5) }
[ 0.448 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1717504, len: 2816 }, filesz: 240, file_offset: 1586432, flags: SegmentFlags(6) }
[ 0.449 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1783280, len: 3542864 }, filesz: 27072, file_offset: 1586672, flags: SegmentFlags(6) }
[ 0.450 cpu0 loader] Applied 3059 relocations
[ 0.451 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 0.451 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 0.452 cpu0 loader] Starting kernel...
[ 0.453 cpu0 loader] CPU: entered at EL1
[ 0.453 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 0.454 cpu0 loader] GCD: 0x10200000+0x2ee00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.454 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.455 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.455 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 0.456 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 0.457 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 0.458 cpu0 loader] Boot map: root 0xbad8e000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 0.459 cpu0 loader] Kernel image: 0xbae00000+0xd15000 is inside the 0x100000000-byte boot map
[ 0.460 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 0.460 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 0.461 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 0.462 cpu0 loader] Loader counter: 9178132 at entry, 11096001 at the handoff
[ 0.462 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 0.464 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 0.464 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 0.464 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 0.465 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 0.465 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 0.466 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 0.466 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 0.466 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 0.466 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 0.466 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 0.467 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 0.467 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 0.467 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 0.467 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 0.468 cpu0 kernel] memory: 0x000048000000..0x0000bad8b000 uefi type 7
[ 0.468 cpu0 kernel] memory: 0x0000bad8b000..0x0000bc431000 uefi type 2
[ 0.468 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 0.468 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 0.468 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 0.469 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 0.469 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 0.469 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 0.469 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 0.470 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 0.470 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 0.470 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 0.470 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f8000 uefi type 7
[ 0.470 cpu0 kernel] memory: 0x0000be0f8000..0x0000bfa38000 uefi type 4
[ 0.471 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 0.471 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 0.471 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 0.471 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 0.472 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 0.472 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 0.472 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 0.472 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 0.472 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 0.473 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 0.473 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 0.473 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 0.473 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 0.473 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 0.474 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 0.474 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 0.474 cpu0 kernel] boot: memory map 0xbad8c018+0x318, kernel 0xbae00000+0xd15000, stack image+0x515000+0x800000
[ 0.475 cpu0 kernel] boot: kernel elf 0xbc1b2018+0x27b6a0, rsdp 0xbcb43018, boot pml4 0xbad8e000
[ 0.475 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 0.475 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [af, 28, 58, ac, b1, 7b, b0, 45, aa, 06, b5, 9d, 2a, c1, d5, fb]
[ 0.476 cpu0 kernel] boot: log partition guid [67, 25, 67, 15, 53, b5, f6, 48, bd, 73, b0, e4, c3, d6, d1, 74]
[ 0.476 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 0.476 cpu0 kernel] boot: root=f6fab6853d4547175fc24b6d59ca38a4
[ 0.476 cpu0 kernel] boot: slot A, the one the slot table marks
[ 0.477 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 0.477 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 0.477 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 0.477 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 0.479 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 0.480 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 0.480 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 0.480 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 0.480 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 0.481 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 0.481 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 0.481 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 0.481 cpu0 kernel] PSCI: 1.1 through HVC
[ 0.482 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 0.482 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 0.482 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 0.482 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 0.482 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 0.483 cpu0 kernel] mmio: 0x8080000+0x10000 Uncacheable
[ 0.483 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
[ 0.484 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 0.484 cpu0 kernel] symbols: loaded 18639 kernel symbols
[ 0.485 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 0.485 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 0.485 cpu0 kernel] Boot: CPU ready (0ms)
[ 0.486 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 0.486 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 0.486 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 0.486 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 0.486 cpu0 kernel] PCI: Enumerating devices...
[ 0.487 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 0.487 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 0.487 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 0.488 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 0.497 cpu0 kernel] PCI: Enumeration complete, 4 functions.
[ 0.497 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x4000000..0x8000000, mem 0x10200000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 0.498 cpu0 kernel] pcidev: 4 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 0.498 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 0.498 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 0.498 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 0.498 cpu0 kernel] pcidev:   0x10101000..0x40000000 (766 MiB)
[ 0.499 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 0.499 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 0.499 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 0.499 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 0.499 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 0.500 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 4 functions' streams aborting in a table of 32, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 0.501 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 0.501 cpu0 kernel] gpt: the boot volume names 15672567-B553-48F6-BD73-B0E4C3D6D174 as the log partition
[ 0.501 cpu0 kernel] gpt: firmware booted us from partition AC5828AF-7BB1-45B0-AA06-B59D2AC1D5FB at LBA 2048+69632
[ 0.501 cpu0 kernel] Boot: peripherals ready (15ms)
[ 0.502 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 0.502 cpu0 kernel] root: mounted read-only from memory at 0xbbcb2000+0x500000, filesystem f6fab6853d4547175fc24b6d59ca38a4, 1280 blocks
[ 0.502 cpu0 kernel] Boot: subsystems ready (0ms)
[ 0.504 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 0.504 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 0.504 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 0.505 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 0.505 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 0.505 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.506 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.507 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 0.507 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 2.008 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 2.008 cpu0 kernel] root: the partition ROOT was read from, F0CE42C2-2B12-4780-899F-E476F1799260, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 2.009 cpu0 kernel] Boot: storage ready (1504ms)
[ 2.009 cpu0 kernel] virtio-console: no device found
[ 2.009 cpu0 kernel] GPU: using UEFI GOP
[ 2.010 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 2.010 cpu0 kernel] GPU: none this boot, running headless
[ 2.010 cpu0 kernel] Boot: devices ready (0ms)
[ 2.010 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 2.011 cpu0 kernel] Boot: complete (1526ms)
[ 2.011 cpu0 kernel] boot: power-on to loader 382 ms, loader 79 ms (ROOT read 6 ms), kernel to Boot: complete 1548 ms
[ 2.011 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 2.016 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.018 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.023 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.023 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 2.023 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8193
[ 2.023 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.023 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 2.024 cpu0 kernel] mmio: 0x10200000+0x200000 Uncacheable
[ 2.013 supervisor] supervisor: build 2c744d434cbb7e4b238c638bac9b5a0751e403a6 dirty, committed 2026-10-10 13:31:56 UTC, toolchain b3f5ad494486c67d, aarch64
[ 2.014 supervisor tid=1] supervisor: /home/toy could not be made, so this boot has no session home: permission denied
[ 2.015 supervisor] supervisor: logkeeper: /state/logkeeper could not be made: permission denied
[ 2.016 supervisor] supervisor: started logkeeper
[ 2.018 supervisor] supervisor: started test-runner
[ 2.019 logkeeper] logkeeper: cannot create /log/unknown-00.log: permission denied
[ 2.019 logkeeper] logkeeper: no /log on this machine - this boot's kernel log is on the console only (undated: this machine will not say what time it is)
[ 2.024 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10200000 — inside firmware's mem 0x10200000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 2.024 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.024 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.024 cpu0 kernel] shm: 0x10200000 mapped Uncacheable into pid 4
[ 2.024 cpu0 kernel] iommu: domain1 maps 0x46400000..0x46600000 at 0x400002000000
[ 2.020 test-runner] ===READY===
[ 2.021 test-runner] ===TEST_START test_rs_claim_lpi===
[12.044 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[12.044 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[12.044 cpu0 kernel] exit: test_rs_claim_lpi pid=4 code=101 cpu=3ms peak=4MB allocs=3 frees=0 syscalls=54 syscall_wall=10021ms 1=3 6=1 9=2 10=10 13=2 14=3 21=1 50=1 51=1 63=2 66=2 72=1 73=1 89=1 90=1 91=2 99=2 102=4 105=4 106=7 111=1 117=1 118=1
[12.044 cpu0 kernel tid=1] exit: test-runner pid=3 code=0 cpu=2ms peak=6MB allocs=3 frees=0 syscalls=39 syscall_wall=10024ms 6=1 10=8 14=1 21=1 24=1 25=1 40=1 50=4 51=1 63=2 72=1 73=2 91=1 99=2 102=4 105=3 106=4 108=1
[12.043 test-runner error pid=4] 
[12.043 test-runner error pid=4] thread 'main' (1) panicked at src/bin/claim_lpi.rs:54:25:
[12.043 test-runner error pid=4] claim_lpi: message 1 was not read as the claim's interrupt within 10s: WouldBlock
[12.043 test-runner error pid=4] stack backtrace:
[12.044 test-runner error pid=4]    0:      0x10000065eac - _Unwind_Backtrace
[12.044 test-runner error pid=4]    1:      0x100000510ac - <<std[d6d2712760615b7]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[f28ba090d62d1c7]::fmt::Display>::fmt
[12.044 test-runner error pid=4]    2:      0x1000006a080 - core[f28ba090d62d1c7]::fmt::write
[12.044 test-runner error pid=4]    3:      0x10000054e40 - <std[d6d2712760615b7]::sys::stdio::toyos::Stderr as core[f28ba090d62d1c7]::io::write::Write>::write_fmt
[12.044 test-runner error pid=4]    4:      0x1000003b218 - std[d6d2712760615b7]::panicking::default_hook::{closure#0}
[12.044 test-runner error pid=4]    5:      0x1000004c794 - std[d6d2712760615b7]::panicking::default_hook
[12.044 test-runner error pid=4]    6:      0x1000004c958 - std[d6d2712760615b7]::panicking::panic_with_hook
[12.044 test-runner error pid=4]    7:      0x1000003b2bc - std[d6d2712760615b7]::panicking::panic_handler::{closure#0}
[12.044 test-runner error pid=4]    8:      0x10000034458 - std[d6d2712760615b7]::sys::backtrace::__rust_end_short_backtrace::<std[d6d2712760615b7]::panicking::panic_handler::{closure#0}, !>
[12.044 test-runner error pid=4]    9:      0x1000003ba94 - __rustc[d0c72ce299f394e5]::rust_begin_unwind
[12.044 test-runner error pid=4]   10:      0x1000006a814 - core[f28ba090d62d1c7]::panicking::panic_fmt
[12.044 test-runner error pid=4]   11:      0x1000002a0cc - claim_lpi[e297ea72218eb836]::main
[12.044 test-runner error pid=4]   12:      0x1000002a418 - std[d6d2712760615b7]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
[12.044 test-runner error pid=4]   13:      0x1000002a718 - std[d6d2712760615b7]::rt::lang_start::<()>::{closure#0}
[12.044 test-runner error pid=4]   14:      0x1000004c12c - std[d6d2712760615b7]::rt::lang_start_internal
[12.044 test-runner error pid=4]   15:      0x1000002a2d0 - main
[12.044 test-runner error pid=4]   16:      0x1000004fb30 - std[d6d2712760615b7]::sys::pal::toyos::start_rust
[12.044 test-runner error pid=4]   17:      0x1000002b904 - _start
[12.044 test-runner] ===TEST_END test_rs_claim_lpi exit=101===

13:41:33   FAIL  virt_claim_lpi  (12s)
13:41:33   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

13:41:33 host: fastest boot 516 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
13:41:33 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
13:41:33 failures:
13:41:33     virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([12.044 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)

13:41:33 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (17.9s; workers: 6s building, 12s testing)
13:41:33 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-68422-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-20cd9f517c1368c3 virt_claim_lpi` (exit status: 1)
EXIT=1


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation wrong-event at 2c744d4, virt_claim_lpi, EXIT=1, part 1 of 1

==> mutate.sh <==
#!/bin/sh
# mutate.sh <patch> <log> <test...>: apply a checked patch, run the guest
# tests named, record the exit, restore the tree.
set -u
cd /Users/jan/Dev/jan/toyos-arm-g3 || exit 2
patch=$1; log=$2; shift 2
git apply --check "$patch" || { echo "PATCH DOES NOT APPLY: $patch" > "$log"; exit 2; }
git apply "$patch"
cargo test --test toyos-build -- "$@" > "$log" 2>&1
echo "EXIT=$?" >> "$log"
git apply -R "$patch"
git status --porcelain >> "$log"

==> wrong-event.patch <==
diff --git a/kernel/src/arch/aarch64/irqchip/its.rs b/kernel/src/arch/aarch64/irqchip/its.rs
index 065c20cf6..671ab16e7 100644
--- a/kernel/src/arch/aarch64/irqchip/its.rs
+++ b/kernel/src/arch/aarch64/irqchip/its.rs
@@ -420,7 +420,7 @@ pub fn claim(slot: usize, source: StreamId) -> Result<Msi, Refused> {
     ]);
     live.held[slot] = Some(device);
     log!("ITS: {source}, DeviceID {device:#x}, event {EVENT} is slot {slot}'s LPI {}", lpi.intid());
-    Ok(Msi { address: live.doorbell, data: EVENT })
+    Ok(Msi { address: live.doorbell, data: EVENT + 1 })
 }
 
 /// Claim slot `slot`'s DeviceID unmapped, and anything it left pending

==> wrong-event.log <==
    Finished `test` profile [optimized + debuginfo] target(s) in 0.42s
     Running tests/toyos.rs (target/debug/deps/toyos_build-20cd9f517c1368c3)

13:40:02 running 1 tests, 12 wide

13:40:02   RUN   virt_claim_lpi
13:40:02   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
13:40:05   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (3s)
13:40:05   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
13:40:14   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (9s)
13:40:28 FAIL virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([13.430 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 0.791 cpu0 loader] ToyOS Bootloader 1.0
[ 0.792 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 0.793 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 0.796 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 0.799 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-I27ebf60541e03aae (image scope) holds 0
[ 0.800 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 0.801 cpu0 loader] RSDP address: 0xbcb43018
[ 0.883 cpu0 loader] Boot partition: LBA 2048+69632 signature [c9, 22, c2, 70, f1, 1e, 1f, 4c, a2, 72, 18, 25, 84, d8, 2a, a6]
[ 0.893 cpu0 loader] Log partition: signature [a5, 3b, 94, c3, dd, 38, b7, 40, a2, af, 41, e9, 19, cb, 72, 79]
[ 0.907 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 0.923 cpu0 loader] Slot A: signed header d0b3ba1e03d2d9becb6e1eef56bd898670da41cc032dd3a00b2cb5053ccbf818 verifies under this loader's key, version 1791639605
[ 1.139 cpu0 loader] ROOT: read into memory at 0xbbcb2000+0x500000 from LBA 212992+10240, 1048576 bytes a request (optimal granularity: not reported), in 205381 counter ticks
[ 1.280 cpu0 loader] Slot A: ROOT hashed in 3247972 counter ticks
[ 1.332 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 1.334 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 1.338 cpu0 loader] Kernel: 2602696 bytes
[ 1.338 cpu0 loader] Boot parameter: "root=f6fab6853d4547175fc24b6d59ca38a4,boot-slot=A"
[ 1.339 cpu0 loader] Loading kernel elf...
[ 1.340 cpu0 loader] Kernel stack size: 8388608
[ 1.340 cpu0 loader] Kernel memory size: 13717504
[ 1.345 cpu0 loader] Kernel memory located at: 0xbae00000
[ 1.346 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 500640 }, filesz: 500640, file_offset: 0, flags: SegmentFlags(4) }
[ 1.348 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 567296, len: 1084668 }, filesz: 1084668, file_offset: 501760, flags: SegmentFlags(5) }
[ 1.350 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1717504, len: 2816 }, filesz: 240, file_offset: 1586432, flags: SegmentFlags(6) }
[ 1.352 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1783280, len: 3542864 }, filesz: 27072, file_offset: 1586672, flags: SegmentFlags(6) }
[ 1.355 cpu0 loader] Applied 3059 relocations
[ 1.356 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 1.357 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 1.359 cpu0 loader] Starting kernel...
[ 1.359 cpu0 loader] CPU: entered at EL1
[ 1.360 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 1.362 cpu0 loader] GCD: 0x10200000+0x2ee00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 1.365 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 1.366 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 1.401 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 1.410 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 1.412 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 1.415 cpu0 loader] Boot map: root 0xbad8e000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 1.418 cpu0 loader] Kernel image: 0xbae00000+0xd15000 is inside the 0x100000000-byte boot map
[ 1.419 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 1.421 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 1.421 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 1.423 cpu0 loader] Loader counter: 18906751 at entry, 34153868 at the handoff
[ 1.425 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 1.428 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 1.428 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 1.428 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 1.433 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 1.436 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 1.436 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 1.438 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 1.438 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 1.440 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 1.440 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 1.441 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 1.441 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 1.441 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 1.442 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 1.443 cpu0 kernel] memory: 0x000048000000..0x0000bad8b000 uefi type 7
[ 1.444 cpu0 kernel] memory: 0x0000bad8b000..0x0000bc431000 uefi type 2
[ 1.446 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 1.447 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 1.448 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 1.449 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 1.450 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 1.451 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 1.451 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 1.452 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 1.452 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 1.452 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 1.453 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f8000 uefi type 7
[ 1.454 cpu0 kernel] memory: 0x0000be0f8000..0x0000bfa38000 uefi type 4
[ 1.454 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 1.454 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 1.455 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 1.455 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 1.455 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 1.456 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 1.456 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 1.457 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 1.457 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 1.457 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 1.506 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 1.506 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 1.518 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 1.526 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 1.526 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 1.527 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 1.527 cpu0 kernel] boot: memory map 0xbad8c018+0x318, kernel 0xbae00000+0xd15000, stack image+0x515000+0x800000
[ 1.527 cpu0 kernel] boot: kernel elf 0xbc1b2018+0x27b6c8, rsdp 0xbcb43018, boot pml4 0xbad8e000
[ 1.527 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 1.528 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [c9, 22, c2, 70, f1, 1e, 1f, 4c, a2, 72, 18, 25, 84, d8, 2a, a6]
[ 1.528 cpu0 kernel] boot: log partition guid [a5, 3b, 94, c3, dd, 38, b7, 40, a2, af, 41, e9, 19, cb, 72, 79]
[ 1.528 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 1.529 cpu0 kernel] boot: root=f6fab6853d4547175fc24b6d59ca38a4
[ 1.529 cpu0 kernel] boot: slot A, the one the slot table marks
[ 1.529 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 1.529 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 1.530 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 1.530 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 1.532 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 1.532 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 1.532 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 1.533 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 1.533 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 1.533 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 1.534 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 1.534 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 1.534 cpu0 kernel] PSCI: 1.1 through HVC
[ 1.534 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 1.534 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 1.535 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 1.535 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 1.535 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 1.536 cpu0 kernel] mmio: 0x8080000+0x10000 Uncacheable
[ 1.537 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
[ 1.537 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 1.538 cpu0 kernel] symbols: loaded 18639 kernel symbols
[ 1.539 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 1.540 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 1.540 cpu0 kernel] Boot: CPU ready (1ms)
[ 1.541 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 1.541 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 1.541 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 1.541 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 1.541 cpu0 kernel] PCI: Enumerating devices...
[ 1.542 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 1.542 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 1.542 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 1.543 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 1.620 cpu0 kernel] PCI: Enumeration complete, 4 functions.
[ 1.621 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x4000000..0x8000000, mem 0x10200000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 1.639 cpu0 kernel] pcidev: 4 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 1.639 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 1.639 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 1.639 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 1.639 cpu0 kernel] pcidev:   0x10101000..0x40000000 (766 MiB)
[ 1.640 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 1.640 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 1.640 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 1.640 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 1.640 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 1.641 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 4 functions' streams aborting in a table of 32, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 1.641 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 1.641 cpu0 kernel] gpt: the boot volume names C3943BA5-38DD-40B7-A2AF-41E919CB7279 as the log partition
[ 1.642 cpu0 kernel] gpt: firmware booted us from partition 70C222C9-1EF1-4C1F-A272-182584D82AA6 at LBA 2048+69632
[ 1.642 cpu0 kernel] Boot: peripherals ready (101ms)
[ 1.642 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 1.642 cpu0 kernel] root: mounted read-only from memory at 0xbbcb2000+0x500000, filesystem f6fab6853d4547175fc24b6d59ca38a4, 1280 blocks
[ 1.653 cpu0 kernel] Boot: subsystems ready (10ms)
[ 1.654 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 1.681 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 1.681 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 1.682 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 1.682 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 1.682 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 1.682 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 1.685 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 1.685 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 3.186 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 3.265 cpu0 kernel] root: the partition ROOT was read from, 1E294CC9-8E10-41A0-981E-5F48306B04FF, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 3.348 cpu0 kernel] Boot: storage ready (1666ms)
[ 3.348 cpu0 kernel] virtio-console: no device found
[ 3.349 cpu0 kernel] GPU: using UEFI GOP
[ 3.351 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 3.352 cpu0 kernel] GPU: none this boot, running headless
[ 3.353 cpu0 kernel] Boot: devices ready (4ms)
[ 3.353 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 3.354 cpu0 kernel] Boot: complete (1815ms)
[ 3.355 cpu0 kernel] boot: power-on to loader 787 ms, loader 635 ms (ROOT read 8 ms), kernel to Boot: complete 1931 ms
[ 3.355 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 3.379 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=18ms total=18ms)
[ 3.357 supervisor] supervisor: build 2c744d434cbb7e4b238c638bac9b5a0751e403a6 dirty, committed 2026-10-10 13:31:56 UTC, toolchain b3f5ad494486c67d, aarch64
[ 3.359 supervisor tid=1] supervisor: /home/toy could not be made, so this boot has no session home: permission denied
[ 3.359 supervisor] supervisor: logkeeper: /state/logkeeper could not be made: permission denied
[ 3.380 logkeeper] logkeeper: cannot create /log/unknown-00.log: permission denied
[ 3.380 logkeeper] logkeeper: no /log on this machine - this boot's kernel log is on the console only (undated: this machine will not say what time it is)
[ 3.383 supervisor] supervisor: started logkeeper
[ 3.418 supervisor] supervisor: started test-runner
[ 3.419 test-runner] ===READY===
[ 3.420 test-runner] ===TEST_START test_rs_claim_lpi===
[ 3.418 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=2ms)
[ 3.422 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 3.422 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 3.423 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 3.423 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000001
[ 3.423 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 3.423 cpu0 kernel] mmio: 0x10200000+0x200000 Uncacheable
[ 3.423 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10200000 — inside firmware's mem 0x10200000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 3.423 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 3.423 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 3.423 cpu0 kernel] shm: 0x10200000 mapped Uncacheable into pid 4
[ 3.423 cpu0 kernel] iommu: domain1 maps 0x46600000..0x46800000 at 0x400002000000
[13.430 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[13.430 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[13.430 cpu0 kernel] exit: test_rs_claim_lpi pid=4 code=101 cpu=4ms peak=4MB allocs=3 frees=0 syscalls=54 syscall_wall=10007ms 1=3 6=1 9=2 10=10 13=2 14=3 21=1 50=1 51=1 63=2 66=2 72=1 73=1 89=1 90=1 91=2 99=2 102=4 105=4 106=7 111=1 117=1 118=1
[13.430 cpu0 kernel tid=1] exit: test-runner pid=3 code=0 cpu=3ms peak=6MB allocs=3 frees=0 syscalls=39 syscall_wall=10010ms 6=1 10=8 14=1 21=1 24=1 25=1 40=1 50=4 51=1 63=2 72=1 73=2 91=1 99=2 102=4 105=3 106=4 108=1
[13.428 test-runner error pid=4] 
[13.428 test-runner error pid=4] thread 'main' (1) panicked at src/bin/claim_lpi.rs:54:25:
[13.428 test-runner error pid=4] claim_lpi: message 1 was not read as the claim's interrupt within 10s: WouldBlock
[13.428 test-runner error pid=4] stack backtrace:
[13.429 test-runner error pid=4]    0:      0x10000065eac - _Unwind_Backtrace
[13.429 test-runner error pid=4]    1:      0x100000510ac - <<std[d6d2712760615b7]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[f28ba090d62d1c7]::fmt::Display>::fmt
[13.429 test-runner error pid=4]    2:      0x1000006a080 - core[f28ba090d62d1c7]::fmt::write
[13.429 test-runner error pid=4]    3:      0x10000054e40 - <std[d6d2712760615b7]::sys::stdio::toyos::Stderr as core[f28ba090d62d1c7]::io::write::Write>::write_fmt
[13.429 test-runner error pid=4]    4:      0x1000003b218 - std[d6d2712760615b7]::panicking::default_hook::{closure#0}
[13.429 test-runner error pid=4]    5:      0x1000004c794 - std[d6d2712760615b7]::panicking::default_hook
[13.429 test-runner error pid=4]    6:      0x1000004c958 - std[d6d2712760615b7]::panicking::panic_with_hook
[13.429 test-runner error pid=4]    7:      0x1000003b2bc - std[d6d2712760615b7]::panicking::panic_handler::{closure#0}
[13.429 test-runner error pid=4]    8:      0x10000034458 - std[d6d2712760615b7]::sys::backtrace::__rust_end_short_backtrace::<std[d6d2712760615b7]::panicking::panic_handler::{closure#0}, !>
[13.429 test-runner error pid=4]    9:      0x1000003ba94 - __rustc[d0c72ce299f394e5]::rust_begin_unwind
[13.429 test-runner error pid=4]   10:      0x1000006a814 - core[f28ba090d62d1c7]::panicking::panic_fmt
[13.429 test-runner error pid=4]   11:      0x1000002a0cc - claim_lpi[e297ea72218eb836]::main
[13.429 test-runner error pid=4]   12:      0x1000002a418 - std[d6d2712760615b7]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
[13.429 test-runner error pid=4]   13:      0x1000002a718 - std[d6d2712760615b7]::rt::lang_start::<()>::{closure#0}
[13.429 test-runner error pid=4]   14:      0x1000004c12c - std[d6d2712760615b7]::rt::lang_start_internal
[13.429 test-runner error pid=4]   15:      0x1000002a2d0 - main
[13.430 test-runner error pid=4]   16:      0x1000004fb30 - std[d6d2712760615b7]::sys::pal::toyos::start_rust
[13.430 test-runner error pid=4]   17:      0x1000002b904 - _start
[13.430 test-runner] ===TEST_END test_rs_claim_lpi exit=101===

13:40:28   FAIL  virt_claim_lpi  (14s)
13:40:28   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

13:40:28 host: fastest boot 1520 ms against the reference 1424 ms — liveness ceilings paid at 1.07x
13:40:28 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
13:40:28 failures:
13:40:28     virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([13.430 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)

13:40:28 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (26.1s; workers: 12s building, 14s testing)
13:40:28 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-6164-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-20cd9f517c1368c3 virt_claim_lpi` (exit status: 1)
EXIT=1


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Earlier host run at d719cc9d4 (the same tree but issues/), EXIT=1 on the toyos SDK's lane proof, filed as issues/a-lane-reader-counted-one-refusal-fewer-than-its-writer-made.md, part 1 of 8

==> final-ci-host.log <==
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.21s
     Running `target/debug/toyos-build --ci host`

13:26:28 === [ci] the build system
    Finished `test` profile [optimized + debuginfo] target(s) in 0.15s
     Running unittests src/lib.rs (target/debug/deps/toyos_build-b256281d09719d65)

running 362 tests
test arch::tests::a_guest_of_another_architecture_is_emulated ... ok
test bootlog::record_time_tests::a_records_elapsed_field_is_read_past_whatever_tag_precedes_it ... ok
test bootlog::record_time_tests::the_last_record_is_the_last_line_that_carries_a_time ... ok
test bootlog::tests::a_long_binarys_record_is_the_prefix_the_kernel_keeps ... ok
test arch::tests::every_target_names_its_own_architecture ... ok
test bootlog::tests::a_power_off_is_the_supervisors_stop_naming_a_shutdown ... ok
test bootlog::tests::a_boot_is_handed_back_by_its_done_and_its_last_word ... ok
test bootlog::record_time_tests::the_panel_census_is_read_off_either_channel ... ok
test bootlog::tests::the_boot_record_is_the_kernels_own_line ... ok
test arch::tests::every_name_parses_back_to_its_arch_and_nothing_else_does ... ok
test bootlog::tests::a_part_whose_rotation_the_log_does_not_hold_is_a_hole ... ok
test bootlog::tests::a_boot_that_lost_parts_of_its_own_log_is_told_from_one_that_is_whole ... ok
test bootlog::tests::a_boot_record_without_the_supervisors_stop_is_not_a_pass ... ok
test bootlog::tests::a_programs_line_is_never_the_kernels ... ok
test bootlog::tests::only_a_declaration_of_the_whole_value_counts ... ok
test bootlog::tests::the_loaders_file_is_told_from_logkeepers_however_a_driver_spelled_it ... ok
test build::tests::a_boot_that_asks_for_no_feature_gets_the_shipping_kernel ... ok
test build::tests::a_clean_entry_is_the_shipping_kernels ... ok
test build::tests::a_hold_is_refused_in_a_shipping_entry_however_its_labels_are_spelled ... ok
test build::tests::a_hold_in_front_of_the_save_is_an_entry_the_judge_refuses_to_read ... ok
test build::tests::a_kernel_of_any_other_feature_set_is_not_judged ... ok
test build::tests::a_kernel_that_does_not_name_exactly_one_entry_is_refused ... ok
test build::tests::a_boot_config_that_is_not_a_case_is_refused ... ok
test build::tests::a_bin_entry_no_name_reaches_is_refused ... ok
test build::tests::a_valued_parameter_is_one_the_kernel_claims_by_prefix ... ok
test build::tests::an_artifact_build_is_not_part_of_a_test_execution_price ... ok
test bootlog::tests::the_loader_writes_the_lines_the_host_reads ... ok
test build::tests::debug_mode_declares_only_its_debug_kernel ... ok
test build::tests::a_case_plan_carries_the_config_and_the_parameters ... ok
test bootlog::tests::the_kernel_writes_the_records_the_host_reads ... ok
test build::tests::a_stamp_that_cannot_be_written_panics ... ok
test build::tests::a_provides_name_is_never_also_a_serves_name ... ok
test build::tests::an_installed_app_receives_only_names_the_supervisor_holds ... ok
test build::tests::every_declared_capability_is_one_the_abi_has ... ok
test build::tests::every_boot_config_runs_logkeeper ... ok
test build::tests::every_config_renders_its_manifest ... ok
test build::tests::every_device_class_has_at_most_one_claimant ... ok
test build::tests::a_row_starts_only_what_a_launch_can_start ... ok
test build::tests::every_modes_crates_and_the_supervisor_ship ... ok
test build::tests::no_diag_program_claims_the_screen ... ok
test assets::tests::the_console_font_covers_the_swiss_german_altgr_layer ... ok
test build::tests::no_actuator_is_also_a_cargo_feature ... ok
test build::tests::every_receives_names_a_provider ... ok
test build::tests::params_read_the_kernels_own_list ... ok
test build::tests::every_started_program_is_declared ... ok
test build::tests::no_shipped_boot_config_starts_sshserver ... ok
test build::tests::the_check_does_not_reach_a_spawner_that_never_spawns ... ok
test build::tests::the_actuator_umbrella_is_a_leaf ... ok
test build::tests::the_pre_flash_gate_clears_a_valued_parameter_and_refuses_an_actuator ... ok
test build::tests::only_their_holders_may_hold_the_swap_port_and_the_slots ... ok
test build::tests::the_kernel_declares_only_the_builds_that_earned_one ... ok
test build::tests::the_log_right_doc_names_exactly_the_manifests_holders ... ok
test build::tests::every_model_control_is_run ... ok

running 1 test

running 1 test

running 1 test

running 1 test
13:26:28 [build-lock] waiting for the build lock (exclusive, queued exclusive phase) — held by other builds in this tree

running 1 test
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.01s


running 1 test
13:26:28 [build-lock] waiting for the sysroot lock (using sysroot 6ab9f1eb8f7d3388) — held by pid 5200 (building sysroot 6ab9f1eb8f7d3388), 0s so far

running 1 test
test build::tests::moved_libraries_take_what_was_built_for_them_and_a_moved_compiler_all ... ok
test buildlock::tests::child_role ... ignored, the competing process for the tests below; never runs on its own

running 1 test
13:26:28 [build-lock] waiting for the build lock (shared, child) — an exclusive phase is queued ahead of it
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.01s

test buildlock::tests::a_released_holder_is_gone ... ok

running 1 test

running 1 test

running 1 test
test build::tests::every_shipped_boot_config_is_covered ... ok
test buildlock::tests::shared_admits_shared ... ok
test ci::tests::a_carried_jobs_step ... ignored, the driver of the test above; never runs on its own
test ci::tests::a_control_is_judged_by_its_verdict_and_not_its_exit_alone ... ok
test ci::tests::a_hung_step ... ignored, the step of the driver above; never runs on its own
test ci::tests::a_hung_steps_child ... ignored, what the step above spawns; never runs on its own
test ci::tests::a_hung_steps_driver ... ignored, the driver of the tests around it; never runs on its own
test ci::tests::a_job_is_named_and_takes_nothing_after_it ... ok
test buildlock::tests::killed_holder_releases_the_lock ... ok
13:26:28 [build-lock] waiting for the build lock (exclusive, clean the crate target) — held by other builds in this tree
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.01s

test buildlock::tests::exclusive_excludes_every_other_acquirer ... ok
test ci::tests::a_steps_cargo ... ignored, the driver of the test above; never runs on its own
test assets::tests::the_system_fonts_ship_with_their_licence ... ok
test ci::tests::an_app_is_judged_for_every_host_its_fails_does_not_name ... ok
test assets::tests::only_doom_opens_doom_s_assets ... ok
test ci::tests::an_interrupted_drivers_judge ... ignored, the judge of the test above; never runs on its own
test ci::tests::left_behind_refuses_a_tmpdir_that_never_saw_the_lock ... ok
test ci::tests::only_mains_tip_publishes ... ok
test ci::tests::the_declared_version_is_a_version ... ok
test ci::tests::the_host_job_names_what_its_tests_left_behind ... ok
test ci::tests::the_job_names_a_short_root_a_step_left_when_it_died ... ok
test ci::tests::the_required_check_is_a_job_on_every_pull_request ... ok
test ci::tests::the_summary_keeps_the_count_and_the_verdicts ... ok
test ci::tests::the_version_parser_takes_what_qemu_prints_and_refuses_the_rest ... ok
test ci::tests::workflows_run_against_main_on_hosted_runners ... ok
test ci::tests::an_interrupt_of_the_driver_ends_the_group_its_step_runs_in ... ok
test assets::tests::a_system_font_ships_as_it_is_and_the_console_font_as_its_raster ... ok
test assets::tests::an_owned_asset_ships_only_where_its_reader_does ... ok
test assets::tests::root_carries_what_the_repository_declares ... ok
test cicache::tests::a_reader_whose_clock_is_not_after_the_entry_is_refused ... ok
test cicache::tests::a_seal_refuses_what_its_save_would_store_above_the_bound ... ok
test cicache::tests::a_seal_dates_every_target_and_refuses_a_written_source ... ok
test cicache::tests::every_spelling_of_code_run_at_build_time_is_found ... ok
test cicache::tests::only_a_driver_built_in_its_own_target_carries_the_cache ... ok
test ci::tests::a_step_of_a_job_that_carries_the_cache_builds_in_its_own_target ... ok
13:26:29 [build-lock] still waiting for the build lock (exclusive, queued exclusive phase), 308ms so far — the holder left no readable note
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.31s

13:26:29 [build-lock] acquired (exclusive, queued exclusive phase) after 310.5ms
test buildlock::tests::child_role ... test buildlock::tests::child_role ... okok



test result: test result: okok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.31s

; finished in 0.30s

13:26:29 [build-lock] acquired (shared, child) after 299.9ms
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.30s

test buildlock::tests::a_queued_exclusive_phase_goes_first ... ok

running 1 test
test clippy::tests::the_adopted_set_expands_into_the_shapes_that_name_it ... ok
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.01s

test buildlock::tests::a_key_being_built_is_waited_for_and_another_key_is_not ... ok
13:26:29 [build-lock] still waiting for the build lock (exclusive, clean the crate target), 307ms so far — the holder left no readable note
test build::tests::a_tree_records_its_commit_its_commit_time_and_whether_it_is_dirty ... ok
test cicache::tests::targets_restored_without_a_manifest_are_refused ... ok
test clang::tests::a_toolchain_carries_the_clang_of_its_llvm_or_is_refused ... ok
test build::tests::the_kernel_resolves_no_libc_for_either_target ... ok
test compiler::tests::child_role ... ignored, the competing process for the test above; never runs on its own
test compiler::tests::every_compiler_is_built_lean_against_the_host_s_llvm ... ok
test buildlock::tests::a_lasting_wait_keeps_saying_so ... ok
13:26:29 [build-lock] still waiting for the build lock (exclusive, clean the crate target), 613ms so far — the holder left no readable note
test cicache::tests::an_entry_built_on_another_runner_is_deleted ... ok
test firmware::tests::a_descriptor_that_does_not_parse_is_refused_by_name ... ok
test firmware::tests::a_glob_matches_a_trailing_star_as_a_prefix_and_refuses_anything_else ... ok
test firmware::tests::a_read_only_templates_copy_is_still_writable ... ok
test firmware::tests::an_earlier_directory_hides_a_later_ones_name_and_a_missing_one_holds_nothing ... ok
test firmware::tests::nothing_fitting_is_refused_naming_what_was_read ... ok
test firmware::tests::the_first_non_secure_uefi_flash_descriptor_for_the_machine_wins ... ok
test firmware::tests::the_machine_is_the_versioned_type_its_alias_resolves_to ... ok
test firmware::tests::the_users_and_the_systems_directories_come_before_qemus_own ... ok
test flags::tests::a_declared_flags_value_is_never_read_as_a_flag ... ok
test flags::tests::a_flag_left_without_its_value_is_refused ... ok
test flags::tests::a_flag_that_reads_one_value_is_refused_when_it_is_written_twice ... ok
test flags::tests::a_repeatable_flag_keeps_every_value_it_was_given ... ok
test flags::tests::an_argument_the_declaration_does_not_expect_is_refused_by_name ... ok
test flags::tests::an_inline_value_is_refused_exactly_where_it_would_be_dropped ... ok
test flags::tests::help_is_the_whole_declared_list ... ok
test ci::tests::a_steps_cargo_finds_fresh_what_the_jobs_cargo_built ... ok
test hostws::tests::every_member_and_every_exclusion_still_names_a_directory ... ok
test hostws::tests::every_crate_in_the_tree_joined_the_workspace_or_was_excluded_by_name ... ok
test hostws::tests::the_dead_path_scan_names_the_member_and_ignores_an_excluded_crate ... ok
test hostws::tests::the_dead_path_scan_reads_code_and_not_the_comment_beside_it ... ok
test hostws::tests::the_gate_refuses_a_crate_that_joined_neither_list ... ok
test hostws::tests::the_root_package_is_the_only_default_member ... ok
test hostws::tests::the_walk_reaches_the_tree_and_descends_into_it ... ok
test identity::tests::a_file_that_is_not_rust_is_its_bytes ... ok
test identity::tests::a_literal_is_never_read_as_a_comment ... ok
test identity::tests::a_signature_or_a_value_is_a_change ... ok
13:26:29 [build-lock] acquired (exclusive, clean the crate target) after 695.9ms
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.71s

test buildlock::tests::a_clean_cannot_land_inside_a_build ... ok
test identity::tests::the_doc_fix_that_cost_a_version_and_a_sysroot_is_neither ... ok
test hostws::tests::nothing_that_runs_names_a_target_directory_a_member_does_not_have ... ok
test identity::tests::every_doc_comment_in_the_sysroot_crates_is_invisible ... ok
test image::tests::a_damaged_image_is_refused_by_the_reader_that_caught_it ... ok
test image::tests::a_second_build_at_the_boundary_does_not_run_out ... ok
test image::tests::every_declared_path_resolves_inside_the_root_partition ... ok
test image::tests::one_ordering_of_one_set_is_one_image ... ok
test image::tests::an_image_s_marked_slot_is_signed_over_exactly_what_it_carries ... ok
test image::tests::the_esp_and_a_slot_carry_what_the_bootloader_looks_for ... ok
test image::tests::an_install_makes_its_disk_and_refuses_one_that_exists ... ok
test image::tests::the_volumes_this_build_writes_break_no_format_rule ... ok
test kernelconsole::tests::a_console_that_ends_mid_line_shows_its_last_line ... ok
test kernelconsole::tests::a_port_the_firmware_left_alone_passes_whole ... ok
test image::tests::the_root_partition_reads_back_as_the_files_the_build_put_in_it ... ok
test kernelconsole::tests::a_terminal_is_shown_the_firmware_as_it_came_and_the_kernel_in_colour ... ok
test kernelconsole::tests::nothing_before_the_kernel_passes ... ok
test kernelconsole::tests::the_fused_line_is_the_kernels_first_record_wherever_the_chunks_fall ... ok
test kernelkeys::tests::every_declared_row_names_the_minter_of_its_keys ... ok
test image::tests::root_carries_less_than_an_alignment_unit_of_free_blocks ... ok
test kernelkeys::tests::the_scan_reads_a_nested_generic_to_its_balanced_close ... ok
test kernelkeys::tests::the_scan_walks_past_four_measured_forms ... ok

running 1 test
test cicache::tests::a_file_cargo_was_never_told_about_rebuilds_its_package ... ok
test keystore::tests::a_stopped_retire_leaves_nothing_at_its_name ... ok
test keystore::tests::a_sweep_leaves_hidden_names_and_refuses_names_no_key_owns ... ok
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.01s

test keystore::tests::a_product_used_again_is_kept ... ok
test keystore::tests::only_what_key_of_gives_is_a_key ... ok

running 1 test
test libc::tests::the_c_sysroot_names_the_empty_libraries ... ok
test licence::tests::a_cfg_edge_is_walked_and_excepted_only_while_every_edge_in_is_under_it ... ok
test licence::tests::a_committed_file_is_judged_by_its_row_when_it_ships ... ok
test licence::tests::a_disallowed_licence_is_refused_by_name ... ok
test licence::tests::a_font_licence_does_not_reach_a_row_that_is_no_font ... ok
test licence::tests::a_git_dependency_is_judged_like_any_other ... ok
test licence::tests::a_graph_is_walked_over_normal_edges_from_the_shipped_root ... ok
test licence::tests::a_malformed_expression_is_refused_not_guessed ... ok
test licence::tests::a_notice_section_is_judged_when_what_no_row_names_ships ... ok
test licence::tests::a_notice_section_that_disagrees_with_a_row_is_refused ... ok
test licence::tests::a_notice_section_without_one_spdx_line_or_without_files_is_refused ... ok
test licence::tests::a_root_the_metadata_does_not_hold_is_refused ... ok
test licence::tests::an_and_passes_only_when_every_part_does ... ok
test licence::tests::an_embed_is_what_a_build_script_or_an_include_names ... ok
test licence::tests::an_exception_matches_by_name_and_licence_and_a_stale_one_reds ... ok
test licence::tests::an_or_passes_when_any_branch_does ... ok
test licence::tests::every_pending_exception_cites_an_issue_that_exists ... ok
test licence::tests::metadata_is_given_the_features_the_build_gives ... ok
test licence::tests::mpl_passes_and_is_named ... ok
test licence::tests::no_guest_target_satisfies_an_only_under_cfg ... ok
test licence::tests::only_a_workspace_member_is_a_documents_own ... ok
test licence::tests::the_trust_roots_pass_only_with_their_crates_licence_text ... ok
test buildlock::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.01s

test llvm::tests::a_build_directory_keeps_no_llvm_of_its_own ... ok
test keystore::tests::a_sweep_removes_what_nobody_used_for_the_keep_time_and_nobody_uses ... ok
test kernelkeys::tests::every_hashed_kernel_container_is_declared_with_a_kernel_minted_key ... ok
test kernelconsole::tests::a_relay_waits_out_a_pty_that_would_block ... ok
test compiler::tests::a_compiler_is_keyed_by_its_whole_build ... ok
test compiler::tests::an_uncommitted_llvm_edit_is_refused ... ok
test compiler::tests::a_compiler_whose_sources_moved_while_it_was_built_is_not_stored ... ok
test llvm::tests::a_staged_llvm_gitlink_is_refused ... ok
test compiler::tests::a_compiler_s_build_directory_keeps_no_llvm_of_its_own ... ok
test compiler::tests::a_build_directory_another_llvm_filled_starts_from_nothing ... ok
test cicache::tests::an_entry_serves_exactly_the_sources_it_was_built_from ... ok
test llvm::tests::child_role ... ignored, the competing process for the tests below; never runs on its own
test llvm::tests::keyed_and_built ... ignored, the process the environment test runs; never runs on its own
test cicache::tests::code_run_at_build_time_runs_again_on_every_read ... ok
test llvm::tests::a_placed_llvm_is_read_only ... ok
test llvm::tests::the_key_names_the_host_s_tools ... ok
test llvm::tests::the_llvm_config_turns_every_host_library_off ... ok
test llvm::tests::an_llvm_is_stamped_with_what_its_fork_s_commit_names ... ok

running 1 test

running 1 test

running 1 test

running 1 test
13:26:32 Building LLVM edb8c0a49e4a1de4 in /private/var/folders/gr/mr4_fg4n34jb417sx1g5cgxc0000gp/T/toyos-tmp-5070-0/ci-host-0/toyos-tmp-5112-0/llvm-sweep-stopped-65/a/rust: nobody on this host has
13:26:32 Building LLVM edb8c0a49e4a1de4 in /private/var/folders/gr/mr4_fg4n34jb417sx1g5cgxc0000gp/T/toyos-tmp-5070-0/ci-host-0/toyos-tmp-5112-0/llvm-made-elsewhere-66/b/rust: nobody on this host has
13:26:32 Building LLVM edb8c0a49e4a1de4 in /private/var/folders/gr/mr4_fg4n34jb417sx1g5cgxc0000gp/T/toyos-tmp-5070-0/ci-host-0/toyos-tmp-5112-0/llvm-sweep-68/a/rust: nobody on this host has
13:26:32 Building compiler 7159e1f18b167b33 in /private/var/folders/gr/mr4_fg4n34jb417sx1g5cgxc0000gp/T/toyos-tmp-5070-0/ci-host-0/toyos-tmp-5112-0/compiler-48/a/rust: nobody on this host has
test compiler::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.36s

test llvm::tests::a_checkout_behind_its_gitlink_is_built_at_the_gitlink ... ok
test llvm::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.54s


running 1 test
test llvm::tests::the_caller_s_environment_reaches_neither_the_build_nor_the_key ... ok
test llvm::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.78s

13:26:33 Building compiler ba8f7ad1ae656e39 in /private/var/folders/gr/mr4_fg4n34jb417sx1g5cgxc0000gp/T/toyos-tmp-5070-0/ci-host-0/toyos-tmp-5112-0/compiler-48/a/rust: nobody on this host has
test llvm::tests::a_stopped_sweep_leaves_no_llvm_that_passes_for_whole ... ok
test metal::tests::a_boot_entry_is_matched_on_the_partition_its_path_names ... ok
test metal::tests::a_boot_entry_the_firmware_did_not_name_cannot_be_filled_in ... ok
test metal::tests::a_command_line_that_names_no_image_flashes_none ... ok
test metal::tests::a_create_that_moved_the_boot_order_is_refused ... ok
test metal::tests::a_failed_boot_and_a_loop_that_could_not_run_are_different_answers ... ok
test metal::tests::a_node_is_a_whole_scsi_or_nvme_disk_and_nothing_else ... ok
test metal::tests::a_pass_that_reported_and_booted_nothing_is_named_as_that ... ok
test metal::tests::a_readback_directory_holds_nothing_the_last_run_left ... ok
test metal::tests::a_refusal_is_read_back_off_the_drivers_stderr ... ok
test metal::tests::a_sudoers_word_escapes_what_sudoers_reads ... ok
test metal::tests::an_account_name_that_would_widen_the_rule_is_refused ... ok
test metal::tests::an_arm_with_no_ruling_never_reaches_the_stick ... ok
test metal::tests::an_image_admits_only_the_table_the_installed_rule_names ... ok
test metal::tests::an_image_armed_to_stop_itself_owes_a_record_and_no_reboot ... ok
test metal::tests::an_image_with_no_bound_on_its_own_boot_is_refused ... ok
test compiler::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 0.60s

test llvm::tests::an_llvm_keeps_what_builds_read_and_nothing_else ... ok
test metal::tests::dd_is_believed_only_where_it_states_a_count ... ok
test metal::tests::either_bounds_record_is_a_wedged_boots_pass ... ok
test metal::tests::every_arm_that_stops_this_machine_is_cleared_and_judged_as_one ... ok
test metal::tests::every_ruling_names_a_parameter_the_kernel_declares ... ok
test metal::tests::installing_the_rule_is_not_also_a_boot ... ok
test metal::tests::one_table_feeds_the_rule_and_the_argv ... ok
test metal::tests::the_arguments_name_the_t14_by_default ... ok
test metal::tests::the_bound_the_gate_demands_is_a_bound_the_gate_clears ... ok
test metal::tests::the_deadlines_lateness_is_counted_from_its_arm ... ok
test metal::tests::the_foreign_record_arm_reaches_its_judge_through_the_hang_it_stages ... ok
test metal::tests::the_host_clock_crosses_in_the_boot_file ... ok
test metal::tests::the_identity_is_the_stick_or_it_is_refused ... ok
test metal::tests::the_lid_policy_is_systemds_effective_one ... ok
test metal::tests::the_loops_verdict_crosses_in_the_readback ... ok
test metal::tests::the_machine_crosses_in_the_boot_file ... ok
test metal::tests::the_outside_judges_read_can_write_nothing ... ok
test metal::tests::the_phases_cross_in_the_boot_file ... ok
test metal::tests::the_readback_carries_the_verdict_the_loop_returns ... ok
test metal::tests::the_rule_is_the_command_table_rendered ... ok
test metal::tests::the_ssh_line_carries_the_key_and_nothing_interactive ... ok
test metal::tests::the_wait_outlasts_every_watchdog_a_boot_runs_under ... ok
test metaldevices::tests::a_needle_that_only_appears_in_a_comment_is_not_found ... ok
test metaldevices::tests::the_kernel_writes_the_quiesce_lines_the_host_reads ... ok
test metaldevices::tests::the_shutdowns_own_account_is_read_out_of_the_loaders_file ... ok
test metalimage::tests::a_config_with_no_runner_is_refused_by_name ... ok
test metalimage::tests::every_derived_config_ends_its_own_boot ... ok
test metalimage::tests::nothing_the_config_declared_is_dropped ... ok
test metaltimings::tests::a_failing_owners_reading_is_judged_and_not_recorded ... ok
test metaltimings::tests::a_known_machine_outside_its_record_fails_and_keeps_its_record ... ok
test metaltimings::tests::a_known_machine_within_its_record_passes ... ok
test metaltimings::tests::a_machine_is_three_non_empty_lines ... ok
test metaltimings::tests::a_name_recorded_twice_is_refused ... ok
test metaltimings::tests::a_new_name_on_a_known_machine_is_recorded_and_not_failed ... ok
test metaltimings::tests::a_record_survives_the_file_it_is_written_to ... ok
test metaltimings::tests::a_recorded_name_nothing_measured_is_named ... ok
test metaltimings::tests::an_unknown_machine_is_recorded_and_not_judged ... ok
test metaltimings::tests::another_bios_fails_naming_both_and_records_nothing ... ok
test metaltimings::tests::every_committed_record_loads_from_its_own_path ... ok
test metaltimings::tests::two_machines_sharing_a_file_name_are_refused ... ok
test miscompile::tests::an_endless_caller_is_not_one_that_returns_true ... ok
test n2::tests::an_installed_n2_is_not_installed_again ... ok
test publish::tests::a_first_publish_mints_root_one_and_a_machine_accepts_it ... ok
test publish::tests::a_publish_moves_forward_and_renews_a_root_near_its_expiry ... ok
test llvm::tests::child_role ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 361 filtered out; finished in 1.39s

test publish::tests::a_publish_that_would_move_anything_back_is_refused_by_name ... ok
test publish::tests::a_timestamp_naming_the_last_targets_version_is_refused ... ok
test llvm::tests::an_llvm_being_made_elsewhere_is_not_made_again ... ok
test release::tests::a_job_is_told_each_layer_s_entry_and_path ... ok
test publish::tests::two_rows_naming_one_archive_with_other_bytes_are_refused ... ok
test release::tests::a_job_saves_only_what_it_built ... ok
test release::tests::a_landing_during_the_nightly_puts_nothing_up_and_is_no_failure ... ok
test release::tests::a_layer_that_is_not_whole_is_refused ... ok
test release::tests::a_release_is_made_to_carry_these_bytes_and_no_other ... ok
test release::tests::a_job_lays_out_the_one_sysroot_it_restored ... ok
test release::tests::only_mains_publisher_publishes ... ok
test release::tests::the_glibc_scan_takes_the_newest_version_and_nothing_else ... ok
test release::tests::one_sysroot_packs_to_one_digest_and_unpacks_whole ... ok
test sdkversion::tests::a_changed_crate_takes_the_minor_after_the_newest_and_an_unchanged_one_keeps_it ... ok
test sdkversion::tests::a_dependent_whose_newest_names_a_stale_dependency_goes_up_again ... ok
test compiler::tests::one_compiler_per_key_whichever_checkout_names_it ... ok
test llvm::tests::an_uncommitted_bootstrap_names_no_llvm ... ok
test sdkversion::tests::every_row_is_a_crate_the_tree_holds_in_dependency_order ... ok
test sdkversion::tests::every_lockfile_resolves_the_published_crates_from_the_tree ... ok
test signing::tests::a_checkouts_throwaway_key_is_minted_once_and_read_back ... ok
test signing::tests::an_owner_key_reads_back_and_signs_what_the_loader_verifies ... ok
test signing::tests::an_owner_key_wider_than_0600_is_refused ... ok
test soundfont::tests::doom1_wads_music_selects_the_instruments_it_selects ... ok
test soundfont::tests::the_shipped_bank_carries_nothing_doom_does_not_select ... ok
test soundfont::tests::the_shipped_bank_sounds_every_instrument_the_shipped_wad_selects ... ok
test soundfont::tests::the_shipped_bank_still_carries_its_source_licence ... ok
test llvm::tests::the_key_moves_with_the_llvm_and_only_with_it ... ok
test sourcegate::tests::a_value_is_refused_by_its_shape_and_what_resembles_one_is_not ... ok
test llvm::tests::an_llvm_is_swept_once_nothing_used_it_for_the_keep_time ... ok
test sourcegate::tests::a_capability_closing_ends_no_log_poll ... ok
test sourcegate::tests::bus_mastering_is_armed_at_exactly_the_declared_sites ... ok
test sourcegate::tests::every_hand_written_auto_trait_impl_is_declared ... ok
test sourcegate::tests::nmi_does_not_log ... ok
test sourcegate::tests::no_slice_or_exclusive_reference_is_built_over_a_mapped_page ... ok
test sdkversion::tests::the_published_manifests_resolve_as_the_forks_name_them ... ok
test sourcegate::tests::the_scan_reaches_the_tree_it_claims_to ... ok
test sourcegate::tests::every_host_scratch_is_the_guard ... ok
test sourcegate::tests::every_committed_binary_file_is_declared ... ok
test sysroot::tests::a_std_build_downloads_no_llvm_and_asks_for_no_ninja ... ok
test sysroot::tests::a_std_build_under_the_same_compiler_keeps_no_llvm ... ok
test sysroot::tests::a_compiler_made_again_under_its_key_leaves_all_of_a_crate_stale ... ok
test llvm::tests::two_sdk_versions_are_two_keys ... ok
test sysroot::tests::a_switch_that_cannot_remove_records_nothing_and_the_next_one_removes ... ok
test sysroot::tests::a_sysroot_records_the_witness_it_was_built_from ... ok
test sysroot::tests::a_sysroot_is_whole_or_it_is_made_again ... ok
test sysroot::tests::a_sysroot_that_cannot_be_made_whole_is_made_once_and_refused ... ok
test sysroot::tests::another_compiler_s_std_build_goes_and_the_same_one_s_stays ... ok
test sdkversion::tests::a_key_moves_with_the_crate_and_its_published_dependencies ... ok
test sysroot::tests::the_libraries_placed_are_the_ones_the_stamp_names ... ok
test llvm::tests::an_llvm_that_is_not_whole_is_made_again ... ok
test compiler::tests::every_source_of_a_compiler_moves_its_key ... ok
test testargs::tests::a_boot_word_names_a_metal_boot_and_nothing_else ... ok
test testargs::tests::a_deleted_flag_is_refused_rather_than_becoming_the_filter ... ok
test testargs::tests::a_flag_left_without_its_value_is_refused_by_name ... ok
test testargs::tests::a_flag_written_twice_is_refused_by_name ... ok
test testargs::tests::a_flags_value_is_not_the_filter ... ok
test testargs::tests::a_readback_directory_alone_selects_no_tier ... ok
test testargs::tests::a_readback_flag_with_no_directory_never_reaches_the_metal_driver ... ok
test testargs::tests::an_inline_value_on_a_flag_that_has_none_is_refused ... ok
test testargs::tests::an_unknown_flag_is_refused_before_metal_decides_a_mode ... ok
test testargs::tests::every_word_that_is_nobodys_value_is_a_filter ... ok
test testargs::tests::metal_and_list_never_drives ... ok
test testargs::tests::metal_list_beside_a_readback_directory_is_refused ... ok
test testargs::tests::metal_refuses_a_filter_that_is_a_flags_name_or_empty ... ok
test testargs::tests::metal_refuses_the_flags_it_reads_nothing_of_by_name ... ok
test testargs::tests::metal_resolves_to_a_mode_that_reaches_the_machine_only_when_asked ... ok
test testargs::tests::the_documented_command_lines_parse ... ok
test testargs::tests::the_filter_is_the_word_that_is_nobodys_value ... ok
test tether::tests::a_tethered_child_dies_with_its_owner ... ok
test tether::tests::owner ... ignored, the owner `a_tethered_child_dies_with_its_owner` kills; never runs on its own
test tether::tests::parked ... ignored, the tethered child of `owner`; never runs on its own
test toolchain::tests::a_bootstrap_run_leaves_both_lockfiles_as_they_were ... ok
test toolchain::tests::a_bootstrap_run_sees_no_ci_variables ... ok
test toolchain::tests::a_compiler_build_finds_the_llvm_s_objcopy_where_rustc_strips_with_it ... ok
test toolchain::tests::a_fake_bootstrap ... ignored, the bootstrap `a_bootstrap_run_leaves_both_lockfiles_as_they_were` runs; never runs on its own
test toolchain::tests::a_fake_bootstrap_that_reads_ci ... ignored, the bootstrap `a_bootstrap_run_sees_no_ci_variables` runs; never runs on its own
test toolchain::tests::a_fake_bootstrap_that_strips ... ignored, the bootstrap `a_compiler_build_finds_the_llvm_s_objcopy_where_rustc_strips_with_it` runs; never runs on its own
test toolchain::tests::a_link_failure_is_not_a_compile_error ... ok
test toolchain::tests::a_restore_that_cannot_write_leaves_the_file_whole ... ok
test toolchain::tests::a_toolchain_bin_without_cargo_is_one_rustup_narrates ... ok
test toolchain::tests::dep_info_names_the_checkout_std_was_really_built_from ... ok
test toolchain::tests::dep_info_that_cannot_be_read_is_refused ... ok
test toolchain::tests::freestanding_libraries_that_read_the_worktree_are_refused ... ok
test toolchain::tests::the_first_real_error_is_the_one_reported ... ok
test userlandhost::tests::a_host_declaration_is_read_whole_and_refused_by_name ... ok
test userlandhost::tests::a_manifest_that_switches_tests_off_is_named ... ok
test userlandhost::tests::a_test_attribute_is_a_word_and_not_a_substring ... ok
test userlandhost::tests::every_program_the_images_ship_declares_what_it_is_to_a_host ... ok
test userlandhost::tests::every_userland_test_is_in_the_gate ... ok
test userlandhost::tests::the_survey_gates_what_cargo_test_runs_and_names_the_rest ... ok
test userlandhost::tests::what_could_hide_a_test_is_a_condition ... ok
test llvm::tests::the_runtimes_sources_are_the_commit_s ... ok
test llvm::tests::two_compilers_of_one_llvm_make_it_once ... ok
test wallpaper::tests::the_committed_wallpaper_is_the_one_this_file_describes ... ok
test wallpaper::tests::the_wallpaper_neither_bands_nor_blocks ... ok
test metal::tests::coming_back_is_ssh_answering_and_not_its_port ... ok
test release::tests::the_layers_are_the_stores_the_build_makes ... ok
test sourcegate::tests::no_tracked_file_identifies_a_machine_or_its_network ... ok
test sysroot::tests::a_comment_is_the_same_sysroot_and_a_signature_is_another ... ok
test sysroot::tests::a_submodule_is_the_commit_its_gitlink_records_checked_out_or_not ... ok
Preparing worktree (detached HEAD c902e7b)
HEAD is now at c902e7b C2
Preparing worktree (detached HEAD 6bd87e5)
HEAD is now at 6bd87e5 backtrace, later
test sysroot::tests::ensure_shallow_fork_initialises_no_submodule_in_a_linked_worktree ... ok
Preparing worktree (detached HEAD b2d0aec)
HEAD is now at b2d0aec C2
Preparing worktree (detached HEAD 6ad31ce)
HEAD is now at 6ad31ce backtrace, later
test sysroot::tests::twelve_builds_at_once_make_and_move_one_fork_checkout ... ok
test llvm::tests::what_the_key_does_not_name_is_never_stored ... ok
test sysroot::tests::a_worktree_pinning_another_fork_commit_gets_its_own_checkout ... ok
test sysroot::tests::the_primary_s_fork_checkout_is_moved_to_its_pin ... ok
test ci::tests::a_step_that_goes_quiet_is_ended_with_what_it_spawned_and_names_its_last_line ... ok

test result: ok. 347 passed; 0 failed; 15 ignored; 0 measured; 0 filtered out; finished in 10.07s

13:26:38 [ci] the build system: cargo test --lib

13:26:38 === [ci] the harness's own checks
    Finished `test` profile [optimized + debuginfo] target(s) in 0.26s
     Running tests/checks.rs (target/debug/deps/toyos_checks-43690f36ea7c250b)

running 39 tests
test checks::a_shared_chunk_stages_every_binary_its_members_name ... ok
test checks::a_name_registered_twice_is_refused ... ok
test checks::a_stall_stays_red ... ok
test checks::metal_boots_last_job_is_behind_every_other ... ok
test checks::a_run_selects_by_filter ... ok
test checks::irq_census_verdict ... ok
test checks::mask_windows_verdict ... ok
test checks::metal_domains_end_below_the_host_bridges ... ok
test checks::control_regs_verdict ... ok
test checks::metal_claim_spends_one_remapping_entry ... ok
test checks::metal_list_from_parse_reaches_run_without_the_machine ... ok
test checks::metal_rows_run_before_members_under_a_bound_the_members_widen ... ok
test checks::metal_audio_judges ... ok
test checks::metal_judges_read_the_page_for_what_only_the_page_carries ... ok
test checks::metal_words_take_rows_members_and_whole_boots ... ok
test checks::metal_usb_judge ... ok
test checks::nvme_image_is_held_by_one_guest ... ok
test checks::psci_power_off_judge ... ok
test checks::nested_nmi_verdict ... ok
test checks::run_exit_status ... ok
test checks::screen_decoder ... ok
test checks::serial_vocabulary ... ok
test checks::suspend_invalidates_a_verdict ... ok
test checks::the_c_corpus_stages_the_expectation_the_host_compares ... ok
test checks::the_foreign_record_judge_demands_the_stop_sealed_done ... ok
test checks::the_xecp_judge_reads_the_t14s_handoff ... ok
test checks::suite_split ... ok
test checks::metal_name_measured_twice_is_refused ... ok
test checks::metal_boot_that_lost_parts_of_its_log_judges_no_row ... ok
test checks::metal_cleared_page_owes_no_panel ... ok
test checks::suspend_detector ... ok
test checks::metal_failing_shared_member_fails_itself_alone ... ok
test checks::metal_reading_past_its_record_fails_and_moves_nothing ... ok
test checks::metal_name_two_owners_measured_is_refused ... ok
test checks::metal_stop_owes_its_record_and_leaves_no_operation_open ... ok
test checks::metal_run_under_another_bios_fails_and_records_nothing ... ok
test checks::metal_number_fails_with_its_owner_alone ... ok
test checks::metal_loader_kernel_and_program_count_from_one_zero ... ok
test checks::metal_bound_fires_within_one_period_of_itself ... ok

test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

13:26:39 [ci] the harness's own checks: cargo test --test toyos-checks

13:26:39 === [ci] the workspace's host members
    Finished `test` profile [optimized + debuginfo] target(s) in 0.27s
     Running unittests src/lib.rs (target/debug/deps/bcachefs-dd31ce931b3f7dd7)

running 72 tests
test block_io::image_bounds::a_block_past_the_end_is_refused_rather_than_read ... ok
test block_io::image_bounds::a_block_number_whose_byte_offset_wraps_is_refused_and_does_not_panic ... ok
test block_io::image_bounds::an_empty_image_holds_no_block_at_all ... ok
test block_io::image_bounds::every_block_the_image_holds_is_served_whole ... ok
test block_io::image_bounds::a_block_that_starts_inside_and_ends_outside_is_refused ... ok
test btree::tests::an_entry_larger_than_the_payload_is_refused ... ok
test btree::tests::a_descent_gives_up_before_it_runs_out_of_stack ... ok
test crc32c::tests::known_vectors ... ok
test btree::tests::write_to_refuses_an_overfull_node_instead_of_underflowing ... ok
test btree::tests::an_interior_child_shorter_than_a_block_number_is_refused ... ok
test btree::tests::a_child_pointer_off_the_device_is_refused ... ok
test btree::tests::an_interior_node_with_no_children_is_refused ... ok
test btree::tests::a_crafted_entry_count_never_reaches_the_allocator ... ok
test btree::tests::pack_fills_each_node_in_order_and_none_past_a_block ... ok
test btree::tests::a_split_short_of_a_sibling_gives_back_the_ones_it_took ... ok
test crc32c::tests::zeroes ... ok
test fs::tests::a_block_allocated_to_bridge_a_gap_reads_as_zeros ... ok
test fs::tests::a_bitmap_outside_the_volume_is_refused ... ok
test fs::tests::a_bitmap_too_small_to_cover_the_volume_is_refused ... ok
test fs::tests::a_child_pointer_past_the_end_of_the_device_is_refused ... ok
test fs::tests::a_file_ending_in_a_hole_still_reads_as_zeros ... ok
test fs::tests::a_delete_of_a_name_that_is_not_here_destroys_nothing ... ok
test fs::tests::a_page_resolved_against_an_extent_at_the_end_of_the_address_space_is_total ... ok
test fs::tests::a_run_ending_on_the_volumes_last_block_is_accepted ... ok
test fs::tests::a_size_inside_the_volume_but_over_the_ceiling_never_reaches_the_allocator ... ok
test fs::tests::a_file_naming_more_blocks_than_the_volume_has_is_refused ... ok
test fs::tests::a_size_longer_than_the_volume_never_reaches_the_allocator ... ok
test fs::tests::a_superblock_claiming_more_blocks_than_the_device_has_is_refused ... ok
test fs::tests::a_shortened_record_gives_its_tail_back ... ok
test fs::tests::an_extent_outside_the_volume_is_refused_before_the_bitmap_is_touched ... ok
test fs::tests::an_untampered_volume_still_mounts_and_reads ... ok
test fs::tests::a_volume_copied_onto_a_larger_device_does_not_mount ... ok
test upstream::bkey::tests::a_field_past_its_unpacked_width_is_refused_not_truncated ... ok
test fs::tests::an_extent_past_the_end_of_the_volume_is_refused ... ok
test upstream::bkey::tests::a_field_wider_than_the_one_it_fills_is_refused ... ok
test upstream::bkey::tests::a_key_that_does_not_fit_is_refused ... ok
test upstream::bkey::tests::a_truncated_format_is_refused ... ok
test upstream::bkey::tests::field_fit_vectors ... ok
test upstream::bkey::tests::format_vectors ... ok
test fs::tests::is_dir_over_a_corrupt_node_is_refused ... ok
test fs::tests::an_interior_value_too_short_for_a_block_number_is_refused ... ok
test upstream::bkey::tests::the_identity_format_is_the_unpacked_one ... ok
test upstream::bkey::tests::the_identity_format_round_trips_a_position ... ok
test upstream::bkey::tests::unpack_vectors ... ok
test upstream::csum::tests::encryption_csum_types_are_refused_by_name ... ok
test upstream::csum::tests::published_check_values ... ok
test upstream::csum::tests::xxh64_covers_every_tail ... ok
test upstream::fs::tests::a_crc_entry_states_the_extent_it_covers ... ok
test upstream::fs::tests::a_file_longer_than_its_device_is_refused_without_allocating_it ... ok
test upstream::fs::tests::an_entry_before_the_checksum_does_not_move_the_pointer ... ok
test upstream::fs::tests::an_entry_this_volume_cannot_size_is_refused ... ok
test fs::tests::is_dir_is_a_name_beneath ... ok
test upstream::fs::tests::dirent_vectors ... ok
test fs::tests::a_root_that_points_at_itself_is_refused_not_followed ... ok
test upstream::raw::tests::a_short_window_refuses_by_name ... ok
test upstream::raw::tests::an_offset_that_would_wrap_refuses ... ok
test upstream::raw::tests::bitmask_matches_upstreams_accessor ... ok
test upstream::node::tests::a_bset_this_filesystem_did_not_write_is_refused ... ok
test upstream::node::tests::a_key_longer_than_its_bset_is_refused ... ok
test upstream::node::tests::a_node_that_is_not_the_one_asked_for_is_refused ... ok
test upstream::sb::fixture::a_volume_without_a_clean_section_is_refused_by_name ... ok
test upstream::sb::fixture::a_huge_u64s_is_refused_without_allocating_it ... ok
test upstream::sb::fixture::the_interim_reader_rejects_bcachefs_s_magic ... ok
test upstream::node::tests::the_crafted_node_is_accepted ... ok
test upstream::sb::fixture::a_superblock_that_is_not_this_ones_is_refused ... ok
test upstream::node::tests::a_bset_longer_than_its_node_is_refused ... ok
test upstream::sb::fixture::every_unsupported_format_feature_is_refused_by_name ... ok
test upstream::sb::fixture::a_clean_section_shorter_than_its_header_is_refused ... ok
test upstream::sb::fixture::the_crafted_superblock_is_accepted ... ok
test upstream::sb::fixture::a_member_bigger_than_its_device_is_refused ... ok
test fs::tests::is_dir_over_a_split_root_finds_every_directory ... ok
test fs::tests::a_tree_past_the_ceiling_is_refused_before_it_materialises ... ok

test result: ok. 72 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.93s

     Running tests/crash.rs (target/debug/deps/crash-e98227d3fa9db16d)

running 2 tests
test a_directory_rename_is_whole_under_one_name_whichever_write_is_refused ... ok
test a_directory_rename_is_whole_under_one_name_wherever_the_device_stops ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.30s

     Running tests/integration.rs (target/debug/deps/integration-b9da2c39aca32c0f)

running 57 tests
test a_block_zero_the_device_refuses_does_not_fall_through_to_the_backup ... ok
test a_btree_node_the_device_refuses_is_not_a_node_of_zeros ... ok
test a_filesystems_name_round_trips_through_its_superblock ... ok
test a_rename_of_a_symlink_stays_a_symlink ... ok
test a_refused_sync_stays_refused_through_the_filesystem ... ok
test a_data_block_the_device_refuses_is_not_a_page_of_zeros ... ok
test a_create_that_runs_out_of_space_leaves_the_old_file_where_it_was ... ok
test a_file_grown_past_what_the_volume_spares_leaves_the_reserve ... ok
test a_rename_onto_itself_keeps_the_file ... ok
test a_file_renamed_onto_a_symlink_leaves_one_entry ... ok
test a_rename_carries_the_file_to_the_new_name ... ok
test a_value_too_large_for_any_node_is_an_error_not_a_panic ... ok
test a_sparse_write_resolves_inside_the_blocks_it_reserved ... ok
test a_rename_with_no_source_touches_nothing ... ok
test a_renamed_file_keeps_every_extent_it_had ... ok
test a_file_past_the_old_extent_cap_round_trips ... ok
test a_sequential_file_needs_one_extent ... ok
test bad_magic_alone_disowns_the_volume ... ok
test a_write_the_device_refuses_is_reported_and_gives_its_blocks_back ... ok
test corrupt_data_block_returns_raw_bytes ... ok
test create_single_small_file ... ok
test crc_verification_on_nodes ... ok
test dangling_symlink_allowed ... ok
test empty_file ... ok
test bad_magic_means_no_copy_claims_the_volume ... ok
test create_multiple_files ... ok
test every_page_of_a_fragmented_file_owns_a_distinct_block ... ok
test duplicate_filename_overwrites ... ok
test format_and_mount_empty ... ok
test file_not_found ... ok
test file_mtime_nonexistent ... ok
test large_file_exact_block_boundary ... ok
test large_file_single_extent ... ok
test large_file_crosses_block_boundary ... ok
test a_rename_onto_an_existing_name_frees_that_file_and_only_it ... ok
test list_includes_symlinks ... ok
test format_mount_unmount_create_mount_roundtrip ... ok
test long_filename_near_entry_limit ... ok
test mounted_readwrite_create_and_read ... ok
test mounted_readwrite_delete ... ok
test mounted_readwrite_overwrite_file ... ok
test mounted_readwrite_double_roundtrip ... ok
test filesystem_full_returns_no_space ... ok
test mounted_readwrite_overwrite_with_smaller_data ... ok
test mounted_readwrite_sync_and_reopen ... ok
test read_link ... ok
test mounted_readwrite_symlink ... ok
test rename_bounds_the_new_name ... ok
test zero_length_filename_rejected ... ok
test superblock_backup_recovery ... ok
test a_metadata_update_that_cannot_be_reinserted_leaves_the_entry_alone ... ok
test a_write_that_runs_out_of_space_gives_back_what_it_took ... ok
test many_files_with_large_data ... ok
test entries_of_mixed_size_survive_node_splits ... ok
test a_mount_after_a_stop_counts_the_blocks_its_bitmap_holds ... ok
test a_volume_full_of_empty_names_still_deletes_and_frees ... ok
test incremental_insert_and_read ... ok

test result: ok. 57 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s

     Running tests/upstream_fixture.rs (target/debug/deps/upstream_fixture-d7fa786868950279)

running 2 tests
test a_path_the_volume_does_not_hold_reads_back_as_absent ... ok
test the_upstream_volume_reads_back_as_what_upstream_wrote ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/console_handoff.rs (target/debug/deps/console_handoff-85dd59feb09dc330)

running 1 test
test the_stop_finds_the_wire_free_or_klogd_sees_the_ask ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/counters_round.rs (target/debug/deps/counters_round-11dfc91978c41ece)

running 1 test
test a_cpu_read_as_answered_is_read_with_its_answer ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/device_irq.rs (target/debug/deps/device_irq-f63df1e817bc26b1)

running 2 tests
test an_idle_record_answers_nothing ... ok
test every_message_is_counted_once ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/i8042_tally.rs (target/debug/deps/i8042_tally-339ba828634795e9)

running 3 tests
test a_counted_interrupt_carries_its_bytes_with_it ... ok
test an_empty_interrupt_is_never_counted_as_one_that_carried ... ok
test the_split_counters_this_replaced_are_read_torn ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/inbox_answer.rs (target/debug/deps/inbox_answer-d8647e410c7f555e)

running 16 tests
test a_watch_during_a_look_that_finds_nothing_is_the_handles_one_poll ... ok
test a_post_answers_for_an_object_with_nothing_to_look_at ... ok
test a_ring_torn_down_withdraws_every_poll ... ok
test a_post_with_nothing_to_read_answers_nothing ... ok
test a_ring_keeps_its_cap_of_polls_and_no_more ... ok
test a_submitter_parks_only_with_nothing_it_could_answer ... ok
test a_watch_during_a_look_that_finds_bytes_answers_alone ... ok
test a_handle_closed_since_its_watch_is_answered_with_the_refusal ... ok
test a_post_that_lands_after_its_bytes_were_read_answers_nothing ... ok
test a_poll_fired_as_it_is_renewed_waits_for_the_next_look ... ok
test a_poll_armed_again_does_not_end_the_look ... ok
test a_poll_left_standing_still_answers ... ok
test a_replaced_poll_is_withdrawn_from_its_watch ... ok
test a_full_ring_leaves_a_fired_poll_for_the_next_look ... ok
test a_watch_replaces_a_poll_a_post_already_fired ... ok
test an_ended_source_is_answered_gone_without_a_look ... ok

test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_body_words.rs (target/debug/deps/log_body_words-8dcbe1b063588f6e)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_cursor.rs (target/debug/deps/log_cursor-eed329d0c4717dde)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_publish.rs (target/debug/deps/log_publish-c6697501cbd6a21f)

running 2 tests
test an_unpublished_slot_answers_for_nothing ... ok
test a_reader_that_finds_a_shard_finds_it_built ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_record.rs (target/debug/deps/log_record-a4920ee6befbcd00)

running 7 tests
test the_readable_window_is_exactly_the_last_shard_records ... ok
test a_recycled_slot_does_not_answer_for_the_record_it_replaced ... ok
test a_shard_nothing_has_written_answers_for_nothing ... ok
test a_concurrent_reader_sees_head_grow_and_never_shrink ... ok
test a_committed_record_is_whole_or_absent ... ok
test a_key_and_the_record_it_names_come_from_one_generation ... ok
test a_reader_racing_a_recycle_gets_nothing_rather_than_a_mixture ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.57s

     Running tests/log_ring.rs (target/debug/deps/log_ring-bbfc48994aa697bc)

running 3 tests
test a_slot_is_reused_only_after_its_record_was_read ... ok
test a_lane_publishes_whole_and_reuses_only_after_a_read ... ok
test a_published_record_is_whole_and_read_once ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s

     Running tests/log_wake.rs (target/debug/deps/log_wake-12a72c067258506f)

running 2 tests
test exactly_one_producer_owns_a_park ... ok
test a_commit_and_an_arm_cannot_both_miss ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/log_zeroed_init.rs (target/debug/deps/log_zeroed_init-0893d8dc88f9dbcd)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/loom_exploration.rs (target/debug/deps/loom_exploration-952781b90d4b7985)

running 2 tests
test loom_runs_a_store_ahead_of_an_earlier_load ... ok
test loom_runs_a_read_modify_write_ahead_of_an_earlier_load ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/loom_mailbox.rs (target/debug/deps/loom_mailbox-b657564e0022bd63)

running 2 tests
test steal_probe_node_is_never_double_linked ... ok
test preempt_disabled_push_keeps_the_queue_drainable ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.47s

     Running tests/loom_park.rs (target/debug/deps/loom_park-5669bd0546449f50)

running 3 tests
test cancel_and_notify_agree_on_who_won ... ok
test a_pre_park_claim_never_posts_a_message ... ok
test a_notify_ends_exactly_one_iteration ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/loom_push.rs (target/debug/deps/loom_push-d59a25112dbf307f)

running 2 tests
test a_push_rings_nobody_when_nobody_is_asleep ... ok
test a_cpu_that_halts_without_seeing_the_surplus_was_pushed ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/loom_retire.rs (target/debug/deps/loom_retire-fedb56bbbe883084)

running 6 tests
test the_retire_chase_reuses_one_node_under_a_racing_migration ... ok
test an_adopting_cpu_always_observes_the_kill_bit ... ok
test a_retire_racing_the_park_commit_always_leaves_someone_to_reap ... ok
test a_wake_and_a_retire_ride_distinct_nodes ... ok
test a_retire_and_a_wake_never_both_claim_a_parked_task ... ok
test the_retire_arm_never_loses_a_parked_task_to_a_racing_wake ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s

     Running tests/loom_sleep.rs (target/debug/deps/loom_sleep-f498be1e5fe9034e)

running 2 tests
test a_halted_cpu_with_queued_work_was_kicked ... ok
test a_kicked_cpu_comes_back_and_drains_everything ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.45s

     Running tests/loom_watch.rs (target/debug/deps/loom_watch-ee28bf6faa307918)

running 12 tests
test an_end_racing_a_post_answers_a_poll_once ... ok
test an_end_racing_a_post_in_place_answers_a_poll_once ... ok
test a_bounded_post_racing_a_timeout_reaches_a_live_waiter ... ok
test a_poll_registered_racing_a_post_in_place_completes_exactly_once ... ok
test a_poll_registered_racing_a_post_completes_exactly_once ... ok
test a_revoke_racing_the_wait_loop_ends_it_in_every_arm ... ok
test a_post_racing_a_registration_leaves_nobody_parked ... ok
test a_transition_racing_an_opening_gate_is_never_missed ... ok
test a_poll_on_two_watches_racing_both_posts_completes_exactly_once ... ok
test a_second_post_is_not_lost_to_a_flag_the_waiter_consumed ... ok
test a_fire_racing_a_submitters_park_is_never_lost ... ok
test an_answer_wakes_the_submitter_its_look_hid_the_poll_from has been running for over 60 seconds
test an_answer_wakes_the_submitter_its_look_hid_the_poll_from ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 64.56s

     Running tests/owed_lock.rs (target/debug/deps/owed_lock-82472084fc952815)

running 1 test
test a_turned_away_cpu_holds_the_lock_or_is_answered ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/panic_capture.rs (target/debug/deps/panic_capture-49407ae928806208)

running 5 tests
test a_released_latch_hands_the_snapshot_to_the_next_captor ... ok
test the_owner_refreshes_and_a_second_captor_stays_out ... ok
test two_panicking_cpus_write_one_snapshot ... ok
test the_unlatched_capture_this_replaced_interleaves_two_reports ... ok
test a_reader_and_refresh_never_overlap_on_the_snapshot ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/panic_console_publish.rs (target/debug/deps/panic_console_publish-fe37875c6e2f9122)

running 1 test
test a_snapshot_is_one_publication_whole ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.08s

     Running tests/poll_once.rs (target/debug/deps/poll_once-47fa26b617c9cc3b)

running 2 tests
test a_withdrawal_and_a_post_never_both_take_a_poll ... ok
test a_post_and_a_recheck_answer_a_poll_once ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/reap_gate.rs (target/debug/deps/reap_gate-462174cd688180b2)

running 4 tests
test an_unraised_gate_claims_nothing ... ok
test a_raise_is_never_dropped ... ok
test a_claim_sees_the_enrolled_work ... ok
test one_raise_is_claimed_once ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/serial_lock.rs (target/debug/deps/serial_lock-fa753c944dbedabc)

running 9 tests
test a_lost_try_lock_leaves_the_lock_held ... ok
test a_seize_reenters_its_own_cpus_hold ... ok
test a_seize_gives_up_on_a_holder_that_never_lets_go ... ok
test within_asks_a_silent_attempt_exactly_its_tries ... ok
test a_burst_beneath_its_own_cpus_fatal_path_is_refused - should panic ... ok
test a_burst_waits_out_another_cpus_fatal_path ... ok
test a_seize_and_a_burst_never_overlap ... ok
test a_seize_takes_a_burst_let_go_inside_the_bound ... ok
test two_writers_never_overlap ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/sleep_lock.rs (target/debug/deps/sleep_lock-1a1fca6f3f1ac287)

running 4 tests
test try_lock_observes_the_previous_holders_writes ... ok
test two_holders_never_overlap ... ok
test a_queued_contender_is_served_and_named ... ok
test a_parking_contender_observes_the_holders_writes ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/smp_bringup.rs (target/debug/deps/smp_bringup-cd2a9c8182d7caee)

running 3 tests
test an_ap_that_reads_another_id_is_refused - should panic ... ok
test a_released_machine_is_answering ... ok
test a_committed_count_never_outruns_its_slot ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/ticket_lock.rs (target/debug/deps/ticket_lock-2447e48bc2cede20)

running 3 tests
test try_lock_at_the_wrap_boundary_does_not_panic ... ok
test try_lock_observes_the_previous_owners_writes ... ok
test two_try_locks_do_not_both_succeed ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/tlb_shootdown.rs (target/debug/deps/tlb_shootdown-52849ef51a0854c1)

running 4 tests
test an_initiator_answers_while_it_waits ... ok
test a_nested_serve_is_not_undone_by_the_one_it_interrupted ... ok
test an_acknowledged_flush_postdates_the_page_table_write ... ok
test one_serve_answers_two_concurrent_shootdowns ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.11s

     Running unittests src/lib.rs (target/debug/deps/kernel_sim-ddcd977293e22acb)

running 15 tests
test choice::tests::bytes_are_the_decisions ... ok
test choice::tests::bytes_full_range_reachable ... ok
test choice::tests::bytes_wide_draw_uses_two_bytes ... ok
test choice::tests::replay_reproduces_a_recording ... ok
test choice::tests::pct_never_starves_a_lone_step ... ok
test choice::tests::seeded_is_deterministic ... ok
test choice::tests::seeds_differ ... ok
test latency::tests::a_losing_maximum_becomes_the_runner_up ... ok
test choice::tests::pct_prefers_the_highest_priority_actor_and_is_stable ... ok
test latency::tests::an_empty_distribution_measures_nothing ... ok
test latency::tests::causes_are_kept_apart ... ok
test latency::tests::merging_is_exactly_the_union ... ok
test latency::tests::one_sample_has_no_runner_up ... ok
test latency::tests::the_runner_up_is_the_second_largest_sample ... ok
test choice::tests::zero_options_is_a_bug - should panic ... ok

test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/main.rs (target/debug/deps/kernel_sim-cb04f5b6dbf474b5)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/deadline_claim_race.rs (target/debug/deps/deadline_claim_race-ae5ba098c0dcbdfd)

running 1 test
test a_claim_between_the_drain_and_the_fire_leaves_the_timer_armed_for_what_is_parked ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/policy.rs (target/debug/deps/policy-c8d6313bf8224213)

running 12 tests
test a_stopped_cpu_stops_taking_work ... ok
test per_thread_shares_lose_the_floor ... ok
test the_share_deficit_is_an_offset_and_not_a_drift ... ok
test a_wakeup_storm_drains_without_serializing ... ok
test an_interactive_wake_waits_out_at_most_the_band_it_is_queued_behind ... ok
test the_two_cures_are_priced_against_the_pull_path ... ok
test a_process_cannot_buy_cpu_by_forking ... ok
test a_runnable_task_waits_at_most_one_dispatch_per_rival ... ok
test without_the_balance_path_a_lopsided_machine_stays_lopsided ... ok
test the_balance_path_drains_the_cpu_an_adversary_loaded ... ok
test a_push_on_surplus_reaches_every_cpu_the_pull_path_left_asleep ... ok

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Earlier host run at d719cc9d4 (the same tree but issues/), EXIT=1 on the toyos SDK's lane proof, filed as issues/a-lane-reader-counted-one-refusal-fewer-than-its-writer-made.md, part 2 of 8

test a_bounded_re_arm_reaches_every_cpu_the_pull_path_left_asleep ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.94s

     Running tests/scenarios.rs (target/debug/deps/scenarios-63544582fcbe5101)

running 25 tests
test corpus_traces_still_do_what_they_were_committed_for ... ok
test a_pass_that_overruns_its_budget_is_recorded ... ok
test old_commit_before_pass_is_caught ... ok
test a_run_replays_exactly ... ok
test old_steal_port_is_caught ... ok
test a_retire_inside_the_registration_window_is_honoured_by_the_core ... ok
test blind_spot_needed_the_step_split ... ok
test shrinking_keeps_the_failure_and_loses_the_noise ... ok
test a_pass_inside_the_registration_window_is_caught ... ok
test the_new_protocol_survives_the_schedule_that_breaks_the_old_one ... ok
test rt_starving_the_corpse_is_caught ... ok
test per_thread_fair_shares_are_caught ... ok
test double_charging_a_share_is_caught ... ok
test the_park_sees_claims_that_landed_after_its_commit ... ok
test old_park_keeping_the_lend_is_caught ... ok
test the_audio_pipeline_holds_on_one_cpu ... ok
test old_migrate_keeping_the_corpse_is_caught ... ok
test a_retire_completes_inside_its_derived_bound ... ok
test the_unwind_gate_lasts_one_chunk_and_not_one_unwind ... ok
test identity_ordering_within_a_share_is_caught ... ok
test the_fairness_storm_is_measured_and_holds ... ok
test invariant_i13_is_measured_and_holds ... ok
test an_identity_tiebreak_changes_the_schedule_and_not_the_sibling_split ... ok
test every_scenario_survives_raw_fuzz_bytes ... ok
test every_scenario_survives_a_seed_sweep ... ok

test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.82s

     Running unittests src/lib.rs (target/debug/deps/toyos_abi-fe6fb68be58597b7)

running 53 tests
test boot::tests::the_kernel_is_handed_the_windows_firmware_named_and_none_of_the_array_behind_them ... ok
test boot::tests::a_window_holds_an_extent_and_not_merely_its_first_address ... ok
test boot::tests::the_two_readings_of_a_boot_parameter_partition_it ... ok
test clock::tests::the_formula_is_the_kernels ... ok
test clock::tests::the_page_is_four_words ... ok
test counters::tests::a_flag_no_counter_names_is_refused ... ok
test counters::tests::a_present_zero_is_not_an_absent_counter ... ok
test counters::tests::a_word_under_an_absent_counter_is_refused ... ok
test counters::tests::counters_are_indexed_by_their_place_and_named_once ... ok
test counters::tests::every_shape_of_record_reads_back_as_written ... ok
test counters::tests::what_times_a_program_or_is_power_needs_the_trace_right ... ok
test handle::tests::a_bit_no_right_uses_is_not_a_rights_set ... ok
test handle::tests::a_generation_past_the_field_is_generation_zero_again ... ok
test handle::tests::a_handle_answers_the_slot_and_generation_it_was_made_from ... ok
test handle::tests::every_right_in_all_has_a_name_and_every_name_is_in_all ... ok
test handle::tests::generation_zero_is_the_bare_index ... ok
test handle::tests::nothing_below_the_retirement_generation_can_be_the_invalid_handle ... ok
test handle::tests::rights_only_shrink ... ok
test inbox::tests::the_ring_layout_is_what_both_ends_index_by ... ok
test boot::tests::a_count_past_the_array_is_refused_rather_than_clamped - should panic ... ok
test inventory::tests::a_byte_that_names_nothing_is_refused_by_name ... ok
test inventory::tests::a_record_is_one_fixed_width ... ok
test inventory::tests::every_record_round_trips ... ok
test log::tests::a_fresh_cursor_has_read_nothing ... ok
test log::tests::a_length_past_the_bound_is_clamped_and_not_a_panic ... ok
test log::tests::a_non_utf8_body_renders_what_decoded ... ok
test log::tests::a_record_renders_the_same_line_for_every_consumer ... ok
test log::tests::a_wall_clock_goes_through_the_bracket_and_an_empty_one_changes_nothing ... ok
test log::tests::an_undeclared_severity_byte_decodes_to_nothing ... ok
test log::tests::every_sayer_gets_the_one_head ... ok
test log::tests::its_bytes_are_the_fields_and_nothing_between_them ... ok
test log::tests::severities_are_ordered_from_info_to_alert ... ok
test log::tests::the_record_is_the_size_and_shape_both_sides_assume ... ok
test log::tests::untimed_severity_and_elided_are_in_the_line_rather_than_in_a_convention ... ok
test part::tests::a_guid_is_the_uppercase_registry_form_and_nothing_else ... ok
test part::tests::a_guid_survives_the_wire ... ok
test part::tests::the_esp_type_guid_is_the_specification_s_bytes ... ok
test ring::tests::a_scribbled_header_leaves_the_stream_exact ... ok
test ring::tests::the_pipe_capacity_does_not_divide_the_u32_cursor_space ... ok
test syscall::tests::a_devices_entry_is_a_class_or_one_named_function ... ok
test syscall::tests::a_partition_entry_carries_its_guid_in_both_selector_words ... ok
test syscall::tests::a_dirent_of_another_kind_is_a_broken_kernel - should panic ... ok
test syscall::tests::a_pci_id_is_four_lowercase_hex_digits_each_and_nothing_else ... ok
test syscall::tests::a_request_writes_back_the_name_it_parsed ... ok
test ring::tests::a_read_split_across_the_cursor_wrap_returns_what_was_written ... ok
test syscall::tests::an_isa_entry_survives_the_wire_and_nothing_else_decodes ... ok
test syscall::tests::a_short_dirent_is_a_broken_kernel - should panic ... ok
test syscall::tests::every_dirent_is_read_back_whatever_its_size_holds ... ok
test syscall::tests::module_info_s_bytes_are_the_fields_and_nothing_between_them ... ok
test syscall::tests::modules_decodes_every_record_and_its_path ... ok
test syscall::tests::the_selector_survives_the_wire ... ok
test syscall::tests::modules_refuses_a_path_past_the_answer - should panic ... ok
test ring::tests::a_stream_survives_the_cursor_reaching_two_to_the_thirty_two ... ok

test result: ok. 53 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.35s

     Running unittests src/lib.rs (target/debug/deps/toyos_acpi-ed93591cfd9580f5)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/corpus.rs (target/debug/deps/corpus-c5c16e8fc94021eb)

running 37 tests
test a_dsdt_whose_fadt_could_not_be_read_is_refused_as_unread_and_not_as_absent ... ok
test a_fadt_before_acpi_5_1_says_nothing_about_psci ... ok
test a_fadt_that_ends_before_arm_boot_arch_is_short ... ok
test a_fadt_of_the_acpi_1_0_length_is_read_without_its_x_fields ... ok
test a_fadt_too_short_for_the_boot_architecture_flags_is_refused ... ok
test a_length_longer_than_the_mapping_is_refused_before_a_byte_is_read ... ok
test a_length_over_the_ceiling_is_refused_without_walking_it ... ok
test a_dsdt_that_cannot_be_found_is_the_first_block_refused ... ok
test a_length_shorter_than_the_fixed_part_is_refused_with_both_numbers ... ok
test a_century_register_outside_cmos_ram_is_told_apart_from_none ... ok
test a_length_under_the_header_is_refused_even_when_the_caller_needs_nothing ... ok
test a_madt_entry_of_zero_length_halts_the_walk_instead_of_looping ... ok
test a_madt_entry_running_past_the_list_halts_the_walk ... ok
test a_madt_entry_too_short_for_its_own_type_is_not_decoded_as_that_type ... ok
test a_reset_register_this_kernel_cannot_write_is_refused_by_the_field_that_refused_it ... ok
test a_revision_1_fadt_is_read_at_its_32_bit_fields_alone ... ok
test a_revision_1_fadt_long_enough_to_hold_x_dsdt_is_still_read_at_its_32_bit_field ... ok
test a_revision_that_promises_x_dsdt_over_a_table_that_cannot_hold_it_falls_back ... ok
test a_table_that_does_not_sum_to_zero_is_refused ... ok
test a_trailing_byte_that_cannot_be_an_entry_header_ends_the_walk_quietly ... ok
test an_ecdt_naming_no_port_controller_is_refused_by_name ... ok
test an_rsdp_address_the_reader_cannot_reach_is_refused ... ok
test an_xsdt_entry_pointing_at_nothing_is_skipped_and_the_next_one_is_read ... ok
test fixed_hardware_reads_whichever_form_names_a_block ... ok
test fixed_hardware_this_kernel_does_not_serve_is_refused_by_name ... ok
test reset_fields_are_read_only_from_a_revision_that_defines_them ... ok
test the_crafted_fixed_hardware_decodes_before_any_field_is_broken ... ok
test the_definition_blocks_are_the_dsdt_and_then_each_ssdt_in_the_xsdts_order ... ok
test the_psci_conduit_is_read_off_a_fadt_that_defines_it ... ok
test the_root_pointer_is_refused_one_reason_at_a_time ... ok
test the_sci_defaults_to_level_and_active_low_where_nothing_says_otherwise ... ok
test the_shared_reader_refuses_what_it_does_not_hold ... ok
test the_values_the_fadt_names_for_smi_cmd_are_each_read_from_their_own_byte ... ok
test the_xsdt_walk_answers_with_its_first_match_and_tries_no_second ... ok
test two_edits_that_cancel_pass_the_checksum_and_decode_to_the_lie ... ok
test no_single_byte_mutation_of_a_firmwares_descriptor_list_panics_or_runs_away ... ok
test no_single_byte_mutation_of_a_real_table_panics_or_runs_away ... ok

test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.99s

     Running tests/facs.rs (target/debug/deps/facs-1619c04409e4ea79)

running 5 tests
test both_transitions_are_the_specifications_own_sequences ... ok
test a_structure_that_is_no_facs_is_refused_by_name ... ok
test s4bios_f_is_bit_zero_of_the_flags ... ok
test a_facs_off_its_sixty_four_byte_boundary_is_refused ... ok
test the_wide_address_wins_where_it_is_not_zero_and_the_narrow_one_serves_where_it_is ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/fixtures.rs (target/debug/deps/fixtures-4a7f17fb56a60883)

running 14 tests
test the_boot_architecture_flags_come_off_a_revision_that_defines_them ... ok
test a_second_firmwares_bytes_decode_to_that_machines_own_windows ... ok
test the_fadt_names_the_power_block_and_the_dsdt ... ok
test the_definition_blocks_of_qemu_are_its_dsdt_alone ... ok
test the_fadt_names_the_century_register_the_wall_clock_read ... ok
test the_madt_names_the_two_cpus_that_boot_and_the_chip_that_interrupts_them ... ok
test the_fadt_names_the_reset_register_qemu_acts_on ... ok
test the_hpet_table_names_the_window_the_timer_driver_mapped ... ok
test the_mcfg_names_the_ecam_window_the_pci_walk_used ... ok
test the_q35_fadt_names_the_fixed_hardware_its_sci_is_served_through ... ok
test the_q35_fadt_predates_arm_boot_arch ... ok
test the_q35_madt_names_its_sci_level_and_active_high ... ok
test the_windows_a_boot_printed_are_what_that_firmwares_own_bytes_say ... ok
test the_xsdt_walk_reaches_every_entry ... ok

test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/iort.rs (target/debug/deps/iort-41214c1b48b4fa19)

running 31 tests
test a_mapping_carries_an_id_by_its_offset_from_the_input_base_and_ends_at_its_last_id ... ok
test a_node_array_inside_the_header_is_refused ... ok
test a_node_array_past_the_table_is_refused_as_its_first_node ... ok
test a_node_count_that_overruns_the_table_is_refused_where_the_bytes_end ... ok
test a_node_type_not_decoded_is_answered_by_its_type_and_refuses_nothing ... ok
test a_mapping_whose_range_leaves_the_id_space_is_refused ... ok
test a_node_longer_than_the_table_or_shorter_than_its_type_is_refused ... ok
test a_root_complex_has_no_mapping_of_its_own ... ok
test a_revision_whose_layout_was_not_read_is_refused ... ok
test a_route_through_an_output_reference_to_a_node_its_source_may_not_reach_is_refused ... ok
test a_node_revision_whose_layout_was_not_read_is_refused ... ok
test a_route_through_an_output_reference_that_names_no_node_is_refused ... ok
test a_stream_the_smmu_maps_nowhere_has_no_its ... ok
test a_table_too_short_for_its_own_header_fields_is_refused ... ok
test a_single_mapping_that_is_not_its_smmus_own_is_refused ... ok
test a_revision_4_smmu_indexes_its_own_mapping_whenever_a_control_interrupt_is_not_wired ... ok
test a_stream_another_mapping_puts_out_to_the_same_smmu_is_refused ... ok
test a_stream_is_not_judged_alone_past_an_id_array_out_of_its_node ... ok
test an_id_array_lying_over_its_nodes_own_fields_is_refused ... ok
test an_id_array_running_past_its_node_is_refused ... ok
test an_id_two_mappings_claim_is_refused_when_it_is_asked_for ... ok
test an_its_group_of_other_than_one_its_is_refused ... ok
test an_its_node_declaring_an_id_array_is_refused ... ok
test an_smmus_own_mapping_index_at_or_past_its_id_array_is_refused ... ok
test the_hardware_gic_boot_routes_bus_zero_through_the_smmu_and_nothing_to_an_its ... ok
test the_hardware_gic_boots_madt_names_no_its ... ok
test the_its_boot_routes_bus_zero_through_the_smmu_to_the_its_and_the_rest_past_it ... ok
test the_its_boots_madt_names_the_its_the_iort_routes_to ... ok
test the_mapping_a_revision_5_smmu_indexes_is_the_units_own_and_routes_no_stream ... ok
test opening_a_table_and_routing_a_requester_each_read_it_a_bounded_number_of_times ... ok
test no_corruption_of_a_published_iort_panics_or_hangs_the_decoder ... ok

test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s

     Running tests/mapped.rs (target/debug/deps/mapped-55cae07355ade6f9)

running 3 tests
test address_zero_and_a_range_past_every_address_are_refused ... ok
test a_table_past_the_direct_map_is_refused_before_a_byte_is_read ... ok
test an_xsdt_entry_past_the_direct_map_is_skipped ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/resource.rs (target/debug/deps/resource-ee037686f3f75096)

running 11 tests
test a_descriptor_this_decoder_does_not_read_is_refused_by_its_tag ... ok
test a_list_that_runs_off_the_end_of_what_can_be_read_is_refused ... ok
test a_maximum_that_is_not_the_minimum_plus_the_length_is_refused ... ok
test a_short_descriptor_is_refused_rather_than_read_past ... ok
test a_list_with_no_end_tag_stops_at_the_bound ... ok
test a_translated_window_is_refused_rather_than_taken_at_its_minimum ... ok
test a_range_the_bridge_consumes_is_not_a_window_it_forwards ... ok
test a_resource_type_this_decoder_does_not_read_is_refused_by_its_kind ... ok
test a_window_of_no_length_is_not_carried ... ok
test more_windows_than_there_is_room_for_is_refused_whole ... ok
test only_the_memory_ranges_of_a_root_bridge_become_windows ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/thinkpad_t14.rs (target/debug/deps/thinkpad_t14-6c3f06e6d69b6dfb)

running 3 tests
test the_t14s_ecdt_names_the_controller_linux_used ... ok
test the_t14s_madt_names_its_sci_level_and_active_high ... ok
test the_t14s_fadt_names_the_blocks_linux_served_its_sci_through ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_blackbox-233dc461abc742ca)

running 36 tests
test fault_tests::a_fault_round_trips_word_for_word ... ok
test fault_tests::a_fault_survives_the_page_it_is_sealed_into ... ok
test fault_tests::only_a_record_of_the_declared_width_decodes ... ok
test stamp_tests::an_unstamped_page_reads_as_no_date ... ok
test stamp_tests::a_record_belongs_to_the_stick_that_wrote_it ... ok
test stamp_tests::a_records_date_cannot_be_changed_under_it ... ok
test tests::a_length_past_the_page_is_refused ... ok
test tests::a_report_that_fits_carries_no_drop_line ... ok
test tests::a_page_nobody_wrote_carries_nothing ... ok
test tests::a_break_is_told_by_what_the_driver_says_and_by_who_said_it ... ok
test tests::a_cleared_page_is_not_harvested_twice ... ok
test tests::a_boot_with_no_break_says_so_in_one_line ... ok
test tests::a_multi_line_record_is_never_entered_part_way ... ok
test tests::a_sealed_page_comes_back_as_what_went_in ... ok
test tests::a_cut_report_says_how_many_records_it_dropped ... ok
test tests::a_ring_that_moved_between_the_walks_leaves_no_line_out_of_place ... ok
test tests::a_window_with_no_boundary_keeps_none_of_it ... ok
test tests::an_account_cut_off_mid_line_is_readable_to_the_last_whole_line ... ok
test tests::an_armed_page_with_nothing_in_it_is_still_a_state ... ok
test tests::every_line_is_covered_once_its_last_fragment_arrives ... ok
test tests::every_state_has_a_word_of_its_own ... ok
test tests::lines_that_fit_their_room_are_kept_and_nothing_is_said ... ok
test tests::no_state_can_be_read_as_another ... ok
test tests::an_over_long_run_of_records_is_cut_at_a_boundary ... ok
test tests::one_flipped_bit_anywhere_refuses_the_whole_page ... ok
test tests::the_address_is_found_in_a_raw_parameter_buffer ... ok
test tests::the_first_line_that_does_not_fit_drops_itself_and_every_later_one ... ok
test tests::a_storm_keeps_the_first_break_and_counts_what_it_dropped ... ok
test tests::the_driver_says_a_break_the_way_the_section_finds_one ... ok
test tests::the_parameter_round_trips_the_address_it_names ... ok
test tests::the_head_is_kept_and_the_tail_fills_what_is_left ... ok
test tests::a_report_that_fills_the_page_still_leaves_the_account_its_room ... ok
test tests::the_section_is_the_usb_stacks_records_from_the_first_break_on_oldest_first ... ok
test tests::the_section_under_a_sealed_report_leaves_the_account_its_reserve ... ok
test tests::saying_what_was_dropped_never_runs_the_page_over ... ok
test tests::the_line_that_counts_the_dropped_fits_the_room_it_was_given ... ok

test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_blockhold-2c59279906453074)

running 9 tests
test tests::a_writer_silent_since_the_loss_is_told_when_another_flushes_first ... ok
test tests::a_loss_outlives_the_hold_that_wrote_it ... ok
test tests::a_write_after_the_loss_finds_it ... ok
test tests::a_holder_is_the_hold_of_exactly_that_span ... ok
test tests::a_clean_release_leaves_nothing ... ok
test tests::a_write_released_unflushed_is_lost_to_the_next_holder ... ok
test tests::a_block_has_one_holder ... ok
test tests::writes_an_earlier_flush_made_durable_are_not_lost ... ok
test tests::every_interleaving_tells_each_loss_to_the_blocks_it_touched ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_blockring-e59e68baa3f5367e)

running 23 tests
test entry::tests::a_completion_survives_its_words_and_refuses_what_it_does_not_define ... ok
test entry::tests::a_request_survives_its_words ... ok
test entry::tests::a_request_outside_its_bounds_is_refused_by_tag ... ok
test client::tests::read_only_answers_a_write_alone ... ok
test client::tests::a_write_given_up_poisons_every_later_flush ... ok
test client::tests::what_was_on_the_wire_at_the_end_is_refused_and_what_was_not_waits ... ok
test client::tests::a_second_answer_for_one_tag_is_a_violation ... ok
test model::tests::a_used_page_reads_fresh_once_a_servers_ends_are_made_over_it ... ok
test client::tests::a_lost_flush_reissues_then_asks_again ... ok
test client::tests::nothing_goes_out_before_a_session ... ok
test client::tests::overlapping_writes_go_out_again_in_order ... ok
test model::tests::states_named_alike_act_alike ... ok
test server::tests::a_flush_after_a_loss_answers_lost_once ... ok
test server::tests::a_read_only_session_refuses_a_write_unissued ... ok
test server::tests::a_reset_answers_in_the_order_taken ... ok
test server::tests::a_reset_answers_once_and_the_late_device_answer_is_dropped ... ok
test server::tests::a_tag_in_flight_twice_is_refused_unissued ... ok
test wire::tests::a_grant_reaches_its_own_partitions_and_decodes_only_whole ... ok
test wire::tests::opened_and_refusal_survive_their_bytes_and_nothing_else_decodes ... ok
test model::tests::the_model_reaches_the_end_it_should ... ok
test model::tests::the_model_reaches_a_write_given_up ... ok
test model::tests::what_a_flush_calls_durable_is_on_the_medium ... ok
test model::tests::every_request_is_answered_exactly_once ... ok

test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.49s

     Running unittests src/lib.rs (target/debug/deps/toyos_bootmap-22b269a37e3ab679)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/aarch64_direct_map.rs (target/debug/deps/aarch64_direct_map-6e4ee97640c4b179)

running 9 tests
test an_end_below_its_start_is_refused ... ok
test off_a_page_is_refused ... ok
test memory_is_mapped_and_a_register_is_not ... ok
test a_map_with_no_memory_ends_at_zero ... ok
test a_reserved_page_inside_ram_is_left_out_of_its_block ... ok
test past_the_window_is_refused ... ok
test runtime_services_data_is_left_out_and_acpi_tables_are_not ... ok
test a_start_off_a_page_is_refused ... ok
test a_page_wholly_memory_is_one_block ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/direct_map.rs (target/debug/deps/direct_map-36cb8608940d8e17)

running 11 tests
test no_other_type_reaches_past_the_boot_map ... ok
test memory_above_4_gib_is_mapped_to_its_end_in_whole_pages ... ok
test memory_past_the_window_is_refused_by_name ... ok
test the_reserved_hole_below_1_tib_is_not_mapped ... ok
test a_range_past_the_window_that_is_not_memory_is_not_refused ... ok
test every_type_the_pmm_hands_out_is_mapped ... ok
test the_captured_map_is_usable_where_its_boot_said ... ok
test the_pmm_hands_out_exactly_the_types_uefi_gives_the_os ... ok
test acpi_tables_above_the_last_ram_are_mapped ... ok
test an_empty_map_is_the_boot_map ... ok
test an_unsorted_map_is_read_whole ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/plan.rs (target/debug/deps/plan-059f128f59d79140)

running 22 tests
test a_base_off_the_page_is_refused_rather_than_rounded_down ... ok
test a_loader_inside_the_low_map_adds_nothing ... ok
test a_framebuffer_inside_the_low_map_adds_no_directory ... ok
test a_machine_with_no_framebuffer_is_the_low_map_and_nothing_else ... ok
test a_map_typed_scanout_off_a_small_page_is_refused ... ok
test a_page_that_is_part_memory_is_refused_by_address ... ok
test a_loader_across_a_page_is_both_pages ... ok
test a_framebuffer_above_the_low_map_adds_its_own_directory ... ok
test a_range_no_map_can_hold_is_refused_by_name ... ok
test the_aarch64_descriptors_carry_the_attribute_index_the_mair_names ... ok
test the_high_half_slot_is_the_top_nine_bits_of_phys_offset ... ok
test a_framebuffer_that_straddles_the_low_maps_end_is_mapped_from_both_arms ... ok
test uncacheable_is_pat_entry_three_and_plain_memory_is_entry_zero ... ok
test a_loader_above_the_low_map_adds_its_own_directory_of_plain_memory ... ok
test a_map_typed_plan_is_memory_where_firmware_says_write_back_and_a_device_elsewhere ... ok
test a_loader_beside_the_scanout_shares_its_directory ... ok
test a_map_typed_loader_is_memory ... ok
test a_framebuffer_at_the_boundary_is_outside_the_low_map ... ok
test a_framebuffer_that_straddles_a_gib_claims_both ... ok
test a_scanout_inside_memory_is_typed_as_the_scanout ... ok
test a_scanout_carved_out_of_ram_splits_the_pages_it_shares ... ok
test a_loader_no_map_can_hold_is_refused_by_name ... ok

test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_cpuvuln-5700bd7ff46f21af)

running 63 tests
test counters::tests::an_amd_with_leaf_6_has_aperf_and_mperf_and_no_smi_count ... ok
test counters::tests::the_tcg_model_has_none ... ok
test hwp::tests::the_tcg_model_is_refused ... ok
test hwp::tests::the_request_is_the_minimum_ratio_the_highest_level_and_the_preference ... ok
test tests::a_blacklist_row_for_stepping_zero_stands_before_its_any_stepping_row ... ok
test counters::tests::the_t14_has_what_linux_counted_on_it ... ok
test tests::a_bad_microcode_row_is_its_model_and_its_stepping ... ok
test counters::tests::an_intel_model_off_the_list_counts_no_smis ... ok
test counters::tests::a_guest_counts_no_smis ... ok
test tests::a_blacklist_row_matches_only_its_steppings ... ok
test tests::a_comet_lake_guest_cannot_know_its_hosts_smt ... ok
test hwp::tests::a_cpu_outside_family_6_is_refused_by_name ... ok
test hwp::tests::the_t14_is_declared_with_its_notification ... ok
test hwp::tests::a_missing_register_refuses_the_whole_request_by_name ... ok
test tests::a_retpoline_guest_leaves_bhi_to_retpolines_only_with_rrsba_disabled ... ok
test tests::a_retpoline_guest_without_rrsba_leaves_bhi_to_retpolines ... ok
test tests::a_tsa_row_keyed_by_a_model_nibble_of_8_or_more_is_read ... ok
test tests::a_guest_cannot_know_its_gds_mitigation ... ok
test tests::a_zen2_guest_has_no_ibpb_brtype ... ok
test tests::a_guest_with_verw_clear_mitigates_tsa ... ok
test tests::a_turin_kvm_guest_gives_the_tags_lines ... ok
test tests::a_milan_kvm_guest_gives_the_tags_lines ... ok
test tests::alder_lake_mitigates_bhi_in_hardware ... ok
test tests::a_native_zen3_without_its_probe_is_a_contradiction - should panic ... ok
test tests::a_hygon_cpu_without_its_ls_cfg_probe_is_a_contradiction - should panic ... ok
test tests::amd_0x15_to_0x17_take_ssbd_from_the_ls_cfg_probe ... ok
test tests::amd_stibp_always_on_is_strict_without_the_untrained_return_thunk ... ok
test tests::an_amd_cpu_with_feat_ctl_is_a_contradiction - should panic ... ok
test tests::an_intel_guest_cannot_know_its_mitigations_or_its_hosts_smt ... ok
test tests::an_msbds_only_cpu_reports_its_smt_as_mitigated ... ok
test tests::an_unknown_vendors_retbleed_is_unmitigated ... ok
test tests::autoibrs_leaves_stibp_to_select ... ok
test tests::bad_microcode_drops_the_controls_only_beside_one_of_them ... ok
test tests::bad_microcode_is_intel_family_6s ... ok
test tests::centaur_family_5_has_only_itlb_multihit ... ok
test tests::comet_lake_clears_cpu_buffers_by_mds_no_and_fb_clear ... ok
test tests::comet_lake_varies_one_fact_at_a_time ... ok
test tests::family_and_model_are_derived_as_arch_x86_lib_derives_them ... ok
test tests::firmware_can_lock_the_gds_mitigation ... ok
test tests::hygon_decides_as_linux_does ... ok
test tests::hygon_without_smt_and_with_ibpb_brtype_has_srso_smt_disabled ... ok
test tests::itlb_multihit_reads_what_feat_ctl_left_of_vmx ... ok
test tests::only_amd_and_hygon_are_probed ... ok
test tests::rfds_is_cleared_only_with_rfds_clear ... ok
test tests::rtm_absent_from_cpuid_is_rtm_off ... ok
test tests::rtm_always_abort_decides_tsx_first ... ok
test tests::spectre_bad_microcode_includes_its_bound ... ok
test tests::srbds_is_tsx_disabled_only_without_rtm_and_mmio ... ok
test tests::srso_user_kernel_no_mitigates_only_the_vm_exit ... ok
test tests::the_first_matching_blacklist_row_decides ... ok
test tests::the_t14_with_arch_capabilities_read_as_zero ... ok
test tests::the_t14s_facts_give_its_lines_and_its_spec_ctrl ... ok
test tests::the_t14s_no_bits_each_rule_out_their_bug ... ok
test tests::the_t14s_facts_are_linuxs_reading_of_it ... ok
test tests::tsa_is_ruled_out_only_by_both_its_no_bits ... ok
test tests::zen1_by_btc_no_ssb_no_and_ibpb ... ok
test tests::zen1_forces_stibp_from_the_untrained_return_thunk ... ok
test tests::zen2_selects_by_smt ... ok
test tests::the_tcg_models_signature_gives_its_lines ... ok
test tests::zen3_by_srso_no_and_an_enumerated_ibpb_brtype ... ok
test tests::zen3_native_reads_its_probe_and_its_tsa_microcode ... ok
test tests::zen4_reads_its_row_of_the_tsa_microcode_table ... ok
test tests::zhaoxin_without_spectre_v2_sets_up_no_ibpb ... ok

test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_device_memory-c371b2b03a73bcf2)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_dhcp-bafcabb9fc8c9713)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/ack.rs (target/debug/deps/ack-49c542e77a101715)

running 8 tests
test s_dhcp_dh_016_an_ack_without_rapid_commit_while_selecting ... ok
test s_dhcp_dh_017_a_rapid_ack_answers_a_request_too ... ok
test s_dhcp_dh_015_rapid_commit ... ok
test s_dhcp_dh_018_the_lease_runs_from_the_first_request ... ok
test s_dhcp_dh_011_an_ack_is_probed_first ... ok
test s_dhcp_dh_012_verified_configures ... ok
test s_dhcp_dh_014_every_decline_waits_ten_seconds ... ok
test s_dhcp_dh_013_a_conflict_declines ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/lease.rs (target/debug/deps/lease-35f10df30fc859ed)

running 19 tests
test s_dhcp_dh_023_reconfigured ... ok
test s_dhcp_dh_022_extended ... ok
test s_dhcp_dh_032_a_later_timer_expires ... ok
test s_dhcp_dh_019_the_first_renew ... ok
test s_dhcp_dh_027_a_nak_while_renewing ... ok
test s_dhcp_dh_028_a_nak_from_another_server ... ok
test s_dhcp_dh_029_a_nak_while_requesting ... ok
test s_dhcp_dh_021_t2_alone_means_rebinding_at_t1 ... ok
test s_dhcp_dh_020_renew_rebind_expire ... ok
test s_dhcp_dh_024_an_ack_for_another_address ... ok
test s_dhcp_dh_025_an_ack_from_another_server ... ok
test s_dhcp_dh_034_an_infinite_lease ... ok
test s_dhcp_dh_031_a_late_timer_rebinds_once ... ok
test s_dhcp_dh_026_rebinding_takes_any_server ... ok
test s_dhcp_dh_035_a_ten_second_lease ... ok
test s_dhcp_dh_036_a_lease_that_expired_while_probed ... ok
test s_dhcp_dh_030_a_nak_loop_is_slowed ... ok
test s_dhcp_dh_037_each_renewal_has_its_own_xid ... ok
test s_dhcp_dh_033_timer_options ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/link.rs (target/debug/deps/link-3206abe1f547eb83)

running 10 tests
test s_dhcp_dh_070_link_up_while_selecting ... ok
test s_dhcp_dh_076_the_link_went_down_while_probing ... ok
test s_dhcp_dh_071_link_up_while_probing ... ok
test s_dhcp_dh_067_an_unanswered_reboot_keeps_the_lease ... ok
test s_dhcp_dh_069_a_reboot_ack_for_another_address ... ok
test s_dhcp_dh_068_the_lease_expires_while_rebooting ... ok
test s_dhcp_dh_066_the_reboot_is_refused ... ok
test s_dhcp_dh_065_the_reboot_is_acknowledged ... ok
test s_dhcp_dh_072_an_address_lost_in_use ... ok
test s_dhcp_dh_064_link_up_with_a_lease ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/parse.rs (target/debug/deps/parse-e9d3378615f2ecec)

running 26 tests
test s_dhcp_dh_039_not_a_reply ... ok
test s_dhcp_dh_042_another_transaction ... ok
test s_dhcp_dh_040_the_hardware_type ... ok
test s_dhcp_dh_043_bootp_is_refused ... ok
test s_dhcp_dh_041_another_clients_reply ... ok
test s_dhcp_dh_046_no_end ... ok
test s_dhcp_dh_045_an_option_past_its_field ... ok
test s_dhcp_dh_044_past_end_and_padding ... ok
test s_dhcp_dh_047_a_repeated_message_type ... ok
test s_dhcp_dh_049_split_options_are_joined ... ok
test s_dhcp_dh_048_option_lengths ... ok
test s_dhcp_dh_050_an_overloaded_file_field ... ok
test s_dhcp_dh_051_overload_misused ... ok
test s_dhcp_dh_052_message_types ... ok
test s_dhcp_dh_053_a_foreign_client_identifier ... ok
test s_dhcp_dh_054_the_server_identifier ... ok
test s_dhcp_dh_056_the_lease_time ... ok
test s_dhcp_dh_055_yiaddr_must_be_a_host ... ok
test s_dhcp_dh_058_network_and_broadcast_yiaddr ... ok
test s_dhcp_dh_057_the_mask ... ok
test s_dhcp_dh_060_at_most_three_resolvers ... ok
test s_dhcp_dh_059_the_first_usable_router ... ok
test s_dhcp_dh_061_identity_while_requesting ... ok
test s_dhcp_dh_063_a_refused_offer_then_another ... ok
test s_dhcp_dh_062_offers_nobody_asked_for ... ok
test s_dhcp_dh_038_truncated ... ok

test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/props.rs (target/debug/deps/props-ad1dc5ab60e095ea)

running 2 tests
test s_dhcp_dh_074_prop_every_message_is_built_one_way ... ok
test s_dhcp_dh_073_prop_invariants ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

     Running tests/stack.rs (target/debug/deps/stack-c85f569b53db936f)

running 2 tests
test s_dhcp_dh_007_either_framing_of_the_offer ... ok
test s_dhcp_dh_075_the_acquisition_exception_ends_with_an_address ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/tx.rs (target/debug/deps/tx-76e510ba10e25106)

running 9 tests
test s_dhcp_dh_003_the_discover_schedule ... ok
test s_dhcp_dh_004_jitter_offsets ... ok
test s_dhcp_dh_002_the_host_name ... ok
test s_dhcp_dh_005_secs_saturates ... ok
test s_dhcp_dh_010_a_slow_offer_still_counts ... ok
test s_dhcp_dh_008_the_request_repeats_the_discovers_secs ... ok
test s_dhcp_dh_009_four_requests_then_start_over ... ok
test s_dhcp_dh_001_the_first_discover ... ok
test s_dhcp_dh_006_the_request ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_dma-54049e6a6738179b)

running 17 tests
test tests::a_u32_at_size_minus_four_is_allowed ... ok
test tests::a_zero_length_access_lands_at_the_end_and_no_further ... ok
test tests::an_empty_region_admits_only_an_empty_access ... ok
test tests::an_access_of_no_width_is_refused ... ok
test tests::a_u32_at_size_minus_one_is_refused ... ok
test tests::an_access_that_straddles_two_registers_is_refused ... ok
test tests::a_natural_offset_from_a_natural_base_is_aligned ... ok
test tests::an_offset_plus_length_that_wraps_is_refused ... ok
test tests::an_offset_inside_the_region_does_not_make_the_access_inside_it ... ok
test tests::a_refusal_names_its_numbers ... ok
test tests::a_refused_register_names_its_numbers ... ok
test tests::an_empty_window_admits_no_register ... ok
test tests::an_offset_that_wraps_its_own_width_is_refused ... ok
test tests::an_unaligned_volatile_access_is_refused ... ok
test tests::the_base_is_part_of_the_question ... ok
test tests::the_last_whole_register_is_inside_the_window ... ok
test tests::the_whole_region_is_inside_itself ... ok

test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_dns-a0d3e445ce9eaa6c)

running 62 tests
test tests::a_lookup_whose_every_server_failed_says_how ... ok
test tests::a_chain_exactly_at_the_bound_is_followed ... ok
test tests::a_late_answer_to_an_earlier_query_still_ends_the_lookup ... ok
test tests::a_lookup_whose_newest_query_is_not_waited_for_wakes_at_the_next_servers_turn ... ok
test tests::a_lookup_whose_last_query_reached_nobody_waits_for_the_answers_still_read ... ok
test tests::a_lookup_with_no_server_does_not_start ... ok
test tests::a_lookup_whose_newest_query_reached_nobody_waits_for_an_older_querys_answer ... ok
test tests::a_lookup_that_then_reached_neither_server_waits_for_an_older_querys_answer ... ok
test tests::a_real_reply_with_two_addresses_gives_both_in_order ... ok
test tests::a_reported_query_the_caller_then_knows_reached_nobody_is_let_go ... ok
test tests::a_server_known_unreached_is_asked_again_a_wait_after_that_and_the_lookup_waits_for_its_turn ... ok
test tests::a_server_failure_before_an_alias_is_not_the_aliases_failure ... ok
test tests::a_server_failure_asks_the_next_server_at_once ... ok
test tests::a_loop_of_aliases_ends_at_the_bound ... ok
test tests::a_server_named_twice_is_one_server_and_is_asked_once_a_wait_whatever_is_reported ... ok
test tests::a_server_not_reached_is_not_asked_again_at_once_because_another_failed ... ok
test tests::a_server_that_answered_with_a_failure_is_what_a_lookup_that_then_reached_nobody_reports ... ok
test tests::a_truncated_reply_ends_the_lookup_by_name ... ok
test tests::an_older_query_that_reached_nobody_asks_nobody_and_ends_nothing ... ok
test tests::an_older_query_that_reached_nobody_does_not_hurry_the_next_server ... ok
test tests::aliases_are_counted_across_the_names_a_lookup_asks ... ok
test tests::records_of_another_class_or_type_are_passed_over ... ok
test tests::reports_and_another_servers_failures_hurry_no_server_that_has_not_answered_and_end_no_lookup_early ... ok
test tests::rfc1034_3_6_2_a_chain_is_followed_in_any_order ... ok
test tests::rfc1034_5_3_3_a_chain_that_ends_without_an_address_is_asked_again_at_its_end ... ok
test tests::rfc1035_2_3_4_a_label_is_63_bytes_and_a_name_255 ... ok
test tests::rfc1034_3_6_2_a_real_chain_of_aliases_is_followed_to_its_address ... ok
test tests::rfc1035_2_3_4_a_name_built_past_255_bytes_by_pointers_is_refused ... ok
test tests::rfc1035_2_3_4_an_owner_of_255_bytes_is_read_and_one_of_256_is_refused ... ok
test tests::rfc1035_3_3_1_an_alias_record_is_one_name ... ok
test tests::rfc1035_3_4_1_an_address_record_is_four_bytes ... ok
test tests::rfc1035_4_1_1_a_query_is_one_header_and_one_question_for_a_in_in ... ok
test tests::rfc1035_4_1_1_a_query_or_another_opcode_is_no_reply ... ok
test tests::rfc1035_4_1_3_a_record_or_a_count_past_the_end_is_malformed ... ok
test tests::rfc1035_4_1_4_a_pointer_to_a_prior_name_is_read ... ok
test tests::rfc1035_4_1_1_every_rcode_is_named ... ok
test tests::rfc1035_4_1_4_a_pointer_that_does_not_point_back_is_refused ... ok
test tests::rfc1035_4_2_1_a_query_that_reached_nobody_is_not_waited_for_and_the_next_server_is_asked_at_once ... ok
test tests::rfc1035_4_1_4_the_two_reserved_label_types_are_refused ... ok
test tests::rfc1035_4_2_1_a_server_not_reached_is_asked_again_in_its_turn_a_wait_later ... ok
test tests::rfc1035_4_2_1_every_server_is_asked_before_any_again_and_the_lookup_ends_after_its_rounds ... ok
test tests::rfc1035_4_2_1_no_server_is_asked_again_at_once_a_lookup_that_reached_none_ends ... ok
test tests::rfc1035_5_1_a_name_off_the_wire_is_written_with_every_odd_byte_escaped ... ok
test tests::rfc1123_2_1_a_name_is_letters_digits_hyphens_and_nothing_else ... ok
test tests::rfc2181_10_1_two_aliases_for_one_name_are_malformed ... ok
test tests::rfc2181_5_4_1_an_address_for_a_name_not_asked_is_not_read ... ok
test tests::every_prefix_of_a_real_reply_is_dropped_or_reads_as_the_whole ... ok
test tests::rfc2181_9_a_truncated_reply_is_refused_whatever_it_carries ... ok
test tests::rfc2308_2_2_a_name_with_no_address_is_an_empty_answer ... ok
test tests::rfc2308_nxdomain_and_nodata_end_the_lookup_apart ... ok
test tests::rfc4343_names_compare_without_regard_to_case ... ok
test tests::rfc5452_9_1_a_reply_is_read_only_for_its_id_and_its_question ... ok
test tests::rfc5452_9_1_only_the_asked_server_port_and_id_are_read ... ok
test tests::rfc6761_6_4_a_real_invalid_name_does_not_exist ... ok
test tests::rfc5452_9_2_an_id_is_drawn_for_a_query_that_is_sent_and_for_nothing_else ... ok
test tests::rfc8085_5_2_a_report_of_an_older_query_asks_nobody ... ok
test tests::rfc8085_5_2_a_reported_query_is_still_read_and_the_next_server_is_asked_at_once ... ok
test tests::rfc8085_5_2_reports_alone_end_no_lookup_and_ask_no_server_twice_inside_a_wait ... ok
test tests::every_pair_of_bytes_in_the_header_and_question_is_read_soundly ... ok
test tests::random_bytes_are_never_an_answer_to_an_id_they_do_not_carry ... ok
test tests::random_answer_sections_behind_a_valid_question_are_read_soundly ... ok
test tests::every_byte_of_a_real_reply_set_to_every_value_is_read_soundly ... ok

test result: ok. 62 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s

     Running unittests src/lib.rs (target/debug/deps/toyos_elf-1dee33cd8b2d3927)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/crafted.rs (target/debug/deps/crafted-5e6c5e5f64fbcab9)

running 31 tests
test a_header_one_byte_short_is_too_small ... ok
test a_file_with_no_load_segment_is_refused ... ok
test a_file_extent_that_overflows_is_refused ... ok
test a_program_header_count_past_the_buffer_is_refused ... ok
test a_header_naming_a_vaddr_outside_the_image_is_refused_by_name ... ok
test a_program_header_offset_inside_the_file_header_is_refused_by_name ... ok
test a_program_header_offset_that_overflows_is_refused ... ok
test a_program_header_size_that_is_not_56_is_refused ... ok
test a_section_table_the_loader_cannot_index_is_dropped_not_refused ... ok
test a_segment_extent_that_overflows_is_refused ... ok
test a_table_no_segment_holds_whole_is_absent ... ok
test a_vaddr_below_every_segment_has_no_file_offset ... ok
test a_zero_size_tls_segment_is_present_not_absent ... ok
test an_empty_file_is_too_small ... ok
test an_entry_point_outside_the_image_is_refused ... ok
test an_extrapolated_file_offset_that_overflows_has_no_answer ... ok
test an_image_for_the_other_machine_is_refused_and_one_for_this_machine_is_not ... ok
test class_endianness_version_type_and_machine_are_each_refused_by_name ... ok
test filesz_above_memsz_is_refused_for_load_and_for_tls ... ok
test no_program_headers_is_refused ... ok
test only_a_tls_segment_with_bytes_is_occupied ... ok
test segment_flags_survive_the_parse ... ok
test segments_that_share_a_page_are_an_overlap ... ok
test the_file_bytes_behind_a_vaddr_are_the_containing_segments ... ok
test the_load_segment_count_is_bounded_and_the_bound_is_generous ... ok
test the_magic_is_checked ... ok
test the_program_header_table_is_where_its_segment_places_it ... ok
test the_stack_after_an_image_is_aligned_wherever_the_image_ends ... ok
test the_writable_window_spans_every_writable_segment ... ok
test tls_alignment_is_a_power_of_two_within_a_page_or_it_is_refused ... ok
test tls_bss_may_extend_past_the_image ... ok

test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/fuzz.rs (target/debug/deps/fuzz-3b69a54ee7aafce0)

running 2 tests
test no_note_segment_panics_the_build_id_read ... ok
test every_derived_address_lies_inside_the_image_or_the_image_is_refused ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.75s

     Running tests/note.rs (target/debug/deps/note-afcd23549fb7d2d4)

running 13 tests
test a_build_id_of_the_wrong_type_is_none ... ok
test a_build_id_under_another_name_is_none ... ok
test a_descriptor_of_0_or_past_32_bytes_is_no_build_id ... ok
test a_header_with_no_readable_table_lists_no_note ... ok
test a_lone_build_id_is_read ... ok
test a_note_running_past_its_segment_names_none ... ok
test an_alignment_no_note_section_has_names_none ... ok
test an_eight_aligned_segment_pads_to_eight ... ok
test every_pt_note_is_listed_wherever_its_bytes_are ... ok
test no_build_id_note_names_none ... ok
test the_build_id_after_an_unpadded_name_is_found ... ok
test the_constant_is_the_gabis ... ok
test the_first_of_two_build_ids_is_the_answer ... ok

test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/real.rs (target/debug/deps/real-405aa2c1d23718ba)

running 2 tests
test an_lld_binarys_build_id_is_what_object_and_readelf_read ... ok
test a_linked_binary_parses_to_what_readelf_says ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/tables.rs (target/debug/deps/tables-c3231c6816106e1a)

running 42 tests
test a_bucket_below_the_symbol_offset_is_the_symbol_offset ... ok
test a_bucket_pointing_past_the_chain_array_yields_no_symbol_count ... ok
test a_chain_index_below_the_symbol_offset_ends_the_lookup ... ok
test a_chain_naming_a_symbol_the_table_does_not_hold_resolves_to_nothing ... ok
test a_consistent_table_finds_its_symbol_and_counts_it ... ok
test a_chain_that_never_terminates_yields_no_symbol_count ... ok
test a_name_offset_past_the_string_table_is_empty ... ok
test a_dynamic_table_with_no_null_terminator_stops_at_the_buffer ... ok
test a_hash_header_that_cannot_be_used_is_refused ... ok
test a_name_that_is_not_utf8_matches_nothing ... ok
test a_read_table_inside_the_write_window_is_refused_by_name ... ok
test a_read_table_on_a_page_of_the_write_window_is_refused ... ok
test a_relocation_crossing_a_fill_page_is_refused_only_for_a_chunked_writer ... ok
test a_relocation_form_a_rela_loader_would_not_apply_is_refused ... ok
test a_symbol_index_at_the_edge_of_the_bytes_reads_nothing ... ok
test a_symbol_index_is_bounded_by_the_whole_entries_of_its_table ... ok
test a_symbol_index_past_the_table_is_refused_except_for_relative ... ok
test a_symbol_section_whose_link_names_nothing_is_no_symbol_section ... ok
test a_symbol_table_that_cannot_be_read_names_nothing ... ok
test a_symbol_with_no_size_owns_everything_above_it ... ok
test a_table_needs_both_of_its_tags_and_a_non_zero_size ... ok
test a_tag_is_absent_or_present_never_zero_meaning_absent ... ok
test a_trailing_partial_relocation_is_not_a_relocation ... ok
test a_truncated_section_table_names_the_sections_it_covers ... ok
test an_aarch64_tls_descriptor_is_refused_by_name ... ok
test an_address_resolves_to_the_function_that_contains_it ... ok
test an_alias_pair_resolves_to_the_one_that_carries_a_size ... ok
test an_empty_symbol_table_answers_every_question_with_nothing ... ok
test an_executable_s_reservation_is_had_only_through_its_refusals ... ok
test an_unterminated_name_is_the_rest_of_the_string_table ... ok
test counts_are_per_kind_over_every_table ... ok
test data_symbols_and_zero_valued_ones_name_no_frame ... ok
test dladdr_names_the_symbol_glibc_names ... ok
test each_machine_reads_its_own_relocation_numbers ... ok
test every_written_type_is_validated_and_no_other_is ... ok
test everything_after_dt_null_is_ignored ... ok
test lookups_skip_undefined_symbols_and_the_null_entry ... ok
test one_byte_past_a_sized_symbol_is_not_that_symbol ... ok
test rela_dyn_is_found_by_shape_and_only_by_shape ... ok
test relocation_types_map_to_the_width_the_writers_use ... ok
test the_symbol_count_is_the_hash_tables_or_the_gap ... ok
test validation_refuses_a_write_outside_the_window_by_name ... ok

test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/tls.rs (target/debug/deps/tls-d5beb1df92b2f1d9)

running 11 tests
test a_module_lands_on_its_own_declared_alignment ... ok
test a_size_no_allocation_can_hold_has_no_plan ... ok
test an_alignment_that_is_not_a_power_of_two_has_no_plan ... ok
test each_machine_has_its_own_variant ... ok
test modules_are_placed_in_order_with_the_first_at_zero ... ok
test a_tpoff_no_segment_or_word_holds_is_refused ... ok
test the_dtv_is_never_overwritten_by_tls_data ... ok
test the_executables_extent_is_its_size_rounded_to_its_alignment ... ok
test tpoff_carries_the_addend ... ok
test variant_i_agrees_with_what_lld_linked ... ok
test variant_i_puts_the_first_module_where_its_linker_put_it ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_elide-ec7866da0b8a7d1f)

running 12 tests
test limit::tests::a_quiet_site_is_never_limited ... ok
test limit::tests::a_storm_is_said_to_its_burst_counted_after_and_reported_once ... ok
test tests::a_tail_cut_inside_a_character_drops_its_remainder ... ok
test tests::a_head_cut_inside_a_character_stops_before_it ... ok
test tests::a_value_that_fits_is_untouched ... ok
test tests::a_tail_wider_than_the_value_keeps_all_of_it ... ok
test tests::both_ends_survive_and_the_count_is_exact ... ok
test limit::tests::racing_sites_count_exactly ... ok
test tests::one_byte_past_what_is_kept_elides ... ok
test tests::nothing_renders_wider_than_widest ... ok
test tests::no_length_and_no_width_produces_invalid_utf8 ... ok
test tests::the_chunking_a_value_arrives_in_does_not_change_it ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_fat32-9a543f2935caa0c2)

running 18 tests
test dir::tests::a_write_time_keeps_the_even_second ... ok
test name::tests::anything_else_needs_one ... ok
test name::tests::basis_truncates_and_uppercases ... ok
test name::tests::checksum_rotates_and_is_not_constant ... ok
test name::tests::candidates_are_distinct_and_well_formed ... ok
test name::tests::groups_pad_with_terminator_then_filler ... ok
test name::tests::lone_surrogates_decode_to_a_name_rather_than_failing ... ok
test name::tests::exact_multiple_of_thirteen_has_no_terminator ... ok
test name::tests::plain_uppercase_names_need_no_long_entry ... ok
test name::tests::long_name_comparison_is_ascii_case_insensitive ... ok
test time::tests::clamps_instead_of_wrapping ... ok
test name::tests::rejects_what_fat_cannot_store ... ok
test name::tests::rejects_names_past_the_format_limit ... ok
test name::tests::hash_tails_differ_between_long_names ... ok
test time::tests::seconds_round_down_to_two ... ok
test time::tests::zero_entry_has_a_time ... ok
test time::tests::every_bit_pattern_decodes ... ok
test time::tests::every_representable_day_round_trips ... ok

test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/host_read.rs (target/debug/deps/host_read-054ce0316637f8c4)

running 10 tests
test a_four_kib_cluster_volume_reads_the_same ... ok
test walk_sees_exactly_what_the_host_wrote ... ok
test subdirectories_list_independently ... ok
test lookup_ignores_case ... ok
test extents_cover_the_file_and_point_at_its_bytes ... ok
test lowercase_short_names_survive ... ok
test missing_paths_are_not_found_rather_than_anything_else ... ok
test every_file_reads_back_byte_for_byte ... ok
test the_volume_label_is_not_a_file ... ok
test reads_land_correctly_at_every_offset_and_length ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/host_write.rs (target/debug/deps/host_write-5850e42c39a4048a)

running 21 tests
test empty_directories_are_removable_and_full_ones_are_not ... ok
test our_own_reader_agrees_with_the_host_on_our_own_volume ... ok
test creating_an_existing_name_in_another_case_is_refused ... ok
test a_log_file_written_a_line_at_a_time ... ok
test colliding_short_names_stay_unique ... ok
test rename_moves_a_file_between_directories ... ok
test files_crossing_cluster_boundaries_are_intact ... ok
test same_entry_is_case_insensitive_identity ... ok
test appending_extends_the_chain ... ok
test a_directory_grows_into_further_clusters ... ok
test rename_repoints_a_moved_directorys_parent ... ok
test the_host_sees_the_timestamp_we_stamped ... ok
test a_chain_that_outran_its_entry_is_reconciled ... ok
test every_fat_copy_stays_in_step ... ok
test the_host_accepts_a_volume_we_populated ... ok
test sparse_writes_zero_the_gap ... ok
test truncation_releases_clusters_and_the_host_agrees ... ok
test four_kib_clusters_write_correctly ... ok
test a_chain_no_entry_reaches_is_reconciled ... ok
test deleted_clusters_come_back ... ok
test a_full_volume_refuses_cleanly ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.00s

     Running tests/hostile.rs (target/debug/deps/hostile-c6039959a84466df)

running 33 tests
test a_bad_signature_is_not_a_volume ... ok
test a_fat_too_small_for_its_clusters_is_refused ... ok
test a_directory_tree_cycle_terminates ... ok
test a_longer_cycle_is_bounded_rather_than_endless ... ok
test a_directory_entry_pointing_outside_the_volume_is_refused ... ok
test a_device_that_fails_mid_read_reports_it ... ok
test a_long_name_with_a_wrong_checksum_falls_back_to_the_short_one ... ok
test a_crafted_entry_can_still_be_deleted ... ok
test a_cluster_that_links_to_itself_is_refused ... ok
test a_refused_flush_is_io ... ok
test a_stale_handle_over_a_reused_empty_slot_is_refused ... ok
test a_chain_link_outside_the_volume_is_refused ... ok
test a_crafted_zero_size_entry_cannot_write_outside_the_volume ... ok
test a_stale_handle_is_refused ... ok
test a_write_through_a_dead_handle_allocates_nothing ... ok
test a_volume_larger_than_its_device_is_truncated ... ok
test impossible_names_are_refused_not_mangled ... ok
test a_volume_too_small_for_fat32_is_refused ... ok
test lone_surrogates_in_a_long_name_produce_a_name ... ok
test a_cyclic_directory_chain_terminates ... ok
test the_caller_limit_is_the_named_directorys_and_not_the_volumes ... ok
test removing_a_cyclic_chain_never_leaves_an_entry_naming_free_clusters ... ok
test the_caller_limit_refuses_rather_than_truncates ... ok
test nonsense_long_name_ordinals_do_not_break_the_scan ... ok
test the_corpus_is_a_volume_we_can_read ... ok
test a_directory_longer_than_the_entry_bound_is_refused ... ok
test truncating_a_cyclic_chain_does_not_free_the_clusters_it_keeps ... ok
test writes_past_the_format_limit_are_refused ... ok
test an_empty_file_is_not_a_corrupt_directory ... ok
test every_illegal_bpb_field_is_refused ... ok
test random_damage_to_the_metadata_never_panics ... ok
test random_damage_to_directory_entries_never_panics ... ok
test every_boot_sector_byte_can_be_anything ... ok

test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.77s

     Running tests/refused_writes.rs (target/debug/deps/refused_writes-ad10e0710e1ba982)

running 20 tests
test a_remove_reports_a_corrupt_chain_under_the_name_it_erased ... ok
test a_remove_whose_free_the_device_fails_answers_ok_and_the_next_call_the_failure ... ok
test a_stop_that_refuses_every_retry_for_a_while_leaks_nothing ... ok
test every_refused_write_of_a_long_name_create_is_undone ... ok
test every_refused_write_of_a_remove_dir_leaves_nothing_behind ... ok
test every_refused_write_of_a_rename_is_undone ... ok
test every_refused_write_of_a_truncation_is_carried_through ... ok
test every_refused_read_of_a_truncation_is_retried_to_the_same_end ... ok
test every_refused_read_of_a_truncation_to_zero_is_retried_to_the_same_end ... ok
test the_deepest_repair_reaches_its_bound_and_no_further ... ok
test a_call_that_refused_nothing_keeps_the_free_count ... ok
test every_refused_write_of_a_directory_growth_is_undone ... ok
test every_refused_write_of_an_append_is_undone ... ok
test every_refused_write_of_a_first_allocation_is_undone ... ok
test every_refused_write_of_an_append_and_its_sync_converges ... ok
test every_refused_write_of_a_truncation_to_zero_is_carried_through ... ok
test every_refused_write_of_a_remove_leaves_nothing_behind ... ok
test every_refused_write_of_a_nested_create_dir_is_undone ... ok
test an_unlanded_rollback_is_the_answer ... ok
test a_stop_at_any_write_leaves_only_the_named_windows ... ok

test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.58s

     Running tests/replace_rename.rs (target/debug/deps/replace_rename-26aeae76b6ebf7eb)

running 2 tests
test a_failed_rollback_names_where_the_destination_went ... ok
test source_move_failure_restores_destination_before_any_free ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_fat32_check-9b00a76f29be5a2b)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/teeth.rs (target/debug/deps/teeth-e08b231553914a95)

running 66 tests
test a_cluster_past_the_formats_ceiling ... ok
test a_cluster_that_is_not_a_power_of_two_sectors ... ok
test a_chain_link_into_the_bad_cluster_mark ... ok
test a_directory_entry_carrying_a_size ... ok
test a_boot_sector_that_does_not_jump ... ok
test a_chain_that_links_back_into_itself ... ok
test a_chain_link_that_is_not_a_cluster ... ok
test a_boot_sector_without_its_signature ... ok
test a_fat_of_no_sectors ... ok
test a_fat_too_small_for_the_clusters_it_must_describe ... ok
test a_fat_zero_that_does_not_carry_the_media_byte ... ok
test a_file_holding_more_clusters_than_its_size_needs ... ok
test a_fat_one_that_is_not_an_end_of_chain_mark ... ok
test a_dot_entry_naming_someone_elses_cluster ... ok
test a_dot_entry_in_the_root_directory ... ok
test a_directory_entry_naming_no_cluster ... ok
test a_free_count_the_writer_left_unknown ... ok
test a_fat32_volume_claiming_a_fixed_root_directory ... ok
test a_long_name_run_no_short_entry_follows ... ok
test a_long_name_run_of_more_entries_than_a_long_name_has ... ok
test a_fat32_volume_counting_sectors_in_the_sixteen_bit_field ... ok
test a_long_name_entry_with_a_type_the_format_reserves ... ok
test a_long_name_entry_naming_a_cluster ... ok
test a_fat32_volume_sizing_its_fat_in_the_sixteen_bit_field ... ok
test a_dot_dot_naming_the_root_cluster_instead_of_zero ... ok
test a_long_name_run_whose_checksum_is_not_its_short_names ... ok
test a_fat_copy_left_behind_by_a_write ... ok
test a_long_name_run_whose_ordinals_do_not_count_down ... ok
test a_long_name_run_that_does_not_reach_ordinal_one ... ok
test a_long_name_run_that_does_not_begin_with_the_last_entry_flag ... ok
test a_next_free_hint_that_is_not_a_cluster ... ok
test a_file_system_version_this_specification_does_not_define ... ok
test a_second_volume_label_in_the_root ... ok
test a_file_whose_size_needs_more_clusters_than_it_holds ... ok
test a_root_cluster_that_is_not_a_cluster ... ok
test a_media_byte_the_format_does_not_define ... ok
test a_report_that_stops_enumerating_says_it_stopped ... ok
test a_free_count_that_is_not_the_free_count ... ok
test a_reserved_entry_byte_carrying_something_nothing_defines ... ok
test a_long_name_entry_ahead_of_the_dot_entries ... ok
test a_volume_flagged_as_not_cleanly_unmounted ... ok
test a_sector_size_the_format_does_not_define ... ok
test a_volume_label_outside_the_root_directory ... ok
test a_subdirectory_that_does_not_begin_with_dot ... ok
test a_volume_shorter_than_its_boot_sector_says ... ok
test a_volume_flagged_as_having_met_a_disk_error ... ok
test a_tree_deeper_than_the_walk_follows ... ok
test an_entry_naming_a_cluster_outside_the_volume ... ok
test an_fsinfo_sector_outside_the_reserved_region ... ok
test a_volume_that_is_all_metadata ... ok
test an_fsinfo_without_its_lead_signature ... ok
test fewer_bytes_than_a_boot_sector ... ok
test a_volume_with_too_few_clusters_to_be_fat32 ... ok
test an_fsinfo_without_its_struct_signature ... ok
test an_unfinished_fixture_is_not_clean ... ok
test an_fsinfo_without_its_trail_signature ... ok
test an_active_fat_the_volume_does_not_have ... ok
test a_volume_of_no_sectors ... ok
test an_orphaned_ring_of_clusters ... ok
test no_fat_at_all ... ok
test no_reserved_sectors_at_all ... ok
test the_fixture_is_clean ... ok
test the_lowercase_name_bits_are_not_a_complaint ... ok
test clusters_allocated_and_reachable_from_nothing ... ok
test two_entries_in_one_directory_with_the_same_short_name ... ok
test two_files_holding_one_cluster ... ok

test result: ok. 66 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_gicv3-85668e2fdba4881c)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/gicv3.rs (target/debug/deps/gicv3-a7593114838353de)

running 9 tests
test sgi_names_aff0_by_range_and_bit ... ok
test sgi_to_cpu_zero_is_bit_zero_of_range_zero ... ok
test affinity_drops_mpidr_flags_between_aff2_and_aff3 ... ok
test sgi_to_every_other_cpu_is_irm_and_the_intid_alone ... ok
test unpacking_puts_each_field_back_and_no_flag ... ok
test walk_steps_over_virtual_lpi_frames ... ok
test walk_steps_two_frames_without_them ... ok
test walk_stops_at_the_last ... ok
test walk_stops_at_the_region_end ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_gpt-1688af75d0970822)

running 7 tests
test crc32::tests::catalogue_check_value ... ok
test crc32::tests::not_castagnoli ... ok
test crc32::tests::streaming_matches_one_shot ... ok
test guid::tests::esp_type_guid_round_trips ... ok
test guid::tests::zero_is_zero ... ok
test guid::tests::toyos_root_text_is_the_type_guid ... ok

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Earlier host run at d719cc9d4 (the same tree but issues/), EXIT=1 on the toyos SDK's lane proof, filed as issues/a-lane-reader-counted-one-refusal-fewer-than-its-writer-made.md, part 3 of 8

test tests::the_block_sizes_parsed_are_the_declared_range ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/mutate.rs (target/debug/deps/mutate-5f160bce851bb0fc)

running 1 test
test a_resealed_table_with_any_value_bent_never_panics_and_hands_back_only_partitions ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.50s

     Running tests/oracle.rs (target/debug/deps/oracle-21195d4b2f2024ba)

running 3 tests
test both_readers_spell_the_types_alike ... ok
test on_tables_uefi_lays_out_both_readers_agree_entry_for_entry ... ok
test on_bent_tables_every_disagreement_is_a_named_difference ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s

     Running tests/parse.rs (target/debug/deps/parse-7e7c8abeb42665bb)

running 43 tests
test a_damaged_primary_falls_back_to_a_good_backup ... ok
test a_device_with_no_room_for_a_table ... ok
test a_backup_retry_leaves_no_slot_of_the_primary ... ok
test a_list_is_every_used_entry_in_order ... ok
test a_list_leaves_no_slot_it_did_not_fill ... ok
test a_billion_entries_is_refused_not_read ... ok
test a_tiny_entry_array_cannot_buy_the_backup_header ... ok
test a_four_kibibyte_block_device_parses ... ok
test a_partition_over_the_table_is_refused ... ok
test a_partition_outside_the_disk_is_refused ... ok
test a_read_that_does_not_happen_is_an_error ... ok
test a_type_scan_over_a_damaged_array_is_refused ... ok
test a_type_scan_lists_every_entry_of_that_type ... ok
test a_backwards_partition_is_refused ... ok
test a_type_scan_says_how_many_it_could_not_hand_back ... ok
test a_valid_primary_that_lacks_the_guid_is_not_retried_against_the_backup ... ok
test a_zero_guid_matches_nothing ... ok
test an_array_lba_near_the_top_of_the_range_does_not_wrap ... ok
test absent_guid_is_not_found_and_says_how_many_there_were ... ok
test a_usable_range_reaching_the_backup_gpt_is_refused ... ok
test an_honest_table_on_a_floored_device_view_parses ... ok
test both_copies_damaged_is_refused_by_name ... ok
test block_sizes_outside_the_supported_range ... ok
test an_overlapping_neighbour_is_refused ... ok
test finds_the_partition_by_unique_guid ... ok
test each_guid_finds_its_own_entry ... ok
test header_reserved_word ... ok
test header_must_claim_lba_one ... ok
test header_revision ... ok
test header_signature ... ok
test hybrid_mbr_is_refused ... ok
test entry_size_must_be_a_power_of_two_multiple_of_128_that_fits_a_block ... ok
test header_size_bounds ... ok
test no_protective_mbr ... ok
test one_flipped_bit_in_the_header ... ok
test the_array_ends_where_the_header_says ... ok
test one_flipped_bit_in_the_entry_array ... ok
test the_array_may_not_sit_on_the_header_or_past_the_usable_range ... ok
test zero_entries_is_refused ... ok
test usable_range_must_be_a_range_inside_the_device ... ok
test two_entries_claiming_the_target_guid_are_refused ... ok
test the_array_ceiling_is_where_it_says_it_is ... ok
test no_byte_of_the_table_can_panic_the_parser ... ok

test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.40s

     Running unittests src/lib.rs (target/debug/deps/toyos_hda-d8e32426ac3fcbc4)

running 88 tests
test caps::tests::an_unsoldered_pin_still_calls_itself_a_speaker ... ok
test caps::tests::eight_channel_display_audio_decodes_its_channel_count ... ok
test caps::tests::both_laptop_output_pins_can_power_an_external_amplifier ... ok
test caps::tests::a_widget_type_keeps_the_nibble_it_was_decoded_from ... ok
test caps::tests::the_converter_amp_has_gain_and_cannot_mute ... ok
test caps::tests::qemu_s_converter_offers_it_too ... ok
test caps::tests::the_internal_speaker_is_fixed_and_the_jack_is_a_jack ... ok
test caps::tests::the_laptop_s_speaker_dac_decodes_as_a_stereo_converter ... ok
test caps::tests::the_laptop_s_speaker_pin_has_a_connection_list_and_an_output_amp ... ok
test caps::tests::the_laptop_s_vendor_widget_is_the_one_with_processing_coefficients ... ok
test caps::tests::the_pin_amp_can_mute_and_has_no_gain ... ok
test caps::tests::the_laptop_s_converter_offers_what_this_pipeline_plays ... ok
test config::tests::a_hop_shared_by_two_pins_is_powered_once ... ok
test config::tests::qemus_path_writes_its_amplifier_on_the_converter_and_none_on_the_pin ... ok
test config::tests::every_widget_on_the_path_that_has_a_power_state_is_told_d0 ... ok
test config::tests::both_machines_offer_the_one_rate_this_driver_asks_for ... ok
test config::tests::a_converter_that_does_not_offer_the_rate_is_a_refusal_and_not_a_substitution ... ok
test config::tests::the_converter_learns_the_format_and_the_tag_last ... ok
test config::tests::nothing_in_the_sequence_ever_sets_the_mute_bit ... ok
test config::tests::the_jack_is_told_to_drive_headphones_and_the_speaker_is_not ... ok
test config::tests::the_laptop_s_speaker_is_told_to_power_its_external_amplifier ... ok
test graph::tests::a_function_type_keeps_the_byte_it_was_decoded_from ... ok
test fixture::tests::every_pin_in_the_fixture_has_a_configuration_default ... ok
test fixture::tests::the_converters_keep_their_rates ... ok
test graph::tests::a_list_shorter_than_it_declared_is_refused ... ok
test graph::tests::a_long_form_entry_carries_sixteen_bits ... ok
test fixture::tests::the_laptop_fixture_carries_both_codecs_and_every_widget ... ok
test config::tests::the_two_halves_of_the_laptop_s_volume_control_are_written_where_they_exist ... ok
test graph::tests::a_long_form_node_past_the_node_space_is_refused ... ok
test graph::tests::a_range_entry_expands_from_the_entry_before_it ... ok
test graph::tests::a_range_longer_than_the_bound_is_refused_rather_than_truncated ... ok
test graph::tests::a_range_with_nothing_before_it_is_refused ... ok
test graph::tests::a_range_that_runs_backwards_is_not_a_range ... ok
test graph::tests::a_six_entry_mixer_list_spans_two_responses ... ok
test graph::tests::the_laptop_s_headphone_pin_names_two_converters ... ok
test graph::tests::the_laptop_s_speaker_pin_names_one ... ok
test path::tests::a_cycle_is_a_refusal_and_not_a_hang ... ok
test path::tests::a_selector_on_the_way_is_told_which_input_to_take ... ok
test path::tests::a_connection_naming_a_node_outside_the_group_is_refused_by_name ... ok
test fixture::tests::the_speaker_pin_round_trips_through_the_log_format ... ok
test path::tests::a_speaker_pin_with_no_converter_behind_it_is_refused ... ok
test path::tests::an_unwired_speaker_pin_does_not_win_by_coming_first ... ok
test path::tests::a_speaker_outranks_a_line_out_whatever_order_the_nodes_are_in ... ok
test path::tests::qemu_has_no_speaker_and_binds_its_line_out ... ok
test path::tests::the_display_codec_does_not_win_when_it_comes_first ... ok
test path::tests::display_audio_alone_is_a_refusal_naming_it ... ok
test probe::tests::a_group_that_is_not_audio_is_kept_and_not_walked ... ok
test probe::tests::a_subordinate_range_running_off_the_node_space_is_refused_by_name ... ok
test path::tests::the_pin_amp_the_laptop_offers_is_the_one_that_can_mute ... ok
test probe::tests::a_widget_count_past_the_bound_costs_the_widgets_past_it_and_nothing_else ... ok
test stream::tests::a_buffer_that_would_wrap_the_address_space_is_refused ... ok
test path::tests::the_laptop_picks_its_internal_speaker_and_the_jack_that_shares_a_converter ... ok
test stream::tests::a_built_format_decodes_back_to_the_rate_it_was_asked_for ... ok
test path::tests::only_one_of_the_laptop_s_five_speaker_labelled_pins_is_a_candidate ... ok
test stream::tests::a_divided_rate_uses_the_divisor_field ... ok
test probe::tests::walking_qemus_two_codecs_binds_the_line_out ... ok
test stream::tests::a_driver_that_slept_a_whole_lap_is_told_the_mask_cannot_place_the_engine ... ok
test stream::tests::a_last_index_outside_the_ring_is_refused ... ok
test probe::tests::a_codec_statests_named_and_the_link_does_not_carry_is_named_not_skipped ... ok
test stream::tests::a_mask_names_the_period_the_engine_returns_to_first ... ok
test stream::tests::a_mask_that_is_not_one_run_is_refused_rather_than_placed ... ok
test stream::tests::a_period_count_past_the_mask_is_refused_rather_than_masked_short ... ok
test stream::tests::a_multiplied_rate_uses_the_multiplier_field ... ok
test stream::tests::a_position_inside_the_period_still_being_played_marks_nothing_new ... ok
test stream::tests::a_position_past_the_buffer_is_not_an_index ... ok
test stream::tests::a_rate_the_field_cannot_express_is_refused_and_not_rounded ... ok
test probe::tests::the_walked_laptop_binds_the_same_speaker_the_parsed_one_does ... ok
test stream::tests::a_ring_with_nothing_to_wrap_to_is_refused ... ok
test stream::tests::a_run_that_wraps_does_not_start_at_its_lowest_bit ... ok
test stream::tests::an_unrepresentable_width_or_channel_count_is_refused ... ok
test stream::tests::completion_marks_every_period_between_two_positions ... ok
test stream::tests::completion_wraps_the_ring ... ok
test stream::tests::every_rate_linux_tabulates_encodes_to_the_number_linux_tabulates ... ok
test stream::tests::forty_eight_kilohertz_is_the_other_base ... ok
test stream::tests::the_pipeline_s_own_shape_builds_a_ring ... ok
test stream::tests::the_rate_this_pipeline_plays_encodes_as_the_forty_four_one_base ... ok
test stream::tests::widths_and_channel_counts_land_in_their_own_fields ... ok
test verb::tests::a_range_running_past_the_node_space_is_refused ... ok
test verb::tests::all_ones_is_not_a_response ... ok
test probe::tests::walking_the_laptop_reaches_the_graph_its_own_log_describes ... ok
test verb::tests::an_address_and_a_node_print_the_way_a_dump_names_them ... ok
test verb::tests::long_verb_puts_its_payload_under_a_four_bit_verb ... ok
test verb::tests::present_reports_every_codec_and_not_the_first ... ok
test stream::tests::every_position_completed_can_report_reads_back_as_the_run_it_walked ... ok
test verb::tests::short_verb_is_the_probe_s_encoding ... ok
test verb::tests::statests_bit_15_is_not_an_address ... ok
test verb::tests::the_laptop_s_widget_range_decodes_to_its_own_nodes ... ok
test verb::tests::zero_subordinates_is_no_range_at_all ... ok

test result: ok. 88 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_i219-34ecf7da27a76327)

running 90 tests
test tests::a_frame_arrives_whole ... ok
test tests::a_frame_longer_than_a_transmit_buffer_is_refused_and_not_truncated ... ok
test tests::a_buffer_given_back_out_of_turn_does_not_carry_the_tail_over_an_older_one ... ok
test tests::a_frame_goes_out_whole ... ok
test tests::a_grant_that_never_comes_is_refused_by_name_and_the_request_withdrawn ... ok
test tests::a_claim_that_stops_answering_is_handed_up_and_not_read_as_quiet ... ok
test tests::a_flag_the_part_already_let_go_is_not_written_again ... ok
test tests::a_flag_that_never_comes_does_not_stop_the_reset ... ok
test tests::a_grant_that_comes_late_inside_the_bound_is_taken ... ok
test tests::a_full_transmit_ring_answers_room_0 ... ok
test tests::a_link_drop_does_not_lose_the_ring ... ok
test tests::a_flag_another_agent_holds_is_neither_asked_over_nor_cleared ... ok
test tests::a_lying_length_is_refused_and_the_frames_behind_it_still_arrive ... ok
test tests::a_ladder_stopped_on_smbus_leaves_the_mac_off_it ... ok
test tests::a_link_that_is_down_has_no_room ... ok
test tests::a_part_is_told_which_vector_each_cause_uses ... ok
test tests::a_part_that_does_not_take_ivar_is_refused ... ok
test tests::a_part_that_does_not_take_rctl_is_refused ... ok
test tests::a_master_that_never_goes_quiet_does_not_stop_the_bring_up ... ok
test tests::a_part_with_no_station_address_is_refused ... ok
test tests::a_partner_on_an_unconfigured_phy_raises_no_link ... ok
test tests::a_phy_in_reach_is_asked_once_and_left_powered ... ok
test tests::a_phy_left_in_loopback_or_configured_by_hand_raises_no_link ... ok
test tests::a_multicast_group_sets_the_one_table_bit_its_address_hashes_to ... ok
test tests::a_mac_that_keeps_its_phy_down_is_a_phy_no_cycle_reaches ... ok
test tests::a_part_that_takes_none_of_the_datasheets_latitudes_is_brought_up_the_same_way ... ok
test tests::a_phy_that_is_not_the_one_this_map_describes_is_refused_by_its_identifier ... ok
test tests::a_phy_reset_restores_the_defaults_and_not_the_state_the_claim_inherited ... ok
test tests::a_refused_descriptor_does_not_carry_the_tail_over_a_frame_still_held ... ok
test tests::a_register_nothing_decodes_is_refused_and_never_written ... ok
test tests::a_platform_that_asks_for_low_power_link_up_in_d0a_gets_it ... ok
test tests::a_reset_that_never_finishes_is_refused ... ok
test tests::a_spurious_interrupt_costs_a_pass_and_nothing_else ... ok
test tests::a_part_that_grants_over_the_engines_standing_bit_is_brought_up ... ok
test tests::a_window_or_grant_too_small_is_refused ... ok
test tests::a_window_that_reads_ones_is_refused ... ok
test tests::a_release_over_a_window_of_ones_writes_nothing ... ok
test tests::a_seeded_workload_loses_nothing_and_invents_nothing ... ok
test tests::a_request_registered_while_the_engine_holds_it_is_still_granted ... ok
test tests::a_ring_never_written_back_is_refused ... ok
test tests::a_phy_left_out_of_reach_is_climbed_to_before_the_reset ... ok
test tests::a_phy_reset_the_firmware_blocks_is_never_issued ... ok
test tests::a_phy_left_in_low_power_link_up_links_at_a_gigabit ... ok
test tests::causes_are_acknowledged_by_writing_them_back ... ok
test tests::bring_up_programs_what_the_initialization_sections_name ... ok
test tests::every_reading_of_the_other_two_ownership_bits_names_who_stands_beside_the_flag ... ok
test tests::null_descriptor_padding_is_not_a_frame ... ok
test tests::one_pass_hands_up_at_most_its_budget ... ok
test tests::frames_come_up_in_order_under_batched_and_reordered_write_back ... ok
test tests::ones_on_the_way_out_do_not_leave_the_flag_standing ... ok
test tests::ones_through_the_whole_release_bound_write_nothing ... ok
test tests::quiesce_stops_what_a_previous_holder_left_running ... ok
test tests::refusals::a_descriptor_with_nothing_in_it_is_refused ... ok
test tests::refusals::a_descriptor_without_end_of_packet_is_refused ... ok
test tests::refusals::a_frame_the_hardware_reported_an_error_on_is_refused ... ok
test tests::refusals::more_bytes_than_the_buffer_holds_is_refused ... ok
test tests::the_82574s_own_phy_register_map_is_refused_by_name ... ok
test tests::a_written_back_descriptor_returns_room ... ok
test tests::ones_inside_the_grant_wait_do_not_leave_the_request_standing ... ok
test tests::a_ring_a_link_change_left_full_stays_the_parts ... ok
test tests::the_driver_and_the_macs_statistics_count_the_same_frames ... ok
test tests::an_mdi_read_the_part_could_not_complete_is_refused_by_name ... ok
test tests::host_wake_up_left_armed_is_cleared_behind_the_reset ... ok
test tests::the_head_register_does_run_ahead_of_memory ... ok
test tests::the_link_going_away_and_coming_back_is_seen ... ok
test tests::the_oem_bits_carry_the_platforms_d0a_policy_and_nothing_else ... ok
test tests::an_interconnect_in_transition_is_waited_out_and_never_written_over ... ok
test tests::every_ask_carries_the_parts_own_word_and_keeps_the_pace ... ok
test tests::a_phy_no_rung_reaches_is_refused_after_the_reset ... ok
test tests::the_oem_bits_restart_follows_the_control_restart_where_a_phy_reset_is_allowed ... ok
test tests::the_receiver_reporting_on_itself_is_counted ... ok
test tests::the_refusal_names_each_agent_standing_beside_the_flag ... ok
test tests::the_refusal_names_the_last_reading_before_the_deadline ... ok
test tests::the_pchs_mac_gets_its_three_registers_and_the_82574_none ... ok
test tests::the_transmit_cause_is_armed_only_when_asked ... ok
test tests::the_ownership_claim_leaves_the_rest_of_the_register_standing ... ok
test tests::what_one_power_reading_decides ... ok
test tests::what_the_wake_and_the_full_reset_write ... ok
test tests::transmit_descriptors_are_reclaimed_under_batched_write_back ... ok
test tests::the_phy_is_found_at_whichever_address_answers_its_identifier ... ok
test tests::an_mdi_transaction_that_never_reports_ready_is_refused_by_name ... ok
test tests::the_phy_is_brought_up_and_the_mac_sees_the_link_it_raises ... ok
test tests::the_power_step_is_what_lets_an_mdi_cycle_run_at_all ... ok
test tests::no_two_accesses_to_the_arbitration_are_nearer_than_the_pace ... ok
test tests::the_word_to_the_firmware_goes_with_the_driver ... ok
test tests::the_advertised_abilities_are_what_the_link_resolves_to ... ok
test tests::a_descriptors_fields_are_read_only_after_an_observe_that_follows_the_load_that_found_dd ... ok
test tests::the_interface_is_given_back_on_every_path_that_took_it ... ok
test tests::a_tail_register_is_written_only_after_a_publish_that_follows_the_last_descriptor_store ... ok
test tests::a_burst_past_the_ring_leaves_whole_on_the_room_it_is_told ... ok

test result: ok. 90 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.58s

     Running unittests src/lib.rs (target/debug/deps/toyos_inspect-f58f964bd2fd297e)

running 25 tests
test dev::tests::a_path_two_records_render_to_is_refused_by_name ... ok
test dev::tests::a_star_never_lines_up_the_parts_of_an_address ... ok
test dev::tests::every_record_renders_to_paths_the_grammar_accepts ... ok
test dev::tests::the_header_is_read_at_the_kernels_offsets ... ok
test invocation::tests::a_command_line_is_one_optional_selector_and_one_optional_flag ... ok
test kernel::tests::a_cpu_two_records_name_is_refused_by_its_path ... ok
test kernel::tests::a_stale_cpu_says_so_and_an_unread_one_says_only_that ... ok
test kernel::tests::an_absent_counter_has_no_path ... ok
test kernel::tests::every_counter_a_record_carries_is_a_path_the_grammar_accepts ... ok
test path::tests::a_path_is_refused_by_name ... ok
test render::tests::json_is_one_flat_object_with_typed_values ... ok
test selector::tests::a_malformed_selector_is_refused_by_name ... ok
test render::tests::a_line_is_path_equals_value ... ok
test selector::tests::a_pathological_selector_is_answered_in_polynomial_time ... ok
test selector::tests::a_selector_reaches_only_the_owners_it_can_name ... ok
test tests::every_owner_root_is_one_valid_segment_and_distinct ... ok
test wire::tests::a_malformed_answer_is_refused_by_name ... ok
test selector::tests::a_star_is_one_or_more_whole_segments ... ok
test wire::tests::an_answer_for_another_owner_is_refused ... ok
test wire::tests::a_snapshot_round_trips ... ok
test wire::tests::every_truncation_is_refused ... ok
test wire::tests::an_owner_cannot_put_a_second_line_in_a_value - should panic ... ok
test wire::tests::an_owner_cannot_answer_one_path_twice - should panic ... ok
test wire::tests::an_owner_cannot_put_a_path_outside_the_grammar - should panic ... ok
test wire::tests::an_owner_that_answers_past_one_frame_is_told_so ... ok

test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_its-19d0b13c69263954)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/encodings.rs (target/debug/deps/encodings-641e75abe325d634)

running 21 tests
test a_devices_events_are_at_least_two_and_no_more_than_the_its_has_bits_for ... ok
test a_collection_is_one_the_its_holds_or_its_table_does ... ok
test a_redistributor_is_named_as_the_its_asks_by_number_or_by_address ... ok
test a_redistributor_that_reads_other_bits_back_has_no_lpis_of_the_layout ... ok
test a_table_is_sized_in_its_own_pages_for_the_entries_it_must_hold ... ok
test an_event_is_one_its_devices_table_holds ... ok
test a_table_is_given_flat_valid_and_counted_in_its_own_pages ... ok
test a_table_register_says_what_it_backs_and_how_it_is_read ... ok
test an_its_without_physical_lpis_is_refused ... ok
test an_offset_register_names_a_command_by_its_offset_field_alone ... ok
test an_lpis_configuration_is_its_priority_a_set_bit_and_its_enable ... ok
test an_lpi_is_an_intid_from_8192_that_the_tables_and_the_distributor_both_count ... ok
test each_command_holds_its_number_and_parameters_where_its_figure_has_them ... ok
test an_lpi_layout_is_inside_the_distributors_intids ... ok
test inv_and_discard_hold_a_device_and_an_event_and_nothing_else ... ok
test the_command_queue_is_counted_in_4_kib_pages_and_holds_one_command_fewer ... ok
test the_configuration_table_starts_at_intid_8192_and_the_pending_table_at_zero ... ok
test the_its_registers_sit_where_tables_12_33_and_12_34_have_them ... ok
test the_redistributors_base_registers_name_the_two_tables ... ok
test the_redistributors_lpi_registers_sit_where_table_12_27_has_them ... ok
test the_type_register_says_how_wide_an_its_is ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_keymap-d6d5366800ae26a6)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/compose.rs (target/debug/deps/compose-85f070a533090403)

running 17 tests
test altgr_layer ... ok
test composition ... ok
test dead_keys_emit_nothing_when_pressed ... ok
test dead_then_other_dead ... ok
test dead_then_space_and_doubled ... ok
test dedicated_umlauts ... ok
test fallthrough ... ok
test german_is_unchanged_by_the_dead_key_work ... ok
test iso_key ... ok
test modifiers_do_not_break_composition ... ok
test only_swiss_german_has_dead_keys ... ok
test qwertz ... ok
test reset_drops_pending ... ok
test swiss_german_mac_is_untouched ... ok
test unknown_layout_is_named_as_unknown ... ok
test us_is_the_default_and_still_types_ascii ... ok
test worst_case_fallthrough_fits_max_emit ... ok

test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/detect.rs (target/debug/deps/detect-0e8242c4002bb92e)

running 9 tests
test candidates_narrow ... ok
test every_layout_is_reachable ... ok
test inconsistent_first_press_is_unrecognized ... ok
test inconsistent_second_press_is_unrecognized ... ok
test legends_are_renderable ... ok
test question_table_is_well_formed ... ok
test the_qwertz_three_take_two ... ok
test us_takes_one_press ... ok
test never_confident_without_evidence ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/tables.rs (target/debug/deps/tables-be2af0c72a3f1e53)

running 1 test
test golden ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/translate.rs (target/debug/deps/translate-fefbf29b6fa572e2)

running 10 tests
test an_escape_sequence_does_not_depend_on_the_layout ... ok
test a_control_code_is_the_key_position_not_the_letter ... ok
test an_undefined_key_does_not_consume_a_pending_diacritic ... ok
test an_unknown_name_leaves_the_layout_alone ... ok
test arrows_and_page_keys_send_escape_sequences ... ok
test changing_layout_drops_a_pending_diacritic ... ok
test ctrl_makes_control_codes_of_the_letter_row ... ok
test the_default_layout_is_us ... ok
test the_swiss_german_gates_own_sequence ... ok
test two_translators_do_not_share_a_pending_diacritic ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_libc_copies-ee3949aad8583456)

running 48 tests
test dladdr_symbols::an_image_holds_its_load_segment_and_starts_at_its_page ... ok
test descriptor_requests::fcntl_reads_an_int_argument_from_the_lower_half_of_its_register ... ok
test dladdr_symbols::either_count_reaches_the_symbol_at_its_address ... ok
test errno_codes::every_code_libc_answers_with_is_errno_h_s ... ok
test exact_hex::tests::the_formats_corners_and_ties_round_to_their_bits ... ok
test descriptor_requests::f_dupfd_meets_its_floor_holding_one_duplicate_at_most ... ok
test fparts_differential::logb_is_the_host_libraries_and_a_zero_its_pole ... ok
test fparts_differential::modf_is_the_host_libraries ... ok
test internet_addresses::a_buffer_too_short_for_the_text_is_refused_as_the_host_refuses_it ... ok
test internet_addresses::a_number_past_32_bits_or_without_digits_is_no_address ... ok
test internet_addresses::a_number_with_a_zero_before_another_digit_is_no_dotted_quad ... ok
test descriptor_requests::each_descriptor_keeps_its_own_close_on_exec_mark ... ok
test internet_addresses::a_sockaddr_holds_its_port_and_address_in_network_order ... ok
test memory_refusals::madvise_takes_linuxs_hints_and_refuses_its_discard ... ok
test internet_addresses::an_address_is_truncated_to_the_callers_buffer_as_the_host_truncates_it ... ok
test internet_addresses::another_family_is_refused_as_the_host_refuses_it ... ok
test link_requests::readlink_refuses_an_empty_buffer_and_one_no_ssize_t_counts ... ok
test listing_reader::a_name_fits_d_name_with_its_nul_or_is_refused ... ok
test internet_addresses::an_address_is_written_as_the_host_writes_it ... ok
test listing_reader::an_answer_is_asked_again_until_it_fits ... ok
test memory_refusals::a_length_names_the_pages_it_reaches_into ... ok
test memory_refusals::mmap_refuses_what_the_kernel_cannot_map_and_nothing_else ... ok
test memory_refusals::posix_madvise_takes_its_five_and_only_them ... ok
test poll_requests::a_descriptor_named_twice_is_watched_once_for_both_interests ... ok
test poll_requests::each_descriptor_named_once_has_its_own_watch ... ok
test signal_masks::each_how_changes_the_mask_as_posix_says ... ok
test signal_masks::sigaddset_adds_its_signal_alone ... ok
test signal_masks::the_full_set_holds_every_signal ... ok
test stream_ends::a_read_of_zero_is_the_peers_fin_only_while_the_send_pipe_is_read ... ok
test stream_ends::a_write_the_send_pipe_refuses_for_its_reader_is_a_reset ... ok
test socket_options::an_options_value_crosses_as_the_hosts_does ... ok
test strtonum_differential::the_grammar_s_corners_read_as_judged ... ok
test tests::a_disjoint_copy_agrees_either_way ... ok
test strtonum_differential::random_integers_read_as_the_host_s ... ok
test tests::every_fill_agrees_with_fill ... ok
test prototypes::every_prototype_is_a_definition_and_every_definition_is_declared ... ok
test tests::the_square_roots_are_the_correctly_rounded_ones ... ok
test text_differential::strnlen_is_the_host_libraries ... ok
test text_differential::every_signal_signal_h_numbers_has_glibcs_text ... ok
test utf8_differential::a_refusal_starts_the_next_character_afresh ... ok
test long_double::strtold_widens_as_compiler_builtins_does ... ok
test tests::every_copy_agrees_with_copy_within ... ok
test strtonum_differential::random_decimal_numbers_round_as_the_host_s ... ok
test utf8_differential::every_sequence_to_four_bytes_agrees_with_from_utf8 ... ok
test exact_hex::tests::it_rounds_as_the_machine_does ... ok
test internet_addresses::a_dotted_quad_reads_as_the_host_reads_it ... ok
test strtonum_differential::random_hexadecimal_numbers_round_as_ieee_754_rounds_them ... ok
test internet_addresses::numbers_and_dots_read_as_the_host_reads_them ... ok

test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.87s

     Running unittests src/lib.rs (target/debug/deps/toyos_logstream-eba0d135b9885853)

running 19 tests
test tests::a_kernel_record_and_its_continuation_are_no_programs ... ok
test tests::a_control_byte_is_written_and_never_passed ... ok
test tests::a_head_names_severity_thread_and_process_and_reads_back ... ok
test tests::a_continuation_wears_its_kernel_records_severity_across_a_programs_line ... ok
test tests::a_registration_round_trips_and_a_malformed_one_is_refused ... ok
test tests::a_tag_is_one_word_of_the_names_charset_and_no_other_sayers ... ok
test tests::every_sayers_head_reads_back_and_nothing_else_does ... ok
test tests::a_program_line_reads_back_as_it_was_written ... ok
test tests::a_line_past_the_bound_is_let_go_in_pieces_and_nothing_is_lost ... ok
test tests::a_reader_is_never_left_inside_a_line_even_by_an_eviction ... ok
test tests::a_records_time_is_read_inside_its_bracket_and_nowhere_else ... ok
test tests::a_program_lines_time_is_read_inside_its_head_and_nowhere_else ... ok
test tests::lines_are_whole_however_the_writes_split_them ... ok
test tests::a_reader_at_any_offset_gets_the_bytes_after_it_in_order ... ok
test tests::a_screen_shows_the_consoles_line_from_either_form ... ok
test tests::no_text_makes_a_line_another_writers ... ok
test tests::what_is_let_go_is_whole_lines_and_is_counted ... ok
test tests::the_colour_is_the_heads_and_the_text_never_acts ... ok
test tests::the_kernels_first_record_is_found_after_whatever_came_before ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_manifest-59b28a8000e6c464)

running 28 tests
test launch::tests::an_authority_reads_back_as_written ... ok
test launch::tests::what_encode_cannot_have_written_is_refused ... ok
test package::tests::a_launch_path_names_one_package_or_none ... ok
test launch::tests::nothing_listed_is_nothing_started_and_apps_names_no_row ... ok
test launch::tests::a_sessions_launches_spend_its_one_share ... ok
test package::tests::a_path_the_normalizer_would_change_is_not_canonical_and_classifies_as_nothing ... ok
test package::tests::a_manifest_cannot_name_a_binary_outside_its_own_directory ... ok
test package::tests::a_field_that_is_not_one_is_refused_by_name ... ok
test package::tests::what_a_shell_resolves_is_what_the_launcher_accepts ... ok
test launch::tests::a_caller_starts_what_its_row_lists_and_swap_and_update_only_in_a_login_session ... ok
test tests::a_package_row_is_connectors_and_nothing_else ... ok
test package::tests::what_the_installer_writes_is_what_the_supervisor_reads ... ok
test package::tests::a_listing_shows_only_what_the_supervisor_would_start_and_never_more_than_the_bound ... ok
test tests::a_device_class_name_is_the_abi_s ... ok
test tests::a_name_that_would_not_survive_the_round_trip_is_refused ... ok
test tests::a_package_s_view_is_its_own_directory_read_only_and_its_own_folder ... ok
test tests::a_role_is_one_of_the_three_and_its_directories_are_fixed ... ok
test tests::a_row_that_serves_a_port_and_is_no_service_is_refused ... ok
test tests::a_service_s_home_is_its_state_and_every_other_row_s_the_session_s ... ok
test tests::a_syscap_set_always_carries_transfer_and_never_an_invented_right ... ok
test tests::every_declared_row_sees_the_whole_tree_read_write ... ok
test tests::logread_carries_both_halves_of_reading_a_stream_that_never_blocks ... ok
test tests::records_attach_to_the_program_above_them ... ok
test tests::the_process_roster_is_its_own_name_and_its_own_bit ... ok
test tests::the_same_manifest_renders_to_the_same_bytes ... ok
test tests::what_the_build_writes_is_what_the_supervisor_reads ... ok
test tests::a_package_named_after_a_declared_row_is_refused ... ok
test tests::a_package_s_home_is_its_own_folder ... ok

test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_microcode-5176b74db00fc682)

running 16 tests
test tests::a_damaged_extended_table_is_refused ... ok
test tests::a_header_or_loader_version_other_than_1_is_refused ... ok
test tests::a_file_cut_short_is_refused ... ok
test tests::a_revision_is_signed ... ok
test tests::an_empty_file_is_refused ... ok
test tests::a_size_zero_off_its_granule_or_inside_out_is_refused ... ok
test tests::a_malformed_update_after_a_good_one_refuses_the_file ... ok
test tests::a_flipped_bit_anywhere_in_header_or_data_is_refused ... ok
test tests::a_t14_below_it_loads_its_data_which_follows_the_header ... ok
test tests::an_extended_signature_names_a_cpu_the_header_does_not ... ok
test tests::any_multiple_of_1024_is_a_total_size ... ok
test tests::another_platform_or_stepping_is_not_named ... ok
test tests::the_msrs_are_read_where_the_sdm_puts_them ... ok
test tests::the_t14_runs_intels_newest_update_for_its_cpu ... ok
test tests::the_newest_update_naming_the_cpu_is_chosen_wherever_it_sits ... ok
test tests::an_extended_signature_in_intels_file_names_its_cpu ... ok

test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_ip-c801da0b197750b4)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/acd.rs (target/debug/deps/acd-be07b930c6f2e90d)

running 18 tests
test s_ip_acd_005_a_simultaneous_prober ... ok
test s_ip_acd_004_an_announcement_of_our_candidate ... ok
test s_ip_acd_006_our_own_probe_reflected ... ok
test s_ip_acd_003_an_answer_to_our_probe ... ok
test s_ip_acd_010_one_defence ... ok
test s_ip_acd_014_a_renewal_is_not_probed ... ok
test s_ip_acd_007_the_conflict_window_ends_with_announce_wait ... ok
test s_ip_acd_002_a_tentative_address_is_no_source ... ok
test s_ip_acd_008_ten_conflicts_rate_limit_new_candidates ... ok
test s_ip_acd_012_a_second_conflict_after_the_interval_is_defended ... ok
test s_ip_acd_013_an_announcing_address_answers_probes ... ok
test s_ip_acd_011_a_second_conflict_inside_the_interval_loses ... ok
test s_ip_acd_001_the_ruled_schedule ... ok
test s_ip_acd_009_ten_quiet_minutes_lift_the_limit ... ok
test s_ip_acd_016_link_up_announces_without_probing ... ok
test s_ip_acd_015_link_down_abandons_probing ... ok
test s_ip_acd_017_detection_starts_at_the_first_announcement ... ok
test s_ip_acd_018_a_full_control_queue_holds_probes_and_announcements ... ok

test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/addr.rs (target/debug/deps/addr-2969d417ac93c511)

running 38 tests
test rfc_3927_a_link_local_address_is_no_gateway_of_a_routable_interface ... ok
test rfc_3927_2_6_2_a_link_local_destination_is_on_the_link ... ok
test s_ip_addr_001_an_added_address_becomes_a_connected_route ... ok
test rfc_3927_the_edges_of_the_link_local_prefix_are_no_source ... ok
test s_ip_addr_003_not_unicast ... ok
test rfc_3927_2_6_2_a_datagram_to_a_link_local_host_is_resolved_and_sent_to_it ... ok
test rfc_3927_2_6_2_a_link_local_source_still_sends_by_the_router_or_nowhere ... ok
test rfc_3927_2_6_2_the_edges_of_the_link_local_prefix_are_no_destination ... ok
test s_ip_addr_002_prefix_lengths_0_and_33 ... ok
test s_ip_addr_004_network_and_broadcast_forms ... ok
test s_ip_addr_005_one_address_one_interface ... ok
test s_ip_addr_009_the_strong_model ... ok
test s_ip_addr_012_no_classful_broadcast ... ok
test s_ip_addr_010_limited_broadcast_needs_no_address ... ok
test s_ip_rte_002_the_default_gateway ... ok
test s_ip_addr_011_a_tentative_address_is_not_ours_yet ... ok
test s_ip_addr_013_announcing_is_usable ... ok
test s_ip_rte_004_longest_prefix ... ok
test s_ip_addr_007_what_is_for_us ... ok
test s_ip_addr_014_removal_withdraws_route_and_gateway ... ok
test s_ip_rte_005_gateways_are_on_link_unicast_hosts ... ok
test s_ip_rte_001_a_connected_destination ... ok
test s_ip_rte_003_no_gateway ... ok
test s_ip_rte_008_multicast_ttl_is_the_callers ... ok
test s_ip_addr_008_slash_31_and_32 ... ok
test s_ip_rte_009_subnet_broadcast_needs_no_arp ... ok
test s_ip_rte_006_invalid_and_local_destinations ... ok
test s_ip_rte_007_limited_broadcast_needs_one_interface ... ok
test s_ip_rte_011_a_bound_source_picks_its_interface ... ok
test s_ip_rte_010_the_source_of_the_next_hops_prefix ... ok
test s_ip_addr_006_eight_addresses ... ok
test s_ip_rte_012_only_the_acquiring_source_is_unspecified ... ok
test s_ip_rte_013_a_failed_gateway_is_passed_over ... ok
test s_ip_rte_014_with_no_good_gateway ... ok
test s_ip_rte_015_what_moves_the_generation ... ok
test s_ip_rte_016_no_forwarding ... ok
test s_udp_us_021_ip_no_link_broadcast_without_the_datagrams_permission ... ok
test s_ip_rte_017_lookups_send_nothing ... ok

test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/clk.rs (target/debug/deps/clk-40b80d9643fcd680)

running 10 tests
test s_ip_clk_008_announce_wait_counts_from_the_hand_off ... ok
test s_ip_clk_004_a_jump_fires_a_reachable_entry_once ... ok
test s_ip_clk_001_a_send_arms_the_retransmission ... ok
test s_ip_clk_010_a_deadline_saturates ... ok
test s_ip_clk_005_a_jump_owes_one_request ... ok
test s_ip_clk_002_nothing_fires_before_its_deadline ... ok
test s_ip_clk_003_firing_more_often_changes_nothing ... ok
test s_ip_clk_007_a_regressed_clock_is_the_latest ... ok
test s_ip_clk_009_a_jump_refills_a_bucket_to_its_cap ... ok
test s_ip_clk_006_prop_one_secret_one_run ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/icmp.rs (target/debug/deps/icmp-efd627dba5d40261)

running 54 tests
test s_icmp_037_a_quote_of_a_later_fragment ... ok
test s_icmp_036_a_quote_from_someone_else ... ok
test s_icmp_026_a_timestamp_reply_is_unsupported ... ok
test s_icmp_023_a_redirect_is_refused ... ok
test s_icmp_032_b_answers_a ... ok
test an_error_whose_next_hop_became_a_broadcast_is_refused_and_counted ... ok
test s_icmp_040_576_bytes_at_most ... ok
test s_icmp_038_each_error_goes_to_its_transport ... ok
test s_icmp_039_the_generated_port_unreachable ... ok
test s_icmp_024_a_timestamp_request_is_refused ... ok
test s_icmp_033_all_the_data_comes_back ... ok
test s_icmp_034_no_answer_to_a_group ... ok
test s_icmp_041_the_quote_is_as_received ... ok
test s_icmp_035_record_route_is_not_returned ... ok
test s_icmp_043_no_error_about_a_broadcast ... ok
test s_icmp_044_no_error_about_a_link_broadcast ... ok
test s_icmp_042_an_error_for_no_socket_is_not_answered ... ok
test s_icmp_045_no_error_about_a_fragment ... ok
test s_icmp_046_no_error_to_a_source_that_is_no_host ... ok
test s_ip_echo_001_the_mirror_of_the_request ... ok
test s_ip_echo_002_dscp_copied_ecn_cleared ... ok
test s_ip_echo_003_an_off_link_requester_is_answered_through_the_gateway ... ok
test s_ip_echo_004_the_reply_carries_no_options ... ok
test s_ip_echo_005_sixteen_replies_wait ... ok
test s_ip_echo_006_an_echo_reply_is_counted ... ok
test s_ip_echo_007_a_tentative_address_does_not_answer ... ok
test s_ip_echo_008_echo_is_not_rate_limited ... ok
test s_ip_icd_001_a_port_unreachable_for_udp ... ok
test s_ip_icd_002_fragmentation_needed_for_tcp ... ok
test s_ip_icd_003_an_error_to_a_broadcast ... ok
test s_ip_icd_004_a_quote_from_a_tentative_address ... ok
test s_ip_icd_005_a_quote_of_icmp ... ok
test s_ip_icd_006_quotes_of_igmp_and_others ... ok
test s_ip_icd_007_time_exceeded ... ok
test s_ip_icd_008_parameter_problem ... ok
test s_ip_icd_009_an_unassigned_code ... ok
test s_ip_icd_010_a_redirect_moves_no_route ... ok
test s_ip_icd_011_prop_the_shared_classification ... ok
test s_ip_icd_012_a_resolution_failure_is_local ... ok
test s_ip_icg_001_protocol_unreachable ... ok
test s_ip_icg_002_port_unreachable ... ok
test s_ip_icg_003_suppression_takes_no_token ... ok
test s_ip_icg_004_refusals_are_silent ... ok
test s_ip_icg_006_an_unknown_protocol_to_a_broadcast ... ok
test s_ip_icg_008_a_malformed_router_alert_is_dropped_silently ... ok
test s_ip_icg_007_short_datagrams_are_quoted_whole ... ok
test s_ip_rl_002_one_token_per_100_ms ... ok
test s_ip_rl_001_ten_then_limited ... ok
test s_ip_rl_003_another_destination_has_its_own_bucket ... ok
test s_ip_rl_006_prop_colliding_destinations_share_a_bucket ... ok
test s_ip_icg_005_prop_only_echo_replies_and_unreachables ... ok
test s_ip_rl_007_suppressed_requests_spend_nothing ... ok
test s_ip_rl_005_the_global_bucket_refills_at_100_a_second ... ok
test s_ip_rl_004_the_global_burst_is_drawn ... ok

test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/igmp.rs (target/debug/deps/igmp-81e84a492f5454e2)

running 35 tests
test s_igmp_029_joining_all_hosts_sends_nothing ... ok
test s_igmp_023_no_router_alert_is_refused ... ok
test s_ip_igm_003_a_leave_is_reported_twice ... ok
test s_ip_igm_001_a_join_is_reported_twice ... ok
test s_igmp_025_a_general_query_to_our_address ... ok
test s_ip_igm_008_a_sooner_general_response_suffices ... ok
test s_ip_igm_005_membership_is_counted ... ok
test s_ip_igm_004_a_leave_replaces_the_join ... ok
test s_ip_igm_006_all_hosts_is_never_reported ... ok
test s_ip_igm_007_a_general_query_is_answered_later ... ok
test s_igmp_024_ttl_2_is_accepted ... ok
test s_ip_frg_001_a_fragment_is_refused_and_logged ... ok
test s_ip_igm_009_a_group_query ... ok
test s_ip_igm_002_joins_before_and_after_the_first_address ... ok
test s_ip_igm_010_a_query_for_a_group_not_joined ... ok
test s_ip_igm_011_a_group_and_source_query ... ok
test s_ip_igm_012_too_many_sources_make_a_group_response ... ok
test s_ip_igm_014_general_query_destinations ... ok
test s_ip_igm_015_a_group_query_to_another_group ... ok
test s_ip_igm_013_queries_need_router_alert ... ok
test s_ip_igm_016_the_robustness_is_learned ... ok
test s_ip_igm_017_a_v2_querier ... ok
test s_ip_igm_018_a_join_in_v2_mode ... ok
test s_ip_igm_020_a_v1_query_is_refused ... ok
test s_ip_igm_019_another_hosts_report_suppresses_ours ... ok
test s_ip_igm_022_a_v2_group_query_in_v3_mode ... ok
test s_ip_igm_023_the_last_reporter_leaves ... ok
test s_ip_igm_025_thirty_two_groups ... ok
test s_ip_igm_021_v2_mode_ends ... ok
test s_ip_igm_024_other_hosts_reports_are_ignored_in_v3 ... ok
test s_ip_igm_027_one_report_for_every_group ... ok
test s_ip_igm_026_link_flap ... ok
test s_ip_igm_028_the_join_byte_for_byte ... ok
test s_ip_mod_001_one_line_per_rule_per_10_s ... ok
test s_ip_mod_002_ordinary_refusals_are_not_logged ... ok

test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/io.rs (target/debug/deps/io-ee89e63f3f058ea0)

running 52 tests
test s_eth_014_a_priority_tag_is_untagged ... ok
test s_eth_019_9100_is_not_a_tag ... ok
test s_eth_010_type_0600_is_unknown ... ok
test s_eth_024_vlans_are_refused ... ok
test s_eth_025_our_own_source ... ok
test s_eth_022_another_hosts_mac ... ok
test s_ip_002_minimal_datagram_is_an_unknown_protocol ... ok
test s_ip_020_df_and_mf_is_a_fragment ... ok
test s_eth_033_a_unicast_destination_is_never_link_broadcast ... ok
test s_eth_012_lldp ... ok
test s_eth_011_ipv6 ... ok
test s_ip_021_first_fragment ... ok
test s_eth_032_broadcast_destinations_go_to_the_broadcast_mac ... ok
test s_eth_023_group_macs_follow_membership ... ok
test s_ip_022_last_fragment ... ok
test s_ip_023_largest_offset ... ok
test s_ip_025_ttl_zero_is_delivered ... ok
test s_ip_026_ttl_one_is_delivered ... ok
test s_ip_029_other_protocols ... ok
test s_ip_035_the_mtu_bounds_a_send ... ok
test s_ip_in_001_frame_before_destination ... ok
test s_ip_in_002_unicast_in_a_group_frame ... ok
test s_ip_in_003_a_group_destination_in_our_frame ... ok
test s_ip_in_004_martian_destinations ... ok
test s_ip_in_005_invalid_sources ... ok
test s_ip_in_006_destination_before_source ... ok
test s_ip_in_007_our_own_source_on_any_interface ... ok
test s_ip_in_008_fragments_before_options ... ok
test s_ip_in_009_what_a_transport_is_handed ... ok
test s_ip_out_002_ttl ... ok
test s_ip_out_003_tos ... ok
test s_ip_out_004_the_mtu ... ok
test s_ip_out_005_link_destinations ... ok
test s_ipo_015_stream_id_is_delivered ... ok
test s_ipo_016_security_option_is_delivered ... ok
test s_ip_out_006_the_control_queue_is_bounded ... ok
test s_ip_out_008_released_datagrams_wait_at_the_head_of_their_queue ... ok
test s_ipp_001_loose_source_route ... ok
test s_ipp_002_strict_source_route ... ok
test s_ipp_003_record_route_is_ignored ... ok
test s_ipp_004_our_address_and_another ... ok
test s_ipp_005_broadcast_forms ... ok
test s_ipp_006_joined_groups ... ok
test s_ipp_007_invalid_sources ... ok
test s_ipp_008_unspecified_only_for_igmp ... ok
test s_ipp_009_our_own_source ... ok
test s_ipp_010_loopback_destination ... ok
test s_ipp_011_unicast_in_a_broadcast_frame ... ok
test s_ipp_012_an_unknown_protocol_to_us ... ok
test s_ipp_013_an_unknown_protocol_to_all ... ok
test s_udp_022_the_mtu_refuses_1473_bytes ... ok
test s_ip_out_001_prop_every_datagram_is_atomic ... ok

test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/nbr.rs (target/debug/deps/nbr-9caf15a2b2e51d89)

running 23 tests
test s_ip_nbr_004_a_request_for_another_host ... ok
test s_ip_nbr_002_prefix_edges_are_no_senders ... ok
test s_ip_nbr_003_a_request_for_us ... ok
test s_ip_nbr_005_a_known_host_asking_for_another ... ok
test rfc_3927_2_6_2_a_link_local_sender_is_a_neighbour ... ok
test s_ip_nbr_009_locktime ... ok
test rfc_3927_the_edges_of_the_link_local_prefix_are_no_senders ... ok
test s_arp_016_the_sender_mac_is_what_is_learned ... ok
test s_arp_017_a_group_sender_mac ... ok
test s_ip_nbr_001_our_own_mac_as_sender ... ok
test s_arp_018_invalid_sender_addresses ... ok
test s_ip_nbr_007_an_unknown_router_moving ... ok
test s_ip_nbr_006_an_unsolicited_reply ... ok
test s_ip_nbr_008_a_known_router_moving ... ok
test s_ip_nbr_010_a_second_answer_is_locked_out ... ok
test s_ip_nbr_013_a_probe_is_answered_and_not_cached ... ok
test s_ip_nbr_011_an_unsolicited_same_mac_extends_nothing ... ok
test s_ip_nbr_015_a_broadcast_reply_is_still_solicited ... ok
test s_ip_nbr_012_an_off_link_sender_is_answered_not_cached ... ok
test s_ip_nbr_014_a_reply_for_another_target_asserts ... ok
test s_ip_nbr_016_the_strong_model_for_arp ... ok
test s_ip_nbr_017_a_tentative_address_is_not_answered ... ok
test s_ip_nbr_018_fifty_mac_changes_one_line ... ok

test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/nud.rs (target/debug/deps/nud-ed41191709b01b0e)

running 35 tests
test s_ip_nud_002_three_requests_then_failed ... ok
test s_ip_nud_012_unreachable_is_quiet_without_traffic ... ok
test s_ip_nud_013_a_moved_router_answers ... ok
test s_ip_nud_008_delay_probe_unreachable ... ok
test s_ip_nud_003_release_keeps_arrival_order ... ok
test s_ip_nud_009_advice_ends_delay ... ok
test s_ip_nud_006_reachable_goes_stale_silently ... ok
test s_ip_nud_007_positive_advice_moves_the_confirmation ... ok
test s_ip_nud_001_resolution_releases_the_datagram ... ok
test rfc_4861_7_2_2_a_silent_next_hop_holds_up_no_other ... ok
test s_ip_nud_010_a_reply_confirms_probe ... ok
test s_ip_nud_004_overflow_drops_the_oldest ... ok
test s_ip_nud_014_failed_is_held_down ... ok
test s_ip_nud_015_an_assertion_revives_failed ... ok
test s_ip_nud_017_negative_advice_probes ... ok
test s_ip_nud_016_requests_are_spaced ... ok
test s_ip_nud_018_negative_advice_leaves_probe_incomplete_and_failed ... ok
test s_ip_nud_019_positive_advice_needs_a_mac ... ok
test s_ip_nud_005_the_interface_holds_at_most_64 ... ok
test s_ip_nud_020_advice_lands_on_the_gateway ... ok
test s_ip_nud_021_stale_is_deleted_when_idle ... ok
test s_ip_nud_024_requests_speak_from_the_prompting_source ... ok
test s_ip_nud_023_link_down_drops_the_table ... ok
test s_ip_nud_026_a_flow_moves_stale_to_delay ... ok
test s_ip_nud_025_a_flow_waits_outside ... ok
test s_ip_nud_011_unreachable_backs_off_while_traffic_flows ... ok
test s_ip_nud_030_an_entry_whose_lifetime_runs_stays_as_it_drains ... ok
test s_ip_nud_031_a_request_queued_before_the_lifetime_is_not_idle ... ok
test s_ip_nud_030_released_datagrams_keep_their_entry ... ok
test s_ip_nud_031_a_request_queued_at_the_backoff_deadline_is_not_idle ... ok
test s_ip_nud_031_a_request_queued_after_the_lifetime_is_not_idle ... ok
test s_ip_nud_027_prop_reachable_time_is_drawn_every_two_hours ... ok
test s_ip_nud_022_a_full_table_evicts_in_order ... ok
test s_ip_nud_029_released_datagrams_are_evicted_last ... ok
test s_ip_nud_022_a_send_a_full_table_refused_is_told_of_room ... ok

test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_shard-0bab575736dd687a)

running 3 tests
test tests::a_resolved_next_hop_wakes_the_senders_that_waited_for_it_and_no_other ... ok
test tests::the_head_freed_in_its_turn_ends_the_turn ... ok
test tests::a_connection_freed_in_the_round_leaves_it ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/acquisition.rs (target/debug/deps/acquisition-fbb1627be06dce30)

running 5 tests
test the_acquisition_socket_hears_a_datagram_to_an_address_not_yet_held ... ok
test the_acquisition_socket_sends_from_no_address_to_the_limited_broadcast ... ok
test a_second_acquisition_socket_is_refused_its_port ... ok
test only_the_acquisition_socket_names_its_source ... ok
test a_removed_address_takes_its_gateway_and_answers_nothing ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/drr.rs (target/debug/deps/drr-acd2166a1bb12cf3)

running 6 tests
test a_sender_leaves_the_round_with_its_last_datagram ... ok
test a_connection_that_takes_a_freed_slot_takes_one_turn ... ok
test s_shard_drr_003_ip_and_owed_resets_go_first_and_the_round_resumes ... ok
test s_shard_drr_001_a_turn_spans_opportunities_on_one_quantum ... ok
test s_shard_drr_002_a_bulk_flow_starves_no_other_beyond_its_quantum ... ok
test s_shard_drr_001_a_negative_deficit_is_repaid ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/egress.rs (target/debug/deps/egress-69c0e7315913fa05)

running 19 tests
test s_hs_035_shard_a_directed_broadcast_is_not_a_unicast_remote ... ok
test s_pl_013_shard_a_connect_with_no_route_fails_at_once ... ok
test s_pl_013_shard_a_connect_to_no_one_fails_at_once_as_host_unreachable ... ok
test s_ip_nud_024_shard_a_segments_request_prefers_its_source ... ok
test s_ip_out_007_an_arp_request_goes_before_a_ready_segment ... ok
test s_pl_014_shard_an_established_flow_with_no_route_records_host_unreachable ... ok
test s_pl_014_shard_an_established_flow_records_host_unreachable ... ok
test s_ip_nud_009_shard_an_acknowledgment_ends_delay ... ok
test s_pl_012_shard_a_connect_waits_for_its_next_hop_and_then_leaves ... ok
test s_ip_nud_026_shard_a_segment_to_a_stale_neighbour_moves_it_to_delay ... ok
test s_ip_nud_020_shard_a_stalled_connect_reverifies_the_gateway ... ok
test s_pl_014_shard_a_failed_flow_is_asked_once_while_another_sends ... ok
test s_hs_034_shard_a_child_whose_peer_never_answers_gives_up ... ok
test s_pl_015_shard_a_reset_for_no_socket_waits_for_its_next_hop ... ok
test s_pl_015_shard_a_reset_to_a_peer_that_never_answers_is_dropped ... ok
test s_pl_015_shard_an_owed_reset_waits_for_its_next_hop ... ok
test s_pl_015_shard_a_time_wait_ack_waits_for_its_next_hop ... ok
test s_pl_015_shard_a_reset_with_no_route_is_dropped ... ok
test s_ip_nud_022_shard_a_flow_refused_by_a_full_table_asks_again_once_an_entry_may_go ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/icmp.rs (target/debug/deps/icmp-7758a870ba217e7d)

running 4 tests
test s_ic_001_shard_port_unreachable_refuses_a_connect ... ok
test s_ic_008_shard_time_exceeded_is_soft ... ok
test s_ic_012_shard_fragmentation_needed_without_an_mtu_is_ignored ... ok
test s_ic_009_shard_parameter_problem_is_soft ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log.rs (target/debug/deps/log-cbca7fafe4805818)

running 3 tests
test s_udp_us_020_shard_sending_to_this_host_is_logged ... ok
test s_ip_mod_001_shard_one_line_per_rule_per_10_s ... ok
test s_mod_005_shard_one_line_per_rule_per_10_s ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/net.rs (target/debug/deps/net-382d1f9ee1185812)

running 5 tests
test s_net_006_a_dark_link ... ok
test s_net_003_reordering_below_the_threshold ... ok
test s_net_001_sack_repairs_every_50th ... ok
test s_net_004_duplicates_are_reported_by_dsack ... ok
test s_pl_011_many_up ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.50s

     Running tests/udp.rs (target/debug/deps/udp-ba243de60f7d2006)

running 12 tests
test s_udp_us_021_shard_a_datagram_accepted_for_the_router_is_no_broadcast_after_a_renewal_widens_the_prefix ... ok
test s_udp_us_021_shard_a_datagram_carries_the_permission_of_its_call ... ok
test s_udp_us_021_shard_a_datagram_that_waited_for_a_host_is_asked_its_route_again_and_keeps_its_permission ... ok
test s_ip_icd_012_shard_a_resolution_failure_reaches_the_connected_socket ... ok
test s_udp_us_035_shard_no_socket_is_a_port_unreachable ... ok
test s_udp_us_021_shard_a_datagram_accepted_for_a_host_is_no_broadcast_after_a_renewal_narrows_the_prefix ... ok
test s_udp_us_026_shard_a_datagram_waits_in_its_socket_for_its_next_hop_and_holds_back_no_other ... ok
test s_udp_us_024_shard_a_waiting_datagram_whose_route_goes_is_dropped ... ok
test a_waiting_datagram_whose_link_returns_before_an_opportunity_waits_anew_and_leaves ... ok
test s_udp_us_046_shard_a_port_unreachable_refuses_the_connected_socket_once ... ok
test s_udp_us_027_shard_a_failed_next_hop_drops_what_waited_for_it_and_tells_no_unconnected_socket ... ok
test s_udp_us_025_shard_what_waits_for_a_next_hop_is_bounded_by_its_sockets_queue ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_tcp-99e833a79442f590)

running 30 tests
test cc::tests::s_cc_009_cubic_values ... ok
test cc::tests::s_cc_011_reno_friendly_region ... ok
test cc::tests::s_cc_008_the_epoch_after_a_timeout ... ok
test cc::tests::s_cc_007_slow_start_stops_at_ssthresh ... ok
test cc::tests::s_cc_010_congestion_events ... ok
test cc::tests::s_cc_013_application_limited_time_is_skipped ... ok
test cc::tests::s_cc_014_flight_not_cwnd_at_a_timeout ... ok
test cc::tests::s_cc_015_prop_avoidance_growth_is_bounded ... ok
test rtt::tests::s_rt_001_first_sample ... ok
test rtt::tests::s_rt_002_later_sample ... ok
test rtt::tests::s_rt_003_the_200_ms_floor ... ok
test rtt::tests::s_rt_004_the_60_s_ceiling ... ok
test rtt::tests::s_rt_012_appendix_g_weights ... ok
test rx::tests::an_echo_aged_by_the_peers_silence_moves_the_estimate_an_eighth ... ok
test rx::tests::full_sized_is_learned_from_what_arrives ... ok
test rx::tests::without_timestamps_the_least_fill_time_is_kept ... ok
test tx::tests::s_lr_015_the_scoreboard_keeps_the_lowest_64 ... ok
test props::s_op_025_prop_timestamps_on_every_segment ... ok
test props::s_rx_026_prop_sacked_bytes_are_delivered ... ok
test props::s_prop_005_the_scoreboard_stays_above_snd_una ... ok
test props::s_rt_017_prop_no_retransmission_before_an_rto ... ok
test props::s_prop_002_delivered_data_is_a_prefix ... ok
test props::s_mod_004_prop_urgent_is_never_sent ... ok
test props::s_prop_004_the_right_edge_never_retreats ... ok
test props::s_prop_001_snd_una_at_or_before_snd_nxt ... ok
test props::s_prop_001_snd_una_at_or_before_snd_nxt_whatever_the_next_hop_answers ... ok
test props::s_prop_008_nothing_happens_before_a_deadline ... ok
test props::s_prop_007_pipe_is_bounded ... ok
test props::s_prop_006_totality_against_an_adversary ... ok
test props::s_prop_003_end_of_stream_after_every_byte ... ok

test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.46s

     Running tests/acceptability.rs (target/debug/deps/acceptability-08bd6146f17e566f)

running 27 tests
test s_ac_009_exact_rst ... ok
test s_ac_014_syn_beyond_the_window ... ok
test s_ac_006_empty_segment_beyond_the_window ... ok
test s_ac_011_rst_outside_the_window ... ok
test s_ac_001_in_order_text_is_acknowledged_late ... ok
test s_ac_013_syn_is_challenged ... ok
test s_ac_010_inexact_rst_is_challenged ... ok
test s_ac_012_challenge_acks_are_limited ... ok
test s_ac_008_back_trim ... ok
test s_ac_002_at_the_right_edge ... ok
test s_ac_017_rfc5961_lower_bound ... ok
test s_ac_016_ack_of_unsent_data ... ok
test s_ac_018_data_with_the_old_ack_is_no_duplicate ... ok
test s_ac_019_text_without_ack ... ok
test s_ac_021_a_window_may_shrink ... ok
test s_ac_022_max_snd_wnd ... ok
test s_ac_020_old_segments_do_not_update_the_window ... ok
test s_ac_023_one_ack_per_receive_pass ... ok
test s_ac_007_front_trim ... ok
test s_ac_015_retransmitted_synack ... ok
test s_ac_024_text_after_the_peer_fin ... ok
test s_ac_004_zero_window_pure_ack ... ok
test s_ac_025_ack_half_the_space_away ... ok
test s_ac_003_zero_window_probe ... ok
test s_ac_026_rst_with_fin ... ok
test s_ac_027_rst_payload_is_ignored ... ok
test s_ac_005_zero_window_rst ... ok

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/close.rs (target/debug/deps/close-90a513e18443bf8e)

running 32 tests
test s_cl_006_the_fin_is_retransmitted ... ok
test s_cl_005_the_fin_rides_on_data ... ok
test s_cl_002_passive_close ... ok
test s_cl_012_the_orphan_bound ... ok
test s_cl_007_half_close ... ok
test s_cl_001_active_close ... ok
test s_cl_004_fin_acknowledging_ours ... ok
test s_cl_008_sending_in_close_wait ... ok
test s_cl_011_an_orphan_in_fin_wait_2 ... ok
test s_cl_003_simultaneous_close ... ok
test s_cl_009_a_retransmitted_fin_in_close_wait ... ok
test s_cl_010_a_retransmitted_fin_restarts_time_wait ... ok
test s_cl_013_an_orphan_behind_a_shut_window ... ok
test s_cl_015_data_for_an_orphan ... ok
test s_cl_016_close_with_unread_data ... ok
test s_cl_018_reopening_from_time_wait_by_timestamp ... ok
test s_cl_017_time_wait_is_60_s ... ok
test s_cl_019_reopening_by_sequence_number ... ok
test s_cl_020_rst_in_time_wait_is_ignored ... ok
test s_cl_022_syn_in_time_wait_without_a_listener ... ok
test s_cl_024_abort ... ok
test s_cl_025_abort_without_rst ... ok
test s_cl_027_the_reset_stub ... ok
test s_cl_026_no_time_wait_after_a_reset ... ok
test s_cl_028_close_in_syn_sent ... ok
test s_cl_031_rst_in_close_wait ... ok
test s_cl_014_a_user_keeps_a_shut_window_open ... ok
test s_cl_029_shutdown_read ... ok
test s_cl_032_rst_in_last_ack_and_closing ... ok
test s_cl_030_last_ack_waits_for_the_fin ... ok
test s_cl_021_a_failed_reopening_returns_to_time_wait ... ok
test s_cl_023_time_wait_is_bounded ... ok

test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s

     Running tests/congestion.rs (target/debug/deps/congestion-a0156dbb7474d796)

running 7 tests
test s_cc_003_ten_segments_of_536 ... ok
test s_cc_001_ten_segments ... ok
test s_cc_006_no_growth_when_not_cwnd_limited ... ok
test s_cc_005_slow_start ... ok
test s_cc_004_one_segment_after_two_syn_retransmissions ... ok
test s_cc_002_ten_segments_with_timestamps ... ok
test s_cc_012_restart_after_idle ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/egress.rs (target/debug/deps/egress-962cbeb65a3d5e7e)

running 25 tests
test s_pl_009_a_handshake_gives_up_without_credit ... ok
test s_pl_003_unsent_is_not_in_flight ... ok
test s_ka_003_probes_that_cannot_leave_still_give_up ... ok
test s_pl_001_the_timer_starts_at_hand_off ... ok
test s_pl_007_credit_bounds_an_opportunity ... ok
test s_ka_002_a_segment_cancels_a_probe_still_owed ... ok
test s_pl_008_resets_go_first ... ok
test s_pl_009_give_up_without_credit ... ok
test s_hs_034_a_child_whose_synack_cannot_leave_gives_up ... ok
test s_pl_004_owed_acks_collapse ... ok
test a_freed_connection_leaves_no_turn_behind ... ok
test s_pl_006_a_segment_carries_the_state_of_its_moment ... ok
test s_pl_002_no_expiry_for_a_retransmission_that_never_left ... ok
test s_pl_005_at_most_three_duplicate_acks_are_held ... ok
test s_pl_012_a_flow_builds_nothing_while_its_next_hop_is_pending ... ok
test s_pl_012_a_window_update_offers_nothing_until_it_leaves ... ok

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Earlier host run at d719cc9d4 (the same tree but issues/), EXIT=1 on the toyos SDK's lane proof, filed as issues/a-lane-reader-counted-one-refusal-fewer-than-its-writer-made.md, part 4 of 8

test s_pl_012_an_ack_owed_in_syn_received_waits_for_its_next_hop ... ok
test s_pl_012_an_owed_ack_waits_for_its_next_hop ... ok
test s_pl_012_a_connection_freed_while_waiting_leaves_no_turn_behind ... ok
test s_pl_014_an_owed_ack_outlasts_an_unreachable_next_hop ... ok
test s_pl_013_a_local_host_unreachable_fails_a_connect_at_once ... ok
test s_pl_014_a_synchronized_connection_records_host_unreachable_soft ... ok
test s_pl_010_give_up_before_retransmission ... ok
test s_pl_015_what_is_owed_outside_a_connection_waits_for_its_next_hop ... ok
test s_pl_015_resets_waiting_for_their_next_hop_stay_bounded ... ok

test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/handshake.rs (target/debug/deps/handshake-0f5451ee5d775226)

running 42 tests
test s_hs_014_synsent_fin ... ok
test s_hs_011_synsent_rst_with_a_bad_ack ... ok
test s_hs_012_synsent_ack_without_syn ... ok
test s_hs_013_synsent_bad_ack_without_syn ... ok
test s_hs_010_synsent_rst_without_ack ... ok
test s_hs_004_passive_open_full_peer ... ok
test s_hs_001_active_open_bare_peer ... ok
test s_hs_002_active_open_full_peer ... ok
test s_hs_009_synsent_refused ... ok
test s_hs_007_synsent_ack_at_iss ... ok
test s_hs_003_passive_open_bare_peer ... ok
test s_hs_006_simultaneous_open_synack_lost ... ok
test s_hs_008_synsent_ack_past_snd_nxt ... ok
test s_hs_005_simultaneous_open ... ok
test s_hs_015_syn_give_up ... ok
test s_hs_016_one_syn_retransmission ... ok
test s_hs_017_two_syn_retransmissions ... ok
test s_hs_018_syn_payload_is_discarded ... ok
test s_hs_019_synack_payload_is_discarded ... ok
test s_hs_021_listen_ack ... ok
test s_hs_020_listen_rst ... ok
test s_hs_023_listen_without_syn ... ok
test s_hs_022_listen_synack ... ok
test s_hs_024_duplicate_syn_in_syn_received ... ok
test s_hs_025_new_syn_in_syn_received ... ok
test s_hs_026_child_bad_ack ... ok
test s_hs_028_active_syn_received_rst ... ok
test s_hs_029_child_fin ... ok
test s_hs_027_child_rst ... ok
test s_hs_030_fin_waits_for_established ... ok
test s_hs_031_child_text_without_ack ... ok
test s_hs_033_child_completes_with_data ... ok
test s_hs_035_connect_needs_a_unicast_remote ... ok
test s_hs_034_synack_give_up ... ok
test s_hs_032_child_inexact_rst ... ok
test s_hs_037_the_initial_window_is_ten_smss ... ok
test s_hs_039_active_syn_received_bad_ack ... ok
test s_hs_040_synack_retransmitted ... ok
test s_hs_038_data_queued_in_syn_sent ... ok
test s_hs_042_no_socket_reset_limit ... ok
test s_hs_041_no_socket ... ok
test s_hs_043_calls_in_the_wrong_state ... ok

test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/held.rs (target/debug/deps/held-8a7311b9115459cc)

running 6 tests
test ready_counts_the_connections_accept_has_yet_to_return ... ok
test options_are_the_ones_the_connection_has ... ok
test an_orphan_is_counted_until_its_idle_reset ... ok
test a_close_before_the_handshake_ends_leaves_an_orphan_until_it_gives_up ... ok
test an_orphan_is_counted_until_both_fins ... ok
test a_close_that_resets_leaves_no_orphan ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/icmp.rs (target/debug/deps/icmp-8b786e685d8f926e)

running 21 tests
test s_ic_004_administratively_prohibited ... ok
test s_ic_002_a_stale_quote ... ok
test s_ic_001_port_unreachable_refuses_a_connect ... ok
test s_ic_003_host_unreachable_is_soft ... ok
test s_ic_013_an_mtu_that_is_no_smaller ... ok
test s_ic_008_time_exceeded_is_soft ... ok
test s_ic_009_parameter_problem_is_soft ... ok
test s_ic_010_an_unassigned_code_is_soft ... ok
test s_ic_018_a_listener_is_never_addressed ... ok
test s_ic_012_no_next_hop_mtu ... ok
test s_ic_006_port_unreachable_is_soft_when_synchronized ... ok
test s_ic_015_an_mtu_not_below_the_refused_datagram ... ok
test s_ic_007_quotes_outside_the_flight ... ok
test s_ic_014_the_mtu_floor ... ok
test s_ic_005_soft_in_a_synchronized_state ... ok
test s_ic_011_path_mtu_lowered ... ok
test s_ic_017_time_wait_is_stale ... ok
test s_ic_016_one_retransmission_per_lowering ... ok
test s_ic_019_a_pending_child_is_deleted ... ok
test s_ic_021_path_mtu_with_timestamps ... ok
test s_ic_020_progress_clears_a_soft_error ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/isn.rs (target/debug/deps/isn-4c2818daebf3af43)

running 9 tests
test s_isn_001_siphash_reference_vectors ... ok
test s_isn_004_every_field_of_the_tuple_counts ... ok
test s_isn_003_the_4us_clock ... ok
test s_isn_005_the_key_counts ... ok
test s_isn_006_clock_wrap ... ok
test s_isn_002_isn_at_clock_zero ... ok
test s_isn_008_timestamp_offset ... ok
test s_isn_009_incarnations_share_the_offset ... ok
test s_isn_007_prop_unpredictable ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/listen.rs (target/debug/deps/listen-416005a2d313f4e2)

running 11 tests
test s_ls_001_one_listener_per_endpoint ... ok
test s_ls_006_a_closed_child_is_accepted ... ok
test s_ls_007_a_reset_child_is_never_returned ... ok
test s_ls_005_first_in_first_out ... ok
test s_ls_008_closing_a_listener_resets_its_children ... ok
test s_ls_010_children_inherit_options ... ok
test s_ls_011_a_bound_port_without_a_listener ... ok
test s_ls_002_connections_do_not_hold_the_port ... ok
test s_ls_009_the_specific_address_first ... ok
test s_ls_004_the_ready_bound ... ok
test s_ls_003_the_pending_bound ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/modern.rs (target/debug/deps/modern-ac368f3cc82e0909)

running 14 tests
test s_mod_001_syn_with_fin ... ok
test s_mod_006_tcp_md5 ... ok
test s_mod_007_fast_open ... ok
test s_mod_003_urgent_data_inline ... ok
test s_div_003_rst_at_snd_nxt_inside_the_window ... ok
test s_div_001_rst_never_below_snd_una ... ok
test s_mod_009_out_of_range_acks_are_logged_per_10_s ... ok
test s_mod_002_syn_with_rst ... ok
test s_div_002_rst_below_the_offered_edge_behind_snd_una ... ok
test s_mod_008_challenges_are_logged_once ... ok
test s_div_002_rst_at_a_shrunk_edge ... ok
test s_div_001_rst_at_the_right_edge ... ok
test s_mod_005_one_line_per_rule_per_10_s ... ok
test s_mod_005_a_bulk_peer_leaves_room_for_refusals ... ok

test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/net.rs (target/debug/deps/net-b73d1001768f0962)

running 19 tests
test s_net_011_the_fin_overtakes_the_last_data ... ok
test s_ls_012_a_syn_flood ... ok
test s_net_012_a_slow_reader ... ok
test s_net_014_an_abort_is_a_reset ... ok
test rfc_8985_7_3_no_probe_without_an_rtt_sample_since_the_last ... ok
test s_net_008_timestamps_wrap ... ok
test s_net_010_a_lost_retransmission ... ok
test s_net_002_newreno_when_one_side_has_no_sack ... ok
test s_net_007_sequence_numbers_wrap ... ok
test s_net_016_a_peer_without_options ... ok
test s_net_009_the_last_segment_of_each_burst ... ok
test s_net_005_lost_acks ... ok
test rfc_7323_2_2_no_scaling_unless_both_syns_offer_it ... ok
test s_net_015_nagle_and_the_delayed_ack ... ok
test a_receive_buffer_nobody_reads_never_grows ... ok
test the_receive_window_grows_by_what_is_read_per_round_trip ... ok
test a_peer_sending_segments_shorter_than_our_send_mss_still_grows_the_window ... ok
test s_net_013_a_hundred_connections ... ok
test rfc_7323_2_a_scaled_window_carries_more_than_64_kib_in_flight_each_way ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s

     Running tests/options.rs (target/debug/deps/options-3a2766467a740697)

running 30 tests
test s_op_002_synack_to_a_bare_syn ... ok
test s_op_001_the_active_syn ... ok
test s_op_007_the_interface_bounds_the_mss ... ok
test s_op_013_a_synack_window_is_never_scaled ... ok
test s_op_009_window_scaling ... ok
test s_op_005_mss_100_is_raised ... ok
test s_op_012_window_scale_outside_a_syn_is_ignored ... ok
test s_op_010_shift_above_14_is_clamped ... ok
test s_op_004_mss_zero_is_raised ... ok
test s_op_003_synack_to_a_full_syn ... ok
test s_op_011_unscaled_when_the_peer_offers_none ... ok
test s_op_014_sack_unnegotiated ... ok
test s_op_006_no_mss_option ... ok
test s_op_015_timestamps_unnegotiated ... ok
test s_op_008_timestamps_take_twelve_bytes ... ok
test s_op_016_timestamps_on_an_unnegotiated_connection ... ok
test s_op_017_ts_recent_needs_seq_at_or_before_last_ack_sent ... ok
test s_op_018_delayed_ack_echoes_the_earliest ... ok
test s_op_019_ts_across_a_hole ... ok
test s_op_022_no_paws_on_an_rst ... ok
test s_op_021_missing_timestamps_are_dropped ... ok
test s_op_024_rst_for_no_socket_echoes_the_timestamp ... ok
test s_op_026_mss_outside_a_syn_is_ignored ... ok
test s_op_023_ts_recent_expires_after_24_days ... ok
test s_op_020_paws ... ok
test s_op_029_the_last_mss_wins ... ok
test s_op_028_sack_blocks_in_a_syn_are_ignored ... ok
test s_op_032_tsecr_without_ack_is_ignored ... ok
test s_op_031_the_shift_fits_the_buffer ... ok
test s_op_027_ecn_is_not_negotiated ... ok

test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/port.rs (target/debug/deps/port-4aecde1497a45557)

running 8 tests
test s_port_007_never_a_self_connection ... ok
test s_port_002_another_destination_another_counter ... ok
test s_port_001_algorithm_4 ... ok
test s_port_003_a_listening_port_is_skipped ... ok
test s_port_004_time_wait_holds_its_4_tuple ... ok
test s_port_006_algorithm_2_for_a_listener ... ok
test s_port_008_prop_ports ... ok
test s_port_005_exhaustion ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/receive.rs (target/debug/deps/receive-318f2d6927df8d4d)

running 27 tests
test s_rx_002_the_delayed_ack_is_40_ms ... ok
test s_rx_007_stored_bytes_win ... ok
test s_rx_009_a_fin_beyond_a_hole ... ok
test s_rx_005_a_filled_hole_is_acknowledged_at_once ... ok
test s_rx_011_unread_bytes_close_the_window ... ok
test s_rx_010_nothing_after_a_remembered_fin ... ok
test s_rx_001_every_second_segment ... ok
test s_rx_006_a_later_range_remains ... ok
test s_rx_004_duplicate_acks_are_not_coalesced ... ok
test s_rx_003_out_of_order_is_acknowledged_at_once ... ok
test s_rx_012_receiver_silly_window_avoidance ... ok
test a_sub_unit_window_rounds_up_only_into_free_room ... ok
test s_rx_008_at_most_32_ranges ... ok
test s_rx_014_the_edge_holds_while_a_hole_is_open ... ok
test s_rx_017_sack_blocks ... ok
test s_rx_016_the_ack_rides_on_data ... ok
test s_rx_019_three_blocks_with_timestamps ... ok
test s_rx_020_dsack_below_rcv_nxt ... ok
test s_rx_018_the_triggering_range_first ... ok
test s_rx_022_no_sack_unnegotiated ... ok
test s_rx_023_a_reset_is_never_end_of_stream ... ok
test s_rx_021_dsack_inside_a_range ... ok
test s_rx_013_a_window_update_when_the_window_was_small ... ok
test s_rx_015_the_offered_edge_is_honoured_under_scaling ... ok
test s_rx_024_data_then_end ... ok
test s_rx_025_push_is_not_a_boundary ... ok
test s_rx_027_half_close_keeps_receiving ... ok

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/recovery.rs (target/debug/deps/recovery-b574193b8d932082)

running 33 tests
test a_probe_due_when_the_window_shuts_gives_way_to_persist ... ok
test rfc_8985_7_4_a_resent_probe_reported_as_a_duplicate_infers_no_loss ... ok
test rfc_8985_7_3_the_probe_is_new_data_where_the_window_takes_a_segment ... ok
test rfc_8985_7_1_fast_recovery_ends_the_probes_episode ... ok
test rfc_8985_7_4_an_ack_that_infers_the_probes_loss_and_enters_recovery_cuts_twice ... ok
test rfc_8985_7_4_a_dsack_after_the_ack_at_the_probes_end_infers_no_loss ... ok
test rfc_8985_7_4_a_dsack_of_another_segment_still_infers_the_loss ... ok
test s_lr_001_newreno_one_loss ... ok
test s_lr_003_newreno_partial_ack ... ok
test rfc_8985_7_4_a_duplicate_without_sack_at_the_probes_end_infers_no_loss ... ok
test rfc_8985_7_4_a_resent_probe_acknowledged_past_its_end_without_a_dsack_repaired_a_loss ... ok
test rfc_8985_7_2_with_one_segment_out_the_probe_stands_in_for_the_first_rto ... ok
test rfc_8985_7_2_no_probe_in_rto_recovery ... ok
test s_lr_002_limited_transmit_and_inflation ... ok
test s_lr_004_full_ack_after_limited_transmit ... ok
test s_lr_006_no_fast_retransmit_after_a_timeout ... ok
test s_lr_007_inflation_is_capped ... ok
test s_lr_009_is_lost_on_the_first_ack ... ok
test s_lr_005_what_is_not_a_duplicate ... ok
test s_lr_008_sack_recovery ... ok
test s_lr_010_a_second_hole ... ok
test s_lr_012_rescue_retransmission ... ok
test s_lr_013_the_recovery_point ... ok
test s_lr_016_timeout ... ok
test s_lr_017_a_second_timeout ... ok
test s_lr_011_new_data_during_sack_recovery ... ok
test s_lr_014_invalid_blocks_and_dsack ... ok
test s_lr_020_sacked_bytes_stay_queued ... ok
test s_lr_022_limited_transmit_by_pipe ... ok
test s_lr_018_no_sack_recovery_before_the_timeout_point ... ok
test s_lr_019_sacks_after_a_timeout_skip_held_ranges ... ok
test s_lr_021_pure_duplicates_without_blocks ... ok
test s_lr_023_a_lost_fast_retransmission ... ok

test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/rtt.rs (target/debug/deps/rtt-d31542d133375b39)

running 11 tests
test s_rt_008_one_segment_timed ... ok
test s_rt_016_no_timer_when_all_is_acknowledged ... ok
test s_rt_015_the_timer_restarts_on_new_acks ... ok
test s_rt_011_an_echo_from_the_future ... ok
test s_rt_007_karn ... ok
test s_rt_006_three_seconds_after_a_lost_syn ... ok
test s_rt_010_a_retransmission_echoed ... ok
test s_rt_005_the_minimum_is_200_ms ... ok
test s_rt_013_backoff_doubles ... ok
test s_rt_014_three_expiries_forget_the_estimate ... ok
test s_rt_009_timestamp_samples ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/send.rs (target/debug/deps/send-ac3312157674b9ac)

running 21 tests
test s_tx_001_one_segment_with_push ... ok
test s_tx_010_the_initial_window_bounds_a_burst ... ok
test s_tx_005_push_only_where_the_queue_empties ... ok
test s_tx_012_no_send_after_shutdown ... ok
test s_tx_003_nodelay ... ok
test s_tx_009_a_shrunk_window ... ok
test s_tx_004_full_segments_then_wait ... ok
test s_tx_002_nagle ... ok
test s_tx_006_silly_window_override ... ok
test s_tx_007_an_opened_window_cancels_the_override ... ok
test s_tx_014_an_opened_window_ends_persist ... ok
test s_tx_008_half_the_largest_window ... ok
test s_tx_011_the_send_buffer_is_bounded ... ok
test s_tx_015_the_probe_byte_taken ... ok
test s_tx_013_persist_backs_off ... ok
test s_tx_018_the_fin_as_probe ... ok
test s_tx_017_an_unanswered_persist_gives_up ... ok
test s_tx_019_a_shut_window_stops_the_retransmission_timer ... ok
test s_tx_021_close_pushes ... ok
test s_tx_020_cwnd_does_not_arm_the_override ... ok
test s_tx_016_an_answered_persist_lives ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/seq.rs (target/debug/deps/seq-dd3e9ffdeb749621)

running 8 tests
test s_seq_003_half_the_space_is_unordered ... ok
test s_seq_002_ordering_across_the_wrap ... ok
test s_seq_004_ack_range_check ... ok
test s_seq_001_offsets ... ok
test s_seq_007_timestamps_compare_modularly ... ok
test s_seq_008_sending_across_the_wrap ... ok
test s_seq_006_acceptability_across_the_wrap ... ok
test s_seq_005_segment_length ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/take.rs (target/debug/deps/take-094ff4230f111b52)

running 5 tests
test with_nothing_held_the_reader_is_not_asked ... ok
test what_the_reader_did_not_take_stays_held_in_order ... ok
test text_unread_when_both_fins_ended_the_connection_is_still_taken ... ok
test text_across_the_rings_wrap_is_shown_in_two_pieces_and_none_is_lost ... ok
test a_take_owes_the_window_update_a_read_does ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/timers.rs (target/debug/deps/timers-4a1adec2f02af4b0)

running 15 tests
test s_ka_006_the_idle_time_is_settable ... ok
test s_ka_002_a_probe_after_two_hours ... ok
test s_gu_006_a_confirmation_after_a_reverify_is_kept ... ok
test s_gu_006_progress_confirms_the_next_hop ... ok
test s_gu_001_three_expiries_raise_advice ... ok
test s_ka_004_no_keepalive_with_data_outstanding ... ok
test s_ka_001_off_by_default ... ok
test s_gu_006_b_advice_is_kept_per_address ... ok
test s_gu_004_user_timeout ... ok
test s_ka_005_the_peer_keepalive_is_answered ... ok
test s_ka_007_close_wait_and_fin_wait_2 ... ok
test s_gu_005_user_timeout_ends_an_answered_persist ... ok
test s_ka_003_nine_unanswered_probes ... ok
test s_gu_003_progress_restarts_the_give_up_clock ... ok
test s_gu_002_give_up ... ok

test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_testnet-e03e671d96866ba0)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/testnet.rs (target/debug/deps/testnet-cc9bd563b04459e9)

running 2 tests
test a_published_reader_decodes_the_capture_as_the_wire_carried_it ... ok
test a_run_repeats_exactly ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_udp-7a4e951db28da231)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/bind.rs (target/debug/deps/bind-a2984a153b04991f)

running 12 tests
test s_udp_us_004_any_needs_no_address ... ok
test s_udp_us_010_no_privileged_ports ... ok
test s_udp_us_003_only_an_assigned_address_binds ... ok
test s_udp_us_001_one_socket_per_port ... ok
test s_udp_us_002_whatever_the_address ... ok
test s_udp_us_009_a_numbered_bind_is_skipped ... ok
test s_udp_us_005_algorithm_1 ... ok
test s_udp_us_011_close_frees_the_port_at_once ... ok
test s_udp_us_007_the_draw_is_reduced ... ok
test s_udp_us_006_the_candidates_wrap ... ok
test closing_leaves_no_turn_behind ... ok
test s_udp_us_008_exhaustion_spends_one_draw ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/recv.rs (target/debug/deps/recv-41702d5029aa9c50)

running 29 tests
test s_udp_018_the_limited_broadcast_reaches_port_68 ... ok
test s_udp_us_039_a_bad_checksum_is_malformed ... ok
test s_udp_us_030_a_bound_any_socket_receives ... ok
test s_udp_us_036_an_empty_datagram ... ok
test s_udp_us_031_a_specific_socket_hears_no_broadcast ... ok
test s_udp_017_a_closed_port_is_answered ... ok
test s_udp_us_033_mdns_arrives_with_its_group ... ok
test s_udp_us_035_no_socket_is_a_port_unreachable ... ok
test s_udp_us_032_bound_any_hears_both_broadcasts ... ok
test s_udp_us_041_arrival_order ... ok
test s_udp_us_038_no_checksum_is_delivered ... ok
test s_udp_us_040_a_full_queue_drops_and_says_nothing ... ok
test s_udp_us_034_no_socket_for_a_group_is_no_error ... ok
test s_udp_us_037_source_port_zero ... ok
test s_udp_us_043_a_group_not_joined_never_reaches_udp ... ok
test s_udp_us_042_a_short_buffer_truncates ... ok
test s_udp_us_044_the_acquisition_exception ... ok
test s_udp_us_045_what_a_datagram_carries ... ok
test s_udp_us_046_refused_once ... ok
test s_udp_us_047_an_unconnected_socket_hears_no_error ... ok
test s_udp_us_048_an_error_for_no_socket ... ok
test s_udp_us_050_the_latest_error_wins ... ok
test s_udp_us_049_hard_and_soft ... ok
test s_udp_us_052_the_whole_4_tuple_must_match ... ok
test s_udp_us_051_a_send_takes_the_error ... ok
test s_udp_us_054_close_discards_what_was_received ... ok
test s_udp_us_056_prop_ip_options_never_surface ... ok
test s_udp_us_053_accepted_datagrams_outlive_close ... ok
test s_udp_us_055_prop_the_demultiplexer ... ok

test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/send.rs (target/debug/deps/send-84231b2e4c29ae88)

running 25 tests
test s_udp_us_014_connect_needs_a_source ... ok
test s_udp_us_023_payload_sizes ... ok
test s_udp_us_017_a_connected_socket_sends_to_its_peer ... ok
test s_udp_us_021_broadcast_needs_permission ... ok
test s_udp_us_022_multicast_ttl ... ok
test s_udp_us_018_reconnect ... ok
test s_udp_us_016_connect_purges_strangers ... ok
test s_udp_us_020_what_send_refuses ... ok
test s_udp_us_013_what_connect_refuses ... ok
test s_udp_us_015_a_connected_socket_hears_its_peer_alone ... ok
test s_udp_us_024_a_waiting_datagram_whose_route_goes_is_dropped ... ok
test s_udp_us_012_connect_fixes_the_local_address ... ok
test s_udp_us_019_a_bound_socket_sends ... ok
test s_udp_us_024_the_source_address_must_be_ours ... ok
test s_udp_us_025_a_full_queue_refuses ... ok
test s_udp_us_025_what_waits_for_a_next_hop_is_bounded_by_its_sockets_queue ... ok
test s_udp_us_026_a_datagram_waits_for_its_next_hop_in_its_socket_and_never_in_ip ... ok
test s_udp_us_026_datagrams_to_one_next_hop_leave_in_the_order_they_were_accepted ... ok
test s_udp_us_026_no_head_of_line_blocking ... ok
test s_udp_us_027_a_datagram_for_a_hop_ip_has_given_up_is_ips_refusal_at_its_turn ... ok
test s_udp_us_027_a_failed_next_hop_is_reported_once ... ok
test s_udp_us_028_only_the_acquisition_socket_sends_from_nowhere ... ok
test s_udp_us_027_an_unconnected_socket_is_told_nothing_and_nothing_is_kept_for_another_try ... ok
test s_udp_us_029_the_discover_byte_for_byte ... ok
test s_udp_us_053_a_closed_sockets_datagram_waits_for_its_next_hop_and_holds_back_no_other ... ok

test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_net_wire-873a39372d03d4d0)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/checksum.rs (target/debug/deps/checksum-7a13c52b35d9a298)

running 15 tests
test s_ck_017_pseudo_header ... ok
test s_ck_003_zeros ... ok
test s_ck_004_odd_length_pads_with_zero ... ok
test s_ck_005_streaming_is_split_independent ... ok
test s_ck_006_carry_of_a_carry ... ok
test s_ck_018_tcp_length_is_the_transport_length ... ok
test s_ck_009_verification_by_summing ... ok
test s_ck_001_rfc1071_worked_example ... ok
test s_ck_002_empty_input ... ok
test s_ck_010_negative_zero_verifies ... ok
test s_ck_008_long_pattern_even_and_odd ... ok
test s_ck_007_many_words_of_ones ... ok
test s_ck_019_udp_zero_is_sent_as_ffff ... ok
test s_ck_021_every_header_bit_flip_is_caught ... ok
test native_order_sum_matches_the_oracle_at_every_length_and_split ... ok

test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/icmp.rs (target/debug/deps/icmp-d2b0e731040b0b9d)

running 35 tests
test quote_total_length_below_its_header_is_refused ... ok
test s_icmp_001_echo_request ... ok
test s_icmp_002_echo_reply ... ok
test s_icmp_006_data_changed ... ok
test s_icmp_008_echo_code_1 ... ok
test an_error_with_options_still_fits_576_bytes ... ok
test s_icmp_007_odd_data_length ... ok
test s_icmp_010_fragmentation_needed ... ok
test s_icmp_009_port_unreachable ... ok
test s_icmp_011_fragmentation_needed_without_mtu ... ok
test s_icmp_012_rfc4884_length_byte ... ok
test s_icmp_005_checksum_changed ... ok
test s_icmp_004_echo_without_data ... ok
test s_icmp_003_seven_bytes ... ok
test s_icmp_013_unreachable_codes ... ok
test s_icmp_014_quote_of_19_bytes ... ok
test s_icmp_015_quote_short_of_8_payload_bytes ... ok
test s_icmp_016_quote_with_options ... ok
test s_icmp_017_quote_with_options_short ... ok
test s_icmp_018_quote_not_ipv4 ... ok
test s_icmp_019_quoted_checksum_not_verified ... ok
test s_icmp_020_rfc4884_padding_beyond_the_quoted_length ... ok
test s_icmp_021_time_exceeded ... ok
test s_icmp_022_parameter_problem ... ok
test s_icmp_023_redirect ... ok
test s_icmp_024_timestamp_request_refused_by_type ... ok
test s_icmp_025_timestamp_fields_are_never_read ... ok
test s_icmp_026_timestamp_reply_refused_by_type ... ok
test s_icmp_027_source_quench ... ok
test s_icmp_028_deprecated_types ... ok
test s_icmp_029_router_discovery ... ok
test s_icmp_030_unknown_types ... ok
test s_icmp_031_checksum_before_type ... ok
test s_icmp_047_echo_reply_to_odd_data ... ok
test s_icmp_048_unreachable_zeroes_unused_bytes ... ok

test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/igmp.rs (target/debug/deps/igmp-76044004b32d0d76)

running 29 tests
test igmp3_join_frame ... ok
test igmp3_records_layout ... ok
test igmp3_is_include_lists_its_sources ... ok
test igmp3_leave_current_and_unspecified_source ... ok
test s_igmp_001_v2_report ... ok
test s_igmp_003_v1_query ... ok
test s_igmp_002_v2_general_query ... ok
test s_igmp_004_v3_general_query ... ok
test s_igmp_005_v3_exponential_code ... ok
test s_igmp_006_v2_codes_are_linear ... ok
test s_igmp_007_v3_largest_code ... ok
test s_igmp_012_seven_bytes ... ok
test s_igmp_011_query_of_9_to_11_bytes ... ok
test s_igmp_013_checksum_changed ... ok
test s_igmp_008_group_and_source_query ... ok
test s_igmp_009_sources_overrun ... ok
test s_igmp_010_bytes_after_sources_ignored ... ok
test s_igmp_014_trailing_bytes_ignored ... ok
test s_igmp_015_checksum_covers_trailing_bytes ... ok
test s_igmp_016_query_group_unicast ... ok
test s_igmp_017_report_group_not_multicast ... ok
test s_igmp_018_leave ... ok
test s_igmp_019_v1_report_max_response_ignored ... ok
test s_igmp_020_v3_report_unsupported ... ok
test s_igmp_021_unknown_types ... ok
test s_igmp_022_checksum_before_type ... ok
test s_igmp_026_emit_join_frame ... ok
test s_igmp_027_emit_leave ... ok
test s_igmp_030_emitted_max_response_is_zero ... ok

test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/ipv4.rs (target/debug/deps/ipv4-4e4484d2e12319f3)

running 54 tests
test s_ip_002_minimal_datagram ... ok
test s_ip_003_nineteen_bytes ... ok
test s_ip_004_version_6 ... ok
test s_ip_005_version_5 ... ok
test s_ip_001_udp_datagram_fields ... ok
test s_ip_006_header_length_below_5 ... ok
test s_ip_009_total_zero ... ok
test s_ip_008_total_below_header ... ok
test s_ip_007_header_overrun ... ok
test s_ip_010_total_inside_options ... ok
test s_ip_011_total_overrun ... ok
test s_ip_012_truncated_fragment_is_truncated ... ok
test s_ip_014_padded_igmp_body ... ok
test s_ip_013_link_padding_is_not_payload ... ok
test s_ip_015_checksum_off_by_one ... ok
test s_ip_016_checksum_zero_is_checked ... ok
test s_ip_017_options_are_covered ... ok
test s_ip_018_payload_is_not_covered ... ok
test s_ip_019_reserved_flag_is_kept ... ok
test s_ip_020_df_and_mf ... ok
test s_ip_021_first_fragment ... ok
test s_ip_022_last_fragment ... ok
test s_ip_023_largest_offset ... ok
test s_ip_024_dscp_and_ecn ... ok
test s_ip_027_identification_of_atomic_datagram ... ok
test s_ip_028_largest_datagram ... ok
test s_ip_029_protocol_numbers ... ok
test s_ip_030_emit_udp_datagram ... ok
test s_ip_031_emit_router_alert ... ok
test s_ip_032_option_padding ... ok
test s_ip_033_forty_option_bytes ... ok
test s_ip_036_ttl_zero ... ok
test s_ip_037_invalid_sources ... ok
test s_ip_038_emit_over_junk ... ok
test s_ip_039_atomic_form ... ok
test s_ip_034_largest_total_length ... ok
test s_ipo_001_nops_and_eol_are_not_options ... ok
test s_ip_040_emit_dscp_and_ecn ... ok
test s_ipo_002_record_route ... ok
test s_ipo_003_router_alert ... ok
test s_ipo_004_router_alert_length ... ok
test s_ipo_005_option_length_one ... ok
test s_ipo_006_option_length_zero_terminates ... ok
test s_ipo_007_option_overrun ... ok
test s_ipo_008_kind_in_last_byte ... ok
test s_ipo_009_bytes_after_eol_ignored ... ok
test s_ipo_010_router_alert_without_eol ... ok
test s_ipo_012_option_filling_the_area ... ok
test s_ipo_011_unknown_kind_is_opaque ... ok
test s_ipo_013_option_past_a_full_area ... ok
test s_ipo_014_repeated_options_in_order ... ok
test s_ipo_016_security_option_exposed ... ok
test s_ipo_015_stream_id_exposed ... ok
test source_routes_cannot_be_built ... ok

test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/link.rs (target/debug/deps/link-c4da610f133c46bf)

running 43 tests
test s_arp_002_reply ... ok
test s_arp_004_announcement ... ok
test s_arp_001_request ... ok
test s_arp_003_probe ... ok
test s_arp_006_seven_bytes ... ok
test s_arp_007_ieee802_hardware ... ok
test s_arp_010_hardware_length_7 ... ok
test s_arp_009_protocol_ipv6 ... ok
test s_arp_008_hardware_zero ... ok
test s_arp_014_padding_ignored ... ok
test s_arp_011_protocol_length_16 ... ok
test s_arp_015_request_target_mac_exposed ... ok
test s_arp_012_types_before_lengths ... ok
test s_arp_005_twenty_seven_bytes ... ok
test s_arp_013_other_operations ... ok
test s_arp_019_emit_request ... ok
test s_arp_020_emit_reply ... ok
test s_arp_022_interface_mac_is_individual ... ok
test s_arp_021_emit_probe_and_announcement ... ok
test s_eth_001_arp_request_frame ... ok
test s_eth_003_thirteen_bytes_truncated ... ok
test s_eth_002_udp_frame_without_padding ... ok
test s_eth_004_header_alone_has_an_empty_body ... ok
test s_eth_006_length_1500_is_a_length_frame ... ok
test s_eth_005_short_frame_accepted ... ok
test s_eth_007_length_0_is_a_length_frame ... ok
test s_eth_008_type_1501_is_undefined ... ok
test s_eth_010_type_0600_is_another_ethertype ... ok
test s_eth_009_type_1535_is_undefined ... ok
test s_eth_013_customer_tag ... ok
test s_eth_014_priority_tag ... ok
test s_eth_015_service_then_customer_tag ... ok
test s_eth_016_three_tags ... ok
test s_eth_017_truncated_tag ... ok
test s_eth_018_inner_length_field ... ok
test s_eth_019_9100_is_not_a_tag ... ok
test s_eth_020_group_source ... ok
test s_eth_021_destination_classes ... ok
test s_eth_026_emit_arp_request ... ok
test s_eth_027_emit_over_junk ... ok
test s_eth_028_minimum_body_padding ... ok
test s_eth_029_maximum_body ... ok
test s_eth_031_multicast_mac_mapping ... ok

test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/roundtrip.rs (target/debug/deps/roundtrip-fc05914cb8bc3882)

running 9 tests
test s_rt_009_zero_copy ... ok
test s_rt_001_every_vector_reemits_raw ... ok
test s_rt_002_canonical_vectors_rebuild ... ok
test s_rt_008_position_independence ... ok
test s_rt_006_truncation_sweep ... ok
test s_rt_007_single_bit_flips ... ok
test s_rt_003_build_then_parse ... ok
test s_rt_004_canonical_idempotence ... ok
test s_rt_005_totality_structured_fuzz ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.89s

     Running tests/transport.rs (target/debug/deps/transport-1f8879561150984f)

running 89 tests
test s_tcp_001_syn ... ok
test s_tcp_006_rst ... ok
test s_tcp_011_data_offset_past_the_bytes ... ok
test s_tcp_012_data_offset_15_on_59_bytes ... ok
test s_tcp_014_checksum_zero_is_checked ... ok
test s_tcp_005_three_sack_blocks ... ok
test s_tcp_013_checksum_changed ... ok
test s_tcp_008_odd_length_verifies ... ok
test s_tcp_009_nineteen_bytes ... ok
test s_tcp_010_data_offset_below_5 ... ok
test s_tcp_007_fin ... ok
test s_tcp_004_sack ... ok
test s_tcp_003_data ... ok
test s_tcp_002_syn_ack ... ok
test s_tcp_015_wrong_source_address ... ok
test s_tcp_016_port_zero ... ok
test s_tcp_017_reserved_bits_kept ... ok
test s_tcp_018_acknowledgment_without_ack ... ok
test s_tcp_019_urgent_pointer_only_with_urg ... ok
test s_tcp_020_any_flag_combination ... ok
test s_tcp_021_ece_and_cwr ... ok
test s_tcp_022_syn_with_data ... ok
test s_tcp_024_window_is_unsigned ... ok
test s_tcp_025_data_offset_before_checksum ... ok
test s_tcp_023_largest_segment ... ok
test s_tcp_026_checksum_before_options ... ok
test s_topt_001_no_options ... ok
test s_topt_002_timestamps_alone ... ok
test s_topt_003_mss_at_odd_offset ... ok
test s_topt_004_eol_first ... ok
test s_topt_005_bytes_after_eol_ignored ... ok
test s_topt_006_mss_length ... ok
test s_topt_008_sack_permitted_length ... ok
test s_topt_007_window_scale_length ... ok
test s_topt_009_timestamps_length ... ok
test s_topt_010_sack_lengths ... ok
test s_topt_011_sack_without_blocks ... ok
test s_topt_012_md5_skipped ... ok
test s_topt_013_unknown_kinds_skipped ... ok
test s_topt_014_length_zero ... ok
test s_topt_015_length_one ... ok
test s_topt_016_timestamps_past_the_area ... ok
test s_topt_017_kind_in_last_byte ... ok
test s_topt_018_repeats ... ok
test s_topt_019_window_scale_above_14 ... ok
test s_topt_020_mss_zero ... ok
test s_topt_021_syn_options_outside_a_syn ... ok
test s_topt_022_sack_in_a_syn ... ok
test s_topt_023_timestamps_in_a_syn ... ok
test s_topt_024_forty_nops ... ok
test s_topt_025_syn_without_timestamps ... ok
test s_tser_001_emit_syn ... ok
test s_tser_002_emit_syn_ack ... ok
test s_tser_003_emit_syn_without_timestamps ... ok
test s_tser_004_emit_syn_layouts ... ok
test s_tser_005_emit_data ... ok
test s_tser_006_emit_sack ... ok
test s_tser_007_sack_block_limits ... ok
test s_tser_009_window_shift_limit ... ok
test s_tser_010_emit_rst ... ok
test s_tser_011_emit_rst_with_timestamps ... ok
test s_tser_012_emitted_reserved_and_urgent_are_zero ... ok
test s_tser_013_emit_odd_segment ... ok
test s_tser_014_emit_over_junk ... ok
test s_tser_015_too_long ... ok
test s_udp_001_dns_query ... ok
test s_udp_002_ffff_verifies ... ok
test s_udp_003_seven_bytes ... ok
test s_udp_004_length_below_header ... ok
test s_udp_005_length_overrun ... ok
test s_udp_006_surplus_after_length_ignored ... ok
test s_udp_007_checksum_covers_only_the_length ... ok
test s_udp_008_no_checksum ... ok
test s_udp_009_no_checksum_catches_nothing ... ok
test s_udp_010_wrong_checksum ... ok
test s_udp_011_pseudo_header_catches_misdelivery ... ok
test s_udp_012_destination_port_zero ... ok
test s_udp_013_source_port_zero ... ok
test s_udp_014_largest_datagram ... ok
test s_udp_015_length_checked_before_checksum ... ok
test s_udp_020_emit_computed_zero_as_ffff ... ok
test s_udp_019_emit_dns_query ... ok
test s_udp_021_always_checksummed ... ok
test s_udp_023_zero_port_cannot_be_built ... ok
test s_udp_022_too_long ... ok
test s_udp_016_the_one_undetectable_bit_flip ... ok
test s_udp_024_emit_hi ... ok
test tcp_pseudo_header_names_protocol_6 ... ok
test udp_pseudo_header_names_protocol_17 ... ok

test result: ok. 89 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_osrelease-50dadd189bb5660e)

running 8 tests
test tests::a_dirty_x86_build_reads_so ... ok
test tests::a_file_that_is_not_text_is_refused ... ok
test tests::a_file_the_build_did_not_write_is_refused ... ok
test tests::a_missing_or_doubled_field_is_refused_by_its_name ... ok
test tests::a_value_the_build_does_not_write_is_refused_by_its_field ... ok
test tests::every_file_the_build_writes_is_os_release ... ok
test tests::uname_names_a_dirty_tree ... ok
test tests::what_the_build_writes_is_what_a_reader_reads ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_pci-9bdc72ba04228e61)

running 75 tests
test af::tests::a_function_resets_only_with_both_bits ... ok
test af::tests::pending_is_bit_zero_of_status ... ok
test aperture::tests::nothing_is_inside_a_machine_that_named_no_window ... ok
test aperture::tests::the_window_an_extent_is_inside_is_the_one_named ... ok
test bar::tests::a_32_bit_memory_bar_is_its_own_whole_address ... ok
test bar::tests::a_64_bit_memory_bar_takes_the_register_after_it ... ok
test bar::tests::a_placement_moves_the_address_and_keeps_the_devices_own_bits ... ok
test bar::tests::a_sizing_mask_decodes_to_the_spec_size ... ok
test bar::tests::a_sizing_mask_that_describes_no_size_is_refused ... ok
test bar::tests::a_wide_bar_has_no_address_until_the_high_half_arrives ... ok
test bar::tests::a_wide_claim_in_the_last_slot_is_refused_by_name ... ok
test bar::tests::an_address_a_bar_cannot_hold_is_refused_by_name ... ok
test bar::tests::an_io_bar_whose_bit_2_is_clear_is_not_a_32_bit_memory_bar ... ok
test bar::tests::an_io_bar_whose_bit_2_is_set_is_not_a_64_bit_memory_bar ... ok
test bar::tests::an_unassigned_bar_is_refused_rather_than_mapped_at_zero ... ok
test bar::tests::every_io_bar_is_refused_whatever_the_bits_above_it_say ... ok
test bar::tests::prefetchable_is_read_and_is_not_part_of_the_address ... ok
test bar::tests::the_reserved_type_encodings_are_refused_by_name ... ok
test bar::tests::the_shapes_real_controllers_publish_still_decode ... ok
test bridge::tests::a_64_bit_prefetchable_window_is_its_upper_dwords_too ... ok
test bridge::tests::a_disabled_window_is_no_window ... ok
test bridge::tests::the_limit_names_the_last_megabyte_and_not_the_first_free_one ... ok
test bridge::tests::the_type_field_is_not_part_of_the_address ... ok
test caps::tests::a_forward_chain_is_followed_to_its_end ... ok
test caps::tests::a_pointer_below_the_standard_header_is_refused ... ok
test caps::tests::a_pointer_that_is_not_dword_aligned_is_refused ... ok
test caps::tests::a_pointer_to_a_visited_link_ends_the_walk ... ok
test caps::tests::the_terminator_ends_the_walk ... ok
test caps::tests::the_walk_is_bounded_by_the_distinct_offsets_it_can_hold ... ok
test express::tests::initiating_a_reset_preserves_the_rest_of_device_control ... ok
test express::tests::only_a_version_two_structure_holds_device_control_2 ... ok
test express::tests::restoring_device_control_never_starts_a_reset ... ok
test msi::tests::a_function_without_per_vector_masking_offers_no_mask_register ... ok
test msi::tests::a_narrow_function_has_no_upper_address_register ... ok
test msi::tests::disabling_clears_the_enable_bit_and_nothing_else ... ok
test msi::tests::enabling_keeps_what_the_function_said_about_itself ... ok
test msi::tests::multiple_message_capable_is_an_exponent ... ok
test msi::tests::the_capable_field_is_not_the_enable_field ... ok
test msi::tests::the_layout_moves_with_the_address_width ... ok
test express::tests::only_bit_twenty_eight_says_a_function_resets ... ok
test msix::tests::a_reserved_indicator_is_refused_rather_than_indexed ... ok
test msix::tests::a_table_past_the_address_space_is_refused_rather_than_wrapped ... ok
test msix::tests::an_unassigned_bar_is_refused_rather_than_written_at_its_offset ... ok
test msix::tests::bir_and_offset_share_one_register ... ok
test msix::tests::disabling_masks_as_well_and_keeps_the_size ... ok
test msix::tests::enabling_clears_the_function_wide_mask_and_keeps_the_size ... ok
test msix::tests::an_entry_is_four_dwords_in_the_order_the_spec_gives_them ... ok
test msix::tests::table_size_is_encoded_one_less_than_it_is ... ok
test msix::tests::the_indicator_is_not_added_to_the_offset ... ok
test msix::tests::the_control_bits_are_not_part_of_the_size ... ok
test placement::tests::a_released_address_is_offered_again ... ok
test placement::tests::a_reserved_address_is_never_offered_twice ... ok
test placement::tests::a_run_is_free_and_in_one_list_once ... ok
test placement::tests::a_run_is_offered_aligned_to_the_span_and_not_at_its_start ... ok
test placement::tests::a_run_that_straddles_a_windows_edge_offers_the_part_inside_it ... ok
test placement::tests::a_span_that_runs_past_a_window_is_not_inside_it ... ok
test placement::tests::an_extent_inside_another_opens_no_run ... ok
test placement::tests::edk2_offers_a_64_bit_bar_the_window_it_declared ... ok
test placement::tests::edk2s_32_bit_runs_are_the_ones_its_boot_printed ... ok
test placement::tests::edk2s_64_bit_runs_are_the_ones_its_boot_printed ... ok
test placement::tests::every_address_the_t14_offers_is_inside_the_window_its_firmware_named ... ok
test placement::tests::largest_run_first_still_offers_no_address_outside_a_window ... ok
test placement::tests::nothing_is_offered_where_firmware_named_no_window ... ok
test placement::tests::nothing_is_offered_where_nothing_fits ... ok
test placement::tests::taken_is_read_in_any_order_and_overlapping ... ok
test pm::tests::a_transition_changes_the_state_bits_and_clears_no_event ... ok
test pm::tests::no_soft_reset_is_bit_three_and_nothing_else ... ok
test probe::tests::a_function_the_table_knows_nothing_about_is_read_at_its_base ... ok
test probe::tests::a_transitional_virtio_id_is_not_a_modern_one ... ok
test probe::tests::neither_answer_of_an_unanswered_read_is_a_reference ... ok
test slot::tests::a_function_goes_back_to_its_own_residue_ahead_of_a_free_slot ... ok
test slot::tests::a_held_function_is_owned ... ok
test slot::tests::a_release_keeps_the_slot_only_for_a_residue ... ok
test slot::tests::a_second_function_takes_a_free_slot_and_never_anothers_residue ... ok
test slot::tests::other_functions_residues_are_no_free_slot ... ok

test result: ok. 75 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_phys-bbc990ee9e0e741f)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/phys.rs (target/debug/deps/phys-e8eddaefd0071f1e)

running 2 tests
test an_address_off_its_alignment_or_past_48_bits_is_no_address ... ok
test a_words_address_field_is_its_bits_from_the_alignment_to_47 ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_ps2-865fc29c56dec46f)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/decode.rs (target/debug/deps/decode-b9d132b3ab6ece29)

running 20 tests
test a_device_reset_is_reported_and_aa_is_still_a_legal_head_byte ... ok
test a_healthy_stream_discards_nothing_and_leaves_no_byte_unaccounted ... ok
test a_sequence_is_pending_until_the_byte_that_ends_it ... ok
test a_stream_truncated_at_any_offset_resyncs_within_two_packets ... ok
test an_implausible_byte_at_a_boundary_costs_exactly_itself ... ok
test a_stale_partial_is_abandoned_rather_than_completed ... ok
test buttons_are_already_in_hid_order ... ok
test every_usage_the_rest_of_the_tree_names_is_reachable ... ok
test left_shift_break_is_not_read_as_a_reset ... ok
test deltas_are_nine_bit_and_dy_is_inverted ... ok
test make_and_break_and_the_e0_prefix ... ok
test no_legal_head_byte_is_ever_discarded ... ok
test overflow_drops_the_motion_and_keeps_the_buttons ... ok
test overrun_codes_report_lost_and_clear_the_prefix_state ... ok
test page_up_and_down_decode_to_their_hid_usages ... ok
test pause_consumes_exactly_six_bytes_and_emits_nothing ... ok
test tables_hold_only_real_usages_and_no_duplicates ... ok
test printscreen_emits_one_usage_and_no_phantom_shift ... ok
test the_iso_key_is_the_one_the_layouts_carry ... ok
test unmapped_scancodes_emit_nothing ... ok

test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/fuzz.rs (target/debug/deps/fuzz-10bab5efbca8d384)

running 4 tests
test a_lost_scancode_byte_never_wedges_the_prefix_state ... ok
test a_lost_byte_costs_exactly_the_packet_it_landed_in ... ok
test arbitrary_bytes_never_kill_the_mouse_decoder ... ok
test arbitrary_bytes_never_kill_the_key_decoder ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

     Running unittests src/lib.rs (target/debug/deps/toyos_quiesce-b21da58b4db502c9)

running 8 tests
test tests::a_sweep_with_nothing_left_running_ends_the_wait_however_long_it_took ... ok
test tests::a_line_that_is_not_a_record_is_refused_rather_than_half_read ... ok
test tests::an_empty_machine_is_already_stopped ... ok
test tests::every_other_thread_stops_the_log_writer_included ... ok
test tests::every_record_reads_back_as_itself_off_a_line_of_log ... ok
test tests::the_budget_ends_the_wait_and_the_boundary_is_inclusive ... ok
test tests::the_caller_is_never_stopped_and_its_siblings_always_are ... ok
test tests::the_record_names_the_shortfall_only_when_there_is_one ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_random-9f6c8470e91e6f4e)

running 12 tests
test tests::a_wipe_leaves_zeros ... ok
test tests::the_key_a_draw_was_made_under_is_gone_when_it_returns ... ok
test tests::a_taken_seed_leaves_zeros_where_it_was_handed ... ok
test tests::a_quarter_round_moves_its_four_words_of_the_state_and_no_other ... ok
test tests::a_draw_is_the_blocks_the_module_states ... ok
test tests::the_quarter_round_is_rfc_8439s ... ok
test tests::bytes_a_failed_source_leaves_are_no_seed ... ok
test tests::a_stream_does_not_repeat_where_32_bits_of_counter_end ... ok
test tests::bytes_of_another_length_are_no_seed ... ok
test tests::the_block_function_gives_appendix_a_1s_keystreams ... ok
test tests::every_seed_mixed_moves_the_draw_and_none_replaces_another ... ok
test tests::the_block_function_is_rfc_8439s ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

     Running unittests src/lib.rs (target/debug/deps/toyos_rootimage-8779a7eb044990fc)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/chunk.rs (target/debug/deps/chunk-da24920ad35d6108)

running 12 tests
test a_chunk_larger_than_the_extent_is_one_request_of_the_extent ... ok
test a_granularity_dividing_the_bound_leaves_it_alone ... ok
test a_granularity_past_the_bound_is_not_taken ... ok
test an_odd_granularity_rounds_the_bound_down_to_a_common_multiple ... ok
test no_granularity_is_the_bound ... ok
test a_chunk_off_the_block_is_refused - should panic ... ok
test a_bound_off_the_alignment_is_refused - should panic ... ok
test a_failing_last_partial_chunk_names_its_own_length ... ok
test four_kib_blocks_advance_the_lba_by_their_own_size ... ok
test an_exact_multiple_is_whole_chunks ... ok
test a_failing_chunk_is_named_by_its_first_lba_and_nothing_after_it_is_asked ... ok
test the_last_chunk_is_whatever_is_left ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/handoff.rs (target/debug/deps/handoff-05e3785a6aaf6a77)

running 9 tests
test a_start_that_is_not_block_aligned_is_refused ... ok
test an_extent_ending_one_page_past_the_descriptor_is_refused ... ok
test an_extent_starting_one_page_before_the_descriptor_is_refused ... ok
test an_extent_inside_one_descriptor_is_held ... ok
test a_length_that_is_not_whole_blocks_is_refused ... ok
test an_extent_straddling_two_adjacent_descriptors_of_the_type_is_refused ... ok
test the_whole_descriptor_is_held ... ok
test an_extent_whose_end_overflows_is_refused ... ok
test an_extent_inside_a_descriptor_of_another_type_is_refused ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_sha2-6b81ee0d0b8ee801)

running 5 tests
test tests::sha256_byte_vectors ... ok
test tests::sha512_byte_vectors ... ok
test tests::sha512_monte_carlo ... ok
test tests::sha256_monte_carlo ... ok
test tests::every_length_to_4096_in_random_splits_agrees_with_sha2 ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s

     Running unittests src/lib.rs (target/debug/deps/toyos_smmu-2aa83d2753d47320)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/encodings.rs (target/debug/deps/encodings-1a7c61e22a21a4b2)

running 27 tests
test a_command_error_is_the_cons_registers_err_field_alone ... ok
test a_context_descriptor_walks_ttb0_alone_under_its_own_asid ... ok
test a_context_descriptors_ips_is_the_units_output_size_and_no_more_than_48_bits ... ok
test a_descriptor_or_a_mapping_past_the_units_output_size_is_refused ... ok
test a_descriptor_read_back_is_a_table_only_above_level_3 ... ok
test a_queue_is_inside_the_units_size_and_aligned_to_its_own ... ok
test a_queues_indexes_say_empty_full_and_slot_as_a_count_would ... ok
test a_reserved_size_is_refused_and_the_largest_defined_one_is_not ... ok
test a_stream_table_is_linear_inside_the_units_streams_and_aligned_to_its_size ... ok
test a_table_or_queue_past_the_units_output_size_is_refused ... ok
test a_translating_entry_is_stage_1_alone_through_one_context_descriptor ... ok
test a_translation_fault_names_its_stream_its_address_and_whether_it_wrote ... ok
test a_unit_that_lacks_what_the_configuration_needs_is_refused_by_name ... ok
test a_unit_that_is_not_coherent_is_refused_unless_the_iort_says_it_is ... ok
test a_units_output_size_is_idr5s_and_bounds_what_it_is_given ... ok
test a_units_sizes_are_read_from_their_own_fields ... ok
test an_aborting_entry_is_valid_and_configured_to_pass_nothing ... ok
test an_address_past_the_input_or_off_the_leafs_alignment_has_no_plan ... ok
test an_asid_is_no_wider_than_the_units ... ok
test an_error_is_active_while_the_two_registers_differ_in_its_bit ... ok
test consuming_an_event_acknowledges_an_overflow_and_never_raises_one ... ok
test each_command_holds_its_opcode_and_parameters_where_its_diagram_has_them ... ok
test memory_is_a_level_2_block_only_its_own_context_and_an_unprivileged_device_reach ... ok
test the_control_values_hold_each_field_where_its_register_has_it ... ok
test every_event_number_is_its_own_code_and_only_a_fault_carries_an_attempt ... ok
test the_doorbell_is_one_level_3_page_of_device_memory ... ok
test the_registers_sit_where_the_register_overview_has_them ... ok

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_ssh-566d9a2689c0936e)

running 6 tests
test wire::tests::an_mpint_is_written_as_rfc_4251_spells_it ... ok
test wire::tests::a_reader_refuses_by_the_fields_name ... ok
test base64::tests::rfc_4648_vectors ... ok
test hostkey::tests::a_key_ssh_keygen_minted_reads_with_its_fingerprint ... ok
test hostkey::tests::rfc_8032_vectors ... ok
test hostkey::tests::a_key_that_is_not_one_is_refused_by_name ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/fuzz.rs (target/debug/deps/fuzz-8a8e0294ae4a9d94)

running 2 tests
test every_bent_recording_is_total_and_a_bend_before_the_login_prevents_it ... ok
test every_session_is_total_and_none_logs_in_without_a_right_signature ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.76s

     Running tests/refusals.rs (target/debug/deps/refusals-a176d223b719462a)

running 17 tests
test every_other_method_is_refused_by_name ... ok
test an_unlisted_key_is_refused_at_the_offer_and_signed ... ok
test a_channel_serves_one_exec_and_nothing_else ... ok
test a_re_exchange_holds_output_until_its_newkeys ... ok
test six_failures_end_the_session ... ok
test a_closed_channel_is_gone ... ok
test a_listed_key_is_asked_to_sign_and_its_signature_logs_in ... ok
test a_tampered_sealed_packet_is_refused_in_silence ... ok
test a_signature_over_anything_else_is_refused ... ok
test the_authorizer_is_asked_again_with_the_signature ... ok
test nothing_but_authentication_is_taken_before_it ... ok
test an_rsa_key_is_refused_by_name ... ok
test an_identification_line_is_held_to_rfc_4253 ... ok
test the_first_exchange_is_held_to_its_rules ... ok
test a_packet_is_held_to_its_caps ... ok
test the_windows_bound_both_sides ... ok
test a_channel_message_is_held_to_its_channel ... ok

test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/replay.rs (target/debug/deps/replay-817a887ffa660c3d)

running 9 tests
test a_terrapin_injection_into_the_first_exchange_is_refused ... ok
test openssh_holding_only_an_rsa_key_offers_none ... ok
test the_keys_derived_from_a_recorded_exchange_open_what_openssh_sealed ... ok
test a_forwarding_channel_is_refused_by_name ... ok
test a_replay_under_another_seed_does_not_open ... ok
test an_exec_openssh_ran_replays ... ok
test a_key_the_server_does_not_name_is_refused_at_the_offer ... ok
test an_exec_fed_stdin_replays ... ok
test a_session_the_client_rekeyed_three_times_replays ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/vectors.rs (target/debug/deps/vectors-ffd56c0623054122)

running 2 tests
test rfc_7748_section_6_1 ... ok
test a_client_key_that_makes_a_zero_secret_is_refused ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_swap-4bdb31d92f1f59f3)

running 5 tests
test tests::a_request_round_trips_and_a_path_it_did_not_stage_is_refused ... ok
test tests::an_installed_binary_is_named_by_its_service_under_its_digest ... ok
test tests::every_word_is_spelled_once ... ok
test tests::verify_refuses_other_bytes_and_names_both_digests ... ok
test tests::the_digest_is_sha256 ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_symbols-3d77fffbe8378355)

running 6 tests
test tests::file_range_answers_an_extent_wholly_inside ... ok
test tests::file_range_refuses_an_extent_the_addition_overflows ... ok
test tests::locate_refuses_bytes_too_short_for_a_file_header ... ok
test tests::a_short_name_is_untouched ... ok
test tests::a_name_past_head_plus_tail_is_elided ... ok
test tests::file_range_refuses_an_extent_past_the_end ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/frame.rs (target/debug/deps/frame-f15e1316f09dd2d3)

running 12 tests
test a_build_id_is_one_to_32_bytes ... ok
test a_line_that_is_no_frame_is_none ... ok
test a_name_holding_the_grammars_bytes_reads_back_whole ... ok
test a_frame_cut_at_any_byte_is_not_that_frame ... ok
test an_escape_no_encoder_writes_is_refused ... ok
test an_elided_name_keeps_offset_and_id_and_is_refused ... ok
test an_id_that_is_not_lowercase_hex_bytes_is_refused ... ok
test an_offset_is_in_the_files_addresses ... ok
test the_kernels_exact_line ... ok
test every_byte_below_space_reads_back ... ok
test a_frame_reads_back_as_written ... ok
test no_line_panics_the_reader ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s

     Running tests/name.rs (target/debug/deps/name-824dc79ccb12b2ef)

running 7 tests
test a_file_that_cannot_name_says_why ... ok
test a_real_binarys_offset_names_its_function ... ok
test a_name_no_build_id_vouches_for_is_marked_unchecked ... ok
test the_build_the_record_names_is_the_one_named ... ok
test another_build_is_refused_by_name ... ok
test every_function_names_what_object_reads ... ok
test no_corrupted_file_panics_the_namer ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s

     Running tests/real.rs (target/debug/deps/real-ab8d37aba9a537d2)

running 3 tests
test locate_finds_the_same_tables_readelf_reports ... ok
test a_file_header_locate_cannot_read_answers_none ... ok
test a_real_binarys_own_functions_resolve_to_their_own_names ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_tco-b6266fa91f28306e)

running 2 tests
test tests::a_bound_is_read_a_malformed_one_is_not_silence ... ok
test tests::the_lockup_bound_follows_the_deadline_the_boot_named ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/decode.rs (target/debug/deps/decode-606f992d567079be)

running 11 tests
test the_tiger_lake_row_takes_its_base_from_the_smbus_function ... ok
test the_q35_row_reaches_the_port_qemu_puts_the_block_at ... ok
test the_declared_control_words_run_and_halt_the_timer ... ok
test the_loaders_bound_is_exact_under_ten_seconds_and_reaches_the_hardware ... ok
test a_base_the_block_cannot_live_at_is_refused_by_name ... ok
test the_register_offsets_are_ich9_tco_hs ... ok
test a_machine_no_row_names_is_refused_rather_than_guessed ... ok
test an_absent_device_reading_all_ones_names_no_port ... ok
test a_bound_becomes_the_timer_whose_expiries_do_not_outrun_it ... ok
test no_two_rows_name_one_device ... ok
test the_last_register_has_to_end_inside_the_port_space ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_tmpdir-cdc83da0c40509c3)

running 2 tests
test tests::a_directory_the_sweep_cannot_remove_costs_no_process_but_this_one ... ok
test tests::a_held_global_lock_times_out_naming_its_holder ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s

     Running tests/reclaim.rs (target/debug/deps/reclaim-3028b35fdf6e62d7)

running 7 tests
test holder ... ok
test a_directory_goes_on_a_return_and_on_a_panic ... ok
test a_killed_process_is_reclaimed_and_a_live_one_is_never_touched ... ok
test an_adopted_root_goes_with_its_adopter ... ok
test a_root_without_an_owner_goes_and_nothing_else_is_touched ... ok
test removing_a_root_waits_for_global ... ok
test making_a_root_waits_for_global ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.12s

     Running unittests src/lib.rs (target/debug/deps/toyos_trace-221dc2a8c8afb444)

running 5 tests
test tests::a_kind_the_abi_does_not_name_is_refused_by_its_number ... ok
test tests::thread_zero_is_a_thread_and_no_thread_is_said ... ok
test tests::every_kind_decodes_with_what_its_data_says ... ok
test tests::a_wake_names_its_task_and_prints_when_on_which_cpu ... ok
test tests::a_task_event_with_no_task_is_refused ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_transport-6991df383ae0da41)

running 10 tests
test inflight::tests::an_end_answers_every_tag_once_and_a_late_completion_nothing ... ok
test queue::tests::a_head_stepped_past_each_push_is_refused_at_the_depth ... ok
test queue::tests::a_peer_cursor_out_of_reach_is_a_violation ... ok
test queue::tests::a_tail_stepped_past_each_pop_is_refused_at_the_depth ... ok
test queue::tests::the_ring_wraps_and_counts_its_space ... ok
test queue::tests::an_entry_is_nobodys_before_it_is_published ... ok
test arena::tests::a_run_a_peer_names_is_inside_the_arena ... ok
test inflight::tests::a_tag_is_answered_once_and_its_slot_takes_a_new_one ... ok
test arena::tests::an_arena_is_whole_slots_after_the_header ... ok
test inflight::tests::a_slot_refilled_past_sixteen_bits_refuses_its_first_tag ... ok

test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/loom.rs (target/debug/deps/loom-06053d5823929c8c)

running 3 tests
test a_published_entry_is_read_whole ... ok
test a_hostile_producer_yields_entries_or_a_violation ... ok
test a_hostile_consumer_yields_room_or_a_violation ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

     Running unittests src/lib.rs (target/debug/deps/toyos_tsc-9daa5a94cecbaed8)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_untrusted-25e0a33e0225bc57)


@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Earlier host run at d719cc9d4 (the same tree but issues/), EXIT=1 on the toyos SDK's lane proof, filed as issues/a-lane-reader-counted-one-refusal-fewer-than-its-writer-made.md, part 5 of 8

running 11 tests
test tests::a_refusal_says_which_number_and_which_bound ... ok
test tests::exactly_refuses_by_naming_both_numbers ... ok
test tests::it_is_the_integer_it_wraps ... ok
test tests::asking_whether_it_is_a_known_value_is_not_an_exit ... ok
test tests::two_untrusted_values_compare_with_each_other ... ok
test tests::every_width_widens_rather_than_wrapping ... ok
test tests::a_length_may_equal_its_bound_where_an_index_may_not ... ok
test tests::an_index_is_below_the_table_it_indexes ... ok
test tests::an_empty_table_indexes_nothing ... ok
test tests::a_value_whose_low_bits_are_in_range_is_still_out_of_range ... ok
test tests::decoding_keeps_the_provenance ... ok

test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_update-2ba7e34f7b2377b2)

running 42 tests
test floor::tests::only_not_found_is_no_variable ... ok
test floor::tests::only_the_loaders_own_variable_is_a_floor_and_nothing_else_is_none ... ok
test floor::tests::a_runtime_variable_that_stays_is_refused ... ok
test floor::tests::a_floor_is_named_for_its_key_and_scope ... ok
test policy::tests::a_boot_tries_the_marked_slot_first_and_the_other_only_if_there_is_one ... ok
test floor::tests::a_loader_deletes_the_stale_floors_of_its_scope_and_never_the_owners ... ok
test policy::tests::the_floor_admits_its_own_version_and_above_and_only_rises ... ok
test policy::tests::an_update_must_be_newer_than_what_runs ... ok
test record::tests::a_hang_kills_only_an_unproven_image ... ok
test record::tests::a_record_reads_back_and_anothers_is_refused ... ok
test policy::tests::every_word_is_one_parameter_token ... ok
test image::tests::a_header_reads_back_as_it_was_written ... ok
test image::tests::a_bent_header_is_refused_by_name ... ok
test record::tests::how_a_boot_ended_is_what_it_is_recorded_as ... ok
test image::tests::an_image_splits_into_exactly_its_sections ... ok
test record::tests::the_first_write_credits_no_image ... ok
test repo::tests::a_machines_newer_root_holds_though_the_mirror_withholds_it ... ok
test repo::tests::a_lower_sequence_or_a_reissued_one_is_refused ... ok
test repo::tests::a_machines_root_at_the_images_version_with_other_bytes_is_refused ... ok
test repo::tests::a_document_that_is_not_the_format_is_refused_by_line ... ok
test repo::tests::a_repository_the_renderer_writes_is_one_the_client_accepts ... ok
test repo::tests::a_document_past_its_cap_is_refused_unread ... ok
test repo::tests::a_time_is_one_that_exists_and_reads_back ... ok
test repo::tests::a_role_version_below_the_held_one_is_refused ... ok
test repo::tests::an_archive_past_its_length_or_not_its_hash_is_refused ... ok
test repo::tests::base64_has_one_spelling ... ok
test repo::tests::a_rotated_root_is_walked_and_drops_the_old_keys_floors ... ok
test repo::tests::a_signature_in_another_namespace_is_refused ... ok
test sig::tests::rfc_8032_vectors_verify_and_a_flipped_bit_does_not ... ok
test sig::tests::the_message_is_sshsigs_signed_data ... ok
test slots::tests::a_grant_claims_only_an_idle_slot_on_the_running_disk ... ok
test slots::tests::a_table_reads_back_and_a_bent_one_is_refused ... ok
test slots::tests::moving_the_mark_is_atomic_against_a_torn_copy ... ok
test slots::tests::the_checksum_is_crc32 ... ok
test slots::tests::the_idle_slot_is_the_one_whose_root_the_kernel_does_not_hold ... ok
test repo::tests::a_duplicated_signature_does_not_meet_a_threshold ... ok
test repo::tests::a_root_at_the_last_version_is_refused ... ok
test repo::tests::the_same_version_with_other_bytes_is_refused ... ok
test repo::tests::expired_metadata_is_refused_with_both_times ... ok
test repo::tests::targets_not_matching_the_timestamp_are_refused ... ok
test repo::tests::a_root_not_signed_by_the_previous_threshold_is_refused ... ok
test repo::tests::a_chain_past_the_walk_bound_is_refused ... ok

test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/repo_oracle.rs (target/debug/deps/repo_oracle-fabcc8de372a554d)

running 1 test
test a_repository_ssh_keygen_signed_is_accepted_and_a_bent_one_is_not ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/sshsig_oracle.rs (target/debug/deps/sshsig_oracle-d50f1429516c54aa)

running 1 test
test a_header_ssh_keygen_signed_verifies_and_a_bent_one_does_not ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_usbhid-58f44a93ce34affd)

running 15 tests
test pointer::tests::a_mouse_report_is_read_as_appendix_b_lays_it_out ... ok
test keyboard::tests::a_keyboard_leaving_releases_everything_it_held_and_nothing_else ... ok
test keyboard::tests::modifiers_come_first_then_releases_then_presses ... ok
test keyboard::tests::a_report_is_a_set_of_keys_and_not_a_list_of_slots ... ok
test keyboard::tests::a_report_is_read_as_appendix_b_lays_it_out ... ok
test keyboard::tests::reports_qemu_sent_read_as_the_keys_that_were_pressed ... ok
test keyboard::tests::a_fault_usage_is_refused_and_the_keys_held_stay_held ... ok
test keyboard::tests::a_rollover_report_believes_its_modifiers_and_not_its_slots ... ok
test pointer::tests::a_tablet_position_off_the_surface_is_refused ... ok
test pointer::tests::a_tablet_report_is_its_position_little_endian ... ok
test keyboard::tests::a_report_of_any_other_length_is_refused ... ok
test pointer::tests::a_report_of_a_length_its_layout_does_not_have_is_refused ... ok
test pointer::tests::reports_qemu_sent_read_as_the_motion_that_was_sent ... ok
test pointer::tests::every_report_is_read_or_refused_and_nothing_else ... ok
test keyboard::tests::every_report_is_believed_or_refused_and_nothing_else ... ok

test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s

     Running unittests src/lib.rs (target/debug/deps/toyos_userbound-0c2856776390c093)

running 43 tests
test fault::tests::a_ring_is_only_ever_what_cs_said ... ok
test place::tests::a_full_window_is_a_refusal_for_a_span_that_could_fit ... ok
test place::tests::a_hole_between_regions_takes_exactly_span_and_guard ... ok
test place::tests::a_region_at_or_above_the_ceiling_bounds_nothing ... ok
test place::tests::a_length_near_the_top_of_u64_is_refused_and_not_summed ... ok
test place::tests::a_span_is_whole_pages ... ok
test place::tests::a_span_from_a_wider_window_is_refused_by_a_narrower_one ... ok
test place::tests::a_zero_length_is_refused ... ok
test place::tests::placement_is_top_down_with_the_guard_above ... ok
test place::tests::the_largest_span_is_the_window_less_one_guard ... ok
test place::tests::nothing_is_placed_below_the_floor ... ok
test port::tests::a_declared_run_refuses_every_run_that_shares_a_port_with_it ... ok
test port::tests::a_full_declaration_refuses_one_more_run ... ok
test port::tests::a_held_row_opens_its_ports_and_no_other ... ok
test port::tests::a_refused_access_names_the_first_port_it_may_not_touch ... ok
test port::tests::a_run_is_never_empty_and_never_past_the_last_port ... ok
test port::tests::a_fresh_bitmap_refuses_every_port_and_ends_in_ones ... ok
test place::tests::a_window_without_room_for_its_guard_is_a_kernel_bug - should panic ... ok
test place::tests::a_window_not_2_mib_aligned_is_a_kernel_bug - should panic ... ok
test place::tests::a_window_reaching_the_last_page_of_the_user_half_is_a_kernel_bug - should panic ... ok
test port::tests::the_last_port_of_the_space_opens_without_touching_the_end_byte ... ok
test port::tests::a_switch_to_a_process_holding_nothing_closes_the_row ... ok
test segment::tests::a_read_only_page_between_writable_ones_refuses_a_write_only ... ok
test segment::tests::a_run_that_cannot_be_pinned_refuses_the_window_and_leaves_nothing_pinned ... ok
test segment::tests::an_empty_or_kernel_window_is_refused_before_the_walk ... ok
test segment::tests::a_range_is_looked_up_once_per_leaf ... ok
test segment::tests::frames_in_reverse_are_one_segment_per_leaf ... ok
test segment::tests::an_absent_page_anywhere_refuses_the_window ... ok
test span::tests::a_kernel_address_is_not_a_user_address ... ok
test span::tests::a_range_ending_past_the_bound_is_refused_and_a_wrapping_one_too ... ok
test span::tests::a_vaddr_min_above_the_base_cannot_rebase ... ok
test span::tests::a_zero_sized_object_is_nothing_to_dereference ... ok
test span::tests::an_entry_is_an_address_of_the_user_half_and_nothing_else ... ok
test span::tests::an_image_at_vaddr_zero_rebases_to_the_base_itself ... ok
test span::tests::an_image_that_reaches_the_last_page_of_the_user_half_is_refused ... ok
test span::tests::an_object_is_refused_for_its_alignment_before_anything_else ... ok
test span::tests::an_object_may_not_end_past_the_bound ... ok
test span::tests::no_type_may_cross_a_2_mib_boundary ... ok
test segment::tests::frames_in_order_are_one_segment ... ok
test segment::tests::the_segments_are_the_maximal_runs_and_cover_the_window_exactly ... ok
test segment::tests::every_run_is_pinned_until_the_window_is_dropped ... ok
test segment::tests::a_read_across_shuffled_frames_gets_the_bytes_at_their_addresses ... ok
test segment::tests::a_write_across_shuffled_frames_lands_where_a_ring_3_load_reads_it ... ok

test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.85s

     Running tests/firmware.rs (target/debug/deps/firmware-ff1846570b37ec0e)

running 24 tests
test a_sleep_type_is_three_bits_and_lands_only_in_its_field ... ok
test a_port_answers_as_its_declaration_says ... ok
test a_wide_access_is_held_to_every_port_it_spans ... ok
test an_address_in_the_ecam_window_is_a_configuration_access_whatever_the_map_types_it ... ok
test every_configuration_write_is_refused_by_one_name ... ok
test memory_past_what_the_kernel_maps_is_refused ... ok
test ram_is_refused_both_ways_whatever_usable_type_it_is ... ok
test a_configuration_read_is_held_to_the_window_and_to_one_register ... ok
test every_page_a_window_the_kernel_drives_lies_in_is_refused_inside_any_type ... ok
test memory_any_usable_range_holds_is_refused_whatever_lists_it_first ... ok
test a_byte_for_smi_cmd_is_a_firmware_call_unless_the_fadt_names_it ... ok
test every_other_type_and_an_unlisted_address_is_refused_with_its_type ... ok
test no_unlisted_address_is_read_where_a_cpus_range_registers_differ ... ok
test nvs_and_reserved_memory_pass_both_ways_to_their_last_byte_and_no_further ... ok
test a_memory_bar_is_refused_where_firmware_types_its_range_as_its_own ... ok
test a_write_that_reaches_smi_cmd_and_is_no_byte_to_it_is_refused ... ok
test an_unlisted_address_below_1_mib_is_refused_whatever_the_range_registers_answer ... ok
test an_unlisted_register_is_read_where_it_is_uncached_and_never_written ... ok
test runtime_services_code_is_refused_both_ways ... ok
test runtime_services_data_is_read_as_the_tables_memory_is_and_never_written ... ok
test the_facs_is_read_and_its_bytes_are_never_written ... ok
test the_kernel_admits_a_fixed_few_firmware_calls_in_any_period ... ok
test the_lock_word_is_exchanged_only_where_all_four_bytes_are_the_firmwares_own ... ok
test the_tables_memory_is_read_and_never_written ... ok

test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_virtio-7636a0b5fd96be30)

running 33 tests
test tests::a_head_past_the_table_is_refused ... ok
test tests::a_device_that_never_finishes_its_reset_is_refused_and_written_nothing_more ... ok
test tests::a_head_with_no_chain_in_flight_is_refused ... ok
test tests::a_device_without_version_1_is_refused_and_told_so ... ok
test tests::a_device_missing_a_structure_is_refused_by_its_name ... ok
test tests::a_chain_is_whole_before_its_index_and_its_index_before_its_notification ... ok
test tests::a_device_that_does_not_keep_features_ok_is_refused_and_told_so ... ok
test tests::a_field_past_the_device_structure_is_refused_and_not_read ... ok
test tests::a_descriptor_table_the_device_rewrote_into_a_loop_is_never_followed ... ok
test tests::a_new_queue_zeroes_its_parts_and_nothing_else ... ok
test tests::a_notification_is_the_queues_index_at_the_queues_address ... ok
test tests::a_notify_offset_outside_the_notification_structure_is_refused ... ok
test tests::a_published_chain_is_what_the_device_reads ... ok
test tests::a_queue_shallower_than_the_drivers_rings_is_refused ... ok
test tests::a_chain_past_the_table_is_the_drivers_mistake - should panic ... ok
test tests::a_part_off_its_alignment_is_the_drivers_mistake - should panic ... ok
test tests::a_chain_over_a_descriptor_in_flight_is_the_drivers_mistake - should panic ... ok
test tests::a_chain_on_a_queue_the_device_was_never_given_is_the_drivers_mistake - should panic ... ok
test tests::a_queue_size_that_is_no_power_of_two_is_the_drivers_mistake - should panic ... ok
test tests::a_refused_element_does_not_hide_the_ones_behind_it ... ok
test tests::a_readable_element_after_a_writable_one_is_the_drivers_mistake - should panic ... ok
test tests::a_ring_past_the_grant_is_the_drivers_mistake - should panic ... ok
test tests::a_structure_its_bar_does_not_hold_is_refused_and_never_reached ... ok
test tests::a_used_element_is_read_after_the_index_that_counts_it ... ok
test tests::a_used_index_past_what_was_made_available_is_refused_and_nothing_is_read ... ok
test tests::a_vector_the_device_does_not_map_is_refused_and_its_queue_stays_disabled ... ok
test tests::more_bytes_than_the_chain_may_be_written_is_refused ... ok
test tests::only_what_the_device_offers_is_accepted ... ok
test tests::structures_in_two_bars_are_refused ... ok
test tests::the_first_capability_of_each_type_in_a_real_bar_is_the_one_used ... ok
test tests::the_initialisation_is_the_sequence_the_specification_orders ... ok
test tests::both_indices_wrap_at_65536 ... ok
test tests::a_hostile_device_is_believed_only_where_the_model_agrees ... ok

test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running unittests src/lib.rs (target/debug/deps/toyos_wallclock-d4ec3af8b5280ad4)

running 6 tests
test tests::only_logkeepers_own_names_are_logkeepers ... ok
test tests::the_calendar_round_trips_through_the_dates_that_break_one ... ok
test tests::every_time_of_day_this_renders_is_one_it_reads_back ... ok
test tests::a_part_is_its_stem_and_number ... ok
test tests::an_impossible_instant_is_refused_and_a_leap_day_is_not ... ok
test tests::every_stem_this_renders_is_one_it_reads_back ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (target/debug/deps/toyos_xhci-64cc3df6bec03b92)

running 163 tests
test bot::tests::a_break_says_where_it_left_the_device_and_which_event_ended_it ... ok
test bot::tests::a_command_or_status_block_that_moved_short_breaks ... ok
test bot::tests::a_command_with_no_data_is_its_command_block_and_its_status ... ok
test bot::tests::a_cbw_is_laid_out_as_the_class_defines_it ... ok
test bot::tests::a_data_phase_whose_pipe_will_not_restart_breaks_as_a_stall ... ok
test bot::tests::a_leg_that_fails_breaks_the_round_trip_where_it_failed ... ok
test bot::tests::a_data_phase_runs_on_the_pipe_its_command_names ... ok
test bot::tests::a_csw_is_believed_only_when_it_is_valid_and_meaningful ... ok
test bot::tests::a_stalled_data_phase_is_restarted_and_its_status_read ... ok
test bot::tests::a_stalled_data_phase_delivers_what_both_the_controller_and_the_device_say_arrived ... ok
test bot::tests::a_status_stalled_after_a_data_stall_is_still_asked_for_again ... ok
test bot::tests::a_stalled_status_is_asked_for_again_once ... ok
test bot::tests::a_byte_no_phase_publishes_reads_as_closed ... ok
test bot::tests::every_phase_but_the_closed_one_is_a_device_holding_a_command ... ok
test bot::tests::no_two_phases_are_named_the_same_thing ... ok
test bot::tests::every_phase_survives_the_byte_it_is_published_as ... ok
test bot::tests::what_is_delivered_is_what_both_the_controller_and_the_device_say_arrived ... ok
test call::tests::a_call_that_enters_the_ladder_a_rung_up_finds_that_rung_whole ... ok
test call::tests::a_call_whose_transport_has_not_broken_is_clipped_and_refused_nothing ... ok
test call::tests::a_command_sent_again_after_a_hold_leaves_the_last_rung_its_bound ... ok
test bot::tests::a_restart_answered_with_a_transfer_is_a_driver_bug - should panic ... ok
test call::tests::a_command_sent_again_is_clipped_to_where_the_next_rung_begins ... ok
test call::tests::a_rung_is_never_starved_by_what_was_spent_before_it ... ok
test call::tests::a_rung_entered_early_gets_its_own_bound_and_not_the_calls ... ok
test call::tests::a_read_whose_wait_spent_the_operation_goes_out_again_after_the_port_reset_took ... ok
test call::tests::a_second_break_in_the_same_call_does_not_extend_it ... ok
test call::tests::a_silent_controller_is_sent_no_command_in_any_rung_and_its_port_is_still_reset ... ok
test call::tests::a_wait_is_cut_only_when_its_window_ended_it ... ok
test call::tests::nothing_but_the_command_sent_again_outlives_the_operations_budget ... ok
test configure::tests::a_bind_adds_and_drops_nothing ... ok
test configure::tests::a_binds_slot_context_names_the_speed_and_the_port ... ok
test configure::tests::a_recovery_drops_and_adds_both_endpoints ... ok
test configure::tests::a_recoverys_slot_context_is_context_entries_and_zeroes ... ok
test configure::tests::an_endpoint_context_carries_the_descriptors_own_numbers ... ok
test configure::tests::context_entries_is_the_higher_index_of_the_pair ... ok
test configure::tests::nothing_but_the_pair_is_ever_dropped ... ok
test configure::tests::the_recovery_describes_the_endpoints_exactly_as_the_bind_did ... ok
test descriptor::tests::a_configuration_names_its_interfaces_and_steps_over_its_endpoints ... ok
test descriptor::tests::a_device_descriptor_names_its_maker_its_product_and_its_class ... ok
test descriptor::tests::a_length_that_would_not_move_the_walk_is_refused ... ok
test descriptor::tests::only_alternate_setting_zero_is_named ... ok
test descriptor::tests::a_short_answer_or_another_type_is_refused_by_name ... ok
test descriptor::tests::the_walk_is_bounded_by_the_total_and_by_what_arrived ... ok
test enumerate::tests::a_boot_keyboard_is_addressed_described_configured_and_bound ... ok
test enumerate::tests::a_configuration_with_nothing_to_bind_is_refused_where_it_is_read ... ok
test enumerate::tests::a_device_that_answered_set_protocol_recovers_nothing ... ok
test enumerate::tests::a_device_that_states_another_packet_size_has_its_ep0_evaluated ... ok
test enumerate::tests::a_stalled_set_protocol_recovers_ep0_before_the_endpoints_are_configured ... ok
test enumerate::tests::a_stated_packet_size_a_device_of_that_speed_cannot_have_is_refused ... ok
test enumerate::tests::every_route_configures_its_endpoints_last ... ok
test enumerate::tests::every_speed_has_one_control_packet_size_or_none ... ok
test enumerate::tests::only_an_interface_with_a_boot_protocol_is_asked_for_one ... ok
test flush::tests::a_device_with_no_cache_owes_nothing_and_keeps_the_count ... ok
test flush::tests::a_loss_is_counted_once_and_never_uncounted ... ok
test flush::tests::a_write_is_owed_until_a_flush_that_succeeded_and_not_after ... ok
test identity::tests::a_device_that_differs_in_any_field_is_a_new_disk ... ok
test identity::tests::a_device_with_no_readable_serial_is_never_adopted ... ok
test identity::tests::a_disk_is_waited_for_only_after_a_reset_of_ours_and_only_inside_the_window ... ok
test identity::tests::a_language_is_read_only_from_a_string_descriptor_that_carries_one ... ok
test identity::tests::a_serial_prints_as_the_characters_it_carries_and_nothing_else ... ok
test identity::tests::a_string_descriptor_is_read_only_whole_and_well_formed ... ok
test identity::tests::the_same_device_is_the_same_disk ... ok
test job::tests::a_cancelled_operation_leaves_the_slot_free ... ok
test job::tests::a_completion_for_another_trb_is_not_this_one ... ok
test job::tests::a_data_stage_does_not_end_a_transfer_that_still_owes_its_status ... ok
test job::tests::a_failing_stage_ends_the_transfer_whatever_is_still_owed ... ok
test job::tests::a_failing_status_stage_is_the_answer ... ok
test job::tests::a_late_completion_from_an_abandoned_transfer_answers_nobody ... ok
test job::tests::a_stage_is_answered_by_its_own_trb_and_in_its_own_order ... ok
test job::tests::a_transfer_matches_on_its_trb_and_on_both_halves_of_its_endpoint ... ok
test job::tests::a_transfer_moved_what_its_residue_did_not_leave ... ok
test job::tests::a_transfer_that_answers_one_stage_and_stops_is_silent ... ok
test job::tests::an_answer_outlives_the_deadline ... ok
test job::tests::an_empty_slot_is_not_busy_and_has_no_deadline ... ok
test job::tests::only_the_first_answer_counts ... ok
test job::tests::submitting_over_an_outstanding_operation_panics - should panic ... ok
test job::tests::the_deadline_produces_silence_and_nothing_else ... ok
test job::tests::the_residue_is_the_first_stages_and_the_code_is_the_last ... ok
test ladder::tests::a_break_before_a_data_out_phase_is_done_leaves_the_device_owed_it ... ok
test ladder::tests::a_break_elsewhere_climbs_every_rung ... ok
test ladder::tests::a_device_is_addressed_again_only_as_what_it_was_enumerated_as ... ok
test ladder::tests::a_device_owed_data_out_is_never_given_the_class_reset ... ok
test ladder::tests::a_run_climbs_one_rung_per_break_until_a_round_trip_ends_it ... ok
test ladder::tests::a_rung_that_did_not_verify_left_exactly_where_its_port_no_longer_holds_the_device ... ok
test ladder::tests::every_run_of_breaks_climbs_strictly_and_ends_offline_after_a_port_reset ... ok
test ladder::tests::only_a_quiesce_that_failed_lets_the_rung_go_on ... ok
test ladder::tests::only_a_run_that_begins_owed_data_out_skips_the_class_reset ... ok
test ladder::tests::the_port_rung_resets_then_addresses_then_configures_then_asks ... ok
test late::tests::a_ring_that_keeps_producing_is_given_up_on_one_ring_past_the_deadline ... ok
test late::tests::an_answer_posted_before_the_deadline_passed_is_taken_after_it ... ok
test late::tests::before_the_deadline_nothing_is_given_up ... ok
test late::tests::past_the_deadline_the_first_empty_read_ends_the_wait ... ok
test port::tests::a_device_found_at_bring_up_is_never_enumerated_without_a_reset ... ok
test port::tests::a_port_whose_belief_moved_is_outstanding_until_it_is_read ... ok
test port::tests::a_device_its_class_reset_did_not_bring_back_gets_the_most_reset_its_port_has ... ok
test port::tests::a_warm_reset_is_finished_only_once_the_controller_has_cleared_pr ... ok
test port::tests::an_adopted_port_is_enumerated_by_its_reset_and_not_by_its_link ... ok
test portsc::tests::a_port_holds_its_device_only_while_it_reads_connected_with_no_change_unconsumed ... ok
test portsc::tests::a_write_never_carries_ped ... ok
test portsc::tests::a_write_never_sets_ped_and_pr_together ... ok
test portsc::tests::an_unseen_change_survives_the_acknowledge ... ok
test portsc::tests::bits_are_where_the_table_puts_them ... ok
test portsc::tests::neutral_keeps_exactly_the_bits_that_are_safe_to_write_back ... ok
test portsc::tests::powering_a_port_down_moves_that_bit_and_no_other ... ok
test protocol::tests::a_conformant_pair_covers_the_machine ... ok
test protocol::tests::a_port_claimed_twice_keeps_the_first_claim ... ok
test protocol::tests::a_range_that_would_wrap_is_refused_rather_than_folded ... ok
test protocol::tests::firmware_that_makes_no_sense_is_refused_by_name ... ok
test recovery::tests::a_halted_endpoint_is_reset_and_then_cleared_at_the_device ... ok
test recovery::tests::a_running_endpoint_is_stopped_and_never_cleared ... ok
test recovery::tests::a_stopped_endpoint_only_needs_its_ring_back ... ok
test recovery::tests::an_endpoint_in_error_only_needs_its_ring_back ... ok
test recovery::tests::disabled_and_reserved_states_are_refused_by_name ... ok
test recovery::tests::every_recovery_rebuilds_the_ring_exactly_once ... ok
test recovery::tests::only_a_halted_endpoint_is_cleared_at_the_device ... ok
test recovery::tests::the_bus_is_reached_only_after_every_command ... ok
test recovery::tests::the_endpoint_state_field_decodes_to_every_value_three_bits_can_hold ... ok
test reset_recovery::tests::a_command_that_took_is_not_issued_again_over_a_field_that_lags ... ok
test reset_recovery::tests::a_context_state_error_is_followed_by_the_command_for_where_the_pipe_went ... ok
test reset_recovery::tests::a_disabled_or_reserved_endpoint_refuses_the_whole_recovery ... ok
test reset_recovery::tests::a_halting_completion_code_outranks_a_field_that_still_reads_running ... ok
test reset_recovery::tests::a_pipe_refused_from_every_state_is_given_up_on_by_name ... ok
test reset_recovery::tests::a_refusal_that_is_not_about_state_and_a_silence_both_end_the_quiesce ... ok
test reset_recovery::tests::a_slot_goes_back_only_over_a_stopped_pair ... ok
test reset_recovery::tests::a_stopped_pair_is_asked_nothing ... ok
test reset_recovery::tests::every_command_is_defined_for_the_state_it_was_chosen_from ... ok
test reset_recovery::tests::only_a_halt_condition_or_a_trb_error_speaks_for_the_endpoint ... ok
test reset_recovery::tests::only_a_pair_a_reset_device_disabled_has_nothing_to_stop ... ok
test reset_recovery::tests::every_pair_is_stopped_inside_the_bound_however_it_moves_and_however_the_field_lags ... ok
test reset_recovery::tests::the_bound_is_the_worst_case ... ok
test ring::tests::a_controller_that_has_caught_up_has_nothing_pending ... ok
test reset_recovery::tests::the_in_pipe_is_quiesced_before_the_out_pipe ... ok
test ring::tests::an_enqueue_point_past_the_end_of_the_ring_is_refused ... ok
test ring::tests::a_pointer_that_is_no_position_on_this_ring_is_refused_by_name ... ok
test ring::tests::no_two_refusals_read_the_same ... ok
test ring::tests::the_count_is_the_wrapped_distance_between_the_two ... ok
test ring::tests::the_low_four_bits_of_the_field_are_not_address ... ok
test scan::tests::a_broken_endpoint_is_recovered_until_the_silence_bound_passes ... ok
test scan::tests::a_free_slot_and_nothing_broken_is_the_end_of_the_scan ... ok
test scan::tests::a_silent_controller_ends_the_scan_at_the_operations_deadline ... ok
test scan::tests::an_outstanding_operation_is_never_given_up_on ... ok
test scsi::tests::a_device_field_prints_as_the_characters_it_carries_and_nothing_else ... ok
test scsi::tests::a_device_that_is_not_a_disk_this_driver_serves_is_refused_by_name ... ok
test scsi::tests::a_disk_spinning_up_is_asked_for_its_sense_and_then_again ... ok
test scsi::tests::a_disk_that_never_becomes_ready_is_given_up_on_at_its_budget ... ok
test scsi::tests::a_disk_too_big_for_read_capacity_10_is_asked_the_16_byte_form ... ok
test scsi::tests::a_flush_the_device_does_not_implement_is_no_failure_and_every_other_refusal_is ... ok
test scsi::tests::a_question_unanswered_or_answered_short_refuses_the_device ... ok
test scsi::tests::a_ready_attempt_that_breaks_is_recovered_and_one_taken_offline_ends_it ... ok
test scsi::tests::a_ready_disk_is_asked_what_it_is_and_how_big_and_nothing_else ... ok
test scsi::tests::a_transfer_cdb_is_laid_out_as_sbc_defines_it ... ok
test scsi::tests::a_transfer_is_its_batches_in_order_and_only_a_whole_one_advances ... ok
test scsi::tests::a_transfer_past_the_disk_is_refused_and_an_empty_one_is_nothing ... ok
test scsi::tests::every_fixed_cdb_carries_its_own_length_direction_and_allocation ... ok
test scsi::tests::only_the_first_batch_may_answer_ask_again ... ok
test scsi::tests::an_answer_to_something_not_asked_is_a_driver_bug - should panic ... ok
test scsi::tests::sense_is_believed_only_when_its_ascq_arrived ... ok
test xecp::tests::a_list_that_leaves_the_window_or_never_ends_is_refused ... ok
test xecp::tests::every_smi_goes_off_and_every_latched_one_is_cleared ... ok
test xecp::tests::the_handoff_is_named_by_firmwares_semaphore_before_and_after ... ok
test xecp::tests::the_walk_finds_each_capability_of_an_id_in_order ... ok
test descriptor::tests::no_answer_panics_the_decoder ... ok
test call::tests::every_path_through_a_call_ends_inside_its_bounds ... ok

test result: ok. 163 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

     Running unittests src/lib.rs (target/debug/deps/toyos_xhci_sim-63d09615301ce01b)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/enumerate.rs (target/debug/deps/enumerate-fb375b5fc15e3b74)

running 7 tests
test a_slot_the_controller_has_not_named_yet_is_waited_for_even_when_the_port_goes ... ok
test an_enumeration_takes_one_act_per_pass_and_reports_once ... ok
test a_device_with_no_boot_protocol_is_never_asked_for_one ... ok
test a_device_pulled_while_enable_slot_goes_unanswered_is_torn_down ... ok
test an_enumeration_is_abandoned_when_its_port_goes ... ok
test gate_an_enumeration_that_outlives_its_port_costs_a_deadline ... ok
test an_enumeration_that_stops_being_answered_still_reports_its_slot ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/explore.rs (target/debug/deps/explore-2578a12a7d6446f1)

running 1 test
test no_sequence_breaks_an_invariant ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s

     Running tests/scenarios.rs (target/debug/deps/scenarios-2caebc991fe326a0)

running 15 tests
test a_device_plugged_in_is_enumerated_once ... ok
test a_device_that_bounces_back_out_is_never_enumerated ... ok
test gate_ignoring_the_connect_change_hides_a_replug ... ok
test gate_dropping_the_reset_deadline_wedges_the_port ... ok
test gate_stepping_from_inside_an_effect_is_caught ... ok
test a_port_that_never_finishes_its_reset_is_given_up_on_and_left_alone ... ok
test a_device_with_no_slot_settles_anyway ... ok
test gate_acknowledging_before_deciding_hides_a_replug ... ok
test a_device_replugged_inside_a_hot_reset_given_up_on_is_enumerated ... ok
test a_replug_inside_one_debounce_is_seen ... ok
test gate_writing_back_what_was_read_disables_the_port ... ok
test repeated_replugs_stay_balanced ... ok
test the_debounce_is_actually_waited_out ... ok
test unplugging_tears_the_device_down ... ok
test gate_restarting_the_debounce_never_enumerates ... ok

test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/superspeed.rs (target/debug/deps/superspeed-efbd8582fe9f60c1)

running 13 tests
test a_device_pulled_as_its_enumeration_begins_is_torn_down ... ok
test a_device_pulled_during_the_warm_retrain_is_not_enumerated ... ok
test a_completed_failure_that_stays_failed_is_refused_by_name ... ok
test a_link_already_inactive_is_warm_reset_at_once ... ok
test a_port_of_unknown_protocol_is_still_reset ... ok
test a_link_a_hot_reset_kills_is_recovered_warm ... ok
test a_port_given_up_on_is_not_reset_again_until_its_device_is_pulled ... ok
test a_link_that_never_trains_is_refused_by_its_own_name ... ok
test a_reset_that_completes_failed_is_warm_reset ... ok
test a_trained_superspeed_link_is_not_reset ... ok
test a_usb2_completed_failure_is_refused_not_warm_reset ... ok
test a_usb2_port_is_reset_as_before ... ok
test a_usb2_port_is_never_warm_reset ... ok

test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/teardown.rs (target/debug/deps/teardown-55cdc3cdc8a2e577)

running 9 tests
test gate_freeing_the_block_before_the_slot_is_caught ... ok
test gate_acting_with_an_answer_outstanding_is_caught ... ok
test a_running_endpoint_is_stopped_rather_than_reset ... ok
test a_halted_endpoint_is_reset_cleared_and_delivering_again ... ok
test a_teardown_gives_the_slot_and_the_block_back ... ok
test a_recovery_is_abandoned_when_its_port_goes ... ok
test a_recovery_the_controller_refuses_lets_the_device_go ... ok
test a_controller_that_never_answers_still_releases_the_port ... ok
test gate_a_recovery_that_outlives_its_port_costs_a_second_deadline ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/teeth.rs (target/debug/deps/teeth-389f5d40c3cdea55)

running 1 test
test every_flaw_changes_an_outcome ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests bcachefs

running 2 tests
test bcachefs/src/block_io.rs - block_io::DeviceError (line 62) - compile fail ... ok
test bcachefs/src/block_io.rs - block_io::DeviceError (line 66) - compile fail ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s

   Doc-tests kernel_loom

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests kernel_sim

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_abi

running 4 tests
test toyos-abi/src/usersafe.rs - usersafe::user_safe (line 53) - compile fail ... ok
test toyos-abi/src/usersafe.rs - usersafe::user_safe (line 70) - compile fail ... ok
test toyos-abi/src/usersafe.rs - usersafe::user_safe (line 46) ... ok
test toyos-abi/src/usersafe.rs - usersafe::user_safe (line 63) ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s

   Doc-tests toyos_acpi

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_blackbox

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_blockhold

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_blockring

running 2 tests
test toyos-blockring/src/wire.rs - wire::Opened (line 56) - compile fail ... ok
test toyos-blockring/src/wire.rs - wire::Opened (line 47) ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s

   Doc-tests toyos_bootmap

running 1 test
test toyos-bootmap/src/lib.rs - DirectMapEnd (line 64) - compile fail ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s

   Doc-tests toyos_cpuvuln

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_device_memory

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_dhcp

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_dma

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_dns

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_elf

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_elide

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_fat32

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_fat32_check

running 1 test
test toyos-fat32/check/src/lib.rs - (line 30) - compile ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s

   Doc-tests toyos_gicv3

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_gpt

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_hda

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_i219

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_inspect

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_its

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_keymap

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_libc_copies

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_logstream

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_manifest

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_microcode

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_net_ip

running 8 tests
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 473) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 488) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 468) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 478) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 493) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 463) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 483) - compile fail ... ok
test toyos-net-ip/src/lib.rs - compile_fail::s_ip_nud_028_a_state_holds_only_its_own_fields (line 436) ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s

   Doc-tests toyos_net_shard

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_net_tcp

running 5 tests
test toyos-net-shard/tcp/src/lib.rs - compile_fail::s_op_030_tcp_cannot_choose_dscp_ecn_or_df (line 354) - compile fail ... ok
test toyos-net-shard/tcp/src/lib.rs - compile_fail::s_hs_036_a_connection_cannot_connect_again (line 328) - compile fail ... ok
test toyos-net-shard/tcp/src/lib.rs - compile_fail::s_hs_036_a_connection_cannot_connect_again (line 335) - compile fail ... ok
test toyos-net-shard/tcp/src/lib.rs - compile_fail::s_op_030_tcp_cannot_choose_dscp_ecn_or_df (line 347) ... ok
test toyos-net-shard/tcp/src/lib.rs - compile_fail::s_hs_036_a_connection_cannot_connect_again (line 321) ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s

   Doc-tests toyos_net_testnet

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_net_udp

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_net_wire

running 18 tests
test toyos-net-wire/src/lib.rs - compile_fail::s_tser_008_established_builder_cannot_hold_syn_only_options (line 224) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::raw_payload_takes_no_transport_protocol_and_no_payload_is_forged (line 270) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_tser_008_established_builder_cannot_hold_syn_only_options (line 229) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 325) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_rt_010_transport_parse_takes_only_its_ipv4_view (line 255) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_tser_008_established_builder_cannot_hold_syn_only_options (line 234) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_rt_010_transport_parse_takes_only_its_ipv4_view (line 248) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::raw_payload_takes_no_transport_protocol_and_no_payload_is_forged (line 275) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_eth_030_builder_ethertype_admits_only_ipv4_and_arp (line 212) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 340) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 357) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 372) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 390) - compile fail ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_eth_030_builder_ethertype_admits_only_ipv4_and_arp (line 207) ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_rt_010_transport_parse_takes_only_its_ipv4_view (line 241) ... ok
test toyos-net-wire/src/lib.rs - compile_fail::raw_payload_takes_no_transport_protocol_and_no_payload_is_forged (line 264) ... ok
test toyos-net-wire/src/lib.rs - compile_fail::s_tser_008_established_builder_cannot_hold_syn_only_options (line 219) ... ok
test toyos-net-wire/src/lib.rs - compile_fail::write_payload_and_write_frame_body_are_sealed (line 293) ... ok

test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.74s

   Doc-tests toyos_osrelease

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_pci

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_phys

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_ps2

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_quiesce

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_random

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_rootimage

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_sha2

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_smmu

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_ssh

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_swap

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_symbols

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_tco

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_tmpdir

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_trace

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_transport

running 4 tests
test toyos-blockring/transport/src/queue.rs - queue::Place (line 53) - compile fail ... ok
test toyos-blockring/transport/src/queue.rs - queue::Place (line 43) - compile fail ... ok
test toyos-blockring/transport/src/queue.rs - queue::Place (line 48) - compile fail ... ok
test toyos-blockring/transport/src/queue.rs - queue::Place (line 36) ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s

   Doc-tests toyos_tsc

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_untrusted

running 5 tests
test toyos-untrusted/src/lib.rs - Untrusted (line 119) - compile fail ... ok
test toyos-untrusted/src/lib.rs - Untrusted (line 113) - compile fail ... ok
test toyos-untrusted/src/lib.rs - Untrusted (line 126) - compile fail ... ok
test toyos-untrusted/src/lib.rs - Untrusted (line 107) - compile fail ... ok
test toyos-untrusted/src/lib.rs - Untrusted (line 134) ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s

   Doc-tests toyos_update

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_usbhid

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_userbound

running 6 tests
test toyos-userbound/src/firmware.rs - firmware::FirmwareCall (line 348) - compile fail ... ok
test toyos-userbound/src/firmware.rs - firmware::SleepType (line 498) - compile fail ... ok
test toyos-userbound/src/firmware.rs - firmware::ConfigAt (line 447) - compile fail ... ok
test toyos-userbound/src/firmware.rs - firmware::LockWordAt (line 261) - compile fail ... ok
test toyos-userbound/src/firmware.rs - firmware::MemoryAt (line 151) - compile fail ... ok
test toyos-userbound/src/firmware.rs - firmware::PortAt (line 327) - compile fail ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s

   Doc-tests toyos_virtio

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_wallclock

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_xhci

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests toyos_xhci_sim

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:29:31 [ci] the workspace's host members: cargo test --workspace --exclude toyos-build --exclude bootloader --exclude kernel --exclude toyos --exclude acpiserver --exclude acpiserver-api --exclude toyos-aml --exclude calc --exclude compositor --exclude toyos-desktop --exclude console --exclude diskserver --exclude doom --exclude editor --exclude filepicker --exclude filepicker-api --exclude files --exclude fileserver --exclude host --exclude inspect --exclude kernelprobe --exclude logkeeper --exclude logkeeper-api --exclude metalprobe --exclude netstack --exclude toyos-mdns --exclude toyos-net-node --exclude paint --exclude pkg --exclude proctest --exclude shell --exclude snake --exclude soundserver --exclude toyos-mixer --exclude sprite --exclude sshserver --exclude supervisor --exclude swap --exclude symbolize --exclude terminal --exclude test-runner --exclude toybox --exclude toyos-font --exclude toyos-window --exclude trace --exclude update --exclude usbd

13:29:31 === [ci] the kernel's library
    Finished `test` profile [optimized + debuginfo] target(s) in 0.14s
     Running unittests pure/lib.rs (target/debug/deps/kernel-c59cf369e40e4e77)

running 178 tests
test mtrr::tests::registers_that_are_word_for_word_the_boot_processors_are_the_same ... ok
test bootwrite::tests::a_kick_not_taken_in_the_span_is_a_deaf_boot_processor ... ok
test bootwrite::tests::a_take_the_clock_has_not_reached_is_waited_for ... ok
test bootwrite::tests::a_handlers_time_is_not_the_kicks_and_the_kicks_is_not_the_handlers ... ok
test mtrr::tests::registers_that_are_off_and_not_the_boot_processors_are_off ... ok
test bootwrite::tests::a_handler_that_holds_the_span_has_outlasted_it_on_either_cpu ... ok
test bootwrite::tests::a_write_that_has_retired_is_never_judged_by_the_clock ... ok
test mtrr::tests::registers_that_are_off_type_nothing_uncacheable ... ok
test mtrr::tests::registers_that_are_on_and_not_the_boot_processors_are_different ... ok
test pcid::oracle::tests::a_flush_between_two_owners_clears_the_alias ... ok
test mtrr::tests::a_default_or_a_covering_register_of_no_defined_encoding_is_unknown ... ok
test mtrr::tests::two_registers_over_one_range_answer_as_the_architecture_orders_them ... ok
test mtrr::tests::a_mask_with_no_address_bit_and_a_region_at_the_top_decide_without_overflow ... ok
test mtrr::tests::a_range_no_register_covers_has_the_default_type ... ok
test mtrr::tests::a_register_types_its_region_to_the_last_byte_and_no_further ... ok
test pcid::oracle::tests::the_model_flags_a_live_reissue ... ok
test pipe::tests::an_end_dropped_with_the_ring_neither_empty_nor_full_is_gone ... ok
test pipe::tests::an_end_whose_other_end_is_held_is_not_told_it_is_gone ... ok
test pcid::tests::a_freed_tag_waits_for_a_flush_before_it_is_reissued ... ok
test pipe::tests::an_end_with_a_second_holder_outlives_the_first ... ok
test pipe::tests::readable_and_writable_say_nothing_of_the_other_end ... ok
test pipe::tests::the_last_holder_of_the_pipe_ends_it ... ok
test pcid::tests::two_live_address_spaces_never_share_a_pcid ... ok
test proclife::interleave::tests::a_process_that_kills_itself_ends ... ok
test pcid::tests::churn_never_aliases_two_live_tags ... ok
test proclife::interleave::tests::a_kill_racing_a_spawn_leaves_no_unretired_thread ... ok
test proclife::interleave::tests::a_join_racing_the_kill_that_takes_its_target ... ok
test proclife::interleave::tests::a_sibling_join_is_answered_however_the_two_interleave ... ok
test proclife::interleave::tests::a_spawn_racing_a_kill_and_the_pass_that_reaps_it ... ok
test proclife::interleave::tests::a_published_exit_leaves_no_unretired_thread ... ok
test proclife::interleave::tests::a_kill_chain_of_three_ends ... ok
test proclife::interleave::tests::a_reap_racing_a_teardown_and_a_join_breaks_no_law ... ok
test proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down ... ok
test proclife::interleave::tests::a_sibling_exit_a_spawn_and_the_processs_own_exit ... ok
test proclife::interleave::tests::the_last_one_out_is_in_its_process_until_its_teardown_is_done ... ok
test proclife::interleave::tests::the_refusal_that_dropped_without_unmapping_is_the_leak_l5_reports ... ok
test proclife::join::tests::a_join_asked_after_it_collected_keeps_its_answer ... ok
test proclife::join::tests::a_live_thread_answers_wait_and_stays_in_the_table ... ok
test proclife::join::tests::a_process_being_torn_down_gives_up_no_thread ... ok
test proclife::join::tests::a_settled_join_does_not_take_the_table_again ... ok
test proclife::join::tests::a_zombie_is_answered_once_and_the_second_join_finds_nothing ... ok
test proclife::join::tests::the_two_refusals_are_told_apart ... ok
test proclife::pids::tests::a_pid_given_back_is_taken_again ... ok
test pcid::oracle::tests::the_owned_allocator_admits_no_cross_space_read ... ok
test proclife::interleave::tests::a_sibling_closing_a_spawns_handle_before_the_spawn_returns ... ok
test proclife::pids::tests::pids_are_issued_in_order_from_zero ... ok
test proclife::pids::tests::the_last_pid_is_one_below_max_and_none_follows_it ... ok
test proclife::reap::tests::nothing_is_taken_from_a_table_of_live_processes ... ok
test proclife::reap::tests::only_the_published_are_taken_and_they_come_back_in_pid_order ... ok
test proclife::spawn::tests::a_claimed_process_refuses_at_the_insert_too ... ok
test proclife::spawn::tests::a_claimed_process_refuses_at_the_start_in_both_arms ... ok
test proclife::spawn::tests::a_full_process_refuses_at_the_start_until_a_join_collects ... ok
test proclife::spawn::tests::a_live_process_admits_a_thread_at_both_moments ... ok
test proclife::spawn::tests::a_missing_entry_is_refused_by_name_and_not_by_the_teardown_flag ... ok
test proclife::teardown::tests::a_main_threads_exit_is_the_processs ... ok
test proclife::teardown::tests::a_process_that_is_gone_grants_no_claim ... ok
test proclife::spawn::tests::the_insert_refuses_the_spawn_a_sibling_filled_the_process_under ... ok
test proclife::teardown::tests::a_sibling_join_is_released_by_the_sibling_it_named ... ok
test proclife::teardown::tests::exactly_one_claimant_wins_however_many_arrive ... ok
test proclife::teardown::tests::only_the_thread_that_empties_a_claimed_process_tears_it_down ... ok
test proclife::teardown::tests::the_retire_set_is_every_thread_still_in_but_the_caller ... ok
test proclife::teardown::tests::a_thread_leaves_once - should panic ... ok
test proclife::tree::tests::a_chain_is_refused_at_max_depth_plus_one_below_the_supervisor ... ok
test proclife::tree::tests::a_child_landed_under_a_place_claimed_since_its_admission_is_claimed_with_it ... ok
test proclife::tree::tests::a_place_being_torn_down_admits_nothing ... ok
test proclife::tree::tests::a_published_child_leaves_its_parents_children ... ok
test proclife::tree::tests::a_spawn_past_the_last_pid_is_refused_and_a_refused_spawn_spends_none ... ok
test proclife::interleave::tests::two_processes_killing_each_other_both_end ... ok
test sched::cpu::pass_cost_tests::a_bucket_is_a_power_of_two_wide ... ok
test sched::cpu::pass_cost_tests::a_quantile_follows_the_mass_and_not_the_tail ... ok
test sched::cpu::pass_cost_tests::the_recorder_counts_what_it_was_given ... ok
test sched::cpu::tests::a_cpu_does_not_hand_over_the_context_it_is_still_standing_on ... ok
test sched::cpu::tests::a_corpse_is_not_starved_for_ever_by_a_spinning_rt_task ... ok
test sched::cpu::tests::a_dying_task_is_picked_before_the_fair_queue ... ok
test sched::cpu::tests::a_dying_task_resumes_when_the_rt_band_empties ... ok
test sched::cpu::tests::a_dying_task_that_exits_is_released_by_its_own_death ... ok
test sched::cpu::tests::a_killed_rt_thread_unwinds_in_the_normal_band ... ok
test sched::cpu::tests::a_killed_task_does_not_starve_a_ready_rt_task ... ok
test sched::cpu::tests::a_killed_task_loses_the_cpu_before_its_quantum_expires ... ok
test sched::cpu::tests::a_killed_task_that_expires_its_quantum_goes_back_to_the_dying_list ... ok
test sched::cpu::tests::a_killed_task_that_expires_its_quantum_yields_to_a_ready_rt_task ... ok
test sched::cpu::tests::a_killed_task_that_yields_goes_back_to_the_dying_list ... ok
test sched::cpu::tests::a_live_fair_task_loses_the_cpu_to_a_ready_rt_task ... ok
test sched::cpu::tests::a_retire_moves_a_ready_task_to_the_dying_list ... ok
test sched::cpu::tests::a_retire_of_the_running_task_asks_for_a_safe_point ... ok
test sched::cpu::tests::a_retire_that_loses_the_claim_leaves_the_wake_in_flight ... ok
test sched::cpu::tests::a_retire_wakes_a_parked_task_so_it_can_unwind ... ok
test sched::cpu::tests::a_running_task_refuses_the_parked_mark ... ok
test sched::cpu::tests::a_spawned_task_is_adopted_and_dispatched ... ok
test sched::cpu::tests::a_steal_probe_goes_to_surplus_and_not_to_a_cpu_full_of_corpses ... ok
test proclife::interleave::tests::an_exit_whose_sibling_kills_the_process_killing_it ... ok
test sched::cpu::tests::a_stopped_task_is_never_picked_again ... ok
test sched::cpu::tests::a_stopped_task_is_not_published_as_load ... ok
test sched::cpu::tests::a_wake_for_a_stopped_task_lands_in_the_band_and_not_the_run_queue ... ok
test sched::cpu::tests::an_aged_grant_is_not_undone_by_a_pass_inside_its_chunk ... ok
test sched::cpu::tests::an_adopt_of_a_killed_task_dispatches_it_on_arrival ... ok
test sched::cpu::tests::an_unwind_under_saturated_rt_is_stretched_by_the_age_ratio ... ok
test sched::cpu::tests::placement_believes_a_cpu_that_answers_and_no_other ... ok
test sched::cpu::tests::stopping_outranks_killing ... ok
test sched::cpu::tests::the_balance_path_keeps_a_killed_task_rather_than_migrating_it ... ok
test sched::cpu::tests::the_dying_list_is_served_oldest_first ... ok
test sched::cpu::tests::the_pick_dispatches_a_killed_task_so_it_can_unwind ... ok
test sched::fair::tests::charge_accumulates_and_saturates ... ok
test proclife::interleave::tests::two_spawns_race_one_teardown ... ok
test sched::fair::tests::charge_nonrunnable_is_a_bug ... ok
test sched::fair::tests::frontier_is_monotonic ... ok
test sched::fair::tests::lag_clamps_in_both_directions ... ok
test sched::fair::tests::leave_stores_lag_and_wake_rederives_vruntime ... ok
test sched::fair::tests::leave_when_nonrunnable_is_a_noop ... ok
test sched::fair::tests::new_process_starts_at_frontier_with_zero_lag ... ok
test sched::fair::tests::nonrunnable_vruntime_tracks_the_live_frontier ... ok
test sched::fair::tests::refcount_tracks_runnable_threads ... ok
test sched::mailbox::tests::a_node_carries_one_message_at_a_time ... ok
test sched::mailbox::tests::doorbell_kick_policy ... ok
test sched::mailbox::tests::fifo_across_nodes_and_recycling ... ok
test sched::mailbox::tests::releasing_an_unposted_claim_frees_the_node ... ok
test sched::mailbox::tests::dropping_a_queued_node_is_loud - should panic ... ok
test sched::mailbox::tests::sleep_needs_an_empty_mailbox_and_a_quiet_doorbell ... ok
test sched::park::tests::a_kill_beats_a_pre_park_claim_to_the_commit ... ok
test sched::park::tests::a_boosted_notify_always_kicks ... ok
test sched::park::tests::a_kill_that_lands_before_the_commit_refuses_the_park ... ok
test sched::park::tests::a_notify_before_phase_one_refuses_it ... ok
test sched::park::tests::a_notify_before_the_commit_refuses_the_park_and_sends_nothing ... ok
test sched::park::tests::an_uncancellable_ticket_parks_a_killed_task ... ok
test sched::park::tests::cancel_reports_a_claim_it_lost ... ok
test sched::park::tests::one_wake_node_serves_the_whole_lifecycle ... ok
test sched::park::tests::dropping_a_ticket_is_loud - should panic ... ok
test sched::retire::tests::a_wake_and_a_retire_ride_distinct_nodes ... ok
test sched::retire::tests::retire_goes_to_the_home_cpu_and_always_kicks ... ok
test sched::park::tests::park_then_notify_delivers_exactly_one_message ... ok
test sched::retire::tests::retiring_a_dead_task_posts_nothing ... ok
test sched::retire::tests::the_chase_reuses_the_same_node ... ok
test sched::task::tests::a_dead_task_takes_no_post ... ok
test sched::retire::tests::the_kill_bit_is_set_before_the_kick_and_before_the_chase_kick ... ok
test sched::task::tests::a_post_before_the_commit_refuses_it ... ok
test sched::retire::tests::a_second_retirer_fails_fast - should panic ... ok
test sched::task::tests::a_post_claims_a_waiter_it_finds_parked_or_committing ... ok
test sched::task::tests::a_second_retirer_is_refused ... ok
test sched::task::tests::a_stale_generation_cannot_park_the_task ... ok
test sched::task::tests::a_wake_between_registration_and_commit_refuses_the_park ... ok
test sched::task::tests::cancel_reports_a_claim_it_lost ... ok
test sched::task::tests::claims_on_anything_but_a_waiter_are_lost ... ok
test sched::task::tests::park_then_wake_is_the_ordinary_path ... ok
test sched::task::tests::an_edge_outside_the_table_panics - should panic ... ok
test sched::task::tests::registration_forgets_a_post_or_revoke_to_an_earlier_wait ... ok
test sched::task::tests::sticky_bits_survive_transitions ... ok
test sched::task::tests::stopping_outranks_killing_at_a_safe_point ... ok
test sched::task::tests::wait_membership_is_single_watch ... ok
test sched::task::tests::word_roundtrips_every_state ... ok
test sched::watch::tests::a_bounded_post_skips_a_waiter_that_was_not_parked ... ok
test sched::watch::tests::a_post_between_registration_and_park_is_not_lost ... ok

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Earlier host run at d719cc9d4 (the same tree but issues/), EXIT=1 on the toyos SDK's lane proof, filed as issues/a-lane-reader-counted-one-refusal-fewer-than-its-writer-made.md, part 6 of 8

test sched::watch::tests::a_post_in_place_fires_and_drops_nothing ... ok
test sched::watch::tests::a_post_wakes_every_parked_thread_and_fires_every_ring ... ok
test sched::watch::tests::a_registration_sweeps_the_entries_that_can_no_longer_fire ... ok
test sched::watch::tests::a_revoke_takes_the_registration_out_before_it_wakes ... ok
test sched::watch::tests::a_revoked_waiter_cannot_park_again ... ok
test sched::watch::tests::a_sweep_drops_what_it_took_out_with_the_list_lock_let_go ... ok
test sched::watch::tests::a_waiter_revoked_before_it_parks_cannot_park ... ok
test sched::watch::tests::a_waiter_revoked_while_it_commits_cannot_park ... ok
test sched::watch::tests::a_second_registration_is_loud - should panic ... ok
test sched::watch::tests::cancel_and_drop_answer_every_live_poll_as_gone ... ok
test sched::watch_list::a_list_outgrowing_the_buffer_sized_for_it_is_not_moved_into_it ... ok
test sched::watch_list::a_post_of_one_entry_past_its_stack_fires_each_once_and_frees_none_under_the_lock ... ok
test sched::watch_list::a_re_arm_after_a_post_of_few_entries_is_one_section ... ok
test sched::windows::tests::a_pass_ends_the_preemption_off_window_and_starts_the_next ... ok
test sched::watch_list::nothing_allocates_or_frees_under_the_list_lock_and_a_post_in_place_frees_nothing ... ok
test sched::windows::tests::a_whole_set_opens_or_closes_only_across_zero ... ok
test sched::windows::tests::a_start_counts_from_how_the_cpu_stands ... ok
test sched::windows::tests::an_interrupts_off_window_is_mask_to_unmask_and_the_longest_is_taken_once ... ok
test sched::windows::tests::an_untracked_cpu_records_and_refuses_nothing ... ok
test sched::windows::tests::every_transition_nothing_reported_before_is_named ... ok
test sched::windows::tests::only_a_crossing_of_zero_opens_or_closes_a_preemption_off_window ... ok
test sched::windows::tests::the_idle_halt_inside_a_pass_is_no_window ... ok
test proclife::interleave::tests::a_childs_exit_racing_its_parents_kill ... ok
test proclife::interleave::tests::a_spawn_racing_the_kill_of_its_own_spawner ... ok
test proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it ... ok
test proclife::interleave::tests::an_exit_publishes_after_every_end_below_it ... ok
test proclife::interleave::tests::a_spawn_under_an_unrelated_process_lands_between_two_claims_of_one_walk ... ok

test result: ok. 178 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s

13:29:31 [ci] the kernel's library: cargo test -p kernel --lib --features sched-check

13:29:31 === [ci] the licences of what ships
13:29:33   NOTICE section tests/testcases/ (LGPL-2.1-or-later AND BSD-3-Clause AND (MIT OR Apache-2.0)) is not shipped
13:29:33   NOTICE section "Rust crates and the forks" names no files: every crate, fork or not, is judged by the crate half of this gate
13:29:33   NOTICE section "licenses/CDLA-Permissive-2.0-webpki-root-certs.txt — the Mozilla roots, CDLA-Permissive-2.0" names no files: the roots the build writes out of a crate are judged, with this text beside them, by `judge_trust_roots`
13:29:33   NOTICE section tests/cavp/ (NIST-PD) is not shipped
13:29:33   crate fortanix-sgx-abi 0.6.1 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via std → fortanix-sgx-abi [x86_64-fortanix-unknown-sgx]
13:29:33   crate ucs2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → ucs2
13:29:33   crate uefi 0.26.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi
13:29:33   crate uefi-macros 0.13.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-macros
13:29:33   crate uefi-raw 0.5.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi → uefi-raw
13:29:33   crate uefi-services 0.23.0 (registry+https://github.com/rust-lang/crates.io-index) is MPL-2.0, via bootloader → uefi-services
13:29:33   crate doom 0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/userland/doom/Cargo.toml) is "GPL-2.0-only": not allowed: GPL-2.0-only; pulled in by doom
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: /system/bin/doom links doomgeneric, id's Doom source by way of Chocolate Doom (NOTICE); it leaves the image as a package at the stage where the apps leave this repository
13:29:33   crate windows-sys 0.61.100 (/Users/jan/Dev/jan/toyos-arm-g3/rust/library/windows-sys/Cargo.toml) is "": declares no licence; pulled in by std → dlmalloc [cfg(any(all(target_family = "wasm", not(any(unix, target_os = "wasi"))), target_os = "xous", target_os = "vexos", target_os = "toyos", all(target_vendor = "fortanix", target_env = "sgx")))] → windows-sys [cfg(target_os = "windows")]
    EXCEPTED, reached only under cfg(target_os = "windows"): std's empty in-tree stand-in for windows-sys, which declares no licence
13:29:33   crate windows-link 0.0.0 (/Users/jan/Dev/jan/toyos-arm-g3/rust/library/windows_link/Cargo.toml) is "": declares no licence; pulled in by std → windows-link [cfg(any(windows, target_os = "cygwin"))]
    EXCEPTED, reached only under cfg(any(windows, target_os = "cygwin")): std's in-tree stand-in for windows-link, which declares no licence
13:29:33   file assets/DOOM1.WAD is "LicenseRef-id-Software-DOOM1-Shareware": not allowed: LicenseRef-id-Software-DOOM1-Shareware; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: id's shareware terms: redistributable unmodified and not for consideration, so an image carrying it may not be sold (NOTICE); it leaves with doom
13:29:33   file assets/soundfont.sf2 is "LicenseRef-GeneralUser-GS-2.0": not allowed: LicenseRef-GeneralUser-GS-2.0; pulled in by COMMITTED_FILES
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: GeneralUser GS's own permissive licence, no standard one, with its author's caveat on where the samples came from (NOTICE); doom alone opens it, and it leaves with doom
13:29:33   NOTICE section userland/doom is "GPL-2.0-or-later": not allowed: GPL-2.0-or-later; pulled in by NOTICE
    EXCEPTED, pending the owner, issues/a-package-is-a-directory-under-apps-and-the-installer-is-a-program.md: doomgeneric, the C half of the doom crate, fetched at build time and compiled into it; it leaves with doom
13:29:33 [ci] the licences of what ships: 6 exception(s) stand, and nothing else is refused

13:29:33 === [ci] clippy and the bare targets
info: component clippy is up to date
info: component rust-std for target x86_64-unknown-none is up to date
info: component rust-std for target x86_64-unknown-uefi is up to date
info: component rust-std for target aarch64-unknown-none-softfloat is up to date
info: component rust-std for target aarch64-unknown-uefi is up to date
13:29:33 [ci] clippy and the bare targets: installed

13:29:33 === [ci] clippy, warnings denied
13:29:34 === clippy: cargo clippy --workspace $GUESTS --all-targets --keep-going -- $ADOPTED -D warnings
    Checking toyos-build v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3)
    Finished `dev` profile [optimized + debuginfo] target(s) in 2.19s
13:29:36 === clippy: cargo clippy --workspace $GUESTS --all-targets --keep-going --features $CONTROLS -- $ADOPTED -D warnings
    Checking toyos-build v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3)
    Finished `dev` profile [optimized + debuginfo] target(s) in 1.90s
13:29:38 === clippy: cargo clippy -p kernel --lib --tests --features sched-check -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.14s
13:29:38 === clippy: cargo clippy -p kernel --lib --tests --features sched-check,protocol-port --features $KERNEL_CONTROLS -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.10s
13:29:38 === clippy: cargo clippy -p kernel --target x86_64-unknown-none -- $ADOPTED -D warnings
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Checking kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `dev` profile [optimized + debuginfo] target(s) in 1.97s
13:29:41 === clippy: cargo clippy -p kernel --target x86_64-unknown-none --features boot-actuators,test-actuators -- $ADOPTED -D warnings
    Checking kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `dev` profile [optimized + debuginfo] target(s) in 2.34s
13:29:43 === clippy: cargo clippy -p kernel --target x86_64-unknown-none --features boot-actuators -- $ADOPTED -D warnings
    Checking kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `dev` profile [optimized + debuginfo] target(s) in 3.53s
13:29:47 === clippy: cargo clippy -p kernel --target x86_64-unknown-none --features debug-wait,sched-check,sched-tripwire,heap-tripwire,heap-sweep,pass-spin,stack-witness,switch-witness,switch-witness-mutate-frame,switch-witness-mutate-rsp,df-witness,df-witness-mutate,entry-df-unclean,mask-windows -- $ADOPTED -D warnings
    Checking kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `dev` profile [optimized + debuginfo] target(s) in 4.55s
13:29:51 === clippy: cargo clippy -p kernel --target x86_64-unknown-none --features heap-band-notail,heap-lockspin -- $ADOPTED -D warnings
    Checking kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `dev` profile [optimized + debuginfo] target(s) in 1.55s
13:29:53 === clippy: cargo clippy -p kernel --target x86_64-unknown-none --features heap-band-nohead -- $ADOPTED -D warnings
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Checking kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `dev` profile [optimized + debuginfo] target(s) in 1.13s
13:29:54 === clippy: cargo clippy -p kernel --target aarch64-unknown-none-softfloat -- $ADOPTED -D warnings
    Checking kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `dev` profile [optimized + debuginfo] target(s) in 1.24s
13:29:56 === clippy: cargo clippy -p kernel --target aarch64-unknown-none-softfloat --features boot-actuators,test-actuators -- $ADOPTED -D warnings
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Checking kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `dev` profile [optimized + debuginfo] target(s) in 1.22s
13:29:57 === clippy: cargo clippy -p kernel --target aarch64-unknown-none-softfloat --features boot-actuators -- $ADOPTED -D warnings
    Blocking waiting for file lock on package cache
    Checking kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `dev` profile [optimized + debuginfo] target(s) in 1.11s
13:29:58 === clippy: cargo clippy -p kernel --target aarch64-unknown-none-softfloat --features debug-wait,sched-check,sched-tripwire,heap-tripwire,heap-sweep,pass-spin,stack-witness,switch-witness,switch-witness-mutate-frame,switch-witness-mutate-rsp,mask-windows -- $ADOPTED -D warnings
    Checking kernel v0.1.0 (/Users/jan/Dev/jan/toyos-arm-g3/kernel)
    Finished `dev` profile [optimized + debuginfo] target(s) in 1.27s
13:29:59 === clippy: cargo clippy -p bootloader --target x86_64-unknown-uefi -- $ADOPTED -W clippy::undocumented_unsafe_blocks -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.20s
13:30:00 === clippy: cargo clippy -p bootloader --target aarch64-unknown-uefi -- $ADOPTED -W clippy::undocumented_unsafe_blocks -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.18s
13:30:00 === clippy: cargo clippy -p toyos-xhci --all-targets -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
13:30:00 === clippy: cargo clippy -p kernel-loom --test loom_mailbox --features victim-retires-mid-probe -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.12s
13:30:01 === clippy: cargo clippy -p toyos-abi --all-targets --keep-going --target-dir target/clippy-abi -- -W clippy::undocumented_unsafe_blocks -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.24s
13:30:01 === clippy: cargo clippy --manifest-path userland/acpiserver/aml/Cargo.toml --all-targets -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
13:30:01 === clippy: cargo clippy --manifest-path userland/compositor/desktop/Cargo.toml --all-targets -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.15s
13:30:01 === clippy: cargo clippy --manifest-path userland/netstack/mdns/Cargo.toml --all-targets -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.10s
13:30:02 === clippy: cargo clippy --manifest-path userland/netstack/node/Cargo.toml --all-targets -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
13:30:02 === clippy: cargo clippy --manifest-path userland/soundserver/mixer/Cargo.toml --all-targets -- $ADOPTED -D warnings
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.10s
13:30:02 [ci] clippy, warnings denied: clean

13:30:02 === [ci] kernel-loom without loom
    Finished `test` profile [optimized + debuginfo] target(s) in 0.28s
     Running tests/log_body_words.rs (target/debug/deps/log_body_words-ba761697c24e5cd1)

running 2 tests
test a_shorter_record_does_not_inherit_the_longer_one_it_replaced ... ok
test every_field_survives_the_word_packing ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_cursor.rs (target/debug/deps/log_cursor-b3271d086aa5f722)

running 2 tests
test a_cursor_ahead_of_a_shard_is_refused ... ok
test a_cursors_loss_claim_is_not_read ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/log_zeroed_init.rs (target/debug/deps/log_zeroed_init-f65a416c9f0ef2f9)

running 1 test
test a_zero_allocated_ap_shard_issues_first_seq_first ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:30:02 [ci] kernel-loom without loom: cargo test -p kernel-loom --no-default-features --test log_zeroed_init --test log_body_words --test log_cursor

13:30:02 === [ci] control `wake-fence-off`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.14s
     Running tests/log_wake.rs (target/debug/deps/log_wake-fd96f3dce4f325b5)

running 1 test
test a_commit_and_an_arm_cannot_both_miss ... FAILED

failures:

---- a_commit_and_an_arm_cannot_both_miss stdout ----

thread 'a_commit_and_an_arm_cannot_both_miss' (260846326) panicked at kernel/loom/tests/log_wake.rs:98:9:
the producer posted nothing and the reader decided to park: a committed record is left with a parked reader, and only a missing fence can produce it
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_commit_and_an_arm_cannot_both_miss

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test log_wake`
13:30:03 [ci] control `wake-fence-off`: 1 verdict(s) reached

13:30:03 === [ci] control `lock-acquire-off`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running tests/ticket_lock.rs (target/debug/deps/ticket_lock-1441b3e0d5540721)

running 1 test
test try_lock_observes_the_previous_owners_writes ... FAILED

failures:

---- try_lock_observes_the_previous_owners_writes stdout ----

thread 'try_lock_observes_the_previous_owners_writes' (260846491) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent write accesses to `UnsafeCell`.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    try_lock_observes_the_previous_owners_writes

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test ticket_lock`
13:30:03 [ci] control `lock-acquire-off`: 1 verdict(s) reached

13:30:03 === [ci] control `owed-fence-off`
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.24s
     Running tests/owed_lock.rs (target/debug/deps/owed_lock-2028f07743415783)

running 1 test
test a_turned_away_cpu_holds_the_lock_or_is_answered ... FAILED

failures:

---- a_turned_away_cpu_holds_the_lock_or_is_answered stdout ----

thread 'a_turned_away_cpu_holds_the_lock_or_is_answered' (260846819) panicked at kernel/loom/tests/owed_lock.rs:52:9:
cpu 3 was turned away and nobody answered it
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_turned_away_cpu_holds_the_lock_or_is_answered

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test owed_lock`
13:30:03 [ci] control `owed-fence-off`: 1 verdict(s) reached

13:30:03 === [ci] control `seqlock-writer-fence-off`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.31s
     Running tests/panic_console_publish.rs (target/debug/deps/panic_console_publish-f3e00ff7db7a9c08)

running 1 test
test a_snapshot_is_one_publication_whole ... FAILED

failures:

---- a_snapshot_is_one_publication_whole stdout ----

thread 'a_snapshot_is_one_publication_whole' (260848241) panicked at kernel/loom/tests/panic_console_publish.rs:28:13:
a snapshot kept two publications' words: [1, 1, 1, 2]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_snapshot_is_one_publication_whole

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test panic_console_publish`
13:30:04 [ci] control `seqlock-writer-fence-off`: 1 verdict(s) reached

13:30:04 === [ci] control `serial-try-lock-then-some`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.27s
     Running tests/serial_lock.rs (target/debug/deps/serial_lock-f65ea87dbf3a7210)

running 2 tests
test a_lost_try_lock_leaves_the_lock_held ... FAILED
test two_writers_never_overlap ... FAILED

failures:

---- a_lost_try_lock_leaves_the_lock_held stdout ----

thread 'a_lost_try_lock_leaves_the_lock_held' (260848996) panicked at kernel/loom/tests/serial_lock.rs:24:9:
a lost try_lock released the lock its holder still has
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- two_writers_never_overlap stdout ----

thread 'two_writers_never_overlap' (260848997) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent write accesses to `UnsafeCell`.



failures:
    a_lost_try_lock_leaves_the_lock_held
    two_writers_never_overlap

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 7 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test serial_lock`
13:30:04 [ci] control `serial-try-lock-then-some`: 2 verdict(s) reached

13:30:04 === [ci] control `reap-raise-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.17s
     Running tests/reap_gate.rs (target/debug/deps/reap_gate-a6fae9c43f3f99ca)

running 1 test
test a_claim_sees_the_enrolled_work ... FAILED

failures:

---- a_claim_sees_the_enrolled_work stdout ----

thread 'a_claim_sees_the_enrolled_work' (260849478) panicked at kernel/loom/tests/reap_gate.rs:97:13:
assertion `left == right` failed: a claimed gate handed the reaper an unpublished exit — the raise did not carry the work it was raised for
  left: 0
 right: 1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_claim_sees_the_enrolled_work

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test reap_gate`
13:30:04 [ci] control `reap-raise-relaxed`: 1 verdict(s) reached

13:30:04 === [ci] control `shootdown-serve-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.15s
     Running tests/tlb_shootdown.rs (target/debug/deps/tlb_shootdown-a2e346343d56fb12)

running 2 tests
test an_acknowledged_flush_postdates_the_page_table_write ... FAILED
test one_serve_answers_two_concurrent_shootdowns ... FAILED

failures:

---- an_acknowledged_flush_postdates_the_page_table_write stdout ----

thread 'an_acknowledged_flush_postdates_the_page_table_write' (260849830) panicked at kernel/loom/tests/tlb_shootdown.rs:142:13:
assertion `left == right` failed: cpu 1 acknowledged the shootdown while still holding a translation for the page the initiator is about to free
  left: 1
 right: 0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- one_serve_answers_two_concurrent_shootdowns stdout ----

thread 'one_serve_answers_two_concurrent_shootdowns' (260849831) panicked at kernel/loom/tests/tlb_shootdown.rs:181:13:
assertion `left == right` failed: the first initiator freed a page cpu 1 could still reach
  left: 1
 right: 0


failures:
    an_acknowledged_flush_postdates_the_page_table_write
    one_serve_answers_two_concurrent_shootdowns

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.25s

error: test failed, to rerun pass `-p kernel-loom --test tlb_shootdown`
13:30:05 [ci] control `shootdown-serve-relaxed`: 2 verdict(s) reached

13:30:05 === [ci] control `shootdown-served-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running tests/counters_round.rs (target/debug/deps/counters_round-2f4dae6a97ddac0b)

running 1 test
test a_cpu_read_as_answered_is_read_with_its_answer ... FAILED

failures:

---- a_cpu_read_as_answered_is_read_with_its_answer stdout ----

thread 'a_cpu_read_as_answered_is_read_with_its_answer' (260850343) panicked at kernel/loom/tests/counters_round.rs:57:17:
assertion `left == right` failed: cpu 1 read as having answered the round, and its block did not copy out that answer
  left: None
 right: Some([2, 2])
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_cpu_read_as_answered_is_read_with_its_answer

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test counters_round`
13:30:05 [ci] control `shootdown-served-relaxed`: 1 verdict(s) reached

13:30:05 === [ci] control `roster-commit-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.14s
     Running tests/smp_bringup.rs (target/debug/deps/smp_bringup-890aba1ad9e2e955)

running 1 test
test a_committed_count_never_outruns_its_slot ... FAILED

failures:

---- a_committed_count_never_outruns_its_slot stdout ----

thread 'a_committed_count_never_outruns_its_slot' (260850618) panicked at kernel/loom/tests/smp_bringup.rs:50:17:
assertion `left == right` failed: a reader saw cpu1 counted while its hardware-id slot was still unfilled
  left: 4294967295
 right: 7
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_committed_count_never_outruns_its_slot

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test smp_bringup`
13:30:05 [ci] control `roster-commit-relaxed`: 1 verdict(s) reached

13:30:05 === [ci] control `smp-ready-split`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running tests/smp_bringup.rs (target/debug/deps/smp_bringup-12b06e12df4049d5)

running 1 test
test a_released_machine_is_answering ... FAILED

failures:

---- a_released_machine_is_answering stdout ----

thread 'a_released_machine_is_answering' (260850814) panicked at kernel/loom/tests/smp_bringup.rs:83:21:
a CPU saw the machine released but not answering: a shootdown here is local-only and skips an AP that may already have joined
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_released_machine_is_answering

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test smp_bringup`
13:30:06 [ci] control `smp-ready-split`: 1 verdict(s) reached

13:30:06 === [ci] control `log-commit-release-off`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running tests/log_record.rs (target/debug/deps/log_record-8901e25c649904e8)

running 2 tests
test a_committed_record_is_whole_or_absent ... FAILED
test a_key_and_the_record_it_names_come_from_one_generation ... FAILED

failures:

---- a_committed_record_is_whole_or_absent stdout ----

thread 'a_committed_record_is_whole_or_absent' (260851159) panicked at kernel/loom/tests/log_record.rs:82:5:
assertion `left == right` failed: torn: at_ns is another record's
  left: 0
 right: 1007
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_key_and_the_record_it_names_come_from_one_generation stdout ----

thread 'a_key_and_the_record_it_names_come_from_one_generation' (260851160) panicked at kernel/loom/tests/log_record.rs:355:13:
assertion `left == right` failed: a key from the generation the slot used to hold
  left: 1007
 right: 5007


failures:
    a_committed_record_is_whole_or_absent
    a_key_and_the_record_it_names_come_from_one_generation

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 5 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test log_record`
13:30:06 [ci] control `log-commit-release-off`: 2 verdict(s) reached

13:30:06 === [ci] control `shard-publish-relaxed`
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.27s
     Running tests/log_publish.rs (target/debug/deps/log_publish-69909270b5c9854c)

running 1 test
test a_reader_that_finds_a_shard_finds_it_built ... FAILED

failures:

---- a_reader_that_finds_a_shard_finds_it_built stdout ----

thread 'a_reader_that_finds_a_shard_finds_it_built' (260851399) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent load and mut accesses.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_reader_that_finds_a_shard_finds_it_built

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test log_publish`
13:30:06 [ci] control `shard-publish-relaxed`: 1 verdict(s) reached

13:30:06 === [ci] control `log-ring-publish-relaxed`
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.16s
     Running tests/log_ring.rs (target/debug/deps/log_ring-fd5970f45225a9ad)

running 3 tests
test a_lane_publishes_whole_and_reuses_only_after_a_read ... FAILED
test a_slot_is_reused_only_after_its_record_was_read ... FAILED
test a_published_record_is_whole_and_read_once ... FAILED

failures:

---- a_lane_publishes_whole_and_reuses_only_after_a_read stdout ----

thread 'a_lane_publishes_whole_and_reuses_only_after_a_read' (260851624) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent read and write accesses.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_slot_is_reused_only_after_its_record_was_read stdout ----

thread 'a_slot_is_reused_only_after_its_record_was_read' (260851626) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent read and write accesses.


---- a_published_record_is_whole_and_read_once stdout ----

thread 'a_published_record_is_whole_and_read_once' (260851625) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent read and write accesses.



failures:
    a_lane_publishes_whole_and_reuses_only_after_a_read
    a_published_record_is_whole_and_read_once
    a_slot_is_reused_only_after_its_record_was_read

test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p kernel-loom --test log_ring`
13:30:07 [ci] control `log-ring-publish-relaxed`: 3 verdict(s) reached

13:30:07 === [ci] control `log-ring-tail-relaxed`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.35s
     Running tests/log_ring.rs (target/debug/deps/log_ring-65fb5473d901dbfd)

running 3 tests
test a_lane_publishes_whole_and_reuses_only_after_a_read ... FAILED
test a_slot_is_reused_only_after_its_record_was_read ... FAILED
test a_published_record_is_whole_and_read_once ... FAILED

failures:

---- a_lane_publishes_whole_and_reuses_only_after_a_read stdout ----

thread 'a_lane_publishes_whole_and_reuses_only_after_a_read' (260852164) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent read and write accesses to `UnsafeCell`.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_slot_is_reused_only_after_its_record_was_read stdout ----

thread 'a_slot_is_reused_only_after_its_record_was_read' (260852166) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent read and write accesses to `UnsafeCell`.


---- a_published_record_is_whole_and_read_once stdout ----

thread 'a_published_record_is_whole_and_read_once' (260852165) panicked at kernel/loom/tests/log_ring.rs:119:45:
assertion `left == right` failed
  left: Refused
 right: Written


failures:
    a_lane_publishes_whole_and_reuses_only_after_a_read
    a_published_record_is_whole_and_read_once
    a_slot_is_reused_only_after_its_record_was_read

test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p kernel-loom --test log_ring`
13:30:07 [ci] control `log-ring-tail-relaxed`: 3 verdict(s) reached

13:30:07 === [ci] control `log-ring-loads-swapped`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.23s
     Running tests/log_ring.rs (target/debug/deps/log_ring-17a1cc881f842c98)

running 1 test
test a_published_record_is_whole_and_read_once ... FAILED

failures:

---- a_published_record_is_whole_and_read_once stdout ----

thread 'a_published_record_is_whole_and_read_once' (260852583) panicked at kernel/loom/tests/log_ring.rs:119:45:
assertion `left == right` failed
  left: Refused
 right: Written
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_published_record_is_whole_and_read_once

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.02s

error: test failed, to rerun pass `-p kernel-loom --test log_ring`
13:30:07 [ci] control `log-ring-loads-swapped`: 1 verdict(s) reached

13:30:07 === [ci] control `post-is-an-answer`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.20s
     Running tests/inbox_answer.rs (target/debug/deps/inbox_answer-bf78819351e10b6a)

running 3 tests
test a_post_that_lands_after_its_bytes_were_read_answers_nothing ... FAILED
test a_post_with_nothing_to_read_answers_nothing ... FAILED
test a_poll_armed_again_does_not_end_the_look ... FAILED

failures:

---- a_post_that_lands_after_its_bytes_were_read_answers_nothing stdout ----

thread 'a_post_that_lands_after_its_bytes_were_read_answers_nothing' (260852987) panicked at kernel/loom/tests/inbox_answer.rs:276:9:
assertion `left == right` failed: the payload's late post was answered
  left: [(7, 1)]
 right: []
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_post_with_nothing_to_read_answers_nothing stdout ----

thread 'a_post_with_nothing_to_read_answers_nothing' (260852988) panicked at kernel/loom/tests/inbox_answer.rs:247:9:
assertion `left == right` failed: a post with nothing behind it was answered
  left: [(7, 1)]
 right: []

---- a_poll_armed_again_does_not_end_the_look stdout ----

thread 'a_poll_armed_again_does_not_end_the_look' (260852986) panicked at kernel/loom/tests/inbox_answer.rs:310:9:
assertion `left == right` failed
  left: [(3, 1), (4, 1)]
 right: [(4, 1)]


failures:
    a_poll_armed_again_does_not_end_the_look
    a_post_that_lands_after_its_bytes_were_read_answers_nothing
    a_post_with_nothing_to_read_answers_nothing

test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 13 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test inbox_answer`
13:30:08 [ci] control `post-is-an-answer`: 3 verdict(s) reached

13:30:08 === [ci] control `poll-fire-load-store`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.21s
     Running tests/poll_once.rs (target/debug/deps/poll_once-e7936a3e2ec155dd)

running 2 tests
test a_post_and_a_recheck_answer_a_poll_once ... FAILED
test a_withdrawal_and_a_post_never_both_take_a_poll ... FAILED

failures:

---- a_post_and_a_recheck_answer_a_poll_once stdout ----

thread 'a_post_and_a_recheck_answer_a_poll_once' (260853264) panicked at kernel/loom/tests/poll_once.rs:49:9:
assertion `left == right` failed: a ready poll is answered exactly once
  left: 2
 right: 1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_withdrawal_and_a_post_never_both_take_a_poll stdout ----

thread 'a_withdrawal_and_a_post_never_both_take_a_poll' (260853265) panicked at kernel/loom/tests/poll_once.rs:72:9:
answered=true withdrawn=true


failures:
    a_post_and_a_recheck_answer_a_poll_once
    a_withdrawal_and_a_post_never_both_take_a_poll

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test poll_once`
13:30:08 [ci] control `poll-fire-load-store`: 2 verdict(s) reached

13:30:08 === [ci] control `sleeplock-acquire-off`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.17s
     Running tests/sleep_lock.rs (target/debug/deps/sleep_lock-f3b193adf2ee818c)

running 2 tests
test a_parking_contender_observes_the_holders_writes ... FAILED
test two_holders_never_overlap ... FAILED

failures:

---- a_parking_contender_observes_the_holders_writes stdout ----

thread 'a_parking_contender_observes_the_holders_writes' (260853495) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent write accesses to `UnsafeCell`.

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- two_holders_never_overlap stdout ----

thread 'two_holders_never_overlap' (260853496) panicked at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/location.rs:115:9:
Causality violation: Concurrent write accesses to `UnsafeCell`.



failures:
    a_parking_contender_observes_the_holders_writes
    two_holders_never_overlap

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test sleep_lock`
13:30:08 [ci] control `sleeplock-acquire-off`: 2 verdict(s) reached

13:30:08 === [ci] control `device-irq-lossy`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running tests/device_irq.rs (target/debug/deps/device_irq-9fe67f32f4d3986f)

running 1 test
test every_message_is_counted_once ... FAILED

failures:

---- every_message_is_counted_once stdout ----

thread 'every_message_is_counted_once' (260853693) panicked at kernel/loom/tests/device_irq.rs:51:9:
assertion `left == right` failed: two interrupts arrived, the reader took 0 and 1 were left: a driver that misses one waits for a device that has already spoken
  left: 1
 right: 2
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    every_message_is_counted_once

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test device_irq`
13:30:09 [ci] control `device-irq-lossy`: 1 verdict(s) reached

13:30:09 === [ci] control `no-preempt-guard`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.20s
     Running tests/loom_mailbox.rs (target/debug/deps/loom_mailbox-a88193098a4b07bc)

running 1 test

thread 'preempted_producer_strands_suffix' (260854125) panicked at kernel/loom/tests/loom_mailbox.rs:76:9:
I2: this CPU halted while its own interrupted context is inside a push. That context cannot resume while the CPU sleeps, so every message queued behind its unlinked node stays invisible with no doorbell edge left to raise. Drained so far: []
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test preempted_producer_strands_suffix ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.94s

13:30:10 [ci] control `no-preempt-guard`: 1 verdict(s) reached

13:30:10 === [ci] control `doorbell-kick-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.23s
     Running tests/loom_sleep.rs (target/debug/deps/loom_sleep-c38cbcf547a528eb)

running 1 test

thread 'a_halted_cpu_with_queued_work_was_kicked' (260855306) panicked at kernel/loom/tests/loom_sleep.rs:104:13:
halted with 2 of 2 messages queued and no IPI in flight — a sleep-through
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'a_halted_cpu_with_queued_work_was_kicked' (260855306) panicked at kernel/loom/src/../../pure/sched/mailbox.rs:178:9:
mailbox node dropped with a message in flight
stack backtrace:
   0:        0x102e3dedc - std[5d97c59e5e5fafcc]::backtrace_rs::backtrace::libunwind::trace
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:        0x102e3dedc - std[5d97c59e5e5fafcc]::backtrace_rs::backtrace::trace_unsynchronized::<std[5d97c59e5e5fafcc]::sys::backtrace::_print_fmt::{closure#1}>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:        0x102e3dedc - std[5d97c59e5e5fafcc]::sys::backtrace::_print_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:74:9
   3:        0x102e3dedc - <<std[5d97c59e5e5fafcc]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[663bb9e1522ba5ef]::fmt::Display>::fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:44:26
   4:        0x102e4f25c - <core[663bb9e1522ba5ef]::fmt::rt::Argument>::fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/fmt/rt.rs:152:76
   5:        0x102e4f25c - core[663bb9e1522ba5ef]::fmt::write
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/fmt/mod.rs:1687:22
   6:        0x102e41a54 - std[5d97c59e5e5fafcc]::io::default_write_fmt::<alloc[cc4db322bb1ac55d]::vec::Vec<u8>>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/io/mod.rs:626:11
   7:        0x102e41a54 - <alloc[cc4db322bb1ac55d]::vec::Vec<u8> as std[5d97c59e5e5fafcc]::io::Write>::write_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/io/mod.rs:1730:13
   8:        0x102e24bd4 - <std[5d97c59e5e5fafcc]::sys::backtrace::BacktraceLock>::print
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:47:25
   9:        0x102e24bd4 - std[5d97c59e5e5fafcc]::panicking::default_hook::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:292:27
  10:        0x102e37694 - std[5d97c59e5e5fafcc]::panicking::default_hook
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:316:9
  11:        0x102dcfc70 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/alloc/src/boxed.rs:2333:9
  12:        0x102dcfc70 - test[4aa3eea2f4983582]::test_main_inner::<test[4aa3eea2f4983582]::test_main_static::{closure#0}>::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/test/src/lib.rs:155:21
  13:        0x102e11c4c - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2333:9
  14:        0x102e11c4c - generator[50749e7e4996c531]::detail::gen::catch_unwind_filter::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>::{closure#0}::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:19:13
  15:        0x102e37bd4 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/alloc/src/boxed.rs:2333:9
  16:        0x102e37bd4 - std[5d97c59e5e5fafcc]::panicking::panic_with_hook
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:823:13
  17:        0x102e24c88 - std[5d97c59e5e5fafcc]::panicking::panic_handler::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:681:13
  18:        0x102e1bd60 - std[5d97c59e5e5fafcc]::sys::backtrace::__rust_end_short_backtrace::<std[5d97c59e5e5fafcc]::panicking::panic_handler::{closure#0}, !>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:182:18
  19:        0x102e253f4 - __rustc[100742bb89c490cb]::rust_begin_unwind
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:679:5
  20:        0x102e5dff4 - core[663bb9e1522ba5ef]::panicking::panic_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/panicking.rs:80:14
  21:        0x102dc3104 - <kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg> as core[663bb9e1522ba5ef]::ops::drop::Drop>::drop
                               at /Users/jan/Dev/jan/toyos-arm-g3/kernel/loom/src/../../pure/sched/mailbox.rs:178:9
  22:        0x102dc3104 - core[663bb9e1522ba5ef]::ptr::drop_glue::<kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  23:        0x102dc3104 - core[663bb9e1522ba5ef]::ptr::drop_glue::<[kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>]>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  24:        0x102dc3104 - core[663bb9e1522ba5ef]::ptr::drop_glue::<[kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>; 2usize]>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  25:        0x102dc3104 - core[663bb9e1522ba5ef]::ptr::drop_glue::<loom_sleep[8e8d7a68dd6c3415]::World>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  26:        0x102dbb16c - core[663bb9e1522ba5ef]::ptr::drop_in_place::<loom_sleep[8e8d7a68dd6c3415]::World>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:818:14
  27:        0x102dbb16c - <alloc[cc4db322bb1ac55d]::sync::Arc<loom_sleep[8e8d7a68dd6c3415]::World>>::drop_slow
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/sync.rs:2143:18
  28:        0x102dbe040 - loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}
                               at /Users/jan/Dev/jan/toyos-arm-g3/kernel/loom/tests/loom_sleep.rs:121:5
  29:        0x102dbe040 - <loom[709ac591f2027ef2]::model::Builder>::check::<loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}>::{closure#0}
                               at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/model.rs:194:17
  30:        0x102dbe040 - <<loom[709ac591f2027ef2]::model::Builder>::check<loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}>::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  31:        0x102e071d4 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>> as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2319:9
  32:        0x102e071d4 - loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}
                               at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/scheduler.rs:142:17
  33:        0x102e071d4 - <loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  34:        0x102e071d4 - <generator[50749e7e4996c531]::gen_impl::GeneratorImpl<core[663bb9e1522ba5ef]::option::Option<alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>>>, ()>>::init_code::<loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}>::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/gen_impl.rs:357:21
  35:        0x102e071d4 - <generator[50749e7e4996c531]::stack::StackBox<<generator[50749e7e4996c531]::gen_impl::GeneratorImpl<core[663bb9e1522ba5ef]::option::Option<alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>>>, ()>>::init_code<loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}>::{closure#0}>>::call_once
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/stack/mod.rs:137:13
  36:        0x102e58bdc - <generator[50749e7e4996c531]::stack::Func>::call_once
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/stack/mod.rs:119:9
  37:        0x102e58bdc - generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:35:14
  38:        0x102e58bdc - <generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  39:        0x102e58bdc - std[5d97c59e5e5fafcc]::panicking::catch_unwind::do_call::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panicking.rs:576:43
  40:        0x102e58bdc - std[5d97c59e5e5fafcc]::panicking::catch_unwind::<(), generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panicking.rs:544:19
  41:        0x102e58bdc - std[5d97c59e5e5fafcc]::panic::catch_unwind::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  42:        0x102e58bdc - generator[50749e7e4996c531]::detail::gen::catch_unwind_filter::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:23:5
  43:        0x102e58bdc - generator[50749e7e4996c531]::detail::gen::gen_init_impl
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:50:25
  44:        0x102e58b6c - generator[50749e7e4996c531]::detail::asm::gen_init
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/aarch64_unix.rs:22:5

thread 'a_halted_cpu_with_queued_work_was_kicked' (260855306) panicked at kernel/loom/src/../../pure/sched/mailbox.rs:178:9:
mailbox node dropped with a message in flight
stack backtrace:
   0:        0x102e3dedc - std[5d97c59e5e5fafcc]::backtrace_rs::backtrace::libunwind::trace
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:        0x102e3dedc - std[5d97c59e5e5fafcc]::backtrace_rs::backtrace::trace_unsynchronized::<std[5d97c59e5e5fafcc]::sys::backtrace::_print_fmt::{closure#1}>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:        0x102e3dedc - std[5d97c59e5e5fafcc]::sys::backtrace::_print_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:74:9
   3:        0x102e3dedc - <<std[5d97c59e5e5fafcc]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[663bb9e1522ba5ef]::fmt::Display>::fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:44:26
   4:        0x102e4f25c - <core[663bb9e1522ba5ef]::fmt::rt::Argument>::fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/fmt/rt.rs:152:76
   5:        0x102e4f25c - core[663bb9e1522ba5ef]::fmt::write
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/fmt/mod.rs:1687:22
   6:        0x102e41a54 - std[5d97c59e5e5fafcc]::io::default_write_fmt::<alloc[cc4db322bb1ac55d]::vec::Vec<u8>>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/io/mod.rs:626:11
   7:        0x102e41a54 - <alloc[cc4db322bb1ac55d]::vec::Vec<u8> as std[5d97c59e5e5fafcc]::io::Write>::write_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/io/mod.rs:1730:13
   8:        0x102e24bd4 - <std[5d97c59e5e5fafcc]::sys::backtrace::BacktraceLock>::print
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:47:25
   9:        0x102e24bd4 - std[5d97c59e5e5fafcc]::panicking::default_hook::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:292:27
  10:        0x102e37694 - std[5d97c59e5e5fafcc]::panicking::default_hook
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:316:9
  11:        0x102dcfc70 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/alloc/src/boxed.rs:2333:9
  12:        0x102dcfc70 - test[4aa3eea2f4983582]::test_main_inner::<test[4aa3eea2f4983582]::test_main_static::{closure#0}>::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/test/src/lib.rs:155:21
  13:        0x102e11c4c - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2333:9
  14:        0x102e11c4c - generator[50749e7e4996c531]::detail::gen::catch_unwind_filter::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>::{closure#0}::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:19:13
  15:        0x102e37bd4 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn for<'a, 'b> core[663bb9e1522ba5ef]::ops::function::Fn<(&'a std[5d97c59e5e5fafcc]::panic::PanicHookInfo<'b>,), Output = ()> + core[663bb9e1522ba5ef]::marker::Sync + core[663bb9e1522ba5ef]::marker::Send> as core[663bb9e1522ba5ef]::ops::function::Fn<(&std[5d97c59e5e5fafcc]::panic::PanicHookInfo,)>>::call
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/alloc/src/boxed.rs:2333:9
  16:        0x102e37bd4 - std[5d97c59e5e5fafcc]::panicking::panic_with_hook
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:823:13
  17:        0x102e24c88 - std[5d97c59e5e5fafcc]::panicking::panic_handler::{closure#0}
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:681:13
  18:        0x102e1bd60 - std[5d97c59e5e5fafcc]::sys::backtrace::__rust_end_short_backtrace::<std[5d97c59e5e5fafcc]::panicking::panic_handler::{closure#0}, !>
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/sys/backtrace.rs:182:18
  19:        0x102e253f4 - __rustc[100742bb89c490cb]::rust_begin_unwind
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/std/src/panicking.rs:679:5
  20:        0x102e5dff4 - core[663bb9e1522ba5ef]::panicking::panic_fmt
                               at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/panicking.rs:80:14
  21:        0x102dc27c8 - <kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg> as core[663bb9e1522ba5ef]::ops::drop::Drop>::drop
                               at /Users/jan/Dev/jan/toyos-arm-g3/kernel/loom/src/../../pure/sched/mailbox.rs:178:9
  22:        0x102dc27c8 - core[663bb9e1522ba5ef]::ptr::drop_glue::<kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  23:        0x102dc3144 - core[663bb9e1522ba5ef]::ptr::drop_glue::<[kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>]>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  24:        0x102dc3144 - core[663bb9e1522ba5ef]::ptr::drop_glue::<[kernel_loom[69df8da3d8035e49]::sched::mailbox::MailboxNode<kernel_loom[69df8da3d8035e49]::sched_model::Msg>; 2usize]>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  25:        0x102dc3144 - core[663bb9e1522ba5ef]::ptr::drop_glue::<loom_sleep[8e8d7a68dd6c3415]::World>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:823:1
  26:        0x102dbb16c - core[663bb9e1522ba5ef]::ptr::drop_in_place::<loom_sleep[8e8d7a68dd6c3415]::World>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:818:14
  27:        0x102dbb16c - <alloc[cc4db322bb1ac55d]::sync::Arc<loom_sleep[8e8d7a68dd6c3415]::World>>::drop_slow
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/sync.rs:2143:18
  28:        0x102dbe040 - loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}
                               at /Users/jan/Dev/jan/toyos-arm-g3/kernel/loom/tests/loom_sleep.rs:121:5
  29:        0x102dbe040 - <loom[709ac591f2027ef2]::model::Builder>::check::<loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}>::{closure#0}
                               at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/model.rs:194:17

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Earlier host run at d719cc9d4 (the same tree but issues/), EXIT=1 on the toyos SDK's lane proof, filed as issues/a-lane-reader-counted-one-refusal-fewer-than-its-writer-made.md, part 7 of 8

  30:        0x102dbe040 - <<loom[709ac591f2027ef2]::model::Builder>::check<loom_sleep[8e8d7a68dd6c3415]::a_halted_cpu_with_queued_work_was_kicked::{closure#0}>::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  31:        0x102e071d4 - <alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>> as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/boxed.rs:2319:9
  32:        0x102e071d4 - loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}
                               at /Users/jan/.cargo/git/checkouts/loom-906f299ec1581ba6/dfe3797/src/rt/scheduler.rs:142:17
  33:        0x102e071d4 - <loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  34:        0x102e071d4 - <generator[50749e7e4996c531]::gen_impl::GeneratorImpl<core[663bb9e1522ba5ef]::option::Option<alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>>>, ()>>::init_code::<loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}>::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/gen_impl.rs:357:21
  35:        0x102e071d4 - <generator[50749e7e4996c531]::stack::StackBox<<generator[50749e7e4996c531]::gen_impl::GeneratorImpl<core[663bb9e1522ba5ef]::option::Option<alloc[cc4db322bb1ac55d]::boxed::Box<dyn core[663bb9e1522ba5ef]::ops::function::FnOnce<(), Output = ()>>>, ()>>::init_code<loom[709ac591f2027ef2]::rt::scheduler::spawn_thread::{closure#0}>::{closure#0}>>::call_once
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/stack/mod.rs:137:13
  36:        0x102e58bdc - <generator[50749e7e4996c531]::stack::Func>::call_once
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/stack/mod.rs:119:9
  37:        0x102e58bdc - generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:35:14
  38:        0x102e58bdc - <generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0} as core[663bb9e1522ba5ef]::ops::function::FnOnce<()>>::call_once
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  39:        0x102e58bdc - std[5d97c59e5e5fafcc]::panicking::catch_unwind::do_call::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panicking.rs:576:43
  40:        0x102e58bdc - std[5d97c59e5e5fafcc]::panicking::catch_unwind::<(), generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panicking.rs:544:19
  41:        0x102e58bdc - std[5d97c59e5e5fafcc]::panic::catch_unwind::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  42:        0x102e58bdc - generator[50749e7e4996c531]::detail::gen::catch_unwind_filter::<generator[50749e7e4996c531]::detail::gen::gen_init_impl::{closure#0}, ()>
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:23:5
  43:        0x102e58bdc - generator[50749e7e4996c531]::detail::gen::gen_init_impl
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/gen.rs:50:25
  44:        0x102e58b6c - generator[50749e7e4996c531]::detail::asm::gen_init
                               at /Users/jan/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generator-0.8.9/src/detail/aarch64_unix.rs:22:5

thread 'a_halted_cpu_with_queued_work_was_kicked' (260855306) panicked at /rustc/48a229ceaefd4985c50990b14116b6d856af0985/library/core/src/panicking.rs:233:5:
panic in a destructor during cleanup
thread caused non-unwinding panic. aborting.
error: test failed, to rerun pass `-p kernel-loom --test loom_sleep`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/loom_sleep-c38cbcf547a528eb --exact a_halted_cpu_with_queued_work_was_kicked` (signal: 6, SIGABRT: process abort signal)
13:30:10 [ci] control `doorbell-kick-relaxed`: 1 verdict(s) reached

13:30:10 === [ci] control `push-fence-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.14s
     Running tests/loom_push.rs (target/debug/deps/loom_push-9be859ddff6561a3)

running 1 test
test a_cpu_that_halts_without_seeing_the_surplus_was_pushed ... FAILED

failures:

---- a_cpu_that_halts_without_seeing_the_surplus_was_pushed stdout ----

thread 'a_cpu_that_halts_without_seeing_the_surplus_was_pushed' (260855608) panicked at kernel/loom/tests/loom_push.rs:143:9:
cpu1 halted with cpu0's surplus of 2 published and no push behind it — both sides of the store-buffer pair missed, which is the pull path's slept-before-the-surplus defect back again, in a window a fence would have closed
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_cpu_that_halts_without_seeing_the_surplus_was_pushed

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test loom_push`
13:30:11 [ci] control `push-fence-relaxed`: 1 verdict(s) reached

13:30:11 === [ci] control `commit-ignores-notify`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.17s
     Running tests/loom_watch.rs (target/debug/deps/loom_watch-f13a59174a717cf0)

running 2 tests
test a_post_racing_a_registration_leaves_nobody_parked ... FAILED
test a_fire_racing_a_submitters_park_is_never_lost ... FAILED

failures:

---- a_post_racing_a_registration_leaves_nobody_parked stdout ----

thread 'a_post_racing_a_registration_leaves_nobody_parked' (260855870) panicked at kernel/loom/tests/loom_watch.rs:244:13:
assertion `left == right` failed: parked with the condition true and no wake owed: the post was lost
  left: []
 right: [Wake(TaskKey(1), Woken)]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_fire_racing_a_submitters_park_is_never_lost stdout ----

thread 'a_fire_racing_a_submitters_park_is_never_lost' (260855869) panicked at kernel/loom/tests/loom_watch.rs:850:13:
assertion `left == right` failed: parked over a fired poll and no wake owed: a fire was lost
  left: []
 right: [Wake(TaskKey(1), Woken)]


failures:
    a_fire_racing_a_submitters_park_is_never_lost
    a_post_racing_a_registration_leaves_nobody_parked

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.09s

error: test failed, to rerun pass `-p kernel-loom --test loom_watch`
13:30:11 [ci] control `commit-ignores-notify`: 2 verdict(s) reached

13:30:11 === [ci] control `notify-flag-load-only`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.17s
     Running tests/loom_watch.rs (target/debug/deps/loom_watch-804d50fe30374251)

running 1 test
test a_second_post_is_not_lost_to_a_flag_the_waiter_consumed ... FAILED

failures:

---- a_second_post_is_not_lost_to_a_flag_the_waiter_consumed stdout ----

thread 'a_second_post_is_not_lost_to_a_flag_the_waiter_consumed' (260856292) panicked at kernel/loom/tests/loom_watch.rs:454:13:
assertion `left == right` failed: parked with both conditions true and no wake owed: a post answered off a load
  left: []
 right: [Wake(TaskKey(1), Woken)]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_second_post_is_not_lost_to_a_flag_the_waiter_consumed

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 11 filtered out; finished in 7.93s

error: test failed, to rerun pass `-p kernel-loom --test loom_watch`
13:30:19 [ci] control `notify-flag-load-only`: 1 verdict(s) reached

13:30:19 === [ci] control `gate-fence-off`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.11s
     Running tests/loom_watch.rs (target/debug/deps/loom_watch-2dd86f2d566d30a7)

running 1 test
test a_transition_racing_an_opening_gate_is_never_missed ... FAILED

failures:

---- a_transition_racing_an_opening_gate_is_never_missed stdout ----

thread 'a_transition_racing_an_opening_gate_is_never_missed' (260864652) panicked at kernel/loom/tests/loom_watch.rs:602:13:
assertion `left == right` failed: the stop parked over a thread that had parked, and nothing posted it
  left: []
 right: [Wake(TaskKey(1), Woken)]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_transition_racing_an_opening_gate_is_never_missed

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 11 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test loom_watch`
13:30:19 [ci] control `gate-fence-off`: 1 verdict(s) reached

13:30:19 === [ci] control `poll-fire-load-store`
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.16s
     Running tests/loom_watch.rs (target/debug/deps/loom_watch-c3e0e112b9250e74)

running 3 tests
test a_poll_on_two_watches_racing_both_posts_completes_exactly_once ... FAILED
test a_poll_registered_racing_a_post_in_place_completes_exactly_once ... FAILED
test a_poll_registered_racing_a_post_completes_exactly_once ... FAILED

failures:

---- a_poll_on_two_watches_racing_both_posts_completes_exactly_once stdout ----

thread 'a_poll_on_two_watches_racing_both_posts_completes_exactly_once' (260864846) panicked at kernel/loom/tests/loom_watch.rs:658:9:
assertion `left == right` failed: a poll over a ready object completes once
  left: 2
 right: 1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_poll_registered_racing_a_post_in_place_completes_exactly_once stdout ----

thread 'a_poll_registered_racing_a_post_in_place_completes_exactly_once' (260864848) panicked at kernel/loom/tests/loom_watch.rs:351:5:
assertion `left == right` failed: a poll over a ready object completes once
  left: 2
 right: 1

---- a_poll_registered_racing_a_post_completes_exactly_once stdout ----

thread 'a_poll_registered_racing_a_post_completes_exactly_once' (260864847) panicked at kernel/loom/tests/loom_watch.rs:351:5:
assertion `left == right` failed: a poll over a ready object completes once
  left: 2
 right: 1


failures:
    a_poll_on_two_watches_racing_both_posts_completes_exactly_once
    a_poll_registered_racing_a_post_completes_exactly_once
    a_poll_registered_racing_a_post_in_place_completes_exactly_once

test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test loom_watch`
13:30:20 [ci] control `poll-fire-load-store`: 3 verdict(s) reached

13:30:20 === [ci] control `fault-posted-before-it-is-set`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.22s
     Running tests/loom_watch.rs (target/debug/deps/loom_watch-342ffd79d5171796)

running 2 tests
test a_poll_registered_racing_a_post_in_place_completes_exactly_once ... FAILED
test a_poll_registered_racing_a_post_completes_exactly_once ... FAILED

failures:

---- a_poll_registered_racing_a_post_in_place_completes_exactly_once stdout ----

thread 'a_poll_registered_racing_a_post_in_place_completes_exactly_once' (260865322) panicked at kernel/loom/tests/loom_watch.rs:350:5:
assertion `left != right` failed: a poll over a ready object was completed by neither
  left: 0
 right: 0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- a_poll_registered_racing_a_post_completes_exactly_once stdout ----

thread 'a_poll_registered_racing_a_post_completes_exactly_once' (260865320) panicked at kernel/loom/tests/loom_watch.rs:350:5:
assertion `left != right` failed: a poll over a ready object was completed by neither
  left: 0
 right: 0


failures:
    a_poll_registered_racing_a_post_completes_exactly_once
    a_poll_registered_racing_a_post_in_place_completes_exactly_once

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 10 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel-loom --test loom_watch`
13:30:20 [ci] control `fault-posted-before-it-is-set`: 3 verdict(s) reached

13:30:20 === [ci] control `victim-retires-mid-probe`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.24s
     Running tests/loom_mailbox.rs (target/debug/deps/loom_mailbox-854161e9182e6318)

running 1 test

thread 'a_probe_outstanding_when_its_victim_retires_is_never_reclaimed' (260866027) panicked at kernel/loom/tests/loom_mailbox.rs:254:5:
assertion `left == right` failed: the victim retired with a probe still linked in its queue, so the node stays claimed for the rest of the boot and every later `claim()` by its thief answers `None` — one CPU stopping costs a second CPU its pull half permanently
  left: 1
 right: 0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
caught the verdict: the victim retired with a probe still linked in its queue
test a_probe_outstanding_when_its_victim_retires_is_never_reclaimed ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s

13:30:20 [ci] control `victim-retires-mid-probe`: 1 verdict(s) reached

13:30:20 === [ci] control `counting-allocator`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.11s
     Running unittests pure/lib.rs (target/debug/deps/kernel-6097f575e1539c4c)

running 2 tests
test pcid::oracle::tests::the_counting_allocator_produces_a_cross_space_read ... ok
test pcid::tests::two_live_address_spaces_never_share_a_pcid ... FAILED

failures:

---- pcid::tests::two_live_address_spaces_never_share_a_pcid stdout ----

thread 'pcid::tests::two_live_address_spaces_never_share_a_pcid' (260866213) panicked at kernel/pure/pcid/mod.rs:171:21:
the allocator reissued tag 1, still held by a live address space
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    pcid::tests::two_live_address_spaces_never_share_a_pcid

test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 171 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:30:21 [ci] control `counting-allocator`: 2 verdict(s) reached

13:30:21 === [ci] control `mutate-spawn-skips-the-insert-recheck`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.11s
     Running unittests pure/lib.rs (target/debug/deps/kernel-0678184e0e5d49cf)

running 2 tests
test proclife::interleave::tests::a_published_exit_leaves_no_unretired_thread ... FAILED
test proclife::interleave::tests::a_kill_racing_a_spawn_leaves_no_unretired_thread ... FAILED

failures:

---- proclife::interleave::tests::a_published_exit_leaves_no_unretired_thread stdout ----

thread 'proclife::interleave::tests::a_published_exit_leaves_no_unretired_thread' (260866392) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0 was claimed for teardown and never published an exit
  schedule: spawn_thread#1 -> exit#0 -> exit#0 -> spawn_thread#1 -> spawn_thread#1 -> out 0/0 -> out 0/0 -> out 0/1 -> out 0/1

---- proclife::interleave::tests::a_kill_racing_a_spawn_leaves_no_unretired_thread stdout ----

thread 'proclife::interleave::tests::a_kill_racing_a_spawn_leaves_no_unretired_thread' (260866391) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0 was claimed for teardown and never published an exit
  schedule: spawn_thread#1 -> kill#0 -> kill#0 -> spawn_thread#1 -> spawn_thread#1 -> out 0/0 -> out 0/0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_kill_racing_a_spawn_leaves_no_unretired_thread
    proclife::interleave::tests::a_published_exit_leaves_no_unretired_thread

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 172 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:30:21 [ci] control `mutate-spawn-skips-the-insert-recheck`: 2 verdict(s) reached

13:30:21 === [ci] control `mutate-claim-teardown-always-wins`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.18s
     Running unittests pure/lib.rs (target/debug/deps/kernel-6e184e18194cdfe1)

running 1 test
test proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down ... FAILED

failures:

---- proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down stdout ----

thread 'proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down' (260866573) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0: 2 teardown claims succeeded
  schedule: exit#0 -> exit#0 -> kill#1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:30:21 [ci] control `mutate-claim-teardown-always-wins`: 1 verdict(s) reached

13:30:21 === [ci] control `mutate-kill-waits-for-its-victims`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.11s
     Running unittests pure/lib.rs (target/debug/deps/kernel-cafdcd0f4db5baa9)

running 2 tests
test proclife::interleave::tests::a_kill_chain_of_three_ends ... FAILED
test proclife::interleave::tests::two_processes_killing_each_other_both_end ... FAILED

failures:

---- proclife::interleave::tests::a_kill_chain_of_three_ends stdout ----

thread 'proclife::interleave::tests::a_kill_chain_of_three_ends' (260866664) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
a kill waits on pid 1's teardown
  schedule: kill#0 -> kill#0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- proclife::interleave::tests::two_processes_killing_each_other_both_end stdout ----

thread 'proclife::interleave::tests::two_processes_killing_each_other_both_end' (260866665) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
a kill waits on pid 1's teardown
  schedule: kill#0 -> kill#0


failures:
    proclife::interleave::tests::a_kill_chain_of_three_ends
    proclife::interleave::tests::two_processes_killing_each_other_both_end

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:30:22 [ci] control `mutate-kill-waits-for-its-victims`: 2 verdict(s) reached

13:30:22 === [ci] control `mutate-first-out-tears-down`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running unittests pure/lib.rs (target/debug/deps/kernel-20f5b15b9e4ec2b0)

running 1 test
test proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down ... FAILED

failures:

---- proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down stdout ----

thread 'proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down' (260866771) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0 was torn down with tid 1 still in it
  schedule: exit#0 -> exit#0 -> kill#1 -> out 0/0 -> out 0/0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::an_exit_and_a_kill_never_both_tear_a_process_down

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:30:22 [ci] control `mutate-first-out-tears-down`: 1 verdict(s) reached

13:30:22 === [ci] control `mutate-join-collects-in-a-teardown`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running unittests pure/lib.rs (target/debug/deps/kernel-f021dcce956c5b5a)

running 1 test
test proclife::interleave::tests::a_join_racing_the_kill_that_takes_its_target ... FAILED

failures:

---- proclife::interleave::tests::a_join_racing_the_kill_that_takes_its_target stdout ----

thread 'proclife::interleave::tests::a_join_racing_the_kill_that_takes_its_target' (260866913) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0 tid 1: its entry and its mapped TLS went while a sibling was still in the process
  schedule: kill#0 -> kill#0 -> thread_join#1 -> out 0/0 -> out 0/0 -> out 0/1 -> thread_join#1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_join_racing_the_kill_that_takes_its_target

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:30:22 [ci] control `mutate-join-collects-in-a-teardown`: 1 verdict(s) reached

13:30:22 === [ci] control `mutate-last-out-leaves-before-its-teardown`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.33s
     Running unittests pure/lib.rs (target/debug/deps/kernel-9a2779cc48b5db37)

running 2 tests
test proclife::teardown::tests::only_the_thread_that_empties_a_claimed_process_tears_it_down ... FAILED
test proclife::interleave::tests::the_last_one_out_is_in_its_process_until_its_teardown_is_done ... FAILED

failures:

---- proclife::teardown::tests::only_the_thread_that_empties_a_claimed_process_tears_it_down stdout ----

thread 'proclife::teardown::tests::only_the_thread_that_empties_a_claimed_process_tears_it_down' (260867674) panicked at kernel/pure/proclife/teardown.rs:219:9:
assertion `left == right` failed: the last one out is in its process until its teardown is done
  left: Some(Zombie(-1))
 right: Some(Scheduled)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- proclife::interleave::tests::the_last_one_out_is_in_its_process_until_its_teardown_is_done stdout ----

thread 'proclife::interleave::tests::the_last_one_out_is_in_its_process_until_its_teardown_is_done' (260867673) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 0 tid 0 is tearing its process down and the table has it out, so a stop would not wait for it
  schedule: exit#0 -> exit#0 -> out 0/0


failures:
    proclife::interleave::tests::the_last_one_out_is_in_its_process_until_its_teardown_is_done
    proclife::teardown::tests::only_the_thread_that_empties_a_claimed_process_tears_it_down

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:30:22 [ci] control `mutate-last-out-leaves-before-its-teardown`: 2 verdict(s) reached

13:30:22 === [ci] control `mutate-place-skips-the-insert-recheck`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.18s
     Running unittests pure/lib.rs (target/debug/deps/kernel-b6048955f34d9084)

running 1 test
test proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it ... FAILED

failures:

---- proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it stdout ----

thread 'proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it' (260867969) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 3 landed unclaimed under a place whose end was already claimed
  schedule: spawn_under#1 -> kill#0 -> kill#0 -> kill#0 -> kill#0 -> spawn_under#1 -> spawn_under#1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:30:23 [ci] control `mutate-place-skips-the-insert-recheck`: 1 verdict(s) reached

13:30:23 === [ci] control `mutate-refused-spawn-keeps-the-count`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.14s
     Running unittests pure/lib.rs (target/debug/deps/kernel-f3f33b9b59a9f859)

running 1 test
test proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it ... FAILED

failures:

---- proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it stdout ----
a spawn racing its place's kill: 1641 states

thread 'proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it' (260868229) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 1 was claimed for teardown and never published an exit
  schedule: spawn_under#1 -> kill#0 -> kill#0 -> kill#0 -> kill#0 -> spawn_under#1 -> out 1/0 -> out 1/0 -> out 1/0 -> out 1/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.02s

error: test failed, to rerun pass `-p kernel --lib`
13:30:23 [ci] control `mutate-refused-spawn-keeps-the-count`: 1 verdict(s) reached

13:30:23 === [ci] control `mutate-landed-child-retires-nothing`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.17s
     Running unittests pure/lib.rs (target/debug/deps/kernel-fc90b694e79e1ca6)

running 2 tests
test proclife::tree::tests::a_child_landed_under_a_place_claimed_since_its_admission_is_claimed_with_it ... FAILED
test proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it ... FAILED

failures:

---- proclife::tree::tests::a_child_landed_under_a_place_claimed_since_its_admission_is_claimed_with_it stdout ----

thread 'proclife::tree::tests::a_child_landed_under_a_place_claimed_since_its_admission_is_claimed_with_it' (260868577) panicked at kernel/pure/proclife/tree.rs:274:9:
assertion `left == right` failed: the child's spawner was not answered its thread to retire
  left: []
 right: [Tid(0)]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it stdout ----

thread 'proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it' (260868576) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 1 was claimed for teardown and never published an exit
pid 3 was claimed for teardown and never published an exit
pid 3 outlived the end of pid 1 above it
  schedule: spawn_under#1 -> kill#0 -> kill#0 -> kill#0 -> kill#0 -> spawn_under#1 -> spawn_under#1 -> spawn_under#1 -> out 1/0 -> out 1/0 -> out 1/0 -> out 1/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0


failures:
    proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it
    proclife::tree::tests::a_child_landed_under_a_place_claimed_since_its_admission_is_claimed_with_it

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:30:23 [ci] control `mutate-landed-child-retires-nothing`: 2 verdict(s) reached

13:30:23 === [ci] control `mutate-publish-before-the-children`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.21s
     Running unittests pure/lib.rs (target/debug/deps/kernel-eced1954074bce19)

running 1 test
test proclife::interleave::tests::an_exit_publishes_after_every_end_below_it ... FAILED

failures:

---- proclife::interleave::tests::an_exit_publishes_after_every_end_below_it stdout ----

thread 'proclife::interleave::tests::an_exit_publishes_after_every_end_below_it' (260869004) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 1 was published with pid 2 still unpublished below it
pid 1 was published with pid 4 still unpublished below it
  schedule: exit#0 -> exit#0 -> exit#0 -> exit#0 -> exit#0 -> exit#0 -> exit#0 -> exit#0 -> out 1/0 -> out 1/0 -> out 1/0 -> out 1/0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::an_exit_publishes_after_every_end_below_it

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:30:24 [ci] control `mutate-publish-before-the-children`: 1 verdict(s) reached

13:30:24 === [ci] control `mutate-walk-in-one-hold`
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.40s
     Running unittests pure/lib.rs (target/debug/deps/kernel-29ba8b7ce3d370b6)

running 1 test
test proclife::interleave::tests::a_spawn_under_an_unrelated_process_lands_between_two_claims_of_one_walk ... FAILED

failures:

---- proclife::interleave::tests::a_spawn_under_an_unrelated_process_lands_between_two_claims_of_one_walk stdout ----

thread 'proclife::interleave::tests::a_spawn_under_an_unrelated_process_lands_between_two_claims_of_one_walk' (260869425) panicked at kernel/pure/proclife/interleave.rs:894:9:
no ordering landed the unrelated spawn between the walk's two claims below the end: the walk holds the table across its claims
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_spawn_under_an_unrelated_process_lands_between_two_claims_of_one_walk

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.04s

error: test failed, to rerun pass `-p kernel --lib`
13:30:24 [ci] control `mutate-walk-in-one-hold`: 1 verdict(s) reached

13:30:24 === [ci] control `mutate-spawner-handle-after-the-landing`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.48s
     Running unittests pure/lib.rs (target/debug/deps/kernel-2483b96922d9df2a)

running 2 tests
test proclife::interleave::tests::a_spawn_racing_the_kill_of_its_own_spawner ... FAILED
test proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it ... FAILED

failures:

---- proclife::interleave::tests::a_spawn_racing_the_kill_of_its_own_spawner stdout ----

thread 'proclife::interleave::tests::a_spawn_racing_the_kill_of_its_own_spawner' (260871379) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 3: a handle to it was minted after its last one had gone
  schedule: spawn_under#1 -> kill#0 -> kill#0 -> kill#0 -> kill#0 -> spawn_under#1 -> spawn_under#1 -> spawn_under#1 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 3/0 -> out 3/0 -> spawn_under#1
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it stdout ----

thread 'proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it' (260871378) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 3: a handle to it was minted after its last one had gone
  schedule: spawn_under#1 -> kill#0 -> kill#0 -> kill#0 -> kill#0 -> spawn_under#1 -> spawn_under#1 -> spawn_under#1 -> out 1/0 -> out 1/0 -> out 1/0 -> out 1/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 2/0 -> out 3/0 -> out 3/0 -> spawn_under#1


failures:
    proclife::interleave::tests::a_spawn_racing_its_places_kill_leaves_nothing_under_it_and_publishes_it
    proclife::interleave::tests::a_spawn_racing_the_kill_of_its_own_spawner

test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 173 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p kernel --lib`
13:30:25 [ci] control `mutate-spawner-handle-after-the-landing`: 2 verdict(s) reached

13:30:25 === [ci] control `mutate-spawner-handle-before-the-childs-own`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.49s
     Running unittests pure/lib.rs (target/debug/deps/kernel-68c27e53bbdb2954)

running 1 test
test proclife::interleave::tests::a_sibling_closing_a_spawns_handle_before_the_spawn_returns ... FAILED

failures:

---- proclife::interleave::tests::a_sibling_closing_a_spawns_handle_before_the_spawn_returns stdout ----

thread 'proclife::interleave::tests::a_sibling_closing_a_spawns_handle_before_the_spawn_returns' (260872436) panicked at kernel/pure/proclife/interleave.rs:544:27:
a lifecycle law broke:
pid 2: a handle to it was minted after its last one had gone
  schedule: spawn_under#0 -> spawn_under#0 -> close#1 -> spawn_under#0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    proclife::interleave::tests::a_sibling_closing_a_spawns_handle_before_the_spawn_returns

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 174 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p kernel --lib`
13:30:26 [ci] control `mutate-spawner-handle-before-the-childs-own`: 1 verdict(s) reached

13:30:26 === [ci] control `placement-ignores-staleness`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.32s
     Running tests/policy.rs (target/debug/deps/policy-fb61fd9cdbfa04f7)

running 1 test
test a_stopped_cpu_stops_taking_work ... FAILED

failures:

---- a_stopped_cpu_stops_taking_work stdout ----
stopped_cpu: worst never_ran 10, total 114 over 16 seeds, bound 4 of 24

thread 'a_stopped_cpu_stops_taking_work' (260872609) panicked at kernel/sim/tests/policy.rs:1419:5:
a stopped cpu took 10 of 24 programs, against the 4 its published numbers are believed for
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_stopped_cpu_stops_taking_work

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 11 filtered out; finished in 0.02s

error: test failed, to rerun pass `-p kernel-sim --test policy`
13:30:26 [ci] control `placement-ignores-staleness`: 1 verdict(s) reached

13:30:26 === [ci] control `mutate-session-end-forgets`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.28s
     Running unittests src/lib.rs (target/debug/deps/toyos_blockring-c60f1ce9c5880c03)

running 1 test
test model::tests::every_request_is_answered_exactly_once ... FAILED

failures:

---- model::tests::every_request_is_answered_exactly_once stdout ----
Failures { resets: 0, crashes: 0, errors: 0 }: 28 end states, 0 with a flush given up, None
Failures { resets: 1, crashes: 0, errors: 0 }: 492 end states, 0 with a flush given up, None
Failures { resets: 0, crashes: 1, errors: 0 }: 4 end states, 0 with a flush given up, Some((Answers, "ticket 3 ended answered None, after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > ask 4 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > take Flush#7 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > done Flush#7 > read #5 Ok > read #6 Ok > crash([None, None] [3, 2]) > notice > reconnect > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > read #12 Ok > read #9 Ok > take Flush#16 > done Flush#16 > read #16 Ok"))

thread 'model::tests::every_request_is_answered_exactly_once' (260872830) panicked at toyos-blockring/src/model.rs:722:17:
Failures { resets: 0, crashes: 1, errors: 0 }: ticket 3 ended answered None, after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > ask 4 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > take Flush#7 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > done Flush#7 > read #5 Ok > read #6 Ok > crash([None, None] [3, 2]) > notice > reconnect > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > read #12 Ok > read #9 Ok > take Flush#16 > done Flush#16 > read #16 Ok
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    model::tests::every_request_is_answered_exactly_once

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 22 filtered out; finished in 18.08s

error: test failed, to rerun pass `-p toyos-blockring --lib`
13:30:45 [ci] control `mutate-session-end-forgets`: 1 verdict(s) reached

13:30:45 === [ci] control `mutate-abort-keeps-inflight`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.30s
     Running unittests src/lib.rs (target/debug/deps/toyos_blockring-9da8b607da72767a)

running 1 test
test model::tests::every_request_is_answered_exactly_once ... FAILED

failures:

---- model::tests::every_request_is_answered_exactly_once stdout ----
Failures { resets: 0, crashes: 0, errors: 0 }: 28 end states, 0 with a flush given up, None
Failures { resets: 1, crashes: 0, errors: 0 }: 2 end states, 0 with a flush given up, Some((Answers, "the client met a second completion for tag 7, after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > ask 4 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > take Flush#7 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > read #5 Ok > read #6 Ok > read #8 Ok > reset([7] [None, None] [3, 2]) > read #7 Device > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > read #12 Ok > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#16 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#16 > read #9 Ok > read #16 Ok > take Flush#20 > done Flush#20 > read #20 Lost > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#24 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#13 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#24 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#13 > read #24 Ok > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#28 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#28 > read #13 Ok > read #28 Ok > take Flush#32 > done Flush#32 > read #32 Ok > posted #7 > read #7 Ok"))

thread 'model::tests::every_request_is_answered_exactly_once' (260889371) panicked at toyos-blockring/src/model.rs:722:17:
Failures { resets: 1, crashes: 0, errors: 0 }: the client met a second completion for tag 7, after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > ask 4 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > take Flush#7 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > read #5 Ok > read #6 Ok > read #8 Ok > reset([7] [None, None] [3, 2]) > read #7 Device > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#12 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#9 > read #12 Ok > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#16 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#16 > read #9 Ok > read #16 Ok > take Flush#20 > done Flush#20 > read #20 Lost > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#24 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#13 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#24 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#13 > read #24 Ok > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#28 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#28 > read #13 Ok > read #28 Ok > take Flush#32 > done Flush#32 > read #32 Ok > posted #7 > read #7 Ok
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    model::tests::every_request_is_answered_exactly_once

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 22 filtered out; finished in 0.02s

error: test failed, to rerun pass `-p toyos-blockring --lib`
13:30:45 [ci] control `mutate-abort-keeps-inflight`: 1 verdict(s) reached

13:30:45 === [ci] control `mutate-no-reissue-after-loss`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.30s
     Running unittests src/lib.rs (target/debug/deps/toyos_blockring-05042003800e3648)

running 1 test
test model::tests::what_a_flush_calls_durable_is_on_the_medium ... FAILED

failures:

---- model::tests::what_a_flush_calls_durable_is_on_the_medium stdout ----
Failures { resets: 0, crashes: 0, errors: 0 }: 28 end states, 0 with a flush given up, None
Failures { resets: 1, crashes: 0, errors: 0 }: 20 end states, 0 with a flush given up, Some((Durable, "flush 4 was answered durable with block 0 holding 1, not the 3 acknowledged before it (or a later one of [3]), after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > read #5 Ok > read #6 Ok > read #8 Ok > ask 4 > take Flush#12 > reset([] [None, None] [1, 2]) > read #12 Device > take Flush#16 > done Flush#16 > read #16 Lost > take Flush#20 > done Flush#20 > read #20 Ok"))

thread 'model::tests::what_a_flush_calls_durable_is_on_the_medium' (260890160) panicked at toyos-blockring/src/model.rs:733:17:
Failures { resets: 1, crashes: 0, errors: 0 }: flush 4 was answered durable with block 0 holding 1, not the 3 acknowledged before it (or a later one of [3]), after ask 0 > ask 1 > ask 2 > take Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > take Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > take Flush#6 > done Write { run: Run { first: 0, count: 1 }, lba: 0 }#4 > done Write { run: Run { first: 1, count: 1 }, lba: 1 }#5 > done Flush#6 > read #4 Ok > ask 3 > take Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > done Write { run: Run { first: 3, count: 1 }, lba: 0 }#8 > read #5 Ok > read #6 Ok > read #8 Ok > ask 4 > take Flush#12 > reset([] [None, None] [1, 2]) > read #12 Device > take Flush#16 > done Flush#16 > read #16 Lost > take Flush#20 > done Flush#20 > read #20 Ok
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    model::tests::what_a_flush_calls_durable_is_on_the_medium

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 22 filtered out; finished in 0.02s

error: test failed, to rerun pass `-p toyos-blockring --lib`
13:30:46 [ci] control `mutate-no-reissue-after-loss`: 1 verdict(s) reached

13:30:46 === [ci] control `publish-relaxed`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.31s
     Running tests/loom.rs (target/debug/deps/loom-24a430a1f85efe05)

running 1 test
test a_published_entry_is_read_whole ... FAILED

failures:

---- a_published_entry_is_read_whole stdout ----

thread 'a_published_entry_is_read_whole' (260891097) panicked at toyos-blockring/transport/tests/loom.rs:76:9:
assertion `left == right` failed: an entry was read before its words
  left: [[0, 0], [0, 0]]
 right: [[100, 3], [101, 10]]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_published_entry_is_read_whole

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p toyos-transport --test loom`
13:30:46 [ci] control `publish-relaxed`: 1 verdict(s) reached

13:30:46 === [ci] control `no-clamp`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.19s
     Running tests/loom.rs (target/debug/deps/loom-eb33bfc56f80c86a)

running 1 test
test a_hostile_producer_yields_entries_or_a_violation ... FAILED

failures:

---- a_hostile_producer_yields_entries_or_a_violation stdout ----

thread 'a_hostile_producer_yields_entries_or_a_violation' (260891309) panicked at toyos-blockring/transport/tests/loom.rs:107:9:
took 3 entries from a ring of 2 without releasing one
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    a_hostile_producer_yields_entries_or_a_violation

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 2 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p toyos-transport --test loom`
13:30:46 [ci] control `no-clamp`: 1 verdict(s) reached

13:30:46 === [ci] control `end-keeps-inflight`
    Finished `test` profile [optimized + debuginfo] target(s) in 0.19s
     Running unittests src/lib.rs (target/debug/deps/toyos_transport-ed091dbee8d19249)

running 1 test
test inflight::tests::an_end_answers_every_tag_once_and_a_late_completion_nothing ... FAILED

failures:

---- inflight::tests::an_end_answers_every_tag_once_and_a_late_completion_nothing stdout ----

thread 'inflight::tests::an_end_answers_every_tag_once_and_a_late_completion_nothing' (260891616) panicked at toyos-blockring/transport/src/inflight.rs:150:9:
assertion `left == right` failed
  left: []
 right: [(4, 0), (6, 2)]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    inflight::tests::an_end_answers_every_tag_once_and_a_late_completion_nothing

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 9 filtered out; finished in 0.00s

error: test failed, to rerun pass `-p toyos-transport --lib`
13:30:47 [ci] control `end-keeps-inflight`: 1 verdict(s) reached

13:30:47 === [ci] userland/acpiserver
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running unittests src/main.rs (target/debug/deps/acpiserver-c834e39970f9f7ec)

running 28 tests
test ec::tests::a_query_writes_its_command_once_the_input_is_empty_and_reads_once_the_output_is_full ... ok
test host::tests::a_page_the_firmware_lists_nowhere_is_counted_under_a_name_of_its_own ... ok
test host::tests::a_lock_the_kernel_cannot_take_is_denied_and_never_reported_held ... ok
test aml::tests::every_refusals_kind_is_free_of_what_the_firmware_chose ... ok
test host::tests::a_lock_the_firmware_holds_is_denied_by_name_and_counted ... ok
test aml::tests::tables_in_memory_of_a_type_the_kernel_keeps_are_refused_by_that_name_and_type ... ok
test ec::tests::a_byte_before_the_command_is_refused - should panic ... ok
test aml::tests::a_refused_dsdt_leaves_no_namespace_and_loads_no_ssdt ... ok
test aml::tests::a_refused_ssdt_is_one_block_refused_and_the_rest_load ... ok
test aml::tests::tables_the_kernel_will_not_read_are_refused_by_its_name_for_it ... ok
test aml::tests::an_s5_that_is_no_package_of_two_integers_is_refused_by_kind ... ok
test host::tests::a_read_is_the_kernels_in_each_space_and_counted_by_space_and_page ... ok
test aml::tests::a_machine_that_stops_mid_load_ends_it_with_nothing_refused ... ok
test aml::tests::only_an_s5_the_kernel_kept_is_a_power_off ... ok
test host::tests::a_stopping_machine_denies_everything_and_is_no_refusal_of_the_firmwares ... ok
test host::tests::a_read_the_kernel_refuses_is_denied_under_the_kernels_name_and_counted ... ok
test aml::tests::a_lock_field_read_at_load_takes_the_lock_and_a_held_lock_refuses_the_table ... ok
test host::tests::the_lock_is_taken_and_given_back_through_the_kernel ... ok
test host::tests::nothing_is_written_and_the_controllers_space_is_not_reached ... ok
test ledger::tests::a_thing_is_new_once_and_counted_every_time ... ok
test sci::tests::a_status_set_with_its_enable_clear_is_no_event ... ok
test sci::tests::a_press_and_the_controllers_gpe_are_both_read_off_one_sci ... ok
test sci::tests::an_enabled_event_outside_the_served_set_is_refused_by_name ... ok
test sci::tests::only_a_press_on_a_machine_handed_no_sleep_type_is_dropped ... ok
test tables::tests::a_range_is_fetched_whole_in_qwords_and_then_bytes_and_kept ... ok
test aml::tests::qemus_tables_load_and_s5_is_what_its_kernel_decoded ... ok
test tables::tests::a_range_the_kernel_refuses_any_byte_of_is_not_readable_and_says_why ... ok
test tables::tests::a_stopping_machine_reads_no_table ... ok

test result: ok. 28 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:30:47 [ci] userland/acpiserver: cargo test --manifest-path userland/acpiserver/Cargo.toml

13:30:47 === [ci] userland/acpiserver/aml
    Finished `test` profile [optimized + debuginfo] target(s) in 0.17s
     Running unittests src/lib.rs (target/debug/deps/toyos_aml-f74bbb7a41540e23)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/evaluate.rs (target/debug/deps/evaluate-9d6f462fe5ccdee5)

running 27 tests
test break_and_continue_outside_a_while_are_refused ... ok
test divide_stores_remainder_and_quotient_and_refuses_zero ... ok
test events_count_signals_and_a_wait_without_one_times_out ... ok
test buffers_and_packages_are_sized_as_declared ... ok
test bcd_converts_both_ways_and_refuses_what_is_not_bcd ... ok
test an_arg_holding_a_reference_stores_through_it ... ok
test a_method_without_return_returns_nothing_usable ... ok
test index_reaches_into_buffers_strings_and_packages ... ok
test concatenate_takes_the_first_operands_type ... ok
test if_else_and_while_with_break_and_continue ... ok
test logical_operators_answer_ones_or_zero ... ok
test comparisons_follow_the_first_operands_type ... ok
test explicit_conversions_follow_their_definitions ... ok
test integer_arithmetic_wraps_at_the_integer_width ... ok
test match_finds_the_first_element_both_tests_accept ... ok
test methods_take_their_declared_arguments_and_return_a_copy ... ok
test mid_takes_what_lies_within ... ok
test mutexes_follow_sync_levels_and_are_released_by_the_end ... ok
test notify_sleep_stall_and_fatal_reach_the_host ... ok
test osi_answers_like_windows ... ok
test references_are_made_followed_and_asked_about ... ok
test recursion_runs_until_its_bound ... ok
test resource_templates_join_under_one_end_tag ... ok
test s5_evaluates_to_its_sleep_types ... ok
test the_debug_object_takes_writes_and_refuses_reads ... ok
test store_converts_to_the_named_type_and_copy_object_does_not ... ok
test source_operands_convert_by_the_conversion_rules ... ok

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/heap.rs (target/debug/deps/heap-1073d2dccd4a0b58)

running 19 tests
test a_nest_of_concatenates_holds_one_buffers_copy ... ok
test a_nest_of_to_strings_holds_one_copy ... ok
test a_nest_of_mids_holds_one_copy ... ok
test a_returned_value_of_buffers_is_held_while_it_is_built ... ok
test buffers_of_a_mebibyte_fill_it_to_the_bound ... ok
test a_returned_value_of_packages_is_held_while_it_is_built ... ok
test a_returned_value_is_given_back_when_it_is_the_callers ... ok
test a_nest_of_concatenates_holds_one_strings_copy ... ok
test fields_read_through_each_other_are_held_while_they_are_read ... ok
test a_refused_load_gives_back_what_it_took ... ok
test field_units_fill_it_to_the_bound ... ok
test package_elements_naming_nothing_yet_fill_it_to_the_bound ... ok
test a_nest_of_packages_is_held_while_it_is_read ... ok
test a_walk_is_held_against_the_bound_while_it_lasts ... ok
test empty_buffers_fill_it_to_the_bound ... ok
test a_parent_whose_last_child_is_unwound_holds_no_map ... ok
test a_full_interpreter_reads_a_field_that_fits_an_integer ... ok
test references_into_a_buffer_fill_it_to_the_bound ... ok
test devices_of_one_child_each_fill_it_to_the_bound ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s

     Running tests/hostile.rs (target/debug/deps/hostile-cdadefcf70eaf473)

running 24 tests
test a_caller_value_is_refused_where_it_is_malformed ... ok
test a_package_length_that_leaves_its_package_is_refused ... ok
test an_alias_goes_with_what_created_it ... ok
test a_reference_outliving_its_object_names_nothing ... ok
test a_reference_chain_cannot_form ... ok
test a_reference_to_a_local_ends_with_its_method ... ok
test a_field_beyond_what_is_held_is_refused ... ok
test a_loop_that_sleeps_is_bounded_in_time_asked ... ok
test names_and_strings_hold_only_what_their_encoding_allows ... ok
test a_resource_template_join_is_bounded ... ok
test the_wait_limit_is_exact_and_a_loads_too ... ok
test a_conversion_is_bounded_in_what_it_constructs ... ok
test objects_are_bounded_in_size ... ok
test every_truncation_yields_a_value_or_a_refusal ... ok
test waits_and_stalls_are_bounded_in_time_asked ... ok
test what_is_held_live_is_bounded_in_sum ... ok
test a_string_stored_to_a_field_is_bounded_as_it_is_written ... ok
test usage_is_each_calls_own_and_a_refusals_too ... ok
test a_loop_without_end_is_bounded_in_steps ... ok
test work_in_one_step_is_charged_in_proportion ... ok
test tables_and_names_are_held_against_the_live_bound ... ok
test nesting_is_bounded_before_the_stack ... ok
test mutated_tables_yield_a_value_or_a_refusal ... ok
test a_walk_or_a_read_a_table_sizes_is_charged_for_all_of_it ... ok

test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s

     Running tests/namespace.rs (target/debug/deps/namespace-be3e867676d2ee7e)

running 18 tests
test a_definition_needs_every_segment_but_its_last ... ok
test a_dsdt_loads_first_and_then_ssdts ... ok
test a_dsdt_below_revision_2_makes_every_integer_32_bits ... ok
test a_lone_name_is_searched_for_toward_the_root_and_a_path_is_not ... ok
test a_package_names_its_elements ... ok
test a_prefix_above_the_root_finds_nothing ... ok
test a_processor_parses_opens_a_scope_and_takes_notify ... ok
test a_scope_opens_only_what_has_one ... ok
test an_alias_acts_exactly_as_its_source ... ok
test an_external_defines_nothing ... ok
test definition_block_level_code_runs_at_load ... ok
test names_a_method_creates_go_when_it_exits ... ok
test a_collision_refuses_the_table_and_leaves_none_of_it ... ok
test a_caller_names_only_absolute_paths_and_passes_the_declared_arguments ... ok
test parent_prefixes_climb_one_scope_each ... ok
test the_predefined_objects_are_there_before_any_table ... ok
test qemus_dsdt_loads_and_its_s5_is_what_its_boot_logged ... ok
test qemus_methods_run_against_the_registers_they_read ... ok

test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/regions.rs (target/debug/deps/regions-8ea02fd76c87c2af)

running 18 tests
test a_buffer_field_over_a_conversion_and_a_conversion_into_one ... ok
test a_pci_config_region_addresses_its_devices_function ... ok
test a_field_wider_than_an_integer_is_a_buffer ... ok
test a_host_refusal_and_a_space_not_carried_are_refused_by_name ... ok
test a_pci_config_region_below_bridges_is_on_the_nearest_ones_secondary_bus ... ok
test an_access_past_its_region_is_refused ... ok
test an_access_type_sets_the_unit_and_anyacc_takes_the_narrowest_natural_one ... ok
test a_pci_config_region_below_more_bridges_than_buses_is_refused ... ok
test an_index_field_writes_its_offset_then_reaches_the_data ... ok
test an_address_out_of_its_form_is_refused ... ok
test a_bank_field_selects_its_bank_first ... ok
test a_field_is_read_shifted_and_masked_from_its_units ... ok
test a_field_store_writes_its_source_as_it_was_when_firmware_changes_it ... ok
test a_lock_field_holds_the_global_lock_across_its_access ... ok
test buffer_fields_read_and_write_their_buffer ... ok
test system_io_and_the_embedded_controller_are_addressed_by_offset ... ok
test copy_object_into_a_field_writes_an_integer_or_buffer_alone ... ok
test the_update_rule_completes_a_unit_the_field_covers_in_part ... ok

test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/walk.rs (target/debug/deps/walk-42edf53a674c656b)

running 6 tests
test an_alias_is_not_walked ... ok
test every_object_is_walked_as_what_it_is ... ok
test siblings_are_read_in_the_order_they_were_declared ... ok
test a_parent_of_thousands_is_walked_in_their_order ... ok
test a_walk_takes_its_links_and_its_deepest_path_from_the_bound ... ok
test a_namespace_nested_deep_is_walked_whole ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s

13:30:48 [ci] userland/acpiserver/aml: cargo test --manifest-path userland/acpiserver/aml/Cargo.toml

13:30:48 === [ci] userland/calc
    Finished `test` profile [optimized + debuginfo] target(s) in 0.26s
     Running unittests src/lib.rs (target/debug/deps/calc-7a1d2621a9ccb550)

running 64 tests
test app::tests::the_hex_letters_are_live_only_in_hex ... ok
test app::tests::the_sign_button_flips_the_number_it_stands_after ... ok
test app::tests::the_expression_line_is_a_text_field ... ok
test app::tests::every_button_reaches_the_same_place_a_key_does ... ok
test app::tests::typing_previews_and_equals_commits ... ok
test bigint::tests::conversions_refuse_what_does_not_fit ... ok
test bigint::tests::addition_crosses_the_limb_boundary ... ok
test app::tests::prog_reads_digits_in_the_active_base_and_refuses_the_others ... ok
test app::tests::a_caret_in_the_middle_of_a_wide_character_is_unreachable ... ok
test app::tests::a_whole_number_crosses_into_prog_and_back ... ok

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Earlier host run at d719cc9d4 (the same tree but issues/), EXIT=1 on the toyos SDK's lane proof, filed as issues/a-lane-reader-counted-one-refusal-fewer-than-its-writer-made.md, part 8 of 8

test app::tests::a_fraction_is_cleared_on_the_way_into_prog_rather_than_rounded ... ok
test bigint::tests::gcd_is_non_negative_and_divides_both ... ok
test bigint::tests::division_is_exact_over_many_shapes ... ok
test bigint::tests::multiplication_matches_a_known_product ... ok
test bigint::tests::powers_and_roots_agree ... ok
test bigint::tests::radix_parsing_and_lengths ... ok
test bigint::tests::zero_has_one_representation ... ok
test app::tests::every_button_of_both_layouts_is_pressable_from_any_state ... ok
test dec::tests::arithmetic_survives_a_wide_exponent_gap ... ok
test dec::tests::ln_two_matches_its_published_digits ... ok
test dec::tests::a_whole_power_works_on_a_negative_base ... ok
test app::tests::the_angle_button_says_which_one_it_is ... ok
test dec::tests::root_two_matches_its_published_digits ... ok
test dec::tests::rounding_is_half_to_even_and_canonical ... ok
test num::tests::a_non_terminating_exact_value_is_shown_rounded_and_marked ... ok
test dec::tests::the_refusals_are_named_rather_than_taken ... ok
test app::tests::a_field_that_is_full_says_so_rather_than_growing ... ok
test dec::tests::e_matches_its_published_digits_and_the_factorial_series ... ok
test dec::tests::sine_and_cosine_of_one_match_their_published_digits ... ok
test num::tests::division_by_zero_is_refused_on_both_paths ... ok
test num::tests::exact_arithmetic_stays_exact ... ok
test num::tests::percent_is_an_exact_hundredth ... ok
test num::tests::powers_are_exact_while_that_is_worth_doing ... ok
test num::tests::rendering_switches_to_a_scientific_form_rather_than_dropping_digits ... ok
test num::tests::the_marker_propagates_once_it_is_earned ... ok
test dec::tests::pi_matches_its_published_digits_and_machin ... ok
test num::tests::degrees_are_converted_at_the_call ... ok
test num::tests::a_whole_power_of_an_approximation_does_not_need_a_positive_base ... ok
test parser::tests::every_refusal_is_named_and_none_is_a_crash ... ok
test parser::tests::precedence_and_associativity ... ok
test parser::tests::the_four_operations_stay_exact ... ok
test prog::tests::a_fractional_division_is_refused_rather_than_rounded ... ok
test prog::tests::arithmetic_wraps_at_the_word ... ok
test parser::tests::values_side_by_side_multiply ... ok
test prog::tests::digits_are_read_in_the_active_base ... ok
test parser::tests::degrees_are_a_toggle_and_nothing_else ... ok
test parser::tests::a_negative_base_under_a_fractional_power_is_named ... ok
test prog::tests::shifts_saturate_rather_than_wrap_the_count ... ok
test prog::tests::the_panes_show_the_same_bits_three_ways ... ok
test prog::tests::the_logic_operators_have_c_precedence ... ok
test rational::tests::a_decimal_terminates_only_on_twos_and_fives ... ok
test rational::tests::a_tenth_plus_two_tenths_is_three_tenths ... ok
test rational::tests::a_third_times_three_is_one ... ok
test rational::tests::construction_normalizes ... ok
test rational::tests::division_by_zero_is_the_only_refusal ... ok
test rational::tests::exact_roots_only_where_both_halves_are_squares ... ok
test rational::tests::ordering_is_by_value ... ok
test rational::tests::parsing_takes_what_a_literal_may_be ... ok
test rational::tests::powers_include_the_reciprocal ... ok
test parser::tests::an_application_finishes_before_a_power_does ... ok
test prog::tests::nothing_typeable_panics_here_either ... ok
test parser::tests::functions_are_typeable_by_name ... ok
test dec::tests::the_identities_hold_to_the_displayed_precision ... ok
test parser::tests::no_string_over_the_alphabet_panics ... ok

test result: ok. 64 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

     Running unittests src/main.rs (target/debug/deps/calc-d3e4f49f042c74be)

running 6 tests
test tests::the_keys_tile_the_panel_at_every_size ... ok
test tests::hit_testing_follows_the_layout_at_every_size ... ok
test tests::every_key_face_fits_its_key ... ok
test tests::tracks_never_lose_a_pixel ... ok
test tests::every_face_the_panel_shows_was_baked ... ok
test tests::the_longest_answer_is_never_cut ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/parser_identities.rs (target/debug/deps/parser_identities-a0fd5819088424fa)

running 6 tests
test the_rest_of_the_table_is_where_it_was ... ok
test a_logarithm_round_trips_through_the_parser ... ok
test the_typo_is_refused_by_name ... ok
test the_pythagorean_identity_holds_through_the_parser ... ok
test the_reported_expressions_have_the_values_they_should ... ok
test a_power_after_a_call_squares_what_the_call_returned ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

13:30:49 [ci] userland/calc: cargo test --manifest-path userland/calc/Cargo.toml

13:30:49 === [ci] userland/compositor/desktop
    Finished `test` profile [optimized + debuginfo] target(s) in 0.15s
     Running unittests src/lib.rs (target/debug/deps/toyos_desktop-a34f95729f9983c3)

running 95 tests
test budget::tests::a_window_larger_than_the_screen_is_refused_by_name ... ok
test budget::tests::a_client_that_names_no_size_is_never_too_large ... ok
test budget::tests::capacity_is_checked_before_size ... ok
test damage::tests::a_bridging_rect_collapses_both_it_joins ... ok
test budget::tests::a_bigger_screen_affords_fewer_windows ... ok
test budget::tests::a_machine_with_almost_no_memory_still_gets_one_window ... ok
test budget::tests::a_window_costs_whole_pages ... ok
test budget::tests::the_poller_ceiling_binds_before_memory_does ... ok
test damage::tests::a_contained_rect_changes_nothing ... ok
test damage::tests::an_empty_rect_is_not_damage ... ok
test damage::tests::take_clips_to_the_screen_and_drops_what_falls_outside ... ok
test damage::tests::two_distant_rects_stay_two ... ok
test damage::tests::the_bound_holds_and_the_list_stays_disjoint ... ok
test hit::tests::an_open_launcher_covers_the_window_beneath_it ... ok
test hit::tests::each_button_answers_for_exactly_the_rect_it_is_drawn_in ... ok
test hit::tests::nothing_under_the_pointer_is_the_desktop ... ok
test hit::tests::the_bar_past_its_own_buttons_is_desktop ... ok
test hit::tests::the_front_window_wins_an_overlap_and_a_minimized_one_never_does ... ok
test hit::tests::the_launcher_is_only_hit_while_it_is_open ... ok
test hit::tests::the_resize_corner_belongs_to_normal_windows_only ... ok
test hit::tests::the_taskbar_takes_precedence_over_a_window_reaching_into_it ... ok
test input::tests::a_button_already_down_is_not_a_press ... ok
test input::tests::a_batch_folds_to_its_transitions_and_its_last_position ... ok
test input::tests::a_click_on_a_maximized_title_bar_does_not_unmaximize_it ... ok
test input::tests::a_press_on_a_normal_title_bar_drags_at_once ... ok
test input::tests::a_release_is_always_the_window_s ... ok
test input::tests::a_resize_grab_changes_the_size_and_not_the_origin ... ok
test input::tests::a_resize_in_progress_keeps_the_resize_cursor_wherever_the_pointer_went ... ok
test input::tests::a_tab_click_reveals_minimizes_or_raises ... ok
test input::tests::a_truncated_report_is_not_decoded_from_what_follows_it ... ok
test input::tests::alt_tab_cycles_even_with_nothing_focused_and_ctrl_n_spawns ... ok
test input::tests::a_window_closed_mid_drag_ends_the_grab_instead_of_panicking_or_moving_another ... ok
test input::tests::an_unclaimed_super_chord_reaches_the_window ... ok
test input::tests::dragging_reports_both_the_rect_it_left_and_the_one_it_took ... ok
test input::tests::dragging_survives_a_lower_window_closing_and_still_moves_the_right_one ... ok
test input::tests::escape_closes_the_launcher_only_while_it_is_open ... ok
test input::tests::releasing_a_drag_at_an_edge_snaps_and_anywhere_else_does_not ... ok
test input::tests::no_window_means_no_super_chord_does_anything ... ok
test input::tests::releasing_a_resize_asks_for_the_buffer_and_never_snaps ... ok
test input::tests::the_cursor_belongs_to_the_window_under_it_and_not_to_the_focused_one ... ok
test input::tests::the_super_chords_toggle_against_the_mode_the_window_is_in ... ok
test input::tests::the_tablet_range_maps_onto_the_screen_and_never_off_it ... ok
test input::tests::travelling_past_the_threshold_restores_the_window_under_the_pointer ... ok
test layout::tests::a_drag_cannot_put_a_title_bar_off_the_top ... ok
test layout::tests::a_maximized_frame_is_exactly_the_work_area ... ok
test layout::tests::a_normal_window_has_no_mode_frame ... ok
test layout::tests::a_requested_window_is_centred_in_the_work_area ... ok
test layout::tests::a_resize_floors_at_the_minimum_and_never_moves_the_origin ... ok
test layout::tests::an_unmaximized_window_keeps_the_pointer_at_the_same_fraction_of_its_title ... ok
test layout::tests::buttons_sit_inside_the_title_bar_and_do_not_overlap ... ok
test layout::tests::frame_and_content_are_inverses ... ok
test layout::tests::reflow_keeps_the_size_and_brings_the_frame_back_on_screen ... ok
test layout::tests::reflow_leaves_a_window_that_already_fits_where_it_is ... ok
test layout::tests::restoring_under_a_pointer_at_the_left_edge_keeps_the_title_bar_reachable ... ok
test layout::tests::snapped_halves_never_overlap_and_never_reach_the_taskbar ... ok
test layout::tests::successive_unsized_windows_cascade_and_wrap ... ok
test layout::tests::the_layout_follows_the_metrics_it_is_given ... ok
test plan::tests::a_blit_never_reads_outside_the_buffer ... ok
test plan::tests::a_clip_that_misses_the_window_blits_nothing ... ok
test plan::tests::a_minimized_window_is_not_drawn_and_does_not_hide_the_wallpaper ... ok
test plan::tests::a_region_wholly_inside_the_taskbar_plans_only_the_bar ... ok
test plan::tests::a_window_mid_resize_does_not_cover_the_wallpaper_it_cannot_paint ... ok
test plan::tests::an_empty_desktop_is_wallpaper_and_the_bar ... ok
test plan::tests::an_opaque_window_covering_the_region_costs_no_wallpaper ... ok
test plan::tests::the_launcher_is_planned_over_every_window ... ok
test plan::tests::no_region_is_left_with_nothing_to_draw_in_it ... ok
test plan::tests::windows_are_planned_bottom_to_top_and_only_where_they_reach ... ok
test plan::tests::the_wallpaper_never_reaches_under_the_taskbar ... ok
test rect::tests::confine_brings_a_window_back_onto_a_smaller_screen ... ok
test rect::tests::a_point_on_the_far_edge_is_outside ... ok
test rect::tests::a_wire_rect_cannot_wrap_into_the_whole_screen ... ok
test rect::tests::containment_and_overlap_agree_on_touching_edges ... ok
test rect::tests::extents_never_go_negative ... ok
test rect::tests::union_ignores_an_empty_operand ... ok
test stack::tests::a_topmost_window_raises_above_every_other_topmost_one ... ok
test stack::tests::an_ordinary_window_opened_after_a_topmost_one_goes_under_it ... ok
test stack::tests::cycling_leaves_a_topmost_window_on_top ... ok
test stack::tests::cycling_needs_two_ordinary_windows ... ok
test stack::tests::focus_is_the_topmost_window_that_is_not_minimized ... ok
test stack::tests::cycling_sends_the_top_window_to_the_bottom_and_reveals_the_next ... ok
test stack::tests::raising_the_window_already_on_top_leaves_it_there ... ok
test taskbar::tests::a_crowded_bar_has_no_gap_rather_than_a_backwards_one ... ok
test stack::tests::raising_an_ordinary_window_cannot_lift_it_over_a_topmost_one ... ok
test taskbar::tests::a_narrow_screen_keeps_the_status_box_on_it ... ok
test taskbar::tests::a_tab_face_stays_inside_its_tab ... ok
test taskbar::tests::tabs_are_adjacent_and_the_new_button_follows_the_last ... ok
test taskbar::tests::the_launcher_sits_on_the_bar_and_grows_upward ... ok
test taskbar::tests::the_gap_is_exactly_what_the_tabs_and_the_status_box_leave ... ok
test window::tests::a_client_cannot_damage_more_than_its_own_window ... ok
test taskbar::tests::the_strip_is_the_bottom_of_the_screen_and_nothing_else ... ok
test window::tests::a_minimized_window_is_never_opaque ... ok
test window::tests::a_window_mid_resize_is_not_opaque_and_its_backing_is_the_buffer ... ok
test window::tests::only_the_first_departure_from_normal_is_saved ... ok
test window::tests::a_window_shrunk_below_its_buffer_is_still_opaque ... ok
test damage::tests::coverage_survives_a_random_stream ... ok

test result: ok. 95 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:30:49 [ci] userland/compositor/desktop: cargo test --manifest-path userland/compositor/desktop/Cargo.toml

13:30:49 === [ci] userland/diskserver
    Finished `test` profile [optimized + debuginfo] target(s) in 0.16s
     Running unittests src/lib.rs (target/debug/deps/diskserver-2e5dc1c785f21dcd)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/main.rs (target/debug/deps/diskserver-388b5f963aa1f320)

running 3 tests
test tests::an_open_reaches_only_what_its_grant_admits ... ok
test tests::a_listing_names_only_what_its_grant_admits ... ok
test tests::an_unusable_or_unclaimed_controller_is_refused_and_an_absent_one_lists_nothing ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:30:49 [ci] userland/diskserver: cargo test --manifest-path userland/diskserver/Cargo.toml

13:30:49 === [ci] userland/fileserver
    Finished `test` profile [optimized + debuginfo] target(s) in 0.13s
     Running unittests src/lib.rs (target/debug/deps/fileserver-eb78af729d24b848)

running 40 tests
test cache::tests::a_write_past_the_disk_is_refused ... ok
test cache::tests::a_write_reaches_the_disk_at_the_flush_and_not_before ... ok
test cache::tests::dirty_runs_go_out_in_runs ... ok
test cache::tests::contiguous_misses_are_one_request_and_a_second_read_is_none ... ok
test data::tests::a_file_reads_back_what_was_written_across_pages_and_holes ... ok
test data::tests::a_file_unlinked_while_open_answers_gone ... ok
test data::tests::a_shrink_zeroes_what_it_cut_and_regrowth_reads_zeros ... ok
test data::tests::data_is_one_partition_counted_over_both_sources ... ok
test data::tests::a_closed_file_keeps_its_length_across_a_remount ... ok
test data::tests::a_rename_moves_an_open_file_and_a_directory_with_its_contents ... ok
test fat::tests::a_device_error_is_io_and_not_not_found ... ok
test data::tests::an_entry_refused_costs_only_its_own_file ... ok
test data::tests::directories_are_listed_and_refuse_what_posix_refuses ... ok
test fat::tests::a_partial_write_over_an_unreadable_block_writes_nothing ... ok
test fat::tests::a_refused_read_is_an_error_and_never_zeros ... ok
test resolve::tests::a_cycle_is_refused_and_not_followed_for_ever ... ok
test resolve::tests::a_link_that_stays_inside_by_going_up_and_back_resolves ... ok
test resolve::tests::a_plain_path_lands_under_the_root ... ok
test resolve::tests::a_relative_link_is_read_against_its_own_directory ... ok
test resolve::tests::an_absolute_link_is_handed_back_with_the_rest_of_the_path ... ok
test resolve::tests::an_empty_target_names_nothing ... ok
test resolve::tests::no_link_climbs_out_of_the_root ... ok
test resolve::tests::the_last_link_is_left_alone_when_asked ... ok
test rights::tests::a_request_the_wire_does_not_have_is_neither ... ok
test rights::tests::an_open_changes_the_directory_by_every_flag_but_read ... ok
test rights::tests::every_request_that_writes_changes_the_directory_and_none_that_reads_does ... ok
test data::tests::a_directory_rename_the_format_refuses_part_way_moves_nothing ... ok
test volume::tests::the_anchor_is_the_kernels ... ok
test writeback::tests::a_sync_that_left_a_file_unwritten_is_due_again ... ok
test volume::tests::a_clock_that_always_straddles_is_refused_by_name - should panic ... ok
test data::tests::a_write_its_entry_could_not_name_is_refused_and_every_accepted_one_kept ... ok
test data::tests::a_refused_rename_over_an_open_file_keeps_its_unsynced_writes ... ok
test cache::tests::at_the_dirty_limit_a_refused_flush_refuses_the_write_and_the_cache_grows_no_larger ... ok
test cache::tests::clean_blocks_are_bounded_and_dirty_ones_are_kept ... ok
test fat::tests::a_read_only_volume_never_writes_its_disk ... ok
test data::tests::every_file_reads_back_as_a_plain_map_of_its_accepted_writes ... ok
test fat::tests::an_unreadable_entry_is_io_and_not_undated ... ok
test fat::tests::a_file_that_will_not_level_costs_only_its_own_file ... ok
test data::tests::a_directory_rename_is_whole_under_one_name_wherever_the_server_is_killed ... ok
test data::tests::a_directory_rename_is_whole_under_one_name_whichever_write_is_refused ... ok

test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.39s

     Running unittests src/main.rs (target/debug/deps/fileserver-1f58d9b70a9fbdc1)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:30:55 [ci] userland/fileserver: cargo test --manifest-path userland/fileserver/Cargo.toml

13:30:55 === [ci] userland/logkeeper
    Finished `test` profile [optimized + debuginfo] target(s) in 0.14s
     Running unittests src/main.rs (target/debug/deps/logkeeper-d1443c6ba5f4ad71)

running 9 tests
test origin::tests::a_stamp_ahead_of_the_clock_is_read_as_now ... ok
test origin::tests::a_closing_record_ends_its_writers_line_and_nothing_else ... ok
test origin::tests::a_writers_pieces_are_its_line_whoever_wrote_between_them ... ok
test policy::tests::every_step_names_itself ... ok
test origin::tests::what_is_held_is_bounded_and_said ... ok
test tests::readers_and_inspect_share_one_port_and_never_one_request ... ok
test store::tests::nothing_goes_while_there_is_room ... ok
test store::tests::a_flooding_boot_costs_its_own_middle_and_nobody_elses_start ... ok
test store::tests::whole_old_boots_go_first_then_earlier_continuations ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:30:55 [ci] userland/logkeeper: cargo test --manifest-path userland/logkeeper/Cargo.toml

13:30:55 === [ci] userland/netstack
    Finished `test` profile [optimized + debuginfo] target(s) in 0.29s
     Running unittests src/main.rs (target/debug/deps/netstack-a376e3d5013a3049)

running 6 tests
test virtio_net::tests::a_full_transmit_queue_has_no_room_until_the_device_gives_heads_back ... ok
test virtio_net::tests::a_used_index_past_every_frame_offered_ends_the_driver - should panic ... ok
test virtio_net::tests::a_frame_offered_to_a_full_transmit_queue_is_not_taken - should panic ... ok
test virtio_net::tests::a_used_head_with_no_chain_in_flight_ends_the_driver - should panic ... ok
test virtio_net::tests::a_used_length_past_the_chains_writable_bytes_ends_the_driver - should panic ... ok
test virtio_net::tests::a_used_head_past_the_table_ends_the_driver - should panic ... ok

test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:30:56 [ci] userland/netstack: cargo test --manifest-path userland/netstack/Cargo.toml

13:30:56 === [ci] userland/netstack/mdns
    Finished `test` profile [optimized + debuginfo] target(s) in 0.12s
     Running unittests src/lib.rs (target/debug/deps/toyos_mdns-aa5c41f3fcc05721)

running 36 tests
test tests::a_flapping_link_restarts_the_probe_and_nothing_is_announced_until_one_runs_whole ... ok
test tests::a_host_name_is_one_label ... ok
test tests::a_legacy_resolver_gets_its_id_its_question_and_a_short_ttl ... ok
test tests::a_links_return_under_a_lost_name_probes_at_once_in_place_of_the_retry ... ok
test tests::a_name_is_matched_whatever_its_case_and_any_asks_for_it_too ... ok
test tests::a_name_under_probe_is_answered_to_nobody ... ok
test tests::a_query_for_this_name_is_answered_to_the_group ... ok
test tests::a_malformed_message_is_no_question ... ok
test tests::a_query_from_off_the_link_is_not_answered ... ok
test tests::a_question_spelled_by_a_pointer_is_read ... ok
test tests::a_retry_no_host_answers_claims_and_announces_the_name ... ok
test tests::a_retry_the_holder_answers_loses_again_and_the_next_is_a_minute_after_it ... ok
test tests::a_question_that_is_not_this_hosts_is_not_answered ... ok
test tests::an_address_after_none_is_probed_for_and_a_new_one_under_a_held_name_is_announced ... ok
test tests::a_lost_name_is_probed_for_again_a_minute_after_the_loss_and_not_before ... ok
test tests::forged_probes_that_win_every_tiebreak_cost_one_probe_in_five_seconds_and_the_name_is_claimed_when_they_stop ... ok
test tests::forged_probes_that_win_every_tiebreak_at_a_lost_name_cost_one_probe_a_minute ... ok
test tests::rfc6762_8_1_a_conflicting_response_received_as_the_last_250_ms_end_takes_the_name ... ok
test tests::no_cut_of_a_conflicting_response_or_of_a_winning_probe_is_one ... ok
test tests::rfc6762_8_1_a_probe_asks_any_for_the_name_with_the_unicast_bit_and_proposes_its_record_in_the_authority_section ... ok
test tests::rfc6762_8_1_nothing_heard_before_the_first_probe_is_sent_is_a_conflict ... ok
test tests::rfc6762_8_1_a_conflicting_response_under_the_probe_takes_the_name_and_nothing_else_does ... ok
test tests::rfc6762_8_1_a_probe_attempt_within_ten_seconds_of_a_conflict_waits_five_seconds_first ... ok
test tests::rfc6762_8_1_three_probes_250_ms_apart_follow_the_drawn_delay_and_the_name_is_announced_250_ms_after_the_third ... ok
test tests::rfc6762_6_a_probe_for_a_held_name_is_answered_at_once_by_unicast_or_250_ms_after_the_records_last_multicast ... ok
test tests::rfc6762_8_2_a_probe_is_compared_by_class_then_type_then_data_and_a_longer_list_wins ... ok
test tests::rfc6762_8_2_the_lexicographically_later_data_wins_a_simultaneous_probe_and_the_earlier_waits_a_second ... ok
test tests::rfc6762_8_a_link_that_returns_is_probed_on_before_the_name_is_announced_or_answered_with_again ... ok
test tests::rfc6762_9_a_conflicting_response_resets_a_held_name_to_probing_and_nothing_else_does ... ok
test tests::rfc6762_9_a_held_name_another_host_answers_for_under_the_new_probe_is_lost ... ok
test tests::the_group_address_maps_to_its_ethernet_address ... ok
test tests::the_unicast_bit_sends_the_answer_back_to_the_asker ... ok
test tests::the_record_is_multicast_at_most_once_a_second_and_a_query_inside_it_waits ... ok
test tests::a_storm_of_forged_answers_costs_one_probe_and_the_name ... ok
test tests::a_storm_of_forged_conflicts_at_a_lost_name_costs_one_probe_a_minute ... ok
test tests::forged_answers_that_spare_every_probe_cost_one_probing_in_five_seconds_and_the_name_is_held_when_they_stop ... ok

test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

13:30:56 [ci] userland/netstack/mdns: cargo test --manifest-path userland/netstack/mdns/Cargo.toml

13:30:56 === [ci] userland/netstack/node
    Finished `test` profile [optimized + debuginfo] target(s) in 0.41s
     Running unittests src/lib.rs (target/debug/deps/toyos_net_node-aa2c64cc625e7067)

running 1 test
test lease::tests::the_log_lines_are_taken_and_the_report_before_them_keeps_its_turn ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/datagram.rs (target/debug/deps/datagram-e86a84e5f5c26267)

running 9 tests
test a_refusal_is_logged_by_the_call_that_met_it ... ok
test a_broadcast_needs_its_permission ... ok
test a_clients_datagram_for_a_host_nobody_answers_for_is_dropped_and_the_client_is_told_nothing ... ok
test a_closed_socket_frees_its_port_and_what_it_accepted_still_leaves ... ok
test a_datagram_accepted_for_a_host_is_no_broadcast_after_the_server_renews_a_narrower_prefix ... ok
test a_socket_holds_the_port_it_named_or_the_one_its_draw_picked ... ok
test each_refusal_is_answered_in_the_pipes_word_for_it ... ok
test a_datagram_leaves_as_the_call_named_it ... ok
test a_datagram_for_a_bound_port_is_handed_over_with_where_it_came_from ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/host.rs (target/debug/deps/host-803046cba786c7e9)

running 1 test
test a_host_gives_a_connection_the_nodelay_its_listener_had_when_it_began ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/lease.rs (target/debug/deps/lease-b278d53b751b0a1a)

running 21 tests
test a_message_with_no_link_is_counted_and_not_sent ... ok
test a_link_that_returns_with_no_lease_starts_discovery_over_at_once ... ok
test a_reply_without_the_cookie_is_refused_by_name ... ok
test a_probe_the_link_drops_under_is_abandoned ... ok
test a_router_ip_refuses_is_no_router ... ok
test a_nak_takes_address_route_and_resolvers_in_one_step ... ok
test a_renewed_prefix_reaches_ip_before_its_router ... ok
test a_second_conflict_takes_a_held_lease_and_declines_it ... ok
test a_renewal_for_a_server_nobody_answers_for_waits_and_is_dropped_and_the_client_is_told_nothing ... ok
test expiry_takes_address_route_and_resolvers_in_one_step ... ok
test a_renewal_without_a_router_takes_the_route_and_keeps_the_address ... ok
test a_lease_that_runs_out_under_the_probe_leaves_no_address ... ok
test next_deadline_is_the_earliest_of_the_clients_and_the_stacks ... ok
test a_conflict_under_the_probe_declines_and_holds_nothing ... ok
test a_link_that_returns_keeps_a_held_lease_and_announces_it ... ok
test no_frame_is_from_the_address_before_it_is_verified ... ok
test the_lease_end_to_end ... ok
test a_hundred_refused_replies_are_one_line_and_a_count ... ok
test no_cut_of_the_ack_is_an_ack ... ok
test a_listener_stands_while_its_address_is_lost_and_answers_when_it_is_back ... ok
test no_flipped_bit_of_the_ack_yields_another_lease ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s

     Running tests/listeners.rs (target/debug/deps/listeners-0155aace57c521d2)

running 31 tests
test a_listener_holds_a_place_and_a_listen_without_one_makes_nothing ... ok
test a_listen_at_every_address_takes_no_port_held_at_the_machines_address ... ok
test a_connect_past_the_places_is_refused_and_sends_nothing ... ok
test a_connect_between_two_accepts_is_queued_not_reset ... ok
test a_listener_holds_the_option_its_listen_named_from_its_first_connection ... ok
test a_handshake_nobody_finishes_leaves_the_port_open_and_is_given_up ... ok
test a_listener_answers_a_syn_and_wakes_its_owner_when_the_handshake_ends ... ok
test a_listener_is_at_the_address_it_named_and_only_one_the_machine_holds ... ok
test a_datagram_socket_holds_a_place_and_a_bind_without_one_makes_nothing ... ok
test a_listener_ended_for_its_wake_gives_its_place_to_another_in_the_same_pass ... ok
test a_listen_at_the_machines_address_takes_no_port_held_at_every_address ... ok
test a_listen_on_a_taken_port_is_refused_and_a_drawn_port_listens ... ok
test a_handshake_reset_before_it_ends_leaves_the_next_connection_its_listeners_option ... ok
test a_second_listen_at_the_machines_address_takes_no_port_held_there ... ok
test a_departed_clients_connection_holds_its_place_until_it_is_cut ... ok
test a_stream_reset_for_its_pipe_gives_its_place_to_a_connection_that_waits ... ok
test a_stream_starts_with_the_options_its_connection_took_from_its_listener ... ok
test an_accept_answers_the_option_of_a_stream_its_own_pass_let_go ... ok
test a_wake_is_owed_only_for_a_connection_there_is_a_place_for ... ok
test a_wake_left_by_a_connection_its_peer_reset_stands_for_the_next ... ok
test a_wake_the_owners_pipe_refuses_ends_the_listener ... ok
test closing_a_listener_gives_its_place_to_a_connection_that_waits_at_another ... ok
test an_accept_spends_a_wake_whatever_it_answers ... ok
test closing_a_connect_gives_its_place_to_a_connection_that_waits ... ok
test closing_a_listener_resets_what_waits_and_frees_its_port ... ok
test more_places_wake_the_owner_of_a_connection_that_waits ... ok
test a_request_for_a_stream_that_was_cut_names_nothing ... ok
test no_cut_of_a_syn_is_a_syn ... ok
test peers_at_more_addresses_than_there_are_places_hold_no_stream_past_them ... ok
test an_accepted_stream_is_one_of_its_peers_addresss_sixteen ... ok
test no_flipped_bit_of_a_syn_wakes_an_owner_or_ends_a_listener ... ok

test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

     Running tests/name.rs (target/debug/deps/name-8c603c20311b1485)

running 21 tests
test a_query_from_off_the_link_is_not_answered ... ok
test a_later_probe_of_another_hosts_makes_the_node_wait_a_second_and_probe_again ... ok
test a_query_in_a_frame_to_the_groups_address_reaches_the_responder ... ok
test a_held_lease_is_probed_for_three_times_and_its_name_announced_only_then ... ok
test a_lost_name_is_probed_for_again_a_minute_after_each_loss_and_claimed_once_no_host_answers ... ok
test a_held_name_is_defended_and_probed_for_again_when_another_host_answers_for_it ... ok
test an_answer_to_a_link_local_asker_goes_to_its_own_link_address ... ok
test a_second_query_inside_a_second_waits_for_the_second_to_end ... ok
test a_name_has_no_link_while_the_link_is_down_and_the_links_return_is_probed_on ... ok
test a_conflicting_response_received_as_the_probing_ends_takes_the_name ... ok
test an_answer_udp_refuses_is_counted_and_dropped ... ok
test a_held_name_is_probed_for_again_when_the_link_returns_and_announced_only_then ... ok
test an_answer_goes_to_the_group_or_to_the_asker_as_the_query_asked ... ok
test a_links_return_under_a_lost_name_is_probed_on_at_once_and_no_retry_follows_it ... ok
test another_hosts_answer_under_the_probe_takes_the_name_and_the_node_says_so ... ok
test every_message_leaves_with_ttl_255 ... ok
test the_group_is_joined_and_its_membership_reported ... ok
test the_first_probe_follows_the_delay_the_callers_draw_gives ... ok
test the_names_port_is_held_by_one_socket ... ok
test the_name_is_answered_only_while_its_lease_is_held ... ok
test no_cut_of_a_query_is_answered ... ok

test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/resolve.rs (target/debug/deps/resolve-94085b0fb47f9deb)

running 33 tests
test a_lookup_udp_refuses_every_resolver_of_ends_in_the_call_that_started_it ... ok
test a_lookup_let_go_after_it_ended_takes_its_answer_with_it ... ok
test a_query_for_a_resolver_ip_has_given_up_ends_its_lookup_in_the_opportunity_that_would_have_carried_it ... ok
test a_lookup_ends_when_its_leases_resolvers_change ... ok
test a_forged_report_of_the_querys_own_addresses_and_ports_ends_nothing_and_the_answer_behind_it_is_taken ... ok
test a_query_is_rfc_1035s_octets_from_a_port_and_with_an_id_of_its_own_draws ... ok
test a_query_holds_its_port_while_its_answer_is_read_and_an_ended_lookup_holds_none ... ok
test a_lookup_is_not_carried_by_a_later_ones_schedule ... ok
test a_lookup_outlives_a_renewal_that_names_the_same_resolvers ... ok
test a_lookup_with_no_resolver_to_ask_is_refused_as_not_connected ... ok
test a_lookup_ends_when_its_lease_is_lost ... ok
test a_burst_at_a_resolver_not_yet_resolved_is_on_the_wire_once_the_resolver_answers_arp ... ok
test a_query_its_resolver_refuses_by_icmp_is_counted_and_the_next_resolver_is_asked_at_once ... ok
test a_clients_datagrams_behind_the_burst_wait_in_their_own_socket_and_take_no_querys_place ... ok
test a_lookup_let_go_frees_its_ports_and_its_place_at_once ... ok
test a_query_the_network_reports_unreachable_is_counted_and_ends_a_lookup_with_no_other_resolver ... ok
test a_query_udp_refuses_is_counted_holds_no_port_and_the_next_resolver_is_asked_at_once ... ok
test a_recorded_reply_of_a_public_resolver_answers_the_nodes_query ... ok
test a_reply_is_read_only_at_the_address_its_query_left_from ... ok
test a_reply_on_another_querys_port_is_not_read ... ok
test a_reply_is_read_only_from_port_53 ... ok
test a_reply_is_read_only_from_the_resolver_its_query_went_to ... ok
test a_reply_from_port_0_is_not_read ... ok
test a_report_that_is_not_about_the_query_or_is_a_hint_ends_no_wait ... ok
test a_resolver_the_lease_names_twice_is_asked_once_a_wait_whatever_it_reports ... ok
test forged_reports_and_another_resolvers_failures_end_nothing_and_the_answer_behind_them_is_taken ... ok
test a_resolver_that_never_answers_is_asked_at_each_waits_end ... ok
test reports_alone_end_no_lookup_and_ask_no_resolver_twice_inside_a_wait ... ok
test nothing_but_its_answer_ends_a_lookup ... ok
test an_alias_answered_late_restarts_the_lookup_and_lets_the_old_names_queries_go ... ok
test the_lookup_past_the_cap_is_refused_until_an_answer_is_taken ... ok
test the_query_asked_in_a_dropped_querys_place_leaves_in_the_same_opportunity ... ok
test a_query_with_no_port_to_leave_from_ends_its_lookup_by_name ... ok

test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/slirp.rs (target/debug/deps/slirp-093165c007ff89fc)

running 3 tests
test slirps_offer_is_answered_with_a_request_for_what_it_offered ... ok
test the_lease_is_read_from_the_acks_own_mask ... ok
test slirps_ack_is_the_lease_its_bytes_name ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/streams.rs (target/debug/deps/streams-1e6b36f14ca6826f)

running 40 tests
test a_connect_before_the_lease_is_refused_and_sends_nothing ... ok
test a_connect_closed_before_its_answer_is_answered_closed ... ok
test a_connect_nobody_answers_arp_for_fails_when_tcp_knows ... ok
test a_connect_is_a_handshake_and_its_answer_names_the_port ... ok
test a_frame_moves_an_established_stream_with_no_opportunity_after_it ... ok
test a_close_with_text_unread_resets ... ok
test a_connect_past_its_deadline_is_timed_out_at_the_deadline ... ok
test a_finished_send_pipe_goes_with_its_reader ... ok
test a_close_sends_what_the_pipe_held_and_then_the_fin ... ok
test a_client_that_left_is_finished_by_the_stack ... ok
test a_full_pipe_keeps_the_rest_in_the_stack_and_is_watched_for_room ... ok
test a_deadline_moves_an_established_stream_with_no_opportunity_after_it ... ok
test a_client_done_writing_after_the_peers_fin_has_100_seconds_without_progress ... ok
test a_live_client_that_is_done_writing_is_not_timed ... ok
test a_pipe_that_is_no_pipe_resets_its_connection ... ok
test a_reader_that_left_is_not_written_to_again ... ok
test a_refused_connect_is_answered_with_the_refusal ... ok
test a_refused_watch_resets_only_a_stream_that_holds_the_end ... ok
test a_reset_after_the_clients_shutdown_lets_the_send_pipe_go_first ... ok
test a_departed_clients_unsent_bytes_have_100_seconds ... ok
test a_reset_after_the_peers_fin_ends_the_send_pipe ... ok
test a_shutdown_after_the_peers_fin_keeps_the_send_pipe_past_the_connections_end ... ok
test a_shutdown_sends_what_the_pipe_held_and_then_the_fin ... ok
test a_reset_ends_both_pipes_and_the_stream ... ok
test an_established_streams_connect_deadline_is_gone ... ok
test a_writer_that_leaves_after_the_shutdown_leaves_the_stream_to_its_reader ... ok
test nodelay_reaches_the_stack ... ok
test text_the_pipe_had_no_room_for_outlives_both_fins ... ok
test the_end_of_the_clients_writing_is_a_fin_and_the_peer_still_sends ... ok
test the_peers_fin_after_the_clients_shutdown_leaves_the_send_pipe_to_its_writer ... ok
test nothing_leaves_the_pipe_that_the_stack_will_not_take ... ok
test room_in_the_pipe_opens_the_window_at_the_next_opportunity ... ok
test the_peers_fin_ends_the_clients_reading_and_not_its_writing ... ok
test nothing_leaves_the_stack_that_the_pipe_did_not_take ... ok
test a_departed_clients_tail_arrives_whole_while_its_peer_takes_it ... ok
test a_peer_at_another_address_keeps_its_own_sixteen ... ok
test no_cut_of_a_segment_is_a_segment ... ok
test no_flipped_bit_of_a_segment_delivers_other_bytes ... ok
test a_departed_clients_connection_past_the_sixteen_is_one_of_them_once_one_is_done ... ok
test a_peer_keeps_sixteen_departed_clients_connections_alive_and_no_more ... ok

test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s

13:30:57 [ci] userland/netstack/node: cargo test --manifest-path userland/netstack/node/Cargo.toml

13:30:57 === [ci] userland/pkg
    Blocking waiting for file lock on package cache
    Finished `test` profile [optimized + debuginfo] target(s) in 0.50s
     Running unittests src/lib.rs (target/debug/deps/pkg-267920d77a81bf09)

running 12 tests
test archive::tests::a_directory_and_two_files_come_back_whole ... ok
test archive::tests::a_header_that_does_not_sum_and_a_size_past_the_end_are_both_refused ... ok
test sums::tests::a_line_that_is_not_one_and_a_name_given_twice_are_both_refused ... ok
test sums::tests::hex_is_the_spelling_the_file_uses ... ok
test archive::tests::every_type_but_a_file_and_a_directory_is_refused ... ok
test archive::tests::a_name_that_leaves_the_archive_is_refused ... ok
test sums::tests::the_one_line_for_this_asset_is_the_answer ... ok
test tests::a_file_name_that_states_no_version_is_refused ... ok
test tests::a_digest_the_manifest_cannot_carry_stops_the_install ... ok
test tests::a_path_the_archive_names_as_both_a_file_and_a_directory_is_refused ... ok
test tests::an_archive_that_is_not_one_directory_installs_nothing ... ok
test tests::the_real_asset_plans_the_directory_the_track_describes ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/main.rs (target/debug/deps/pkg-4b1d46c1bd33bdbe)

running 3 tests
test tests::an_archive_that_inflates_past_the_ceiling_is_refused_unread ... ok
test tests::an_install_that_cannot_finish_takes_its_directory_back_down ... ok
test tests::a_tree_of_any_depth_comes_off_and_leaves_no_directory ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s

13:30:58 [ci] userland/pkg: cargo test --manifest-path userland/pkg/Cargo.toml

13:30:58 === [ci] userland/soundserver
    Finished `test` profile [optimized + debuginfo] target(s) in 0.31s
     Running unittests src/main.rs (target/debug/deps/soundserver-357eddc3ef0ef6da)

running 3 tests
test client::tests::the_stronger_witness_wins_in_either_order ... ok
test control::tests::a_control_message_is_refused_unless_its_width_and_its_state_both_fit ... ok
test mix::tests::published_totals_are_exactly_the_sum_of_every_window ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:30:58 [ci] userland/soundserver: cargo test --manifest-path userland/soundserver/Cargo.toml

13:30:58 === [ci] userland/soundserver/mixer
    Finished `test` profile [optimized + debuginfo] target(s) in 0.19s
     Running unittests src/lib.rs (target/debug/deps/toyos_mixer-55f41f11fc4bfc95)

running 55 tests
test channel::tests::a_mono_client_is_the_same_sample_in_both_channels ... ok
test channel::tests::an_append_lands_after_what_is_already_there ... ok
test channel::tests::the_downmix_averages_rather_than_sums ... ok
test channel::tests::planar_and_interleaved_convert_alike ... ok
test channel::tests::the_interleave_reads_only_the_frames_produced ... ok
test dll::tests::a_batch_is_measured_against_its_last_grid_point ... ok
test dll::tests::a_grid_that_runs_fast_is_followed ... ok
test channel::tests::an_append_past_the_reserved_capacity_is_refused - should panic ... ok
test dll::tests::a_reset_forgets_the_grid_and_the_drift ... ok
test dll::tests::the_first_record_anchors_and_decides_nothing ... ok
test dll::tests::a_wild_timestamp_cannot_collapse_or_run_away_the_period ... ok
test format::tests::a_half_rounds_away_from_zero ... ok
test format::tests::full_scale_clamps_instead_of_wrapping ... ok
test format::tests::a_period_quantizes_as_its_samples_do ... ok
test format::tests::the_generator_cannot_be_seeded_into_silence ... ok
test gain::tests::a_fade_stays_between_its_endpoints ... ok
test gain::tests::a_ramp_lands_exactly_on_its_target ... ok
test format::tests::passthrough_is_bit_exact_for_every_i16 ... ok
test gain::tests::a_ramp_to_its_own_level_is_a_ramp_to_nowhere ... ok
test corpus::tests::the_crate_agrees_with_the_captured_shell ... ok
test format::tests::the_draw_stays_inside_half_an_lsb ... ok
test gain::tests::a_retarget_starts_from_the_level_reached ... ok
test gain::tests::a_settled_ramp_holds_its_level ... ok
test gain::tests::advancing_past_the_end_settles ... ok
test mix::tests::a_client_at_unity_is_added_unscaled ... ok
test mix::tests::a_silent_client_leaves_the_bus_untouched ... ok
test mix::tests::both_channels_of_a_frame_get_one_gain ... ok
test gain::tests::a_volume_that_is_not_a_number_is_refused_and_the_rest_is_clamped ... ok
test mix::tests::a_period_of_the_wrong_width_is_refused - should panic ... ok
test mix::tests::clients_sum_and_the_bus_is_not_clamped ... ok
test mix::tests::the_composite_is_the_conversion_and_the_sum ... ok
test shape::tests::a_client_at_the_device_s_own_rate_gets_the_device_s_period ... ok
test shape::tests::a_rate_too_low_for_the_ramp_or_the_grid_is_refused ... ok
test shape::tests::a_pipeline_with_nothing_to_reserve_disables_deferral ... ok
test shape::tests::a_shape_the_mixer_cannot_render_is_refused_and_nothing_divides_by_zero ... ok
test shape::tests::the_scratch_covers_every_rate_a_client_may_ask_for ... ok
test shape::tests::the_shipped_device_shape_is_served ... ok
test shape::tests::the_shipped_grid_and_ramp ... ok
test shape::tests::the_shipped_pipeline_keeps_five_periods_in_reserve ... ok
test corpus::tests::the_corpus_is_reproduced_bit_for_bit ... ok
test stats::tests::a_late_wake_is_one_past_a_whole_period ... ok
test shape::tests::no_accepted_rate_overruns_the_shipped_scratch ... ok
test corpus::tests::a_one_lsb_change_anywhere_moves_the_transcript ... ok
test stats::tests::a_later_shorter_run_does_not_lower_the_worst ... ok
test stats::tests::a_software_grid_blames_only_itself ... ok
test stats::tests::empty_wakes_belong_to_the_wake_that_ends_them ... ok
test stats::tests::one_covered_period_ends_a_run ... ok
test stats::tests::only_the_wake_nothing_asked_for_is_named ... ok
test stats::tests::silence_outside_a_stream_costs_nothing ... ok
test stats::tests::the_halves_come_from_one_wake ... ok
test stats::tests::the_halves_sum_to_the_whole ... ok
test stats::tests::the_run_length_separates_a_gap_from_scattered_misses ... ok
test format::tests::the_dither_is_a_triangular_distribution_and_not_merely_shaped_like_one ... ok
test format::tests::a_signal_under_one_lsb_survives_the_quantizer ... ok
test format::tests::the_rounding_is_std_s_over_every_float_there_is ... ok

test result: ok. 55 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.88s

13:31:03 [ci] userland/soundserver/mixer: cargo test --manifest-path userland/soundserver/mixer/Cargo.toml

13:31:03 === [ci] userland/sshserver
    Finished `test` profile [optimized + debuginfo] target(s) in 0.25s
     Running unittests src/main.rs (target/debug/deps/sshserver-55278c998eec2a64)

running 29 tests
test command::tests::a_bare_name_resolves_under_system_bin ... ok
test sftp::tests::a_request_before_init_ends_the_session ... ok
test sftp::tests::a_second_init_ends_the_session ... ok
test sftp::tests::a_file_that_is_not_there_is_no_such_file ... ok
test sftp::tests::a_handle_nobody_opened_is_refused ... ok
test command::tests::an_unfinished_quote_is_refused ... ok
test command::tests::a_line_that_names_nothing_is_refused ... ok
test command::tests::a_shell_command_reaches_the_shell_whole ... ok
test command::tests::quotes_hold_a_word_together ... ok
test command::tests::metacharacters_are_ordinary_bytes ... ok
test command::tests::a_bare_command_is_its_words ... ok
test command::tests::backslash_escapes_one_character ... ok
test sftp::tests::a_request_outside_the_profile_is_refused_by_name ... ok
test sftp::tests::a_truncated_request_is_a_bad_message_and_not_a_panic ... ok
test sftp::tests::an_oversized_length_ends_the_session ... ok
test sftp::tests::framing_waits_for_a_whole_packet ... ok
test tests::a_file_that_names_nobody_authorizes_nobody ... ok
test tests::an_unlisted_key_is_not_authorized ... ok
test tests::a_listed_key_is_authorized ... ok
test tests::an_unparseable_line_does_not_disarm_the_rest ... ok
test tests::the_comment_is_not_part_of_the_key ... ok
test tests::a_key_listed_with_options_authorizes_nothing ... ok
test tests::a_key_is_found_among_several_and_blank_lines ... ok
test tests::input_for_a_program_that_is_gone_is_not_a_stall ... ok
test tests::input_a_program_is_reading_is_taken ... ok
test sftp::tests::the_profile_moves_a_file_and_lists_it ... ok
test sftp::tests::a_listing_longer_than_one_reply_continues_where_it_left_off ... ok
test tests::input_nothing_takes_is_given_up_on ... ok
test sftp::tests::a_directory_past_the_ceiling_is_refused_by_name ... ok

test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.65s

13:31:05 [ci] userland/sshserver: cargo test --manifest-path userland/sshserver/Cargo.toml

13:31:05 === [ci] userland/symbolize
    Finished `test` profile [optimized + debuginfo] target(s) in 0.10s
     Running unittests src/main.rs (target/debug/deps/symbolize-9b3eaa77d97dc9da)

running 5 tests
test tests::a_name_is_read_under_the_root ... ok
test tests::a_name_some_host_reads_as_a_drive_or_separator_is_refused ... ok
test tests::a_name_that_leaves_the_root_is_refused ... ok
test tests::a_name_windows_reserves_for_a_device_is_refused ... ok
test tests::a_record_that_leaves_the_root_is_refused_on_its_line ... ok

test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

13:31:06 [ci] userland/symbolize: cargo test --manifest-path userland/symbolize/Cargo.toml

13:31:06 === [ci] the apps for linux
info: component rust-std for target x86_64-unknown-linux-gnu is up to date
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.24s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.10s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.15s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.10s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.10s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.14s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.21s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
13:31:07 [ci] the apps for linux: 10 app(s) pass `cargo check --target x86_64-unknown-linux-gnu`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare

13:31:07 === [ci] the apps for macos
info: component rust-std is up to date
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.12s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.10s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.14s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.16s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.10s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.11s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.20s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.09s
13:31:09 [ci] the apps for macos: 10 app(s) pass `cargo build`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare

13:31:09 === [ci] the apps for windows
info: component rust-std for target x86_64-pc-windows-msvc is up to date
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.18s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.10s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.14s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.20s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.14s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.14s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.18s
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.20s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.24s
    Finished `dev` profile [optimized + debuginfo] target(s) in 0.14s
13:31:12 [ci] the apps for windows: 10 app(s) pass `cargo check --target x86_64-pc-windows-msvc`; userland/doom, userland/proctest, userland/shell, userland/terminal, userland/toybox not attempted, as their manifests declare

13:31:12 === [ci] the toyos SDK
    Finished `test` profile [optimized + debuginfo] target(s) in 0.10s
     Running unittests src/lib.rs (target/debug/deps/toyos-f91d9b0c3685a5e7)

running 47 tests
test fs::tests::bytes_no_grant_was_encoded_as_are_refused ... ok
test fs::tests::a_grant_round_trips_at_every_bound ... ok
test fs::tests::a_listing_entry_round_trips_and_a_short_one_is_refused ... ok
test fs::tests::a_path_is_canonical_only_without_empty_dot_or_dotdot_components ... ok
test fs::tests::no_grant_carries_a_root_the_wire_refuses_or_one_past_the_badge ... ok
test fs::tests::the_window_copies_every_length_at_every_offset ... ok
test ipc::tests::a_batch_past_the_bound_is_refused_and_closed ... ok
test ipc::tests::a_refused_move_closes_every_handle_it_consumed ... ok
test ipc::tests::a_taken_move_closes_nothing ... ok
test launch::tests::a_request_names_its_parent_by_one_word ... ok
test launch::tests::a_batch_names_each_handle_once_and_never_its_connection ... ok
test log::proof::a_placeholder_owned_ring_keeps_its_slots_from_every_pid_until_named ... ok
test log::proof::a_position_that_never_lands_is_counted_by_the_sweep ... ok
test log::proof::slots_left_to_others_are_theirs ... ok
test log::proof::a_ring_has_four_lanes_to_claim ... ok
test log::proof::scribbled_words_bound_the_reader_and_never_panic_it ... ok
test log::stdio::tests::a_formatted_line_is_one_ended_record ... ok
test log::proof::the_region_carries_a_record_whole ... ok
test log::stdio::tests::a_line_a_flush_opened_is_closed_at_its_end ... ok
test log::stdio::tests::a_line_in_pieces_is_one_record ... ok
test log::stdio::tests::a_long_line_is_records_in_order_with_nothing_lost ... ok
test log::stdio::tests::a_newline_ends_a_record_and_a_carriage_return_before_it_goes ... ok
test net::tests::a_binds_request_ends_in_its_listeners_options ... ok
test log::stdio::tests::a_stream_held_by_two_writers_keeps_each_line_whole ... ok
test net::tests::a_code_netstack_chose_is_still_its_own_answer ... ok
test log::proof::a_lane_gives_its_reader_every_record_in_order_or_counts_it_refused ... FAILED
test net::tests::a_gone_handle_transfer_is_a_netstack_that_is_not_there ... ok
test net::tests::a_not_found_is_not_a_netstack_that_is_not_there ... ok
test net::tests::a_read_that_hung_up_is_a_netstack_that_is_not_there ... ok
test net::tests::an_accepts_answer_ends_in_its_connections_options ... ok
test net::tests::an_option_request_is_three_words_on_the_wire ... ok
test net::tests::nothing_else_becomes_a_missing_netstack ... ok
test poller::tests::a_submission_is_the_whole_entry_where_the_kernel_reads_it ... ok
test poller::tests::a_tail_the_kernel_publishes_mid_drain_is_observed ... ok
test poller::tests::every_accessor_lands_on_the_abi_offset ... ok
test poller::tests::pending_counts_what_the_kernel_has_not_claimed ... ok
test poller::tests::the_drop_counter_is_read_from_the_page ... ok
test syscap::tests::a_machine_that_grew_once_is_read_grown ... ok
test syscap::tests::a_machine_that_grows_every_round_is_refused_by_name ... ok
test syscap::tests::a_record_that_does_not_decode_is_refused_and_not_dropped ... ok
test syscap::tests::a_refused_count_is_refused_and_not_an_empty_inventory ... ok
test syscap::tests::a_refused_read_is_refused_and_not_an_empty_inventory ... ok
test log::proof::every_record_is_read_once_in_its_writers_order_or_counted_refused ... ok
test syscap::tests::an_empty_inventory_is_its_count ... ok
test syscap::tests::every_record_is_read ... ok
test log::proof::a_real_time_write_allocates_nothing ... ok
test log::proof::a_full_ring_or_lane_refuses_at_once_and_never_waits ... ok

failures:

---- log::proof::a_lane_gives_its_reader_every_record_in_order_or_counts_it_refused stdout ----

thread 'log::proof::a_lane_gives_its_reader_every_record_in_order_or_counts_it_refused' (260913837) panicked at toyos/src/log/proof.rs:161:5:
assertion `left == right` failed
  left: 49999
 right: 50000
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


failures:
    log::proof::a_lane_gives_its_reader_every_record_in_order_or_counts_it_refused

test result: FAILED. 46 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p toyos --lib`
13:31:12 [ci] the toyos SDK: cargo test -p toyos exited exit status: 101

13:31:12 === [ci] nothing left in $TMPDIR or /tmp
13:31:12 [ci] nothing left in $TMPDIR or /tmp: every test took its scratch with it
13:31:12 [ci] Host: 1 of 77 step(s) red:
13:31:12   - RED: the toyos SDK: cargo test -p toyos exited exit status: 101
EXIT=1


@Japabu

Japabu commented Oct 10, 2026 •

Copy link
Copy Markdown
Collaborator Author

Review of #846 at 2c744d4, round 1, against .claude/agents/reviewer.md.

Lines: git diff --shortstat origin/main...2c744d434 gives 29 files, +974 −311. Production is +748 −274 (net +474, of which the ITS driver is 446), tests and harness +182 −1, issues +44 −36. I accept the production growth: the ITS is what this stage is for, and moving the x86 vector out of generic code deletes more than it adds.

The x86 question (KVM run, T14 reading): neither is owed. Every value the x86 diff moves is the same at this head as on main: Vector::Xhci 0x21, VirtioSound 0x23, Hda 0x26, UserDev0..3 0x28–0x2B, MSG_DEST 0. vtd::interrupt::msi and ioapic::route branch on the same is_armed() that remap_msi and remap_pin used to. The new isr assertion holds on x86 because device_irq_entry does lock add gs:[preempt_count], 1 before every handler. The TCG run at this head covers every x86 path the change touches: iommu_virtio_platform, netstack_*, bar_map_again, usbd_drives_the_spare, block_grants_reach_their_partitions and usb_keyboard_rollover, all EXIT=0. Nothing changed differs between TCG and KVM, and the required guest / suite check runs KVM anyway. The change does not target T14 hardware, so there is no reading to take there.

BLOCKER

  • kernel/src/arch/aarch64/paging.rs:479 — this branch makes issues/an-aarch64-crash-report-reads-through-any-user-leaf.md live. That issue says it is latent "until stage 6", and this is stage 6.
    • Why it is a blocker: leaf still treats a Device leaf as Normal, and read_user_word and the fault dump do the same. So a claim holder that calls read(fd, bar, n), or faults with x29 inside its BAR, panics the kernel from userland. claim_lpi maps exactly such a BAR.
    • Where it is reachable: any virt with an ITS. That includes cargo run --arch aarch64 on a TCG or KVM host, because src/qemu.rs:328 passes gic-version=3,iommu=smmuv3 and the ITS is on by default there. system.toml's netstack claim then succeeds.
    • What is owed: land that issue's exit before this branch, or together with it, or keep AArch64 claims refused until it lands.
  • kernel/src/arch/aarch64/irqchip/its.rs:558-566 — after EnableLPIs is set, an Err from the GITS_CTLR read-back drops memory.pages.
    • Why it is a blocker: PhysPage::drop calls free_page (kernel/src/mm/pmm.rs:30). GICR_PROPBASER and GICR_PENDBASER still name those pages, and the redistributor's LPIs are enabled and may not be clearable (IHI 0069H). The redistributor then reads and writes memory the PMM hands to its next owner.
    • What is owed: a failure after EnableLPIs panics, or the pages are kept for the machine's life on every exit path.
  • kernel/src/pcidev/mod.rs:826 — the claim of a function at bus 1 or above has no test.
    • Why it is a blocker: its::device_of's NoDeviceId is the only thing between that claim and the panic in smmu/mod.rs:152's stream() from attach at :843. The body says so itself. device_of also reads the IORT a second time, separately from the SMMU's own routes, and the two readers can disagree.
    • What is owed: a function behind a pcie-root-port on VirtIts, claimed, refused by that name, with the kernel still alive. The patch device_of → Ok(source.requester()) for any Route must turn that test red. Better still, take the refusal from the unit's own routes, so that attach cannot disagree with it.

NOTE

  • issues/a-claimed-function-can-storm-its-cpu.md:9 — it cites pcidev::VECTORS[slot], which this branch deletes. It is also now true of an AArch64 slot's LPI, and the file says nothing of it.
  • kernel/src/arch/aarch64/irqchip/its.rs:542,557 — GITS_CBASER and GICR_PENDBASER are written without a read-back.
    • A Shareability the ITS reduces would leave the command queue and pending table written through the cacheable direct map with no cache maintenance.
    • The body's "Each register write is read back" is false of these two.
    • Read them back and refuse on a mismatch, or record the gap.
  • issues/toyos-runs-on-arm64.md:378 — "Not yet tested: … a release's DISCARD" has no exit a test can fail. It also does not say that the released function's stream going back to abort at the SMMU is what actually stops its doorbell write.

SEND BACK

Japabu and others added 2 commits October 10, 2026 15:50
… tables outlive a late refusal; a claim's DeviceID is the SMMUv3's own route

Review round 1 of #846.

AArch64 paging: `AddressSpace::walk`, and so `translate` and `leaf`, and
`read_user_word` answer nothing for a user leaf of Device type. A claimed
function's BAR is mapped into its holder that way, and the kernel reached
it through the direct map for a syscall's copy and for the crash report's
backtrace and memory dump. `map_window_if_absent` asks the tables for
presence directly, since a translation now refuses a leaf that is present.
Closes issues/an-aarch64-crash-report-reads-through-any-user-leaf.md; its
rule moves to paging.rs's module header.

ITS bring-up: a failure found after the redistributor's EnableLPIs panics,
rather than dropping pages GICR_PROPBASER and GICR_PENDBASER still name.
GITS_CBASER, GICR_PROPBASER and GICR_PENDBASER are each read back whole
(PENDBASER without its write-only PTZ, now `toyos_its::lpi::PENDBASER_PTZ`)
and refused on a mismatch.

A claim's DeviceID comes from the SMMUv3's routes, which now carry the ITS
mapping of each routed stream, instead of a second read of the IORT: a
function the unit would not put on a domain is refused before `attach`.
Measured on QEMU 11.1.1: a function behind a plain pcie-root-port is routed
through the unit; one behind a root port of a pxb-pcie with
bypass_iommu=on is `Untranslated`. `virt_claim_lpi`'s machine gains such an
e1000e; `claim_unrouted` is refused it and claims edu after, and
`claim_bar_fault` faults twice in edu's BAR and names it as a read's and a
write's buffer.

Issues: the storm issue names each architecture's slot interrupt; the ARM
track says what stops a released function's doorbell write and what test
is owed for the ITS half.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation m2-backtrace-reads-device (patch as posted for b26a9cd): virt_claim_lpi at 0de25fd, EXIT=1, part 1 of 1

    Finished `test` profile [optimized + debuginfo] target(s) in 0.53s
     Running tests/toyos.rs (target/debug/deps/toyos_build-8bef5b37e99e2df5)

15:37:39 running 1 tests, 12 wide

15:37:39   RUN   virt_claim_lpi
15:37:39   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
15:37:44   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (5s)
15:37:44   BUILD aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi
15:37:48   BUILT aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi  (4s)
15:37:48   BUILD aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi
15:37:51   BUILT aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi  (3s)
15:37:51   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
15:38:00   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (10s)
qemu-system-aarch64: warning: nic e1000e.0 has no peer
15:38:03   [virt] [ 2.396 test-runner pid=4] claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each
15:38:03   [virt] [ 0.686 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
15:38:03   [virt] [ 2.395 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
15:38:03   [virt] [ 2.393 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
15:38:03   [virt] [ 2.396 cpu0 kernel] pcidev: slot 0 took its first message on LPI 8192
15:38:03   [virt] [ 2.396 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
15:38:03   [virt] [ 2.396 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
15:38:03   [virt] [ 2.416 test-runner pid=5] claim_unrouted: e1000e, routed past the SMMUv3, was refused, and edu was claimed after
15:38:03   [virt] [ 2.415 cpu0 kernel] pcidev: PCI 09:00.0 NOT HANDED OVER — no message of its own could be made for it — the IORT gives it no DeviceID at this kernel's ITS behind the SMMUv3, so no table of its own would translate its message and no domain of its own would confine its writes
15:38:03   [virt] [ 2.466 test-runner pid=6] claim_bar_fault: two faults in the BAR ended their processes, and a syscall naming it was refused
15:38:03 FAIL virt_claim_lpi: 0xbad1c0de00005eed, in edu's BAR, is on the console: a crash report read through it
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 0.428 cpu0 loader] ToyOS Bootloader 1.0
[ 0.430 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 0.432 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 0.434 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 0.436 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-Id14331d02e155031 (image scope) holds 0
[ 0.437 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 0.438 cpu0 loader] RSDP address: 0xbcb43018
[ 0.439 cpu0 loader] Boot partition: LBA 2048+69632 signature [09, e7, f0, 9f, 87, d5, fd, 4d, bf, 40, 40, 08, 30, 96, 5e, 64]
[ 0.440 cpu0 loader] Log partition: signature [6a, 2a, c8, d7, d2, 5c, 66, 49, 87, b8, 04, 48, 86, df, 34, 27]
[ 0.458 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 0.466 cpu0 loader] Slot A: signed header 8584e5a1b551566b65cacdcb044b8ed47b14e891988952692493430a7c038621 verifies under this loader's key, version 1791646671
[ 0.496 cpu0 loader] ROOT: read into memory at 0xbbbb6000+0x600000 from LBA 212992+12288, 1048576 bytes a request (optimal granularity: not reported), in 371576 counter ticks
[ 0.513 cpu0 loader] Slot A: ROOT hashed in 353234 counter ticks
[ 0.515 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 0.522 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 0.523 cpu0 loader] Kernel: 2586400 bytes
[ 0.524 cpu0 loader] Boot parameter: "root=40549739a25c55e7ad92cca56d0cefc9,boot-slot=A"
[ 0.526 cpu0 loader] Loading kernel elf...
[ 0.527 cpu0 loader] Kernel stack size: 8388608
[ 0.528 cpu0 loader] Kernel memory size: 13709312
[ 0.532 cpu0 loader] Kernel memory located at: 0xbae00000
[ 0.534 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 497324 }, filesz: 497324, file_offset: 0, flags: SegmentFlags(4) }
[ 0.537 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 563200, len: 1076624 }, filesz: 1076624, file_offset: 497664, flags: SegmentFlags(5) }
[ 0.539 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1705360, len: 2672 }, filesz: 240, file_offset: 1574288, flags: SegmentFlags(6) }
[ 0.542 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1771136, len: 3545920 }, filesz: 27184, file_offset: 1574528, flags: SegmentFlags(6) }
[ 0.546 cpu0 loader] Applied 3037 relocations
[ 0.546 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 0.548 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 0.552 cpu0 loader] Starting kernel...
[ 0.552 cpu0 loader] CPU: entered at EL1
[ 0.553 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 0.554 cpu0 loader] GCD: 0x10500000+0x2eb00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.555 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.560 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.561 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 0.593 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 0.600 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 0.602 cpu0 loader] Boot map: root 0xbac94000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 0.603 cpu0 loader] Kernel image: 0xbae00000+0xd13000 is inside the 0x100000000-byte boot map
[ 0.604 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 0.605 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 0.607 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 0.611 cpu0 loader] Loader counter: 10237478 at entry, 14677557 at the handoff
[ 0.618 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 0.623 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 0.623 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 0.623 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 0.628 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 0.630 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 0.631 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 0.634 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 0.634 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 0.635 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 0.636 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 0.637 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 0.638 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 0.639 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 0.639 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 0.640 cpu0 kernel] memory: 0x000048000000..0x0000bac91000 uefi type 7
[ 0.641 cpu0 kernel] memory: 0x0000bac91000..0x0000bc431000 uefi type 2
[ 0.642 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 0.642 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 0.643 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 0.644 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 0.645 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 0.645 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 0.646 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 0.646 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 0.647 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 0.647 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 0.647 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f5000 uefi type 7
[ 0.648 cpu0 kernel] memory: 0x0000be0f5000..0x0000bfa38000 uefi type 4
[ 0.648 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 0.649 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 0.650 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 0.650 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 0.650 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 0.651 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 0.651 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 0.652 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 0.652 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 0.653 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 0.653 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 0.654 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 0.655 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 0.656 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 0.656 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 0.657 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 0.658 cpu0 kernel] boot: memory map 0xbac92018+0x318, kernel 0xbae00000+0xd13000, stack image+0x513000+0x800000
[ 0.659 cpu0 kernel] boot: kernel elf 0xbc1b6018+0x277720, rsdp 0xbcb43018, boot pml4 0xbac94000
[ 0.661 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 0.661 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [09, e7, f0, 9f, 87, d5, fd, 4d, bf, 40, 40, 08, 30, 96, 5e, 64]
[ 0.662 cpu0 kernel] boot: log partition guid [6a, 2a, c8, d7, d2, 5c, 66, 49, 87, b8, 04, 48, 86, df, 34, 27]
[ 0.662 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 0.662 cpu0 kernel] boot: root=40549739a25c55e7ad92cca56d0cefc9
[ 0.663 cpu0 kernel] boot: slot A, the one the slot table marks
[ 0.663 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 0.663 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 0.663 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 0.664 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 0.666 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 0.667 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 0.670 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 0.674 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 0.674 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 0.675 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 0.680 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 0.680 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 0.681 cpu0 kernel] PSCI: 1.1 through HVC
[ 0.682 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 0.682 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 0.682 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 0.683 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 0.683 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 0.684 cpu0 kernel] mmio: 0x8080000+0x10000 Uncacheable
[ 0.686 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
[ 0.686 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 0.687 cpu0 kernel] symbols: loaded 18544 kernel symbols
[ 0.687 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 0.688 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 0.688 cpu0 kernel] Boot: CPU ready (0ms)
[ 0.688 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 0.688 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 0.688 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 0.688 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 0.689 cpu0 kernel] PCI: Enumerating devices...
[ 0.689 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 0.689 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 0.689 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 0.689 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 0.690 cpu0 kernel]   PCI 00:04.0 [0600] vendor=1b36 device=000b prog_if=00 bars=[]
[ 0.691 cpu0 kernel]   PCI 08:00.0 [0604] vendor=1b36 device=000c prog_if=00 bars=[bar0=0x10400000]
[ 0.691 cpu0 kernel]   PCI 09:00.0 [0200] vendor=8086 device=10d3 prog_if=00 bars=[bar0=0x10220000 bar1=0x10200000 bar2=none(it is an I/O BAR at port 0x1000, not memory) bar3=0x10240000]
[ 0.701 cpu0 kernel] PCI: Enumeration complete, 7 functions.
[ 0.702 cpu0 kernel] pcidev: PCI 08:00.0 forwards 0x10200000..0x10400000 to its secondary bus
[ 0.703 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x10200000..0x10500000, mem 0x4000000..0x8000000, mem 0x10500000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 0.704 cpu0 kernel] pcidev: 7 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 0.705 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 0.705 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 0.706 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 0.706 cpu0 kernel] pcidev:   0x10401000..0x40000000 (763 MiB)
[ 0.707 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 0.707 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 0.712 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 0.715 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 0.715 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 0.718 cpu0 kernel] IOMMU: 08:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2048 })
[ 0.721 cpu0 kernel] IOMMU: 09:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2304 })
[ 0.722 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 5 functions' streams aborting in a table of 64, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 0.723 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 0.723 cpu0 kernel] gpt: the boot volume names D7C82A6A-5CD2-4966-87B8-044886DF3427 as the log partition
[ 0.724 cpu0 kernel] gpt: firmware booted us from partition 9FF0E709-D587-4DFD-BF40-400830965E64 at LBA 2048+69632
[ 0.724 cpu0 kernel] Boot: peripherals ready (35ms)
[ 0.724 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 0.724 cpu0 kernel] root: mounted read-only from memory at 0xbbbb6000+0x600000, filesystem 40549739a25c55e7ad92cca56d0cefc9, 1536 blocks
[ 0.724 cpu0 kernel] Boot: subsystems ready (0ms)
[ 0.727 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=2ms total=2ms)
[ 0.729 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 0.729 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 0.730 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 0.730 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 0.731 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.733 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.736 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 0.739 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 2.240 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 2.240 cpu0 kernel] root: the partition ROOT was read from, FC7EB8D1-0C20-4077-B077-C58E8156EBD2, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 2.241 cpu0 kernel] Boot: storage ready (1511ms)
[ 2.241 cpu0 kernel] virtio-console: no device found
[ 2.241 cpu0 kernel] GPU: using UEFI GOP
[ 2.241 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 2.243 cpu0 kernel] GPU: none this boot, running headless
[ 2.243 cpu0 kernel] Boot: devices ready (2ms)
[ 2.245 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 2.248 cpu0 kernel] Boot: complete (1561ms)
[ 2.249 cpu0 kernel] boot: power-on to loader 426 ms, loader 185 ms (ROOT read 15 ms), kernel to Boot: complete 1637 ms
[ 2.250 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 2.268 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.270 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.265 supervisor] supervisor: build 0de25fd5e4007a51baae8e04e3505d520a9f043d dirty, committed 2026-10-10 14:53:26 UTC, toolchain c6ef51116e8de2e2, aarch64
[ 2.266 supervisor tid=1] supervisor: /home/toy could not be made, so this boot has no session home: permission denied
[ 2.267 supervisor] supervisor: logkeeper: /state/logkeeper could not be made: permission denied
[ 2.268 supervisor] supervisor: started logkeeper
[ 2.270 supervisor] supervisor: started test-runner
[ 2.271 logkeeper] logkeeper: cannot create /log/unknown-00.log: permission denied
[ 2.271 logkeeper] logkeeper: no /log on this machine - this boot's kernel log is on the console only (undated: this machine will not say what time it is)
[ 2.279 test-runner] ===READY===
[ 2.392 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.393 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 2.393 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.394 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.395 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 2.395 cpu0 kernel] mmio: 0x10600000+0x200000 Uncacheable
[ 2.395 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10600000 — inside firmware's mem 0x10500000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 2.395 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.395 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.395 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 4
[ 2.395 cpu0 kernel] iommu: domain1 maps 0x46600000..0x46800000 at 0x400002000000
[ 2.396 cpu0 kernel] pcidev: slot 0 took its first message on LPI 8192
[ 2.396 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.396 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.396 cpu0 kernel] exit: test_rs_claim_lpi pid=4 code=0 cpu=3ms peak=2MB allocs=2 frees=0 syscalls=56 syscall_wall=3ms 1=1 6=1 10=5 14=1 50=1 51=1 63=1 66=18 72=1 73=1 89=1 90=16 91=1 99=1 106=3 111=1 117=1 118=1
[ 2.414 cpu0 kernel] spawn: /system/bin/test_rs_claim_unrouted pid=5 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.415 cpu0 kernel] iommu: domain2 root=0x4080a000 context=0x4080b000 asid=2 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 2.415 cpu0 kernel] pcidev: PCI 09:00.0 NOT HANDED OVER — no message of its own could be made for it — the IORT gives it no DeviceID at this kernel's ITS behind the SMMUv3, so no table of its own would translate its message and no domain of its own would confine its writes
[ 2.415 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.415 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.416 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.416 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.416 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.416 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.390 test-runner] ===TEST_START test_rs_claim_lpi===
[ 2.396 test-runner pid=4] claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each
[ 2.412 test-runner] ===TEST_END test_rs_claim_lpi exit=0===
[ 2.412 test-runner] ===TEST_START test_rs_claim_unrouted===
[ 2.416 test-runner pid=5] claim_unrouted: e1000e, routed past the SMMUv3, was refused, and edu was claimed after
[ 2.416 test-runner] ===TEST_END test_rs_claim_unrouted exit=0===
[ 2.416 test-runner] ===TEST_START test_rs_claim_bar_fault===
[ 2.419 test-runner pid=6] claim_bar_fault: a read into the BAR and a write from it were refused BadAddress, the registers untouched
[ 2.416 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.416 cpu0 kernel] exit: test_rs_claim_unrouted pid=5 code=0 cpu=1ms peak=2MB allocs=2 frees=0 syscalls=14 syscall_wall=0ms 6=1 10=2 14=1 50=1 51=1 63=1 72=1 73=1 91=1 99=1 106=1 111=2
[ 2.417 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=6 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=1ms)
[ 2.419 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.419 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.419 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.419 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.419 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.431 test-runner pid=6] claim_bar_fault: the frame child's fault in the BAR ended it
[ 2.465 test-runner pid=6] claim_bar_fault: the jump child's fault in the BAR ended it
[ 2.466 test-runner pid=6] claim_bar_fault: two faults in the BAR ended their processes, and a syscall naming it was refused
[ 2.466 test-runner] ===TEST_END test_rs_claim_bar_fault exit=0===
[ 2.419 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 6
[ 2.419 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.419 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.427 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=7 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=7ms total=7ms)
[ 2.430 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.430 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.430 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.430 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.430 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.431 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 7
[ 2.431 cpu0 kernel alert] FAULT pc=0x000001000002da8c far=0x000001000002f1f8 esr=0x02000000 sp=0x000000fffec00080 tid=0
[ 2.431 cpu0 kernel] SIGILL tid=0: illegal instruction
[ 2.431 cpu0 kernel]   pc:
[ 2.431 cpu0 kernel]     0x1000002da8c  /system/bin/test_rs_claim_bar_fault+0x2da8c id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.431 cpu0 kernel]   Registers:
[ 2.431 cpu0 kernel]     x0 =0x000000fffec00000  x1 =0x0000000000100000
[ 2.431 cpu0 kernel]     x2 =0x0000000000000000  x3 =0x0000000000000000
[ 2.431 cpu0 kernel]     x4 =0x0000000000000000  x5 =0x0000000000000000
[ 2.431 cpu0 kernel]     x6 =0x0000000000000000  x7 =0x0000000000000000
[ 2.431 cpu0 kernel]     x8 =0x000000fffec00080  x9 =0x0000000000000065
[ 2.431 cpu0 kernel]     x10=0x0000000000000065  x11=0x000000006d617266
[ 2.431 cpu0 kernel]     x12=0x000001000000956c  x13=0x0000000000000070
[ 2.431 cpu0 kernel]     x14=0x0000000000000005  x15=0x0000000000000000
[ 2.431 cpu0 kernel]     x16=0x0000000000000000  x17=0x0000000000000000
[ 2.431 cpu0 kernel]     x18=0x0000000000000000  x19=0x000000ffff000080
[ 2.431 cpu0 kernel]     x20=0x0000000000000005  x21=0x000000fffffffcc0
[ 2.431 cpu0 kernel]     x22=0x0000000000000000  x23=0x0000000000000000
[ 2.431 cpu0 kernel]     x24=0x0000000000000000  x25=0x0000000000000000
[ 2.431 cpu0 kernel]     x26=0x0000000000000000  x27=0x0000000000000000
[ 2.431 cpu0 kernel]     x28=0x0000000000000000  x29=0x000000fffec00080
[ 2.431 cpu0 kernel]     x30=0x000001000002da10  sp=0x000000fffec00080  spsr=0x60000000
[ 2.431 cpu0 kernel]   Backtrace:
[ 2.431 cpu0 kernel]     0xbad1c0de00005eed
[ 2.431 cpu0 kernel]   Page fault trace (1 total, last 1):
[ 2.431 cpu0 kernel]     fault=0x1000002f1f8 elf_off=0x0 blk=524288 relocs=605 1436us [    X]
[ 2.431 cpu0 kernel]   Thread pointer: 0xffff400210
[ 2.431 cpu0 kernel]     TP+0x0 = 0x000000ffff400000
[ 2.431 cpu0 kernel]     TP+0x8 = 0x0000000000000000
[ 2.431 cpu0 kernel]     TP+0x10 = 0x0000000000000000
[ 2.431 cpu0 kernel]     TP+0x18 = 0x0000000000000001
[ 2.431 cpu0 kernel]     TP+0x20 = 0x0000000000000000
[ 2.431 cpu0 kernel]     TP+0x28 = 0x0000000000000000
[ 2.431 cpu0 kernel]     TP+0x30 = 0x0000000000000008
[ 2.431 cpu0 kernel]     TP+0x38 = 0x0000000000000000
[ 2.431 cpu0 kernel]   TLS data before TP:
[ 2.431 cpu0 kernel]     TP-0x8 = 0xffffffffffffffff
[ 2.431 cpu0 kernel]     TP-0x10 = 0xffffffffffffffff
[ 2.431 cpu0 kernel]     TP-0x18 = 0xffffffffffffffff
[ 2.431 cpu0 kernel]     TP-0x20 = 0xffffffffffffffff
[ 2.431 cpu0 kernel] exit: test_rs_claim_bar_fault pid=7 code=-1 cpu=3ms peak=2MB allocs=2 frees=0 syscalls=10 syscall_wall=2ms 1=1 6=1 10=1 63=1 73=1 91=1 99=1 106=1 111=1 117=1
[ 2.431 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.431 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.433 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=8 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=2ms total=2ms)
[ 2.434 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.434 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.434 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.434 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.434 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.434 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 8
[ 2.434 cpu0 kernel alert] FAULT pc=0x000000fffec00080 far=0x000000fffec00080 esr=0x8200000e sp=0x000000fffffffcc0 tid=0
[ 2.434 cpu0 kernel] SEGFAULT tid=0: execute protection violation at 0xfffec00080 (FSC 0xe)
[ 2.434 cpu0 kernel]   pc:
[ 2.434 cpu0 kernel]     0xfffec00080
[ 2.434 cpu0 kernel]   Page walk for 0xfffec00080 through TTBR0_EL1=0x8000040358000:
[ 2.434 cpu0 kernel]     L0[1] = 0x000000004035e003
[ 2.434 cpu0 kernel]     L1[511] = 0x0000000040360003
[ 2.434 cpu0 kernel]     L2[502] = 0x0060000010600c41
[ 2.434 cpu0 kernel]   Registers:
[ 2.434 cpu0 kernel]     x0 =0x000000fffec00000  x1 =0x0000000000100000
[ 2.434 cpu0 kernel]     x2 =0x0000000000000000  x3 =0x0000000000000000
[ 2.434 cpu0 kernel]     x4 =0x0000000000000000  x5 =0x0000000000000000
[ 2.434 cpu0 kernel]     x6 =0x0000000000000000  x7 =0x0000000000000000
[ 2.434 cpu0 kernel]     x8 =0x000000fffec00080  x9 =0x00000000706d756a
[ 2.434 cpu0 kernel]     x10=0x00000000706d756a  x11=0x0000000000000000
[ 2.434 cpu0 kernel]     x12=0x000001000000956c  x13=0x0000000000000070
[ 2.434 cpu0 kernel]     x14=0x0000000000000005  x15=0x0000000000000000
[ 2.434 cpu0 kernel]     x16=0x0000000000000000  x17=0x0000000000000000
[ 2.434 cpu0 kernel]     x18=0x0000000000000000  x19=0x000000ffff000080
[ 2.434 cpu0 kernel]     x20=0x0000000000000004  x21=0x000000fffffffcc0
[ 2.434 cpu0 kernel]     x22=0x0000000000000000  x23=0x0000000000000000
[ 2.434 cpu0 kernel]     x24=0x0000000000000000  x25=0x0000000000000000
[ 2.434 cpu0 kernel]     x26=0x0000000000000000  x27=0x0000000000000000
[ 2.434 cpu0 kernel]     x28=0x0000000000000000  x29=0x000000fffffffe80
[ 2.434 cpu0 kernel]     x30=0x000001000002daac  sp=0x000000fffffffcc0  spsr=0x60000800
[ 2.434 cpu0 kernel]   Backtrace:
[ 2.434 cpu0 kernel]     0x1000002e374  /system/bin/test_rs_claim_bar_fault+0x2e373 id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.434 cpu0 kernel]     0x1000002cd90  /system/bin/test_rs_claim_bar_fault+0x2cd8f id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.434 cpu0 kernel]     0x100000550b0  /system/bin/test_rs_claim_bar_fault+0x550af id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.434 cpu0 kernel]     0x1000002dd64  /system/bin/test_rs_claim_bar_fault+0x2dd63 id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.434 cpu0 kernel]     0x10000059304  /system/bin/test_rs_claim_bar_fault+0x59303 id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.434 cpu0 kernel]     0x1000002f20c  /system/bin/test_rs_claim_bar_fault+0x2f20b id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.434 cpu0 kernel]   Page fault trace (1 total, last 1):
[ 2.434 cpu0 kernel]     fault=0x1000002f1f8 elf_off=0x0 blk=524288 relocs=605 542us [    X]
[ 2.434 cpu0 kernel]   Thread pointer: 0xffff400210
[ 2.434 cpu0 kernel]     TP+0x0 = 0x000000ffff400000
[ 2.434 cpu0 kernel]     TP+0x8 = 0x0000000000000000
[ 2.434 cpu0 kernel]     TP+0x10 = 0x0000000000000000
[ 2.434 cpu0 kernel]     TP+0x18 = 0x0000000000000001
[ 2.434 cpu0 kernel]     TP+0x20 = 0x0000000000000000
[ 2.434 cpu0 kernel]     TP+0x28 = 0x0000000000000000
[ 2.434 cpu0 kernel]     TP+0x30 = 0x0000000000000008
[ 2.434 cpu0 kernel]     TP+0x38 = 0x0000000000000000
[ 2.434 cpu0 kernel]   TLS data before TP:
[ 2.434 cpu0 kernel]     TP-0x8 = 0xffffffffffffffff
[ 2.434 cpu0 kernel]     TP-0x10 = 0xffffffffffffffff
[ 2.434 cpu0 kernel]     TP-0x18 = 0xffffffffffffffff
[ 2.434 cpu0 kernel]     TP-0x20 = 0xffffffffffffffff
[ 2.434 cpu0 kernel] exit: test_rs_claim_bar_fault pid=8 code=-1 cpu=0ms peak=2MB allocs=2 frees=0 syscalls=10 syscall_wall=0ms 1=1 6=1 10=1 63=1 73=1 91=1 99=1 106=1 111=1 117=1
[ 2.434 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.434 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.465 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.466 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.466 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.466 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.466 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.466 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 6
[ 2.466 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.466 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.466 cpu0 kernel] exit: test_rs_claim_bar_fault pid=6 code=0 cpu=13ms peak=2MB allocs=2 frees=0 syscalls=54 syscall_wall=44ms 0=2 1=3 6=1 10=12 14=1 21=2 24=1 25=2 50=5 51=1 63=1 72=1 73=1 91=1 99=2 102=3 105=3 106=6 108=2 111=2 117=2
[ 2.466 cpu0 kernel tid=1] exit: test-runner pid=3 code=0 cpu=75ms peak=6MB allocs=3 frees=0 syscalls=69 syscall_wall=145ms 6=1 10=18 14=1 21=3 24=3 25=3 40=1 50=10 51=1 63=2 72=1 73=2 91=1 99=2 102=6 105=5 106=6 108=3

15:38:03   FAIL  virt_claim_lpi  (3s)
15:38:03   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:38:03 host: fastest boot 688 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
15:38:03 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:38:03 failures:
15:38:03     virt_claim_lpi: 0xbad1c0de00005eed, in edu's BAR, is on the console: a crash report read through it

15:38:03 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (24.6s; workers: 21s building, 3s testing)
15:38:03 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-84277-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-8bef5b37e99e2df5 virt_claim_lpi` (exit status: 1)
EXIT=1

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation m3-walk-answers-device (patch as posted for b26a9cd): virt_claim_lpi at 0de25fd, EXIT=1, part 1 of 1

    Finished `test` profile [optimized + debuginfo] target(s) in 0.62s
     Running tests/toyos.rs (target/debug/deps/toyos_build-8bef5b37e99e2df5)

15:38:05 running 1 tests, 12 wide

15:38:05   RUN   virt_claim_lpi
15:38:05   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
15:38:09   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (4s)
15:38:09   BUILD aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi
15:38:13   BUILT aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi  (4s)
15:38:13   BUILD aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi
15:38:19   BUILT aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi  (6s)
15:38:19   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
15:38:31   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (12s)
qemu-system-aarch64: warning: nic e1000e.0 has no peer
Assertion failed: (isv), function hvf_handle_exception, file hvf.c, line 2437.
15:38:52 FAIL virt_claim_lpi: STALLED: waiting for the job test_rs_claim_lpi to end — it went quiet
--- what the guest said while it was waited on ---
(the last 40 of the 139 lines in it)
[ 3.336 cpu0 kernel] IOMMU: 09:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2304 })
[ 3.364 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 5 functions' streams aborting in a table of 64, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 3.365 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 3.365 cpu0 kernel] gpt: the boot volume names B98D6BE2-7565-498B-85E4-BF3867AB33C5 as the log partition
[ 3.366 cpu0 kernel] gpt: firmware booted us from partition E29F9159-558C-4D12-8CCB-FF20BF5CB71D at LBA 2048+69632
[ 3.366 cpu0 kernel] Boot: peripherals ready (75ms)
[ 3.388 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 3.388 cpu0 kernel] root: mounted read-only from memory at 0xbbbb6000+0x600000, filesystem 40549739a25c55e7ad92cca56d0cefc9, 1536 blocks
[ 3.405 cpu0 kernel] Boot: subsystems ready (17ms)
[ 3.407 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 3.420 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 3.420 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 3.420 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 3.421 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 3.421 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 3.432 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 3.433 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 3.433 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 4.939 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 4.954 cpu0 kernel] root: the partition ROOT was read from, 56D0729B-86EC-4316-8915-F271C4B2C9B8, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 4.955 cpu0 kernel] Boot: storage ready (1534ms)
[ 4.955 cpu0 kernel] virtio-console: no device found
[ 4.955 cpu0 kernel] GPU: using UEFI GOP
[ 4.955 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 4.956 cpu0 kernel] GPU: none this boot, running headless
[ 4.959 cpu0 kernel] Boot: devices ready (3ms)
[ 4.959 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 4.960 cpu0 kernel] Boot: complete (1674ms)
[ 4.960 cpu0 kernel] boot: power-on to loader 2027 ms, loader 995 ms (ROOT read 237 ms), kernel to Boot: complete 1937 ms
[ 4.961 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 4.967 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 4.968 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 5.040 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 5.041 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 5.041 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 5.041 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 5.041 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 5.041 cpu0 kernel] mmio: 0x10600000+0x200000 Uncacheable
[ 5.041 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10600000 — inside firmware's mem 0x10500000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 5.041 cpu0 kernel] iommu: 00:03.0 moves to domain1
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 2.030 cpu0 loader] ToyOS Bootloader 1.0
[ 2.031 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 2.034 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 2.036 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 2.037 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-I7d55a6219e00d92a (image scope) holds 0
[ 2.040 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 2.042 cpu0 loader] RSDP address: 0xbcb43018
[ 2.043 cpu0 loader] Boot partition: LBA 2048+69632 signature [59, 91, 9f, e2, 8c, 55, 12, 4d, 8c, cb, ff, 20, bf, 5c, b7, 1d]
[ 2.045 cpu0 loader] Log partition: signature [e2, 6b, 8d, b9, 65, 75, 8b, 49, 85, e4, bf, 38, 67, ab, 33, c5]
[ 2.085 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 2.258 cpu0 loader] Slot A: signed header e08cec6565f1ac39c9c1ebb287d5029f6fc53f4c4969acae6c31c3dedd4c6867 verifies under this loader's key, version 1791646699
[ 2.636 cpu0 loader] ROOT: read into memory at 0xbbbb6000+0x600000 from LBA 212992+12288, 1048576 bytes a request (optimal granularity: not reported), in 5700232 counter ticks
[ 2.682 cpu0 loader] Slot A: ROOT hashed in 482010 counter ticks
[ 2.684 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 2.791 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 2.793 cpu0 loader] Kernel: 2586360 bytes
[ 2.794 cpu0 loader] Boot parameter: "root=40549739a25c55e7ad92cca56d0cefc9,boot-slot=A"
[ 2.827 cpu0 loader] Loading kernel elf...
[ 2.842 cpu0 loader] Kernel stack size: 8388608
[ 2.857 cpu0 loader] Kernel memory size: 13709312
[ 2.876 cpu0 loader] Kernel memory located at: 0xbae00000
[ 2.888 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 497100 }, filesz: 497100, file_offset: 0, flags: SegmentFlags(4) }
[ 2.918 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 563200, len: 1076680 }, filesz: 1076680, file_offset: 497664, flags: SegmentFlags(5) }
[ 2.919 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1705416, len: 2616 }, filesz: 240, file_offset: 1574344, flags: SegmentFlags(6) }
[ 2.923 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1771192, len: 3545864 }, filesz: 27184, file_offset: 1574584, flags: SegmentFlags(6) }
[ 2.925 cpu0 loader] Applied 3035 relocations
[ 2.925 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 2.927 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 2.929 cpu0 loader] Starting kernel...
[ 2.929 cpu0 loader] CPU: entered at EL1
[ 2.930 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 2.931 cpu0 loader] GCD: 0x10500000+0x2eb00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 2.932 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 2.933 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 2.943 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 2.946 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 2.948 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 2.948 cpu0 loader] Boot map: root 0xbac94000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 2.949 cpu0 loader] Kernel image: 0xbae00000+0xd13000 is inside the 0x100000000-byte boot map
[ 2.959 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 2.968 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 2.971 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 3.023 cpu0 loader] Loader counter: 48670808 at entry, 72554586 at the handoff
[ 3.064 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 3.119 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 3.119 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 3.120 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 3.120 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 3.120 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 3.121 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 3.121 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 3.121 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 3.121 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 3.121 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 3.121 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 3.122 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 3.122 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 3.122 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 3.122 cpu0 kernel] memory: 0x000048000000..0x0000bac91000 uefi type 7
[ 3.122 cpu0 kernel] memory: 0x0000bac91000..0x0000bc431000 uefi type 2
[ 3.122 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 3.122 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 3.123 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 3.123 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 3.123 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 3.123 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 3.123 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 3.123 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 3.123 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 3.124 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 3.124 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f5000 uefi type 7
[ 3.124 cpu0 kernel] memory: 0x0000be0f5000..0x0000bfa38000 uefi type 4
[ 3.124 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 3.124 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 3.124 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 3.125 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 3.125 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 3.125 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 3.138 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 3.139 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 3.139 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 3.139 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 3.139 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 3.139 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 3.139 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 3.139 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 3.140 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 3.140 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 3.140 cpu0 kernel] boot: memory map 0xbac92018+0x318, kernel 0xbae00000+0xd13000, stack image+0x513000+0x800000
[ 3.150 cpu0 kernel] boot: kernel elf 0xbc1b6018+0x2776f8, rsdp 0xbcb43018, boot pml4 0xbac94000
[ 3.151 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 3.151 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [59, 91, 9f, e2, 8c, 55, 12, 4d, 8c, cb, ff, 20, bf, 5c, b7, 1d]
[ 3.160 cpu0 kernel] boot: log partition guid [e2, 6b, 8d, b9, 65, 75, 8b, 49, 85, e4, bf, 38, 67, ab, 33, c5]
[ 3.160 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 3.160 cpu0 kernel] boot: root=40549739a25c55e7ad92cca56d0cefc9
[ 3.160 cpu0 kernel] boot: slot A, the one the slot table marks
[ 3.173 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 3.183 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 3.199 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 3.201 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 3.209 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 3.209 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 3.210 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 3.210 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 3.218 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 3.229 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 3.239 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 3.240 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 3.240 cpu0 kernel] PSCI: 1.1 through HVC
[ 3.240 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 3.241 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 3.241 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 3.241 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 3.262 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 3.263 cpu0 kernel] mmio: 0x8080000+0x10000 Uncacheable
[ 3.264 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
[ 3.276 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 3.283 cpu0 kernel] symbols: loaded 18542 kernel symbols
[ 3.286 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 3.288 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 3.290 cpu0 kernel] Boot: CPU ready (4ms)
[ 3.291 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 3.291 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 3.292 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 3.293 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 3.293 cpu0 kernel] PCI: Enumerating devices...
[ 3.294 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 3.295 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 3.296 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 3.299 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 3.301 cpu0 kernel]   PCI 00:04.0 [0600] vendor=1b36 device=000b prog_if=00 bars=[]
[ 3.302 cpu0 kernel]   PCI 08:00.0 [0604] vendor=1b36 device=000c prog_if=00 bars=[bar0=0x10400000]
[ 3.303 cpu0 kernel]   PCI 09:00.0 [0200] vendor=8086 device=10d3 prog_if=00 bars=[bar0=0x10220000 bar1=0x10200000 bar2=none(it is an I/O BAR at port 0x1000, not memory) bar3=0x10240000]
[ 3.313 cpu0 kernel] PCI: Enumeration complete, 7 functions.
[ 3.320 cpu0 kernel] pcidev: PCI 08:00.0 forwards 0x10200000..0x10400000 to its secondary bus
[ 3.321 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x10200000..0x10500000, mem 0x4000000..0x8000000, mem 0x10500000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 3.325 cpu0 kernel] pcidev: 7 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 3.327 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 3.328 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 3.328 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 3.329 cpu0 kernel] pcidev:   0x10401000..0x40000000 (763 MiB)
[ 3.330 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 3.335 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 3.335 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 3.336 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 3.336 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 3.336 cpu0 kernel] IOMMU: 08:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2048 })
[ 3.336 cpu0 kernel] IOMMU: 09:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2304 })
[ 3.364 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 5 functions' streams aborting in a table of 64, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 3.365 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 3.365 cpu0 kernel] gpt: the boot volume names B98D6BE2-7565-498B-85E4-BF3867AB33C5 as the log partition
[ 3.366 cpu0 kernel] gpt: firmware booted us from partition E29F9159-558C-4D12-8CCB-FF20BF5CB71D at LBA 2048+69632
[ 3.366 cpu0 kernel] Boot: peripherals ready (75ms)
[ 3.388 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 3.388 cpu0 kernel] root: mounted read-only from memory at 0xbbbb6000+0x600000, filesystem 40549739a25c55e7ad92cca56d0cefc9, 1536 blocks
[ 3.405 cpu0 kernel] Boot: subsystems ready (17ms)
[ 3.407 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 3.420 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 3.420 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 3.420 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 3.421 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 3.421 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 3.432 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 3.433 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 3.433 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 4.939 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 4.954 cpu0 kernel] root: the partition ROOT was read from, 56D0729B-86EC-4316-8915-F271C4B2C9B8, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 4.955 cpu0 kernel] Boot: storage ready (1534ms)
[ 4.955 cpu0 kernel] virtio-console: no device found
[ 4.955 cpu0 kernel] GPU: using UEFI GOP
[ 4.955 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 4.956 cpu0 kernel] GPU: none this boot, running headless
[ 4.959 cpu0 kernel] Boot: devices ready (3ms)
[ 4.959 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 4.960 cpu0 kernel] Boot: complete (1674ms)
[ 4.960 cpu0 kernel] boot: power-on to loader 2027 ms, loader 995 ms (ROOT read 237 ms), kernel to Boot: complete 1937 ms
[ 4.961 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 4.967 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 4.968 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 5.040 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 5.041 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 5.041 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 5.041 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 5.041 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 5.041 cpu0 kernel] mmio: 0x10600000+0x200000 Uncacheable
[ 5.041 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10600000 — inside firmware's mem 0x10500000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 5.041 cpu0 kernel] iommu: 00:03.0 moves to domain1

15:38:52   STALL virt_claim_lpi  (20s)
15:38:52   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:38:52 host: fastest boot 3204 ms against the reference 1424 ms — liveness ceilings paid at 2.25x
15:38:52 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:38:52 failures:
15:38:52     virt_claim_lpi: STALLED: waiting for the job test_rs_claim_lpi to end — it went quiet

15:38:52 1 of those reds are the ceiling: virt_claim_lpi

15:38:52 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (47.0s; workers: 26s building, 20s testing)
15:38:52 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-26522-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-8bef5b37e99e2df5 virt_claim_lpi` (exit status: 1)
EXIT=1

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation m4-any-route-a-deviceid (patch as posted for b26a9cd): virt_claim_lpi at 0de25fd, EXIT=1, part 1 of 1

    Finished `test` profile [optimized + debuginfo] target(s) in 0.52s
     Running tests/toyos.rs (target/debug/deps/toyos_build-8bef5b37e99e2df5)

15:38:53 running 1 tests, 12 wide

15:38:53   RUN   virt_claim_lpi
15:38:53   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
15:38:57   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (5s)
15:38:57   BUILD aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi
15:39:02   BUILT aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi  (4s)
15:39:02   BUILD aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi
15:39:04   BUILT aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi  (3s)
15:39:04   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
15:39:09   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (5s)
qemu-system-aarch64: warning: nic e1000e.0 has no peer
15:39:12   [virt] [ 2.020 test-runner pid=4] claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each
15:39:12   [virt] [ 0.419 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
15:39:12   [virt] [ 2.014 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
15:39:12   [virt] [ 2.012 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
15:39:12   [virt] [ 2.015 cpu0 kernel] pcidev: slot 0 took its first message on LPI 8192
15:39:12   [virt] [ 2.026 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
15:39:12   [virt] [ 2.026 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
15:39:12   [virt] [ 2.150 test-runner pid=5] claim_unrouted: e1000e, routed past the SMMUv3, was refused, and edu was claimed after
15:39:12 FAIL virt_claim_lpi: the kernel never refused e1000e by "NOT HANDED OVER — no message of its own could be made for it — the IORT gives it no DeviceID at this kernel's ITS behind the SMMUv3"
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 0.335 cpu0 loader] ToyOS Bootloader 1.0
[ 0.336 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 0.336 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 0.337 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 0.338 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-Ie11e58e3ddac1da8 (image scope) holds 0
[ 0.339 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 0.340 cpu0 loader] RSDP address: 0xbcb43018
[ 0.340 cpu0 loader] Boot partition: LBA 2048+69632 signature [dc, e9, 75, b4, 2f, 63, f5, 4b, 94, 0a, 35, 7d, 8c, 0c, 38, 68]
[ 0.341 cpu0 loader] Log partition: signature [6b, dc, 41, 4f, 7c, 81, ef, 4c, b9, b7, 7e, 8a, f6, 3c, 96, 90]
[ 0.349 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 0.355 cpu0 loader] Slot A: signed header 0b4c0a146e86d45bf172b6e4ecbc1a320bd85c915e00e4c78a6e91e5f12f4523 verifies under this loader's key, version 1791646744
[ 0.371 cpu0 loader] ROOT: read into memory at 0xbbbb6000+0x600000 from LBA 212992+12288, 1048576 bytes a request (optimal granularity: not reported), in 158184 counter ticks
[ 0.384 cpu0 loader] Slot A: ROOT hashed in 299657 counter ticks
[ 0.384 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 0.385 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 0.386 cpu0 loader] Kernel: 2586448 bytes
[ 0.386 cpu0 loader] Boot parameter: "root=40549739a25c55e7ad92cca56d0cefc9,boot-slot=A"
[ 0.387 cpu0 loader] Loading kernel elf...
[ 0.387 cpu0 loader] Kernel stack size: 8388608
[ 0.387 cpu0 loader] Kernel memory size: 13709312
[ 0.390 cpu0 loader] Kernel memory located at: 0xbae00000
[ 0.390 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 497324 }, filesz: 497324, file_offset: 0, flags: SegmentFlags(4) }
[ 0.391 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 563200, len: 1076736 }, filesz: 1076736, file_offset: 497664, flags: SegmentFlags(5) }
[ 0.392 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1705472, len: 2560 }, filesz: 240, file_offset: 1574400, flags: SegmentFlags(6) }
[ 0.393 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1771248, len: 3545808 }, filesz: 27184, file_offset: 1574640, flags: SegmentFlags(6) }
[ 0.393 cpu0 loader] Applied 3037 relocations
[ 0.394 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 0.394 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 0.395 cpu0 loader] Starting kernel...
[ 0.395 cpu0 loader] CPU: entered at EL1
[ 0.395 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 0.396 cpu0 loader] GCD: 0x10500000+0x2eb00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.396 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.397 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.397 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 0.398 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 0.398 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 0.399 cpu0 loader] Boot map: root 0xbac94000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 0.399 cpu0 loader] Kernel image: 0xbae00000+0xd13000 is inside the 0x100000000-byte boot map
[ 0.400 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 0.400 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 0.401 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 0.401 cpu0 loader] Loader counter: 8030080 at entry, 9645622 at the handoff
[ 0.402 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 0.403 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 0.403 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 0.403 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 0.404 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 0.405 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 0.405 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 0.405 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 0.405 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 0.405 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 0.406 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 0.406 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 0.406 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 0.406 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 0.407 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 0.407 cpu0 kernel] memory: 0x000048000000..0x0000bac91000 uefi type 7
[ 0.407 cpu0 kernel] memory: 0x0000bac91000..0x0000bc431000 uefi type 2
[ 0.407 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 0.407 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 0.408 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 0.408 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 0.408 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 0.408 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 0.408 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 0.409 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 0.409 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 0.409 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 0.409 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f5000 uefi type 7
[ 0.409 cpu0 kernel] memory: 0x0000be0f5000..0x0000bfa38000 uefi type 4
[ 0.409 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 0.410 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 0.410 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 0.410 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 0.410 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 0.410 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 0.411 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 0.411 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 0.411 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 0.411 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 0.411 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 0.411 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 0.412 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 0.412 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 0.412 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 0.412 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 0.412 cpu0 kernel] boot: memory map 0xbac92018+0x318, kernel 0xbae00000+0xd13000, stack image+0x513000+0x800000
[ 0.412 cpu0 kernel] boot: kernel elf 0xbc1b6018+0x277750, rsdp 0xbcb43018, boot pml4 0xbac94000
[ 0.413 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 0.413 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [dc, e9, 75, b4, 2f, 63, f5, 4b, 94, 0a, 35, 7d, 8c, 0c, 38, 68]
[ 0.413 cpu0 kernel] boot: log partition guid [6b, dc, 41, 4f, 7c, 81, ef, 4c, b9, b7, 7e, 8a, f6, 3c, 96, 90]
[ 0.413 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 0.414 cpu0 kernel] boot: root=40549739a25c55e7ad92cca56d0cefc9
[ 0.414 cpu0 kernel] boot: slot A, the one the slot table marks
[ 0.414 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 0.414 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 0.414 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 0.415 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 0.416 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 0.416 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 0.417 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 0.417 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 0.417 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 0.417 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 0.417 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 0.418 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 0.418 cpu0 kernel] PSCI: 1.1 through HVC
[ 0.418 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 0.418 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 0.418 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 0.419 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 0.419 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 0.419 cpu0 kernel] mmio: 0x8080000+0x10000 Uncacheable
[ 0.419 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
[ 0.420 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 0.420 cpu0 kernel] symbols: loaded 18544 kernel symbols
[ 0.421 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 0.421 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 0.421 cpu0 kernel] Boot: CPU ready (0ms)
[ 0.422 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 0.422 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 0.422 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 0.422 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 0.422 cpu0 kernel] PCI: Enumerating devices...
[ 0.422 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 0.422 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 0.423 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 0.423 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 0.423 cpu0 kernel]   PCI 00:04.0 [0600] vendor=1b36 device=000b prog_if=00 bars=[]
[ 0.424 cpu0 kernel]   PCI 08:00.0 [0604] vendor=1b36 device=000c prog_if=00 bars=[bar0=0x10400000]
[ 0.424 cpu0 kernel]   PCI 09:00.0 [0200] vendor=8086 device=10d3 prog_if=00 bars=[bar0=0x10220000 bar1=0x10200000 bar2=none(it is an I/O BAR at port 0x1000, not memory) bar3=0x10240000]
[ 0.433 cpu0 kernel] PCI: Enumeration complete, 7 functions.
[ 0.433 cpu0 kernel] pcidev: PCI 08:00.0 forwards 0x10200000..0x10400000 to its secondary bus
[ 0.434 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x10200000..0x10500000, mem 0x4000000..0x8000000, mem 0x10500000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 0.434 cpu0 kernel] pcidev: 7 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 0.435 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 0.435 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 0.435 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 0.435 cpu0 kernel] pcidev:   0x10401000..0x40000000 (763 MiB)
[ 0.435 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 0.435 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 0.435 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 0.436 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 0.436 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 0.436 cpu0 kernel] IOMMU: 08:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2048 })
[ 0.436 cpu0 kernel] IOMMU: 09:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2304 })
[ 0.437 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 5 functions' streams aborting in a table of 64, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 0.438 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 0.438 cpu0 kernel] gpt: the boot volume names 4F41DC6B-817C-4CEF-B9B7-7E8AF63C9690 as the log partition
[ 0.438 cpu0 kernel] gpt: firmware booted us from partition B475E9DC-632F-4BF5-940A-357D8C0C3868 at LBA 2048+69632
[ 0.438 cpu0 kernel] Boot: peripherals ready (16ms)
[ 0.439 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 0.439 cpu0 kernel] root: mounted read-only from memory at 0xbbbb6000+0x600000, filesystem 40549739a25c55e7ad92cca56d0cefc9, 1536 blocks
[ 0.439 cpu0 kernel] Boot: subsystems ready (0ms)
[ 0.441 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 0.441 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 0.441 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 0.442 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 0.442 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 0.442 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.443 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.443 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 0.444 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 1.952 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 1.980 cpu0 kernel] root: the partition ROOT was read from, A49F90FB-FF86-47F9-9AA7-CA3FF8AF0E96, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 1.985 cpu0 kernel] Boot: storage ready (1542ms)
[ 1.986 cpu0 kernel] virtio-console: no device found
[ 1.986 cpu0 kernel] GPU: using UEFI GOP
[ 1.986 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 1.987 cpu0 kernel] GPU: none this boot, running headless
[ 1.987 cpu0 kernel] Boot: devices ready (1ms)
[ 1.987 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 1.988 cpu0 kernel] Boot: complete (1567ms)
[ 1.988 cpu0 kernel] boot: power-on to loader 334 ms, loader 67 ms (ROOT read 6 ms), kernel to Boot: complete 1586 ms
[ 1.988 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 2.004 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.006 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.011 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.012 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 2.012 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.012 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.012 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 2.012 cpu0 kernel] mmio: 0x10600000+0x200000 Uncacheable
[ 2.001 supervisor] supervisor: build 0de25fd5e4007a51baae8e04e3505d520a9f043d dirty, committed 2026-10-10 14:53:26 UTC, toolchain c6ef51116e8de2e2, aarch64
[ 2.002 supervisor tid=1] supervisor: /home/toy could not be made, so this boot has no session home: permission denied
[ 2.003 supervisor] supervisor: logkeeper: /state/logkeeper could not be made: permission denied
[ 2.004 supervisor] supervisor: started logkeeper
[ 2.006 supervisor] supervisor: started test-runner
[ 2.008 logkeeper] logkeeper: cannot create /log/unknown-00.log: permission denied
[ 2.008 logkeeper] logkeeper: no /log on this machine - this boot's kernel log is on the console only (undated: this machine will not say what time it is)
[ 2.009 test-runner] ===READY===
[ 2.012 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10600000 — inside firmware's mem 0x10500000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 2.014 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.014 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.014 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 4
[ 2.014 cpu0 kernel] iommu: domain1 maps 0x46600000..0x46800000 at 0x400002000000
[ 2.015 cpu0 kernel] pcidev: slot 0 took its first message on LPI 8192
[ 2.026 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.026 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.010 test-runner] ===TEST_START test_rs_claim_lpi===
[ 2.020 test-runner pid=4] claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each
[ 2.050 cpu0 kernel] exit: test_rs_claim_lpi pid=4 code=0 cpu=15ms peak=2MB allocs=2 frees=0 syscalls=56 syscall_wall=10ms 1=1 6=1 10=5 14=1 50=1 51=1 63=1 66=18 72=1 73=1 89=1 90=16 91=1 99=1 106=3 111=1 117=1 118=1
[ 2.050 cpu0 kernel] spawn: /system/bin/test_rs_claim_unrouted pid=5 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[ 2.051 cpu0 kernel] iommu: domain2 root=0x4080a000 context=0x4080b000 asid=2 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 2.051 cpu0 kernel] ITS: 09:00.0, DeviceID 0x900, event 0 is slot 1's LPI 8193
[ 2.051 cpu0 kernel] mmio: 0x10240000+0x1000 Uncacheable
[ 2.051 cpu0 kernel] PCI 09:00.0: msix address=0x08090040 data=0x00000000
[ 2.051 cpu0 kernel] mmio: 0x10220000+0x20000 Uncacheable
[ 2.070 cpu0 kernel] mmio: 0x10800000+0x200000 Uncacheable
[ 2.070 cpu0 kernel] pcidev: PCI 09:00.0 BAR 0 left 0x10800000: with the BAR moved onto it and decode on it answers 0xffffffff, and this function answers 0x00140241 at 0x10220000, so nothing routes it
[ 2.070 cpu0 kernel] mmio: 0x10a00000+0x200000 Uncacheable
[ 2.071 cpu0 kernel] pcidev: PCI 09:00.0 BAR 0 left 0x10a00000: with the BAR moved onto it and decode on it answers 0xffffffff, and this function answers 0x00140241 at 0x10220000, so nothing routes it
[ 2.072 cpu0 kernel] mmio: 0x10c00000+0x200000 Uncacheable
[ 2.073 cpu0 kernel] pcidev: PCI 09:00.0 BAR 0 left 0x10c00000: with the BAR moved onto it and decode on it answers 0xffffffff, and this function answers 0x00140241 at 0x10220000, so nothing routes it
[ 2.073 cpu0 kernel] mmio: 0x10e00000+0x200000 Uncacheable
[ 2.074 cpu0 kernel] pcidev: PCI 09:00.0 BAR 0 left 0x10e00000: with the BAR moved onto it and decode on it answers 0xffffffff, and this function answers 0x00140241 at 0x10220000, so nothing routes it
[ 2.075 cpu0 kernel] mmio: 0x11000000+0x200000 Uncacheable
[ 2.076 cpu0 kernel] pcidev: PCI 09:00.0 BAR 0 left 0x11000000: with the BAR moved onto it and decode on it answers 0xffffffff, and this function answers 0x00140241 at 0x10220000, so nothing routes it
[ 2.076 cpu0 kernel] mmio: 0x11200000+0x200000 Uncacheable
[ 2.077 cpu0 kernel] pcidev: PCI 09:00.0 BAR 0 left 0x11200000: with the BAR moved onto it and decode on it answers 0xffffffff, and this function answers 0x00140241 at 0x10220000, so nothing routes it
[ 2.078 cpu0 kernel] mmio: 0x11400000+0x200000 Uncacheable
[ 2.078 cpu0 kernel] pcidev: PCI 09:00.0 BAR 0 left 0x11400000: with the BAR moved onto it and decode on it answers 0xffffffff, and this function answers 0x00140241 at 0x10220000, so nothing routes it
[ 2.080 cpu0 kernel] mmio: 0x11600000+0x200000 Uncacheable
[ 2.083 cpu0 kernel] pcidev: PCI 09:00.0 BAR 0 left 0x11600000: with the BAR moved onto it and decode on it answers 0xffffffff, and this function answers 0x00140241 at 0x10220000, so nothing routes it
[ 2.085 cpu0 kernel] ITS: 09:00.0, DeviceID 0x900, unmapped from slot 1
[ 2.050 test-runner] ===TEST_END test_rs_claim_lpi exit=0===
[ 2.050 test-runner] ===TEST_START test_rs_claim_unrouted===
[ 2.150 test-runner pid=5] claim_unrouted: e1000e, routed past the SMMUv3, was refused, and edu was claimed after
[ 2.150 test-runner] ===TEST_END test_rs_claim_unrouted exit=0===
[ 2.150 test-runner] ===TEST_START test_rs_claim_bar_fault===
[ 2.151 test-runner pid=6] claim_bar_fault: a read into the BAR and a write from it were refused BadAddress, the registers untouched
[ 2.153 test-runner pid=6] claim_bar_fault: the frame child's fault in the BAR ended it
[ 2.154 test-runner pid=6] claim_bar_fault: the jump child's fault in the BAR ended it
[ 2.085 cpu0 kernel] pcidev: PCI 09:00.0 NOT HANDED OVER — its BAR was moved onto 8 32-bit address(es) inside the windows firmware declared and the function answered at none of them
[ 2.150 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.150 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.150 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.150 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.150 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.150 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.150 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.155 test-runner pid=6] claim_bar_fault: two faults in the BAR ended their processes, and a syscall naming it was refused
[ 2.155 test-runner] ===TEST_END test_rs_claim_bar_fault exit=0===
[ 2.150 cpu0 kernel] exit: test_rs_claim_unrouted pid=5 code=0 cpu=35ms peak=2MB allocs=2 frees=0 syscalls=14 syscall_wall=35ms 6=1 10=2 14=1 50=1 51=1 63=1 72=1 73=1 91=1 99=1 106=1 111=2
[ 2.151 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=6 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[ 2.151 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.151 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.151 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.151 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.151 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.151 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 6
[ 2.151 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.151 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.153 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=7 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=1ms)
[ 2.153 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.153 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.153 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.153 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.153 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.153 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 7
[ 2.153 cpu0 kernel alert] FAULT pc=0x000001000002da8c far=0x000001000002f1f8 esr=0x02000000 sp=0x000000fffec00080 tid=0
[ 2.153 cpu0 kernel] SIGILL tid=0: illegal instruction
[ 2.153 cpu0 kernel]   pc:
[ 2.153 cpu0 kernel]     0x1000002da8c  /system/bin/test_rs_claim_bar_fault+0x2da8c id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.153 cpu0 kernel]   Registers:
[ 2.153 cpu0 kernel]     x0 =0x000000fffec00000  x1 =0x0000000000100000
[ 2.153 cpu0 kernel]     x2 =0x0000000000000000  x3 =0x0000000000000000
[ 2.153 cpu0 kernel]     x4 =0x0000000000000000  x5 =0x0000000000000000
[ 2.153 cpu0 kernel]     x6 =0x0000000000000000  x7 =0x0000000000000000
[ 2.153 cpu0 kernel]     x8 =0x000000fffec00080  x9 =0x0000000000000065
[ 2.153 cpu0 kernel]     x10=0x0000000000000065  x11=0x000000006d617266
[ 2.153 cpu0 kernel]     x12=0x000001000000956c  x13=0x0000000000000070
[ 2.153 cpu0 kernel]     x14=0x0000000000000005  x15=0x0000000000000000
[ 2.153 cpu0 kernel]     x16=0x0000000000000000  x17=0x0000000000000000
[ 2.153 cpu0 kernel]     x18=0x0000000000000000  x19=0x000000ffff000080
[ 2.153 cpu0 kernel]     x20=0x0000000000000005  x21=0x000000fffffffcc0
[ 2.153 cpu0 kernel]     x22=0x0000000000000000  x23=0x0000000000000000
[ 2.153 cpu0 kernel]     x24=0x0000000000000000  x25=0x0000000000000000
[ 2.153 cpu0 kernel]     x26=0x0000000000000000  x27=0x0000000000000000
[ 2.153 cpu0 kernel]     x28=0x0000000000000000  x29=0x000000fffec00080
[ 2.153 cpu0 kernel]     x30=0x000001000002da10  sp=0x000000fffec00080  spsr=0x60000000
[ 2.153 cpu0 kernel]   Backtrace:
[ 2.153 cpu0 kernel]   Page fault trace (1 total, last 1):
[ 2.153 cpu0 kernel]     fault=0x1000002f1f8 elf_off=0x0 blk=524288 relocs=605 353us [    X]
[ 2.153 cpu0 kernel]   Thread pointer: 0xffff400210
[ 2.153 cpu0 kernel]     TP+0x0 = 0x000000ffff400000
[ 2.153 cpu0 kernel]     TP+0x8 = 0x0000000000000000
[ 2.153 cpu0 kernel]     TP+0x10 = 0x0000000000000000
[ 2.153 cpu0 kernel]     TP+0x18 = 0x0000000000000001
[ 2.153 cpu0 kernel]     TP+0x20 = 0x0000000000000000
[ 2.153 cpu0 kernel]     TP+0x28 = 0x0000000000000000
[ 2.153 cpu0 kernel]     TP+0x30 = 0x0000000000000008
[ 2.153 cpu0 kernel]     TP+0x38 = 0x0000000000000000
[ 2.153 cpu0 kernel]   TLS data before TP:
[ 2.153 cpu0 kernel]     TP-0x8 = 0xffffffffffffffff
[ 2.153 cpu0 kernel]     TP-0x10 = 0xffffffffffffffff
[ 2.153 cpu0 kernel]     TP-0x18 = 0xffffffffffffffff
[ 2.153 cpu0 kernel]     TP-0x20 = 0xffffffffffffffff
[ 2.153 cpu0 kernel] exit: test_rs_claim_bar_fault pid=7 code=-1 cpu=0ms peak=2MB allocs=2 frees=0 syscalls=10 syscall_wall=0ms 1=1 6=1 10=1 63=1 73=1 91=1 99=1 106=1 111=1 117=1
[ 2.153 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.153 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.154 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=8 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[ 2.154 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.154 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.154 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.154 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.154 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.154 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 8
[ 2.154 cpu0 kernel alert] FAULT pc=0x000000fffec00080 far=0x000000fffec00080 esr=0x8200000e sp=0x000000fffffffcc0 tid=0
[ 2.154 cpu0 kernel] SEGFAULT tid=0: execute protection violation at 0xfffec00080 (FSC 0xe)
[ 2.154 cpu0 kernel]   pc:
[ 2.154 cpu0 kernel]     0xfffec00080
[ 2.154 cpu0 kernel]   Page walk for 0xfffec00080 through TTBR0_EL1=0x800004035a000:
[ 2.154 cpu0 kernel]     L0[1] = 0x0000000040360003
[ 2.154 cpu0 kernel]     L1[511] = 0x0000000040362003
[ 2.154 cpu0 kernel]     L2[502] = 0x0060000010600c41
[ 2.154 cpu0 kernel]   Registers:
[ 2.154 cpu0 kernel]     x0 =0x000000fffec00000  x1 =0x0000000000100000
[ 2.154 cpu0 kernel]     x2 =0x0000000000000000  x3 =0x0000000000000000
[ 2.154 cpu0 kernel]     x4 =0x0000000000000000  x5 =0x0000000000000000
[ 2.154 cpu0 kernel]     x6 =0x0000000000000000  x7 =0x0000000000000000
[ 2.154 cpu0 kernel]     x8 =0x000000fffec00080  x9 =0x00000000706d756a
[ 2.154 cpu0 kernel]     x10=0x00000000706d756a  x11=0x0000000000000000
[ 2.154 cpu0 kernel]     x12=0x000001000000956c  x13=0x0000000000000070
[ 2.154 cpu0 kernel]     x14=0x0000000000000005  x15=0x0000000000000000
[ 2.154 cpu0 kernel]     x16=0x0000000000000000  x17=0x0000000000000000
[ 2.154 cpu0 kernel]     x18=0x0000000000000000  x19=0x000000ffff000080
[ 2.154 cpu0 kernel]     x20=0x0000000000000004  x21=0x000000fffffffcc0
[ 2.154 cpu0 kernel]     x22=0x0000000000000000  x23=0x0000000000000000
[ 2.154 cpu0 kernel]     x24=0x0000000000000000  x25=0x0000000000000000
[ 2.154 cpu0 kernel]     x26=0x0000000000000000  x27=0x0000000000000000
[ 2.154 cpu0 kernel]     x28=0x0000000000000000  x29=0x000000fffffffe80
[ 2.154 cpu0 kernel]     x30=0x000001000002daac  sp=0x000000fffffffcc0  spsr=0x60000800
[ 2.154 cpu0 kernel]   Backtrace:
[ 2.154 cpu0 kernel]     0x1000002e374  /system/bin/test_rs_claim_bar_fault+0x2e373 id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.154 cpu0 kernel]     0x1000002cd90  /system/bin/test_rs_claim_bar_fault+0x2cd8f id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.154 cpu0 kernel]     0x100000550b0  /system/bin/test_rs_claim_bar_fault+0x550af id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.154 cpu0 kernel]     0x1000002dd64  /system/bin/test_rs_claim_bar_fault+0x2dd63 id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.154 cpu0 kernel]     0x10000059304  /system/bin/test_rs_claim_bar_fault+0x59303 id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.154 cpu0 kernel]     0x1000002f20c  /system/bin/test_rs_claim_bar_fault+0x2f20b id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.154 cpu0 kernel]   Page fault trace (1 total, last 1):
[ 2.154 cpu0 kernel]     fault=0x1000002f1f8 elf_off=0x0 blk=524288 relocs=605 184us [    X]
[ 2.154 cpu0 kernel]   Thread pointer: 0xffff400210
[ 2.154 cpu0 kernel]     TP+0x0 = 0x000000ffff400000
[ 2.154 cpu0 kernel]     TP+0x8 = 0x0000000000000000
[ 2.154 cpu0 kernel]     TP+0x10 = 0x0000000000000000
[ 2.154 cpu0 kernel]     TP+0x18 = 0x0000000000000001
[ 2.154 cpu0 kernel]     TP+0x20 = 0x0000000000000000
[ 2.154 cpu0 kernel]     TP+0x28 = 0x0000000000000000
[ 2.154 cpu0 kernel]     TP+0x30 = 0x0000000000000008
[ 2.154 cpu0 kernel]     TP+0x38 = 0x0000000000000000
[ 2.154 cpu0 kernel]   TLS data before TP:
[ 2.154 cpu0 kernel]     TP-0x8 = 0xffffffffffffffff
[ 2.154 cpu0 kernel]     TP-0x10 = 0xffffffffffffffff
[ 2.154 cpu0 kernel]     TP-0x18 = 0xffffffffffffffff
[ 2.154 cpu0 kernel]     TP-0x20 = 0xffffffffffffffff
[ 2.154 cpu0 kernel] exit: test_rs_claim_bar_fault pid=8 code=-1 cpu=0ms peak=2MB allocs=2 frees=0 syscalls=10 syscall_wall=0ms 1=1 6=1 10=1 63=1 73=1 91=1 99=1 106=1 111=1 117=1
[ 2.154 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.154 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.154 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.154 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.155 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.155 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.155 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.155 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 6
[ 2.155 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.155 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.155 cpu0 kernel] exit: test_rs_claim_bar_fault pid=6 code=0 cpu=2ms peak=2MB allocs=2 frees=0 syscalls=54 syscall_wall=3ms 0=2 1=3 6=1 10=12 14=1 21=2 24=1 25=2 50=5 51=1 63=1 72=1 73=1 91=1 99=2 102=3 105=3 106=6 108=2 111=2 117=2
[ 2.155 cpu0 kernel tid=1] exit: test-runner pid=3 code=0 cpu=4ms peak=6MB allocs=3 frees=0 syscalls=69 syscall_wall=145ms 6=1 10=18 14=1 21=3 24=3 25=3 40=1 50=10 51=1 63=2 72=1 73=2 91=1 99=2 102=6 105=5 106=6 108=3

15:39:12   FAIL  virt_claim_lpi  (3s)
15:39:12   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:39:12 host: fastest boot 461 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
15:39:12 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:39:12 failures:
15:39:12     virt_claim_lpi: the kernel never refused e1000e by "NOT HANDED OVER — no message of its own could be made for it — the IORT gives it no DeviceID at this kernel's ITS behind the SMMUv3"

15:39:12 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (18.9s; workers: 16s building, 3s testing)
15:39:12 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-35069-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-8bef5b37e99e2df5 virt_claim_lpi` (exit status: 1)
EXIT=1

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation patch r1-irq-no-preempt-count, part 1 of 1

diff --git a/kernel/src/arch/aarch64/trap.rs b/kernel/src/arch/aarch64/trap.rs
index 4266f67d3..586935f5c 100644
--- a/kernel/src/arch/aarch64/trap.rs
+++ b/kernel/src/arch/aarch64/trap.rs
@@ -209,7 +209,6 @@ fn irq(frame: &Frame, from_el0: bool) -> bool {
         irqchip::SGI_OFF => super::power::cpu_off(),
         _ => {}
     }
-    percpu::preempt_count_up();
     let resched = match intid {
         irqchip::SGI_KICK => {
             percpu::irq_took(Source::Kick);
@@ -241,7 +240,6 @@ fn irq(frame: &Frame, from_el0: bool) -> bool {
             }
         },
     };
-    percpu::preempt_count_down();
     irqchip::end(intid);
     if resched {
         if from_el0 {

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation r1-irq-no-preempt-count: virt_claim_lpi at 0de25fd, EXIT=1, part 1 of 1

    Finished `test` profile [optimized + debuginfo] target(s) in 0.33s
     Running tests/toyos.rs (target/debug/deps/toyos_build-8bef5b37e99e2df5)

15:39:12 running 1 tests, 12 wide

15:39:12   RUN   virt_claim_lpi
15:39:12   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
15:39:14   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (2s)
15:39:14   BUILD aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi
15:39:16   BUILT aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi  (2s)
15:39:16   BUILD aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi
15:39:18   BUILT aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi  (2s)
15:39:18   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
15:39:23   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (5s)
qemu-system-aarch64: warning: nic e1000e.0 has no peer
15:39:40 FAIL virt_claim_lpi: kernel panic: PANIC: panicked at kernel/src/pcidev/mod.rs:1756:5: — the guest went quiet because every CPU is halted, not because it was still working. The panic is the finding and the guard never got to be one. It was waiting for the job test_rs_claim_lpi to end
--- what the kernel said as it died ---
[ 1.923 cpu0 kernel alert] PANIC: panicked at kernel/src/pcidev/mod.rs:1756:5:
pcidev: slot 0's interrupt arrived with the preempt count at zero
[ 1.923 cpu0 kernel]   Backtrace:
[ 1.923 cpu0 kernel]     0xffff8000baf8d5b4  core::panicking::panic_fmt+0x28
[ 1.923 cpu0 kernel]     0xffff8000baee50a4  kernel::pcidev::isr+0x118
[ 1.923 cpu0 kernel]     0xffff8000baeda68c  kernel::arch::aarch64::trap::irq+0x34c
[ 1.923 cpu0 kernel]     0xffff8000baeda7c8  kernel::arch::aarch64::trap::dispatch+0x34
[ 1.923 cpu0 kernel]     0xffff8000baed97fc  [kernel+0xffff8000000d97fc]
[ 1.923 cpu0 kernel]   Contexts: cpu0 crashed at sp=0xffff80004033bcc0, asking about ctx 0xffff80004023fe10
[ 1.923 cpu0 kernel]   cpu0 is on ctx 0xffff80004023fe10 pid=4 tid=0 stack_top=0xffff80004033c000 saved_sp=0xffff80004033bd80
[ 1.923 cpu0 kernel]   Running: pid=4 tid=Some(Tid(0))
[ 1.928 cpu0 kernel alert] panic: rebooting in 60 s, timed by the calibrated clock
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 0.307 cpu0 loader] ToyOS Bootloader 1.0
[ 0.308 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 0.308 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 0.309 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 0.309 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-I18c71a2f5165dac4 (image scope) holds 0
[ 0.310 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 0.310 cpu0 loader] RSDP address: 0xbcb43018
[ 0.310 cpu0 loader] Boot partition: LBA 2048+69632 signature [0b, 1a, 92, 8b, a8, 0e, 45, 41, b4, e0, 84, 8c, be, 7c, 1e, 55]
[ 0.311 cpu0 loader] Log partition: signature [e9, ce, 54, 58, 11, 22, d8, 4d, 86, e0, 1a, dc, f9, bc, 88, e6]
[ 0.316 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 0.320 cpu0 loader] Slot A: signed header e91fc8afc790a7a6d4f9d90c4c98dda2e6a9b99a5ca2fd011020120a180d48fe verifies under this loader's key, version 1791646758
[ 0.334 cpu0 loader] ROOT: read into memory at 0xbbbb6000+0x600000 from LBA 212992+12288, 1048576 bytes a request (optimal granularity: not reported), in 111343 counter ticks
[ 0.347 cpu0 loader] Slot A: ROOT hashed in 286908 counter ticks
[ 0.347 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 0.348 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 0.348 cpu0 loader] Kernel: 2586328 bytes
[ 0.348 cpu0 loader] Boot parameter: "root=40549739a25c55e7ad92cca56d0cefc9,boot-slot=A"
[ 0.349 cpu0 loader] Loading kernel elf...
[ 0.349 cpu0 loader] Kernel stack size: 8388608
[ 0.349 cpu0 loader] Kernel memory size: 13709312
[ 0.352 cpu0 loader] Kernel memory located at: 0xbae00000
[ 0.352 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 497324 }, filesz: 497324, file_offset: 0, flags: SegmentFlags(4) }
[ 0.353 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 563200, len: 1076616 }, filesz: 1076616, file_offset: 497664, flags: SegmentFlags(5) }
[ 0.354 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1705352, len: 2680 }, filesz: 240, file_offset: 1574280, flags: SegmentFlags(6) }
[ 0.354 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1771128, len: 3545928 }, filesz: 27184, file_offset: 1574520, flags: SegmentFlags(6) }
[ 0.355 cpu0 loader] Applied 3037 relocations
[ 0.355 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 0.356 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 0.356 cpu0 loader] Starting kernel...
[ 0.357 cpu0 loader] CPU: entered at EL1
[ 0.357 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 0.357 cpu0 loader] GCD: 0x10500000+0x2eb00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.358 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.358 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.359 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 0.359 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 0.360 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 0.361 cpu0 loader] Boot map: root 0xbac94000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 0.361 cpu0 loader] Kernel image: 0xbae00000+0xd13000 is inside the 0x100000000-byte boot map
[ 0.362 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 0.362 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 0.362 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 0.363 cpu0 loader] Loader counter: 7367544 at entry, 8722217 at the handoff
[ 0.363 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 0.365 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 0.365 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 0.365 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 0.365 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 0.366 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 0.366 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 0.366 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 0.366 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 0.366 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 0.367 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 0.367 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 0.367 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 0.367 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 0.367 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 0.367 cpu0 kernel] memory: 0x000048000000..0x0000bac91000 uefi type 7
[ 0.368 cpu0 kernel] memory: 0x0000bac91000..0x0000bc431000 uefi type 2
[ 0.368 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 0.368 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 0.368 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 0.368 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 0.368 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 0.369 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 0.369 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 0.369 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 0.369 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 0.369 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 0.369 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f5000 uefi type 7
[ 0.370 cpu0 kernel] memory: 0x0000be0f5000..0x0000bfa38000 uefi type 4
[ 0.370 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 0.370 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 0.370 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 0.370 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 0.370 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 0.371 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 0.371 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 0.371 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 0.371 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 0.371 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 0.371 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 0.372 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 0.372 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 0.372 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 0.372 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 0.372 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 0.372 cpu0 kernel] boot: memory map 0xbac92018+0x318, kernel 0xbae00000+0xd13000, stack image+0x513000+0x800000
[ 0.373 cpu0 kernel] boot: kernel elf 0xbc1b6018+0x2776d8, rsdp 0xbcb43018, boot pml4 0xbac94000
[ 0.373 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 0.373 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [0b, 1a, 92, 8b, a8, 0e, 45, 41, b4, e0, 84, 8c, be, 7c, 1e, 55]
[ 0.373 cpu0 kernel] boot: log partition guid [e9, ce, 54, 58, 11, 22, d8, 4d, 86, e0, 1a, dc, f9, bc, 88, e6]
[ 0.374 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 0.374 cpu0 kernel] boot: root=40549739a25c55e7ad92cca56d0cefc9
[ 0.374 cpu0 kernel] boot: slot A, the one the slot table marks
[ 0.374 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 0.374 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 0.375 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 0.375 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 0.376 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 0.377 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 0.377 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 0.377 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 0.377 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 0.377 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 0.377 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 0.378 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 0.378 cpu0 kernel] PSCI: 1.1 through HVC
[ 0.378 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 0.378 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 0.378 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 0.379 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 0.379 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 0.379 cpu0 kernel] mmio: 0x8080000+0x10000 Uncacheable
[ 0.379 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
[ 0.380 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 0.380 cpu0 kernel] symbols: loaded 18544 kernel symbols
[ 0.381 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 0.381 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 0.381 cpu0 kernel] Boot: CPU ready (0ms)
[ 0.382 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 0.382 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 0.382 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 0.382 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 0.382 cpu0 kernel] PCI: Enumerating devices...
[ 0.382 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 0.382 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 0.383 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 0.383 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 0.383 cpu0 kernel]   PCI 00:04.0 [0600] vendor=1b36 device=000b prog_if=00 bars=[]
[ 0.384 cpu0 kernel]   PCI 08:00.0 [0604] vendor=1b36 device=000c prog_if=00 bars=[bar0=0x10400000]
[ 0.384 cpu0 kernel]   PCI 09:00.0 [0200] vendor=8086 device=10d3 prog_if=00 bars=[bar0=0x10220000 bar1=0x10200000 bar2=none(it is an I/O BAR at port 0x1000, not memory) bar3=0x10240000]
[ 0.393 cpu0 kernel] PCI: Enumeration complete, 7 functions.
[ 0.394 cpu0 kernel] pcidev: PCI 08:00.0 forwards 0x10200000..0x10400000 to its secondary bus
[ 0.394 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x10200000..0x10500000, mem 0x4000000..0x8000000, mem 0x10500000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 0.395 cpu0 kernel] pcidev: 7 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 0.395 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 0.395 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 0.395 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 0.395 cpu0 kernel] pcidev:   0x10401000..0x40000000 (763 MiB)
[ 0.395 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 0.396 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 0.396 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 0.396 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 0.396 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 0.396 cpu0 kernel] IOMMU: 08:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2048 })
[ 0.397 cpu0 kernel] IOMMU: 09:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2304 })
[ 0.397 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 5 functions' streams aborting in a table of 64, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 0.398 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 0.398 cpu0 kernel] gpt: the boot volume names 5854CEE9-2211-4DD8-86E0-1ADCF9BC88E6 as the log partition
[ 0.398 cpu0 kernel] gpt: firmware booted us from partition 8B921A0B-0EA8-4145-B4E0-848CBE7C1E55 at LBA 2048+69632
[ 0.398 cpu0 kernel] Boot: peripherals ready (16ms)
[ 0.399 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 0.399 cpu0 kernel] root: mounted read-only from memory at 0xbbbb6000+0x600000, filesystem 40549739a25c55e7ad92cca56d0cefc9, 1536 blocks
[ 0.399 cpu0 kernel] Boot: subsystems ready (0ms)
[ 0.401 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 0.401 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 0.401 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 0.402 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 0.402 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 0.402 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.402 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.403 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 0.403 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 1.904 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 1.905 cpu0 kernel] root: the partition ROOT was read from, 7F580ED9-27AD-483E-954C-074A043FB67E, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 1.906 cpu0 kernel] Boot: storage ready (1504ms)
[ 1.906 cpu0 kernel] virtio-console: no device found
[ 1.907 cpu0 kernel] GPU: using UEFI GOP
[ 1.907 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 1.907 cpu0 kernel] GPU: none this boot, running headless
[ 1.907 cpu0 kernel] Boot: devices ready (0ms)
[ 1.908 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 1.908 cpu0 kernel] Boot: complete (1527ms)
[ 1.908 cpu0 kernel] boot: power-on to loader 306 ms, loader 56 ms (ROOT read 4 ms), kernel to Boot: complete 1544 ms
[ 1.908 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 1.913 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 1.915 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 1.921 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 1.922 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 1.922 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 1.922 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 1.922 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 1.922 cpu0 kernel] mmio: 0x10600000+0x200000 Uncacheable
[ 1.922 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10600000 — inside firmware's mem 0x10500000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 1.922 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 1.922 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 1.922 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 4
[ 1.923 cpu0 kernel] iommu: domain1 maps 0x46600000..0x46800000 at 0x400002000000
[ 1.923 cpu0 kernel alert] PANIC: panicked at kernel/src/pcidev/mod.rs:1756:5:
pcidev: slot 0's interrupt arrived with the preempt count at zero
[ 1.923 cpu0 kernel]   Backtrace:
[ 1.923 cpu0 kernel]     0xffff8000baf8d5b4  core::panicking::panic_fmt+0x28
[ 1.923 cpu0 kernel]     0xffff8000baee50a4  kernel::pcidev::isr+0x118
[ 1.923 cpu0 kernel]     0xffff8000baeda68c  kernel::arch::aarch64::trap::irq+0x34c
[ 1.923 cpu0 kernel]     0xffff8000baeda7c8  kernel::arch::aarch64::trap::dispatch+0x34
[ 1.923 cpu0 kernel]     0xffff8000baed97fc  [kernel+0xffff8000000d97fc]
[ 1.923 cpu0 kernel]   Contexts: cpu0 crashed at sp=0xffff80004033bcc0, asking about ctx 0xffff80004023fe10
[ 1.923 cpu0 kernel]   cpu0 is on ctx 0xffff80004023fe10 pid=4 tid=0 stack_top=0xffff80004033c000 saved_sp=0xffff80004033bd80
[ 1.923 cpu0 kernel]   Running: pid=4 tid=Some(Tid(0))
[ 1.928 cpu0 kernel alert] panic: rebooting in 60 s, timed by the calibrated clock

15:39:40   FAIL  virt_claim_lpi  (17s)
15:39:40   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:39:40 host: fastest boot 418 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
15:39:40 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:39:40 failures:
15:39:40     virt_claim_lpi: kernel panic: PANIC: panicked at kernel/src/pcidev/mod.rs:1756:5: — the guest went quiet because every CPU is halted, not because it was still working. The panic is the finding and the guard never got to be one. It was waiting for the job test_rs_claim_lpi to end

15:39:40 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (27.9s; workers: 10s building, 17s testing)
15:39:40 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-38455-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-8bef5b37e99e2df5 virt_claim_lpi` (exit status: 1)
EXIT=1

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation patch r1-no-doorbell-leaf, part 1 of 1

diff --git a/kernel/src/arch/aarch64/smmu/domain.rs b/kernel/src/arch/aarch64/smmu/domain.rs
index f40e4c641..c44aa9d2e 100644
--- a/kernel/src/arch/aarch64/smmu/domain.rs
+++ b/kernel/src/arch/aarch64/smmu/domain.rs
@@ -111,7 +111,6 @@ pub fn create(room: u64) -> Result<(DomainId, Iova), IommuError> {
     descriptor.write_u64(0, words[0]);
     if let Some(page) = doorbell {
         assert!(page < addresses.floor(), "SMMU: the doorbell at {page:#x} is inside the addresses a domain hands out");
-        live.put(root, page, Leaf::Doorbell(Phys::new(page).expect("SMMU: a 4 KiB page below 2^48")));
     }
     let domain = Domain { asid, root, context, addresses };
     log!(

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation r1-no-doorbell-leaf: virt_claim_lpi at 0de25fd, EXIT=1, part 1 of 1

    Finished `test` profile [optimized + debuginfo] target(s) in 0.27s
     Running tests/toyos.rs (target/debug/deps/toyos_build-8bef5b37e99e2df5)

15:39:41 running 1 tests, 12 wide

15:39:41   RUN   virt_claim_lpi
15:39:41   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
15:39:43   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (2s)
15:39:43   BUILD aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi
15:39:49   BUILT aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi  (5s)
15:39:49   BUILD aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi
15:39:53   BUILT aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi  (5s)
15:39:53   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
15:40:05   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (12s)
qemu-system-aarch64: warning: nic e1000e.0 has no peer
15:40:08 FAIL virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([ 2.599 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 0.450 cpu0 loader] ToyOS Bootloader 1.0
[ 0.451 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 0.454 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 0.458 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 0.459 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-Id46715ef70248b1f (image scope) holds 0
[ 0.462 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 0.463 cpu0 loader] RSDP address: 0xbcb43018
[ 0.464 cpu0 loader] Boot partition: LBA 2048+69632 signature [c0, b0, cc, 04, 00, bc, 3e, 4b, 9b, 06, 0e, eb, ed, 00, be, 33]
[ 0.465 cpu0 loader] Log partition: signature [6e, 57, 85, f0, 70, a4, f7, 44, b7, aa, e7, e5, 32, 27, ac, cc]
[ 0.521 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 0.536 cpu0 loader] Slot A: signed header 9b1d2725d6412379a146dec42f03fe1e9728ed15ff3c6c1d04ab7ac586603bd0 verifies under this loader's key, version 1791646793
[ 0.624 cpu0 loader] ROOT: read into memory at 0xbbbb6000+0x600000 from LBA 212992+12288, 1048576 bytes a request (optimal granularity: not reported), in 1662295 counter ticks
[ 0.708 cpu0 loader] Slot A: ROOT hashed in 1933482 counter ticks
[ 0.712 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 0.714 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 0.721 cpu0 loader] Kernel: 2586368 bytes
[ 0.726 cpu0 loader] Boot parameter: "root=40549739a25c55e7ad92cca56d0cefc9,boot-slot=A"
[ 0.727 cpu0 loader] Loading kernel elf...
[ 0.727 cpu0 loader] Kernel stack size: 8388608
[ 0.728 cpu0 loader] Kernel memory size: 13709312
[ 0.734 cpu0 loader] Kernel memory located at: 0xbae00000
[ 0.735 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 497268 }, filesz: 497268, file_offset: 0, flags: SegmentFlags(4) }
[ 0.738 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 563200, len: 1076660 }, filesz: 1076660, file_offset: 497664, flags: SegmentFlags(5) }
[ 0.740 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1705400, len: 2632 }, filesz: 240, file_offset: 1574328, flags: SegmentFlags(6) }
[ 0.742 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1771176, len: 3545880 }, filesz: 27184, file_offset: 1574568, flags: SegmentFlags(6) }
[ 0.746 cpu0 loader] Applied 3036 relocations
[ 0.746 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 0.748 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 0.750 cpu0 loader] Starting kernel...
[ 0.750 cpu0 loader] CPU: entered at EL1
[ 0.752 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 0.753 cpu0 loader] GCD: 0x10500000+0x2eb00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.755 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.757 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.758 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 0.760 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 0.764 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 0.765 cpu0 loader] Boot map: root 0xbac94000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 0.767 cpu0 loader] Kernel image: 0xbae00000+0xd13000 is inside the 0x100000000-byte boot map
[ 0.768 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 0.770 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 0.771 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 0.773 cpu0 loader] Loader counter: 10684500 at entry, 18573472 at the handoff
[ 0.774 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 0.776 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 0.776 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 0.776 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 0.781 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 0.783 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 0.783 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 0.783 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 0.783 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 0.784 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 0.784 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 0.784 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 0.784 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 0.785 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 0.785 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 0.785 cpu0 kernel] memory: 0x000048000000..0x0000bac91000 uefi type 7
[ 0.785 cpu0 kernel] memory: 0x0000bac91000..0x0000bc431000 uefi type 2
[ 0.785 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 0.785 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 0.785 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 0.786 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 0.786 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 0.786 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 0.786 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 0.786 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 0.786 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 0.787 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 0.787 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f5000 uefi type 7
[ 0.787 cpu0 kernel] memory: 0x0000be0f5000..0x0000bfa38000 uefi type 4
[ 0.787 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 0.787 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 0.787 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 0.787 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 0.788 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 0.788 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 0.788 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 0.788 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 0.788 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 0.788 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 0.788 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 0.789 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 0.789 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 0.789 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 0.789 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 0.799 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 0.818 cpu0 kernel] boot: memory map 0xbac92018+0x318, kernel 0xbae00000+0xd13000, stack image+0x513000+0x800000
[ 0.859 cpu0 kernel] boot: kernel elf 0xbc1b6018+0x277700, rsdp 0xbcb43018, boot pml4 0xbac94000
[ 0.859 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 0.860 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [c0, b0, cc, 04, 00, bc, 3e, 4b, 9b, 06, 0e, eb, ed, 00, be, 33]
[ 0.860 cpu0 kernel] boot: log partition guid [6e, 57, 85, f0, 70, a4, f7, 44, b7, aa, e7, e5, 32, 27, ac, cc]
[ 0.860 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 0.860 cpu0 kernel] boot: root=40549739a25c55e7ad92cca56d0cefc9
[ 0.860 cpu0 kernel] boot: slot A, the one the slot table marks
[ 0.861 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 0.881 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 0.883 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 0.884 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 0.913 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 0.915 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 0.915 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 0.917 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 0.918 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 0.919 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 0.920 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 0.921 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 0.922 cpu0 kernel] PSCI: 1.1 through HVC
[ 0.923 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 0.924 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 0.924 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 0.924 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 0.927 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 0.927 cpu0 kernel] mmio: 0x8080000+0x10000 Uncacheable
[ 0.927 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
[ 0.928 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 0.929 cpu0 kernel] symbols: loaded 18542 kernel symbols
[ 0.930 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 0.931 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 0.932 cpu0 kernel] Boot: CPU ready (2ms)
[ 0.933 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 0.933 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 0.933 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 0.934 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 0.934 cpu0 kernel] PCI: Enumerating devices...
[ 0.934 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 0.935 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 0.936 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 0.936 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 0.936 cpu0 kernel]   PCI 00:04.0 [0600] vendor=1b36 device=000b prog_if=00 bars=[]
[ 0.937 cpu0 kernel]   PCI 08:00.0 [0604] vendor=1b36 device=000c prog_if=00 bars=[bar0=0x10400000]
[ 0.937 cpu0 kernel]   PCI 09:00.0 [0200] vendor=8086 device=10d3 prog_if=00 bars=[bar0=0x10220000 bar1=0x10200000 bar2=none(it is an I/O BAR at port 0x1000, not memory) bar3=0x10240000]
[ 0.966 cpu0 kernel] PCI: Enumeration complete, 7 functions.
[ 0.968 cpu0 kernel] pcidev: PCI 08:00.0 forwards 0x10200000..0x10400000 to its secondary bus
[ 0.969 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x10200000..0x10500000, mem 0x4000000..0x8000000, mem 0x10500000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 0.970 cpu0 kernel] pcidev: 7 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 0.970 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 0.971 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 0.972 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 0.972 cpu0 kernel] pcidev:   0x10401000..0x40000000 (763 MiB)
[ 0.973 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 0.974 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 0.974 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 0.975 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 0.975 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 0.976 cpu0 kernel] IOMMU: 08:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2048 })
[ 0.977 cpu0 kernel] IOMMU: 09:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2304 })
[ 0.979 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 5 functions' streams aborting in a table of 64, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 0.980 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 0.980 cpu0 kernel] gpt: the boot volume names F085576E-A470-44F7-B7AA-E7E53227ACCC as the log partition
[ 0.981 cpu0 kernel] gpt: firmware booted us from partition 04CCB0C0-BC00-4B3E-9B06-0EEBED00BE33 at LBA 2048+69632
[ 0.982 cpu0 kernel] Boot: peripherals ready (48ms)
[ 0.982 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 0.982 cpu0 kernel] root: mounted read-only from memory at 0xbbbb6000+0x600000, filesystem 40549739a25c55e7ad92cca56d0cefc9, 1536 blocks
[ 0.984 cpu0 kernel] Boot: subsystems ready (1ms)
[ 0.987 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=2ms total=2ms)
[ 0.987 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 0.988 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 0.988 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 0.988 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 0.988 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.989 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.990 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 0.992 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 2.510 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 2.513 cpu0 kernel] root: the partition ROOT was read from, 7D4AC001-3BA0-4602-B93C-30934297FEB7, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 2.516 cpu0 kernel] Boot: storage ready (1527ms)
[ 2.516 cpu0 kernel] virtio-console: no device found
[ 2.517 cpu0 kernel] GPU: using UEFI GOP
[ 2.517 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 2.518 cpu0 kernel] GPU: none this boot, running headless
[ 2.519 cpu0 kernel] Boot: devices ready (2ms)
[ 2.519 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 2.522 cpu0 kernel] Boot: complete (1592ms)
[ 2.523 cpu0 kernel] boot: power-on to loader 445 ms, loader 328 ms (ROOT read 69 ms), kernel to Boot: complete 1748 ms
[ 2.524 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 2.532 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.534 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.539 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.539 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 2.540 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.554 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.555 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 2.555 cpu0 kernel] mmio: 0x10600000+0x200000 Uncacheable
[ 2.527 supervisor] supervisor: build 0de25fd5e4007a51baae8e04e3505d520a9f043d dirty, committed 2026-10-10 14:53:26 UTC, toolchain c6ef51116e8de2e2, aarch64
[ 2.530 supervisor tid=1] supervisor: /home/toy could not be made, so this boot has no session home: permission denied
[ 2.531 supervisor] supervisor: logkeeper: /state/logkeeper could not be made: permission denied
[ 2.532 supervisor] supervisor: started logkeeper
[ 2.534 supervisor] supervisor: started test-runner
[ 2.535 logkeeper] logkeeper: cannot create /log/unknown-00.log: permission denied
[ 2.535 logkeeper] logkeeper: no /log on this machine - this boot's kernel log is on the console only (undated: this machine will not say what time it is)
[ 2.537 test-runner] ===READY===
[ 2.555 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10600000 — inside firmware's mem 0x10500000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 2.555 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.555 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.575 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 4
[ 2.576 cpu0 kernel] iommu: domain1 maps 0x46600000..0x46800000 at 0x400002000000
[ 2.577 cpu0 kernel] iommu: DMA FAULT owner=slot0 unit0 stream=00:03.0 addr=0x0000000008090040 access=write reason=0x10 domain=1 bme=cleared unitfaults=1 streamfaults=1 first=y F_TRANSLATION
[ 2.599 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.599 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.537 test-runner] ===TEST_START test_rs_claim_lpi===
[ 2.585 test-runner error pid=4] 
[ 2.585 test-runner error pid=4] thread 'main' (1) panicked at src/bin/claim_lpi.rs:54:25:
[ 2.585 test-runner error pid=4] claim_lpi: message 1 was not read as the claim's interrupt within 10s: Io
[ 2.585 test-runner error pid=4] stack backtrace:
[ 2.599 test-runner error pid=4]    0:      0x10000065ee0 - _Unwind_Backtrace
[ 2.599 test-runner error pid=4]    1:      0x10000051044 - <<std[1ed676a381e62ece]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[f28ba090d62d1c7]::fmt::Display>::fmt
[ 2.599 test-runner error pid=4]    2:      0x1000006a0b4 - core[f28ba090d62d1c7]::fmt::write
[ 2.599 cpu0 kernel] exit: test_rs_claim_lpi pid=4 code=101 cpu=27ms peak=4MB allocs=3 frees=0 syscalls=54 syscall_wall=18ms 1=3 6=1 9=2 10=10 13=2 14=3 21=1 50=1 51=1 63=2 66=2 72=1 73=1 89=1 90=1 91=2 99=2 102=4 105=4 106=7 111=1 117=1 118=1
[ 2.600 cpu0 kernel] spawn: /system/bin/test_rs_claim_unrouted pid=5 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[ 2.601 cpu0 kernel] iommu: domain2 root=0x40807000 context=0x40808000 asid=2 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 2.602 cpu0 kernel] pcidev: PCI 09:00.0 NOT HANDED OVER — no message of its own could be made for it — the IORT gives it no DeviceID at this kernel's ITS behind the SMMUv3, so no table of its own would translate its message and no domain of its own would confine its writes
[ 2.602 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.602 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.602 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.602 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.599 test-runner error pid=4]    3:      0x10000054dd8 - <std[1ed676a381e62ece]::sys::stdio::toyos::Stderr as core[f28ba090d62d1c7]::io::write::Write>::write_fmt
[ 2.599 test-runner error pid=4]    4:      0x1000003b1b0 - std[1ed676a381e62ece]::panicking::default_hook::{closure#0}
[ 2.599 test-runner error pid=4]    5:      0x1000004c72c - std[1ed676a381e62ece]::panicking::default_hook
[ 2.599 test-runner error pid=4]    6:      0x1000004c8f0 - std[1ed676a381e62ece]::panicking::panic_with_hook
[ 2.599 test-runner error pid=4]    7:      0x1000003b254 - std[1ed676a381e62ece]::panicking::panic_handler::{closure#0}
[ 2.599 test-runner error pid=4]    8:      0x100000343f0 - std[1ed676a381e62ece]::sys::backtrace::__rust_end_short_backtrace::<std[1ed676a381e62ece]::panicking::panic_handler::{closure#0}, !>
[ 2.599 test-runner error pid=4]    9:      0x1000003ba2c - __rustc[d0c72ce299f394e5]::rust_begin_unwind
[ 2.599 test-runner error pid=4]   10:      0x1000006a848 - core[f28ba090d62d1c7]::panicking::panic_fmt
[ 2.602 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.602 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.602 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.602 cpu0 kernel] exit: test_rs_claim_unrouted pid=5 code=0 cpu=1ms peak=2MB allocs=2 frees=0 syscalls=14 syscall_wall=1ms 6=1 10=2 14=1 50=1 51=1 63=1 72=1 73=1 91=1 99=1 106=1 111=2
[ 2.603 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=6 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[ 2.603 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.603 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.603 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.599 test-runner error pid=4]   11:      0x1000002a0f4 - claim_lpi[e297ea72218eb836]::main
[ 2.599 test-runner error pid=4]   12:      0x1000002a440 - std[1ed676a381e62ece]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
[ 2.599 test-runner error pid=4]   13:      0x1000002a740 - std[1ed676a381e62ece]::rt::lang_start::<()>::{closure#0}
[ 2.599 test-runner error pid=4]   14:      0x1000004c0c4 - std[1ed676a381e62ece]::rt::lang_start_internal
[ 2.599 test-runner error pid=4]   15:      0x1000002a2f8 - main
[ 2.599 test-runner error pid=4]   16:      0x1000004fac8 - std[1ed676a381e62ece]::sys::pal::toyos::start_rust
[ 2.599 test-runner error pid=4]   17:      0x1000002b89c - _start
[ 2.599 test-runner] ===TEST_END test_rs_claim_lpi exit=101===
[ 2.603 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.603 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.603 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 6
[ 2.603 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.603 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.604 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=7 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[ 2.605 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.605 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.599 test-runner] ===TEST_START test_rs_claim_unrouted===
[ 2.602 test-runner pid=5] claim_unrouted: e1000e, routed past the SMMUv3, was refused, and edu was claimed after
[ 2.602 test-runner] ===TEST_END test_rs_claim_unrouted exit=0===
[ 2.602 test-runner] ===TEST_START test_rs_claim_bar_fault===
[ 2.603 test-runner pid=6] claim_bar_fault: a read into the BAR and a write from it were refused BadAddress, the registers untouched
[ 2.605 test-runner pid=6] claim_bar_fault: the frame child's fault in the BAR ended it
[ 2.606 test-runner pid=6] claim_bar_fault: the jump child's fault in the BAR ended it
[ 2.607 test-runner pid=6] claim_bar_fault: two faults in the BAR ended their processes, and a syscall naming it was refused
[ 2.605 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.605 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.605 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.605 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 7
[ 2.605 cpu0 kernel alert] FAULT pc=0x000001000002da8c far=0x000001000002f1f8 esr=0x02000000 sp=0x000000fffec00080 tid=0
[ 2.605 cpu0 kernel] SIGILL tid=0: illegal instruction
[ 2.605 cpu0 kernel]   pc:
[ 2.605 cpu0 kernel]     0x1000002da8c  /system/bin/test_rs_claim_bar_fault+0x2da8c id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.607 test-runner] ===TEST_END test_rs_claim_bar_fault exit=0===
[ 2.605 cpu0 kernel]   Registers:
[ 2.605 cpu0 kernel]     x0 =0x000000fffec00000  x1 =0x0000000000100000
[ 2.605 cpu0 kernel]     x2 =0x0000000000000000  x3 =0x0000000000000000
[ 2.605 cpu0 kernel]     x4 =0x0000000000000000  x5 =0x0000000000000000
[ 2.605 cpu0 kernel]     x6 =0x0000000000000000  x7 =0x0000000000000000
[ 2.605 cpu0 kernel]     x8 =0x000000fffec00080  x9 =0x0000000000000065
[ 2.605 cpu0 kernel]     x10=0x0000000000000065  x11=0x000000006d617266
[ 2.605 cpu0 kernel]     x12=0x000001000000956c  x13=0x0000000000000070
[ 2.605 cpu0 kernel]     x14=0x0000000000000005  x15=0x0000000000000000
[ 2.605 cpu0 kernel]     x16=0x0000000000000000  x17=0x0000000000000000
[ 2.605 cpu0 kernel]     x18=0x0000000000000000  x19=0x000000ffff000080
[ 2.605 cpu0 kernel]     x20=0x0000000000000005  x21=0x000000fffffffcc0
[ 2.605 cpu0 kernel]     x22=0x0000000000000000  x23=0x0000000000000000
[ 2.605 cpu0 kernel]     x24=0x0000000000000000  x25=0x0000000000000000
[ 2.605 cpu0 kernel]     x26=0x0000000000000000  x27=0x0000000000000000
[ 2.605 cpu0 kernel]     x28=0x0000000000000000  x29=0x000000fffec00080
[ 2.605 cpu0 kernel]     x30=0x000001000002da10  sp=0x000000fffec00080  spsr=0x60000000
[ 2.605 cpu0 kernel]   Backtrace:
[ 2.605 cpu0 kernel]   Page fault trace (1 total, last 1):
[ 2.605 cpu0 kernel]     fault=0x1000002f1f8 elf_off=0x0 blk=524288 relocs=605 341us [    X]
[ 2.605 cpu0 kernel]   Thread pointer: 0xffff400210
[ 2.605 cpu0 kernel]     TP+0x0 = 0x000000ffff400000
[ 2.605 cpu0 kernel]     TP+0x8 = 0x0000000000000000
[ 2.605 cpu0 kernel]     TP+0x10 = 0x0000000000000000
[ 2.605 cpu0 kernel]     TP+0x18 = 0x0000000000000001
[ 2.605 cpu0 kernel]     TP+0x20 = 0x0000000000000000
[ 2.605 cpu0 kernel]     TP+0x28 = 0x0000000000000000
[ 2.605 cpu0 kernel]     TP+0x30 = 0x0000000000000008
[ 2.605 cpu0 kernel]     TP+0x38 = 0x0000000000000000
[ 2.605 cpu0 kernel]   TLS data before TP:
[ 2.605 cpu0 kernel]     TP-0x8 = 0xffffffffffffffff
[ 2.605 cpu0 kernel]     TP-0x10 = 0xffffffffffffffff
[ 2.605 cpu0 kernel]     TP-0x18 = 0xffffffffffffffff
[ 2.605 cpu0 kernel]     TP-0x20 = 0xffffffffffffffff
[ 2.605 cpu0 kernel] exit: test_rs_claim_bar_fault pid=7 code=-1 cpu=0ms peak=2MB allocs=2 frees=0 syscalls=10 syscall_wall=0ms 1=1 6=1 10=1 63=1 73=1 91=1 99=1 106=1 111=1 117=1
[ 2.605 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.605 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.606 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=8 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[ 2.606 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.606 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.606 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.606 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.606 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.606 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 8
[ 2.606 cpu0 kernel alert] FAULT pc=0x000000fffec00080 far=0x000000fffec00080 esr=0x8200000e sp=0x000000fffffffcc0 tid=0
[ 2.606 cpu0 kernel] SEGFAULT tid=0: execute protection violation at 0xfffec00080 (FSC 0xe)
[ 2.606 cpu0 kernel]   pc:
[ 2.606 cpu0 kernel]     0xfffec00080
[ 2.606 cpu0 kernel]   Page walk for 0xfffec00080 through TTBR0_EL1=0x8000046230000:
[ 2.606 cpu0 kernel]     L0[1] = 0x0000000046236003
[ 2.606 cpu0 kernel]     L1[511] = 0x0000000046238003
[ 2.606 cpu0 kernel]     L2[502] = 0x0060000010600c41
[ 2.606 cpu0 kernel]   Registers:
[ 2.606 cpu0 kernel]     x0 =0x000000fffec00000  x1 =0x0000000000100000
[ 2.606 cpu0 kernel]     x2 =0x0000000000000000  x3 =0x0000000000000000
[ 2.606 cpu0 kernel]     x4 =0x0000000000000000  x5 =0x0000000000000000
[ 2.606 cpu0 kernel]     x6 =0x0000000000000000  x7 =0x0000000000000000
[ 2.606 cpu0 kernel]     x8 =0x000000fffec00080  x9 =0x00000000706d756a
[ 2.606 cpu0 kernel]     x10=0x00000000706d756a  x11=0x0000000000000000
[ 2.606 cpu0 kernel]     x12=0x000001000000956c  x13=0x0000000000000070
[ 2.606 cpu0 kernel]     x14=0x0000000000000005  x15=0x0000000000000000
[ 2.606 cpu0 kernel]     x16=0x0000000000000000  x17=0x0000000000000000
[ 2.606 cpu0 kernel]     x18=0x0000000000000000  x19=0x000000ffff000080
[ 2.606 cpu0 kernel]     x20=0x0000000000000004  x21=0x000000fffffffcc0
[ 2.606 cpu0 kernel]     x22=0x0000000000000000  x23=0x0000000000000000
[ 2.606 cpu0 kernel]     x24=0x0000000000000000  x25=0x0000000000000000
[ 2.606 cpu0 kernel]     x26=0x0000000000000000  x27=0x0000000000000000
[ 2.606 cpu0 kernel]     x28=0x0000000000000000  x29=0x000000fffffffe80
[ 2.606 cpu0 kernel]     x30=0x000001000002daac  sp=0x000000fffffffcc0  spsr=0x60000800
[ 2.606 cpu0 kernel]   Backtrace:
[ 2.606 cpu0 kernel]     0x1000002e374  /system/bin/test_rs_claim_bar_fault+0x2e373 id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.606 cpu0 kernel]     0x1000002cd90  /system/bin/test_rs_claim_bar_fault+0x2cd8f id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.606 cpu0 kernel]     0x100000550b0  /system/bin/test_rs_claim_bar_fault+0x550af id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.606 cpu0 kernel]     0x1000002dd64  /system/bin/test_rs_claim_bar_fault+0x2dd63 id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.606 cpu0 kernel]     0x10000059304  /system/bin/test_rs_claim_bar_fault+0x59303 id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.606 cpu0 kernel]     0x1000002f20c  /system/bin/test_rs_claim_bar_fault+0x2f20b id=52133103438db6fdc169e33be3df9462a76daf7f
[ 2.606 cpu0 kernel]   Page fault trace (1 total, last 1):
[ 2.606 cpu0 kernel]     fault=0x1000002f1f8 elf_off=0x0 blk=524288 relocs=605 183us [    X]
[ 2.606 cpu0 kernel]   Thread pointer: 0xffff400210
[ 2.606 cpu0 kernel]     TP+0x0 = 0x000000ffff400000
[ 2.606 cpu0 kernel]     TP+0x8 = 0x0000000000000000
[ 2.606 cpu0 kernel]     TP+0x10 = 0x0000000000000000
[ 2.606 cpu0 kernel]     TP+0x18 = 0x0000000000000001
[ 2.606 cpu0 kernel]     TP+0x20 = 0x0000000000000000
[ 2.606 cpu0 kernel]     TP+0x28 = 0x0000000000000000
[ 2.606 cpu0 kernel]     TP+0x30 = 0x0000000000000008
[ 2.606 cpu0 kernel]     TP+0x38 = 0x0000000000000000
[ 2.606 cpu0 kernel]   TLS data before TP:
[ 2.606 cpu0 kernel]     TP-0x8 = 0xffffffffffffffff
[ 2.606 cpu0 kernel]     TP-0x10 = 0xffffffffffffffff
[ 2.606 cpu0 kernel]     TP-0x18 = 0xffffffffffffffff
[ 2.606 cpu0 kernel]     TP-0x20 = 0xffffffffffffffff
[ 2.606 cpu0 kernel] exit: test_rs_claim_bar_fault pid=8 code=-1 cpu=0ms peak=2MB allocs=2 frees=0 syscalls=10 syscall_wall=0ms 1=1 6=1 10=1 63=1 73=1 91=1 99=1 106=1 111=1 117=1
[ 2.606 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.606 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.606 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.606 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 2.607 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.607 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[ 2.607 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.607 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 6
[ 2.607 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[ 2.607 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[ 2.607 cpu0 kernel] exit: test_rs_claim_bar_fault pid=6 code=0 cpu=2ms peak=2MB allocs=2 frees=0 syscalls=54 syscall_wall=3ms 0=2 1=3 6=1 10=12 14=1 21=2 24=1 25=2 50=5 51=1 63=1 72=1 73=1 91=1 99=2 102=3 105=3 106=6 108=2 111=2 117=2
[ 2.607 cpu0 kernel tid=1] exit: test-runner pid=3 code=0 cpu=4ms peak=6MB allocs=3 frees=0 syscalls=69 syscall_wall=70ms 6=1 10=18 14=1 21=3 24=3 25=3 40=1 50=10 51=1 63=2 72=1 73=2 91=1 99=2 102=6 105=5 106=6 108=3

15:40:08   FAIL  virt_claim_lpi  (3s)
15:40:08   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:40:08 host: fastest boot 855 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
15:40:08 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:40:08 failures:
15:40:08     virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([ 2.599 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)

15:40:08 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (27.2s; workers: 24s building, 3s testing)
15:40:08 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-42171-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-8bef5b37e99e2df5 virt_claim_lpi` (exit status: 1)
EXIT=1

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation patch r1-wrong-slot-lpi, part 1 of 1

diff --git a/kernel/src/arch/aarch64/irqchip/its.rs b/kernel/src/arch/aarch64/irqchip/its.rs
index 0de1b1107..1d0d76580 100644
--- a/kernel/src/arch/aarch64/irqchip/its.rs
+++ b/kernel/src/arch/aarch64/irqchip/its.rs
@@ -444,7 +444,7 @@ pub fn claim(slot: usize, source: StreamId) -> Result<Msi, Refused> {
         return Err(Refused::DeviceIdHeld(device));
     }
     let event = live.events.event(EVENT).expect("event 0 is in every table");
-    let (table, lpi, collection, events) = (live.itts[slot], live.lpis[slot], live.collection, live.events);
+    let (table, lpi, collection, events) = (live.itts[slot], live.lpis[(slot + 1) % MAX_FUNCTIONS], live.collection, live.events);
     live.issue(&[
         Command::MapDevice { device, table, events },
         Command::MapEvent { device, event, lpi, collection },

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation r1-wrong-slot-lpi: virt_claim_lpi at 0de25fd, EXIT=1, part 1 of 1

    Finished `test` profile [optimized + debuginfo] target(s) in 0.42s
     Running tests/toyos.rs (target/debug/deps/toyos_build-8bef5b37e99e2df5)

15:40:09 running 1 tests, 12 wide

15:40:09   RUN   virt_claim_lpi
15:40:09   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
15:40:13   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (4s)
15:40:13   BUILD aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi
15:40:18   BUILT aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi  (5s)
15:40:18   BUILD aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi
15:40:20   BUILT aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi  (3s)
15:40:21   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
15:40:27   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (7s)
qemu-system-aarch64: warning: nic e1000e.0 has no peer
15:40:40 FAIL virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([11.971 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 0.315 cpu0 loader] ToyOS Bootloader 1.0
[ 0.317 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 0.317 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 0.318 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 0.318 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-I9132475e3680894b (image scope) holds 0
[ 0.319 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 0.319 cpu0 loader] RSDP address: 0xbcb43018
[ 0.320 cpu0 loader] Boot partition: LBA 2048+69632 signature [64, 43, af, 8b, cd, b9, ec, 48, b3, cb, d2, 8c, ba, 5f, 36, eb]
[ 0.320 cpu0 loader] Log partition: signature [f0, 73, 47, 91, f2, 09, 2d, 40, a8, 1a, 69, b5, 22, 0a, d7, 86]
[ 0.326 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 0.330 cpu0 loader] Slot A: signed header 569c16cc2fdbc9b4fd4e96868fa010914183854f7f22f61a43f25b8ca255845d verifies under this loader's key, version 1791646821
[ 0.356 cpu0 loader] ROOT: read into memory at 0xbbbb6000+0x600000 from LBA 212992+12288, 1048576 bytes a request (optimal granularity: not reported), in 419333 counter ticks
[ 0.370 cpu0 loader] Slot A: ROOT hashed in 305332 counter ticks
[ 0.371 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 0.372 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 0.372 cpu0 loader] Kernel: 2586432 bytes
[ 0.372 cpu0 loader] Boot parameter: "root=40549739a25c55e7ad92cca56d0cefc9,boot-slot=A"
[ 0.373 cpu0 loader] Loading kernel elf...
[ 0.373 cpu0 loader] Kernel stack size: 8388608
[ 0.373 cpu0 loader] Kernel memory size: 13709312
[ 0.388 cpu0 loader] Kernel memory located at: 0xbae00000
[ 0.389 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 497324 }, filesz: 497324, file_offset: 0, flags: SegmentFlags(4) }
[ 0.390 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 563200, len: 1076736 }, filesz: 1076736, file_offset: 497664, flags: SegmentFlags(5) }
[ 0.391 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1705472, len: 2560 }, filesz: 240, file_offset: 1574400, flags: SegmentFlags(6) }
[ 0.391 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1771248, len: 3545808 }, filesz: 27184, file_offset: 1574640, flags: SegmentFlags(6) }
[ 0.392 cpu0 loader] Applied 3037 relocations
[ 0.392 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 0.393 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 0.394 cpu0 loader] Starting kernel...
[ 0.394 cpu0 loader] CPU: entered at EL1
[ 0.394 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 0.395 cpu0 loader] GCD: 0x10500000+0x2eb00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.395 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.396 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.396 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 0.397 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 0.397 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 0.398 cpu0 loader] Boot map: root 0xbac94000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 0.398 cpu0 loader] Kernel image: 0xbae00000+0xd13000 is inside the 0x100000000-byte boot map
[ 0.399 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 0.399 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 0.400 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 0.400 cpu0 loader] Loader counter: 7559204 at entry, 9619045 at the handoff
[ 0.401 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 0.402 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 0.402 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 0.402 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 0.403 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 0.404 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 0.404 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 0.404 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 0.404 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 0.404 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 0.404 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 0.405 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 0.405 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 0.405 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 0.405 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 0.405 cpu0 kernel] memory: 0x000048000000..0x0000bac91000 uefi type 7
[ 0.405 cpu0 kernel] memory: 0x0000bac91000..0x0000bc431000 uefi type 2
[ 0.406 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 0.406 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 0.406 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 0.406 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 0.406 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 0.406 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 0.407 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 0.407 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 0.407 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 0.407 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 0.407 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f5000 uefi type 7
[ 0.407 cpu0 kernel] memory: 0x0000be0f5000..0x0000bfa38000 uefi type 4
[ 0.408 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 0.408 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 0.408 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 0.408 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 0.408 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 0.408 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 0.409 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 0.409 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 0.409 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 0.409 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 0.409 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 0.409 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 0.410 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 0.410 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 0.410 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 0.410 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 0.410 cpu0 kernel] boot: memory map 0xbac92018+0x318, kernel 0xbae00000+0xd13000, stack image+0x513000+0x800000
[ 0.411 cpu0 kernel] boot: kernel elf 0xbc1b6018+0x277740, rsdp 0xbcb43018, boot pml4 0xbac94000
[ 0.411 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 0.411 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [64, 43, af, 8b, cd, b9, ec, 48, b3, cb, d2, 8c, ba, 5f, 36, eb]
[ 0.412 cpu0 kernel] boot: log partition guid [f0, 73, 47, 91, f2, 09, 2d, 40, a8, 1a, 69, b5, 22, 0a, d7, 86]
[ 0.412 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 0.412 cpu0 kernel] boot: root=40549739a25c55e7ad92cca56d0cefc9
[ 0.412 cpu0 kernel] boot: slot A, the one the slot table marks
[ 0.412 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 0.413 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 0.413 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 0.413 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 0.415 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 0.415 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 0.415 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 0.415 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 0.415 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 0.416 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 0.416 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 0.416 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 0.416 cpu0 kernel] PSCI: 1.1 through HVC
[ 0.417 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 0.417 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 0.417 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 0.417 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 0.417 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 0.418 cpu0 kernel] mmio: 0x8080000+0x10000 Uncacheable
[ 0.418 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
[ 0.419 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 0.419 cpu0 kernel] symbols: loaded 18544 kernel symbols
[ 0.420 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 0.420 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 0.420 cpu0 kernel] Boot: CPU ready (1ms)
[ 0.421 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 0.421 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 0.421 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 0.421 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 0.421 cpu0 kernel] PCI: Enumerating devices...
[ 0.421 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 0.422 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 0.422 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 0.422 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 0.423 cpu0 kernel]   PCI 00:04.0 [0600] vendor=1b36 device=000b prog_if=00 bars=[]
[ 0.423 cpu0 kernel]   PCI 08:00.0 [0604] vendor=1b36 device=000c prog_if=00 bars=[bar0=0x10400000]
[ 0.423 cpu0 kernel]   PCI 09:00.0 [0200] vendor=8086 device=10d3 prog_if=00 bars=[bar0=0x10220000 bar1=0x10200000 bar2=none(it is an I/O BAR at port 0x1000, not memory) bar3=0x10240000]
[ 0.434 cpu0 kernel] PCI: Enumeration complete, 7 functions.
[ 0.434 cpu0 kernel] pcidev: PCI 08:00.0 forwards 0x10200000..0x10400000 to its secondary bus
[ 0.435 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x10200000..0x10500000, mem 0x4000000..0x8000000, mem 0x10500000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 0.437 cpu0 kernel] pcidev: 7 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 0.437 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 0.437 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 0.437 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 0.438 cpu0 kernel] pcidev:   0x10401000..0x40000000 (763 MiB)
[ 0.438 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 0.438 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 0.438 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 0.439 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 0.439 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 0.440 cpu0 kernel] IOMMU: 08:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2048 })
[ 0.440 cpu0 kernel] IOMMU: 09:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2304 })
[ 0.441 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 5 functions' streams aborting in a table of 64, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 0.441 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 0.441 cpu0 kernel] gpt: the boot volume names 914773F0-09F2-402D-A81A-69B5220AD786 as the log partition
[ 0.442 cpu0 kernel] gpt: firmware booted us from partition 8BAF4364-B9CD-48EC-B3CB-D28CBA5F36EB at LBA 2048+69632
[ 0.442 cpu0 kernel] Boot: peripherals ready (21ms)
[ 0.443 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 0.443 cpu0 kernel] root: mounted read-only from memory at 0xbbbb6000+0x600000, filesystem 40549739a25c55e7ad92cca56d0cefc9, 1536 blocks
[ 0.443 cpu0 kernel] Boot: subsystems ready (0ms)
[ 0.445 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 0.445 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 0.445 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 0.445 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 0.446 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 0.446 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.446 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.447 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 0.448 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 1.949 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 1.949 cpu0 kernel] root: the partition ROOT was read from, 371A1B44-7A3C-4B82-B433-C7F2DBEBF725, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 1.950 cpu0 kernel] Boot: storage ready (1504ms)
[ 1.950 cpu0 kernel] virtio-console: no device found
[ 1.950 cpu0 kernel] GPU: using UEFI GOP
[ 1.950 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 1.951 cpu0 kernel] GPU: none this boot, running headless
[ 1.951 cpu0 kernel] Boot: devices ready (0ms)
[ 1.951 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 1.951 cpu0 kernel] Boot: complete (1532ms)
[ 1.951 cpu0 kernel] boot: power-on to loader 314 ms, loader 85 ms (ROOT read 17 ms), kernel to Boot: complete 1550 ms
[ 1.952 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 1.957 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 1.958 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 1.963 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 1.964 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 1.964 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8193
[ 1.964 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[ 1.964 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 1.964 cpu0 kernel] mmio: 0x10600000+0x200000 Uncacheable
[ 1.953 supervisor] supervisor: build 0de25fd5e4007a51baae8e04e3505d520a9f043d dirty, committed 2026-10-10 14:53:26 UTC, toolchain c6ef51116e8de2e2, aarch64
[ 1.955 supervisor tid=1] supervisor: /home/toy could not be made, so this boot has no session home: permission denied
[ 1.955 supervisor] supervisor: logkeeper: /state/logkeeper could not be made: permission denied
[ 1.957 supervisor] supervisor: started logkeeper
[ 1.958 supervisor] supervisor: started test-runner
[ 1.960 logkeeper] logkeeper: cannot create /log/unknown-00.log: permission denied
[ 1.960 logkeeper] logkeeper: no /log on this machine - this boot's kernel log is on the console only (undated: this machine will not say what time it is)
[ 1.964 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10600000 — inside firmware's mem 0x10500000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 1.964 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 1.964 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 1.964 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 4
[ 1.965 cpu0 kernel] iommu: domain1 maps 0x46600000..0x46800000 at 0x400002000000
[ 1.961 test-runner] ===READY===
[ 1.962 test-runner] ===TEST_START test_rs_claim_lpi===
[11.971 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[11.971 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[11.971 cpu0 kernel] exit: test_rs_claim_lpi pid=4 code=101 cpu=3ms peak=4MB allocs=3 frees=0 syscalls=54 syscall_wall=10006ms 1=3 6=1 9=2 10=10 13=2 14=3 21=1 50=1 51=1 63=2 66=2 72=1 73=1 89=1 90=1 91=2 99=2 102=4 105=4 106=7 111=1 117=1 118=1
[11.972 cpu0 kernel] spawn: /system/bin/test_rs_claim_unrouted pid=5 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[11.972 cpu0 kernel] iommu: domain2 root=0x4080a000 context=0x4080b000 asid=2 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[11.973 cpu0 kernel] pcidev: PCI 09:00.0 NOT HANDED OVER — no message of its own could be made for it — the IORT gives it no DeviceID at this kernel's ITS behind the SMMUv3, so no table of its own would translate its message and no domain of its own would confine its writes
[11.973 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8193
[11.973 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[11.973 cpu0 kernel] iommu: 00:03.0 moves to domain1
[11.973 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[11.973 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[11.973 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[11.973 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[11.973 cpu0 kernel] exit: test_rs_claim_unrouted pid=5 code=0 cpu=1ms peak=2MB allocs=2 frees=0 syscalls=14 syscall_wall=1ms 6=1 10=2 14=1 50=1 51=1 63=1 72=1 73=1 91=1 99=1 106=1 111=2
[11.984 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=6 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[11.985 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8193
[11.985 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[11.985 cpu0 kernel] iommu: 00:03.0 moves to domain1
[11.985 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[11.985 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[11.985 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 6
[11.986 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[11.968 test-runner error pid=4] 
[11.968 test-runner error pid=4] thread 'main' (1) panicked at src/bin/claim_lpi.rs:54:25:
[11.968 test-runner error pid=4] claim_lpi: message 1 was not read as the claim's interrupt within 10s: WouldBlock
[11.968 test-runner error pid=4] stack backtrace:
[11.970 test-runner error pid=4]    0:      0x10000065ee0 - _Unwind_Backtrace
[11.970 test-runner error pid=4]    1:      0x10000051044 - <<std[1ed676a381e62ece]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[f28ba090d62d1c7]::fmt::Display>::fmt
[11.970 test-runner error pid=4]    2:      0x1000006a0b4 - core[f28ba090d62d1c7]::fmt::write
[11.970 test-runner error pid=4]    3:      0x10000054dd8 - <std[1ed676a381e62ece]::sys::stdio::toyos::Stderr as core[f28ba090d62d1c7]::io::write::Write>::write_fmt
[11.986 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[11.987 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=7 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[11.989 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8193
[11.989 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[11.989 cpu0 kernel] iommu: 00:03.0 moves to domain1
[11.989 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[11.989 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[11.989 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 7
[11.970 test-runner error pid=4]    4:      0x1000003b1b0 - std[1ed676a381e62ece]::panicking::default_hook::{closure#0}
[11.970 test-runner error pid=4]    5:      0x1000004c72c - std[1ed676a381e62ece]::panicking::default_hook
[11.970 test-runner error pid=4]    6:      0x1000004c8f0 - std[1ed676a381e62ece]::panicking::panic_with_hook
[11.970 test-runner error pid=4]    7:      0x1000003b254 - std[1ed676a381e62ece]::panicking::panic_handler::{closure#0}
[11.970 test-runner error pid=4]    8:      0x100000343f0 - std[1ed676a381e62ece]::sys::backtrace::__rust_end_short_backtrace::<std[1ed676a381e62ece]::panicking::panic_handler::{closure#0}, !>
[11.970 test-runner error pid=4]    9:      0x1000003ba2c - __rustc[d0c72ce299f394e5]::rust_begin_unwind
[11.970 test-runner error pid=4]   10:      0x1000006a848 - core[f28ba090d62d1c7]::panicking::panic_fmt
[11.970 test-runner error pid=4]   11:      0x1000002a0f4 - claim_lpi[e297ea72218eb836]::main
[11.989 cpu0 kernel alert] FAULT pc=0x000001000002da8c far=0x000001000002f1f8 esr=0x02000000 sp=0x000000fffec00080 tid=0
[11.989 cpu0 kernel] SIGILL tid=0: illegal instruction
[11.989 cpu0 kernel]   pc:
[11.989 cpu0 kernel]     0x1000002da8c  /system/bin/test_rs_claim_bar_fault+0x2da8c id=52133103438db6fdc169e33be3df9462a76daf7f
[11.989 cpu0 kernel]   Registers:
[11.989 cpu0 kernel]     x0 =0x000000fffec00000  x1 =0x0000000000100000
[11.989 cpu0 kernel]     x2 =0x0000000000000000  x3 =0x0000000000000000
[11.989 cpu0 kernel]     x4 =0x0000000000000000  x5 =0x0000000000000000
[11.970 test-runner error pid=4]   12:      0x1000002a440 - std[1ed676a381e62ece]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
[11.970 test-runner error pid=4]   13:      0x1000002a740 - std[1ed676a381e62ece]::rt::lang_start::<()>::{closure#0}
[11.970 test-runner error pid=4]   14:      0x1000004c0c4 - std[1ed676a381e62ece]::rt::lang_start_internal
[11.970 test-runner error pid=4]   15:      0x1000002a2f8 - main
[11.970 test-runner error pid=4]   16:      0x1000004fac8 - std[1ed676a381e62ece]::sys::pal::toyos::start_rust
[11.970 test-runner error pid=4]   17:      0x1000002b89c - _start
[11.971 test-runner] ===TEST_END test_rs_claim_lpi exit=101===
[11.971 test-runner] ===TEST_START test_rs_claim_unrouted===
[11.989 cpu0 kernel]     x6 =0x0000000000000000  x7 =0x0000000000000000
[11.989 cpu0 kernel]     x8 =0x000000fffec00080  x9 =0x0000000000000065
[11.989 cpu0 kernel]     x10=0x0000000000000065  x11=0x000000006d617266
[11.989 cpu0 kernel]     x12=0x000001000000956c  x13=0x0000000000000070
[11.989 cpu0 kernel]     x14=0x0000000000000005  x15=0x0000000000000000
[11.989 cpu0 kernel]     x16=0x0000000000000000  x17=0x0000000000000000
[11.989 cpu0 kernel]     x18=0x0000000000000000  x19=0x000000ffff000080
[11.989 cpu0 kernel]     x20=0x0000000000000005  x21=0x000000fffffffcc0
[11.973 test-runner pid=5] claim_unrouted: e1000e, routed past the SMMUv3, was refused, and edu was claimed after
[11.983 test-runner] ===TEST_END test_rs_claim_unrouted exit=0===
[11.983 test-runner] ===TEST_START test_rs_claim_bar_fault===
[11.986 test-runner pid=6] claim_bar_fault: a read into the BAR and a write from it were refused BadAddress, the registers untouched
[11.989 test-runner pid=6] claim_bar_fault: the frame child's fault in the BAR ended it
[11.991 test-runner pid=6] claim_bar_fault: the jump child's fault in the BAR ended it
[11.991 test-runner pid=6] claim_bar_fault: two faults in the BAR ended their processes, and a syscall naming it was refused
[11.991 test-runner] ===TEST_END test_rs_claim_bar_fault exit=0===
[11.989 cpu0 kernel]     x22=0x0000000000000000  x23=0x0000000000000000
[11.989 cpu0 kernel]     x24=0x0000000000000000  x25=0x0000000000000000
[11.989 cpu0 kernel]     x26=0x0000000000000000  x27=0x0000000000000000
[11.989 cpu0 kernel]     x28=0x0000000000000000  x29=0x000000fffec00080
[11.989 cpu0 kernel]     x30=0x000001000002da10  sp=0x000000fffec00080  spsr=0x60000000
[11.989 cpu0 kernel]   Backtrace:
[11.989 cpu0 kernel]   Page fault trace (1 total, last 1):
[11.989 cpu0 kernel]     fault=0x1000002f1f8 elf_off=0x0 blk=524288 relocs=605 573us [    X]
[11.989 cpu0 kernel]   Thread pointer: 0xffff400210
[11.989 cpu0 kernel]     TP+0x0 = 0x000000ffff400000
[11.989 cpu0 kernel]     TP+0x8 = 0x0000000000000000
[11.989 cpu0 kernel]     TP+0x10 = 0x0000000000000000
[11.989 cpu0 kernel]     TP+0x18 = 0x0000000000000001
[11.989 cpu0 kernel]     TP+0x20 = 0x0000000000000000
[11.989 cpu0 kernel]     TP+0x28 = 0x0000000000000000
[11.989 cpu0 kernel]     TP+0x30 = 0x0000000000000008
[11.989 cpu0 kernel]     TP+0x38 = 0x0000000000000000
[11.989 cpu0 kernel]   TLS data before TP:
[11.989 cpu0 kernel]     TP-0x8 = 0xffffffffffffffff
[11.989 cpu0 kernel]     TP-0x10 = 0xffffffffffffffff
[11.989 cpu0 kernel]     TP-0x18 = 0xffffffffffffffff
[11.989 cpu0 kernel]     TP-0x20 = 0xffffffffffffffff
[11.989 cpu0 kernel] exit: test_rs_claim_bar_fault pid=7 code=-1 cpu=1ms peak=2MB allocs=2 frees=0 syscalls=10 syscall_wall=0ms 1=1 6=1 10=1 63=1 73=1 91=1 99=1 106=1 111=1 117=1
[11.989 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[11.989 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[11.990 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=8 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[11.990 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8193
[11.990 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[11.991 cpu0 kernel] iommu: 00:03.0 moves to domain1
[11.991 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[11.991 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[11.991 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 8
[11.991 cpu0 kernel alert] FAULT pc=0x000000fffec00080 far=0x000000fffec00080 esr=0x8200000e sp=0x000000fffffffcc0 tid=0
[11.991 cpu0 kernel] SEGFAULT tid=0: execute protection violation at 0xfffec00080 (FSC 0xe)
[11.991 cpu0 kernel]   pc:
[11.991 cpu0 kernel]     0xfffec00080
[11.991 cpu0 kernel]   Page walk for 0xfffec00080 through TTBR0_EL1=0x8000046230000:
[11.991 cpu0 kernel]     L0[1] = 0x0000000046236003
[11.991 cpu0 kernel]     L1[511] = 0x0000000046238003
[11.991 cpu0 kernel]     L2[502] = 0x0060000010600c41
[11.991 cpu0 kernel]   Registers:
[11.991 cpu0 kernel]     x0 =0x000000fffec00000  x1 =0x0000000000100000
[11.991 cpu0 kernel]     x2 =0x0000000000000000  x3 =0x0000000000000000
[11.991 cpu0 kernel]     x4 =0x0000000000000000  x5 =0x0000000000000000
[11.991 cpu0 kernel]     x6 =0x0000000000000000  x7 =0x0000000000000000
[11.991 cpu0 kernel]     x8 =0x000000fffec00080  x9 =0x00000000706d756a
[11.991 cpu0 kernel]     x10=0x00000000706d756a  x11=0x0000000000000000
[11.991 cpu0 kernel]     x12=0x000001000000956c  x13=0x0000000000000070
[11.991 cpu0 kernel]     x14=0x0000000000000005  x15=0x0000000000000000
[11.991 cpu0 kernel]     x16=0x0000000000000000  x17=0x0000000000000000
[11.991 cpu0 kernel]     x18=0x0000000000000000  x19=0x000000ffff000080
[11.991 cpu0 kernel]     x20=0x0000000000000004  x21=0x000000fffffffcc0
[11.991 cpu0 kernel]     x22=0x0000000000000000  x23=0x0000000000000000
[11.991 cpu0 kernel]     x24=0x0000000000000000  x25=0x0000000000000000
[11.991 cpu0 kernel]     x26=0x0000000000000000  x27=0x0000000000000000
[11.991 cpu0 kernel]     x28=0x0000000000000000  x29=0x000000fffffffe80
[11.991 cpu0 kernel]     x30=0x000001000002daac  sp=0x000000fffffffcc0  spsr=0x60000800
[11.991 cpu0 kernel]   Backtrace:
[11.991 cpu0 kernel]     0x1000002e374  /system/bin/test_rs_claim_bar_fault+0x2e373 id=52133103438db6fdc169e33be3df9462a76daf7f
[11.991 cpu0 kernel]     0x1000002cd90  /system/bin/test_rs_claim_bar_fault+0x2cd8f id=52133103438db6fdc169e33be3df9462a76daf7f
[11.991 cpu0 kernel]     0x100000550b0  /system/bin/test_rs_claim_bar_fault+0x550af id=52133103438db6fdc169e33be3df9462a76daf7f
[11.991 cpu0 kernel]     0x1000002dd64  /system/bin/test_rs_claim_bar_fault+0x2dd63 id=52133103438db6fdc169e33be3df9462a76daf7f
[11.991 cpu0 kernel]     0x10000059304  /system/bin/test_rs_claim_bar_fault+0x59303 id=52133103438db6fdc169e33be3df9462a76daf7f
[11.991 cpu0 kernel]     0x1000002f20c  /system/bin/test_rs_claim_bar_fault+0x2f20b id=52133103438db6fdc169e33be3df9462a76daf7f
[11.991 cpu0 kernel]   Page fault trace (1 total, last 1):
[11.991 cpu0 kernel]     fault=0x1000002f1f8 elf_off=0x0 blk=524288 relocs=605 295us [    X]
[11.991 cpu0 kernel]   Thread pointer: 0xffff400210
[11.991 cpu0 kernel]     TP+0x0 = 0x000000ffff400000
[11.991 cpu0 kernel]     TP+0x8 = 0x0000000000000000
[11.991 cpu0 kernel]     TP+0x10 = 0x0000000000000000
[11.991 cpu0 kernel]     TP+0x18 = 0x0000000000000001
[11.991 cpu0 kernel]     TP+0x20 = 0x0000000000000000
[11.991 cpu0 kernel]     TP+0x28 = 0x0000000000000000
[11.991 cpu0 kernel]     TP+0x30 = 0x0000000000000008
[11.991 cpu0 kernel]     TP+0x38 = 0x0000000000000000
[11.991 cpu0 kernel]   TLS data before TP:
[11.991 cpu0 kernel]     TP-0x8 = 0xffffffffffffffff
[11.991 cpu0 kernel]     TP-0x10 = 0xffffffffffffffff
[11.991 cpu0 kernel]     TP-0x18 = 0xffffffffffffffff
[11.991 cpu0 kernel]     TP-0x20 = 0xffffffffffffffff
[11.991 cpu0 kernel] exit: test_rs_claim_bar_fault pid=8 code=-1 cpu=0ms peak=2MB allocs=2 frees=0 syscalls=10 syscall_wall=0ms 1=1 6=1 10=1 63=1 73=1 91=1 99=1 106=1 111=1 117=1
[11.991 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[11.991 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[11.991 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8193
[11.991 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000000
[11.991 cpu0 kernel] iommu: 00:03.0 moves to domain1
[11.991 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[11.991 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[11.991 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 6
[11.991 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[11.991 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[11.991 cpu0 kernel] exit: test_rs_claim_bar_fault pid=6 code=0 cpu=4ms peak=2MB allocs=2 frees=0 syscalls=54 syscall_wall=6ms 0=2 1=3 6=1 10=12 14=1 21=2 24=1 25=2 50=5 51=1 63=1 72=1 73=1 91=1 99=2 102=3 105=3 106=6 108=2 111=2 117=2
[11.991 cpu0 kernel tid=1] exit: test-runner pid=3 code=0 cpu=5ms peak=6MB allocs=3 frees=0 syscalls=69 syscall_wall=10030ms 6=1 10=18 14=1 21=3 24=3 25=3 40=1 50=10 51=1 63=2 72=1 73=2 91=1 99=2 102=6 105=5 106=6 108=3

15:40:40   FAIL  virt_claim_lpi  (13s)
15:40:40   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:40:40 host: fastest boot 448 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
15:40:40 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:40:40 failures:
15:40:40     virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([11.971 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)

15:40:40 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (30.4s; workers: 18s building, 13s testing)
15:40:40 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-46324-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-8bef5b37e99e2df5 virt_claim_lpi` (exit status: 1)
EXIT=1

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation patch r1-wrong-event, part 1 of 1

diff --git a/kernel/src/arch/aarch64/irqchip/its.rs b/kernel/src/arch/aarch64/irqchip/its.rs
index 0de1b1107..d73894924 100644
--- a/kernel/src/arch/aarch64/irqchip/its.rs
+++ b/kernel/src/arch/aarch64/irqchip/its.rs
@@ -451,7 +451,7 @@ pub fn claim(slot: usize, source: StreamId) -> Result<Msi, Refused> {
     ]);
     live.held[slot] = Some(device);
     log!("ITS: {source}, DeviceID {device:#x}, event {EVENT} is slot {slot}'s LPI {}", lpi.intid());
-    Ok(Msi { address: live.doorbell, data: EVENT })
+    Ok(Msi { address: live.doorbell, data: EVENT + 1 })
 }
 
 /// Claim slot `slot`'s DeviceID unmapped, and anything it left pending

@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Mutation r1-wrong-event: virt_claim_lpi at 0de25fd, EXIT=1, part 1 of 1

    Finished `test` profile [optimized + debuginfo] target(s) in 0.53s
     Running tests/toyos.rs (target/debug/deps/toyos_build-8bef5b37e99e2df5)

15:40:41 running 1 tests, 12 wide

15:40:41   RUN   virt_claim_lpi
15:40:41   BUILD aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi
15:40:43   BUILT aarch64 claim_lpi of tests/toyos-rust-tests, for virt_claim_lpi  (2s)
15:40:43   BUILD aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi
15:40:46   BUILT aarch64 claim_unrouted of tests/toyos-rust-tests, for virt_claim_lpi  (2s)
15:40:46   BUILD aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi
15:40:48   BUILT aarch64 claim_bar_fault of tests/toyos-rust-tests, for virt_claim_lpi  (3s)
15:40:49   BUILD aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi
15:40:57   BUILT aarch64 kernel, loader, ROOT of tests/virtclaimcase, for virt_claim_lpi  (9s)
qemu-system-aarch64: warning: nic e1000e.0 has no peer
15:41:10 FAIL virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([12.307 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)
serial:
UEFI firmware (version edk2-stable202408-prebuilt.qemu.org built at 16:28:50 on Sep 12 2024)
ArmTrngLib could not be correctly initialized.
Error: Image at 000BFDB6000 start failed: 00000001
Error: Image at 000BFCB2000 start failed: Unsupported
Error: Image at 000BFC37000 start failed: Not Found
Error: Image at 000BFB5D000 start failed: Aborted
Tpm2SubmitCommand - Tcg2 - Not Found
Tpm2GetCapabilityPcrs fail!
Tpm2SubmitCommand - Tcg2 - Not Found
�[2J�[01;01H�[=3h�[2J�[01;01H�[2J�[01;01H�[=3h�[2J�[01;01HUsbBootExecCmd: Success to Exec 0x0 Cmd (Result = 1)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
ConvertPages: failed to find range 140000000 - 14003EFFF
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE TOYOS0BOOTSTICK1" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x0,0x0)
�[2J�[01;01HConvertPages: failed to find range 8000000 - 8003FFF
[ 0.635 cpu0 loader] ToyOS Bootloader 1.0
[ 0.635 cpu0 loader] Loader clock: each line opens with the seconds since the counter's zero, at the counter's stated 24000000 Hz
[ 0.636 cpu0 loader] Black box: firmware would not give 0x8000000+0x4000 (UEFI Error NOT_FOUND: ()), so this boot leaves nothing behind and the next one has nothing to read
[ 0.636 cpu0 loader] Boot attempts: this image has had the machine 0 time(s) without reporting; now 1
[ 0.637 cpu0 loader] Anti-rollback floor: ToyOSImageFloor-I52b163e2e741c0fc (image scope) holds 0
[ 0.638 cpu0 loader] Firmware watchdog: 60 s, until ExitBootServices disables it
[ 0.638 cpu0 loader] RSDP address: 0xbcb43018
[ 0.638 cpu0 loader] Boot partition: LBA 2048+69632 signature [90, ef, 3f, c9, 7c, eb, 9e, 4b, bc, 94, e6, ed, a3, b5, eb, fa]
[ 0.639 cpu0 loader] Log partition: signature [57, 58, 4d, 47, d5, 2a, 09, 4d, 82, 28, 09, 4f, 00, 57, 09, 72]
[ 0.644 cpu0 loader] Slots: the table marks A (sequence 1); slot A present, slot B absent; the floor is 0
[ 0.649 cpu0 loader] Slot A: signed header dc253d24f2910e02b26eabdeeb9bf8348146f859444a61309ba0a752db5847ff verifies under this loader's key, version 1791646849
[ 0.662 cpu0 loader] ROOT: read into memory at 0xbbbb6000+0x600000 from LBA 212992+12288, 1048576 bytes a request (optimal granularity: not reported), in 117913 counter ticks
[ 0.675 cpu0 loader] Slot A: ROOT hashed in 291893 counter ticks
[ 0.675 cpu0 loader] Slot A: kernel, cmdline and ROOT are the bytes the signed header names
[ 0.676 cpu0 loader] Boot attempts: slot A's image is written down as the one this pass boots
[ 0.677 cpu0 loader] Kernel: 2586448 bytes
[ 0.677 cpu0 loader] Boot parameter: "root=40549739a25c55e7ad92cca56d0cefc9,boot-slot=A"
[ 0.677 cpu0 loader] Loading kernel elf...
[ 0.678 cpu0 loader] Kernel stack size: 8388608
[ 0.678 cpu0 loader] Kernel memory size: 13709312
[ 0.680 cpu0 loader] Kernel memory located at: 0xbae00000
[ 0.681 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 0, len: 497324 }, filesz: 497324, file_offset: 0, flags: SegmentFlags(4) }
[ 0.682 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 563200, len: 1076736 }, filesz: 1076736, file_offset: 497664, flags: SegmentFlags(5) }
[ 0.682 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1705472, len: 2560 }, filesz: 240, file_offset: 1574400, flags: SegmentFlags(6) }
[ 0.683 cpu0 loader] Loading segment: Segment { image: ImageRange { start: 1771248, len: 3545808 }, filesz: 27184, file_offset: 1574640, flags: SegmentFlags(6) }
[ 0.684 cpu0 loader] Applied 3037 relocations
[ 0.684 cpu0 loader] GOP: mode 800x600 stride=800 format=1 fb=0xbc7a0000 size=3145728
[ 0.685 cpu0 loader] Boot chain: no Boot#### entry on this machine names the partition this image came off, so the boot after a reset is the firmware's own
[ 0.686 cpu0 loader] Starting kernel...
[ 0.686 cpu0 loader] CPU: entered at EL1
[ 0.686 cpu0 loader] GCD: 0x4000000+0x4000000 mmio cap=0xc000000000000001 attr=0x8000000000000001 free
[ 0.687 cpu0 loader] GCD: 0x10500000+0x2eb00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.687 cpu0 loader] GCD: 0x4010000000+0x10000000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.688 cpu0 loader] GCD: 0x8000100000+0x7ffff00000 mmio cap=0xc000000000000001 attr=0x1 free
[ 0.689 cpu0 loader] GCD: 14 descriptor(s); 4 free mmio range(s) of 0x200000 bytes or more handed to the kernel, 0 past its room
[ 0.692 cpu0 loader] Scanout: 0xbc7a0000+0x300000 mapped as the scanout in 2 MiB pages at identity and at PHYS_OFFSET, in 4 page directories
[ 0.700 cpu0 loader] Loader image: 0xbc431000+0x3f000, mapped at identity as 0xbc400000+0x200000
[ 0.709 cpu0 loader] Boot map: root 0xbac94000, 0x100000000 bytes at identity and at PHYS_OFFSET
[ 0.714 cpu0 loader] Kernel image: 0xbae00000+0xd13000 is inside the 0x100000000-byte boot map
[ 0.718 cpu0 loader] Parameter buffer: 0xbcb40818+0x31 is inside the 0x100000000-byte boot map
[ 0.719 cpu0 loader] Seed: 32 bytes from EFI_RNG_PROTOCOL for the kernel's generator
[ 0.720 cpu0 loader] Kernel arguments: 0x47685df0+0x520 is inside the 0x100000000-byte boot map
[ 0.725 cpu0 loader] Loader counter: 15222155 at entry, 17414938 at the handoff
[ 0.727 cpu0 loader] Loader log: the kernel handoff begins, so this file ends here
[ 0.731 cpu0 kernel] panic console: armed 800x600 stride=800 format=1 at 0xbc7a0000, write-combining
[ 0.731 cpu0 kernel] black box: this boot's parameter line names no page, so a panic reaches the panel and nowhere else
[ 0.731 cpu0 kernel] serial: PL011 at 0x9000000 (SPCR, GSIV 33)
[ 0.733 cpu0 kernel] control registers: SCTLR_EL1=0x30d0199d TCR_EL1=0x12b5103510 MAIR_EL1=0x44ff04 CPACR_EL1=0x300000 CNTKCTL_EL1=0x2, as declared; entered at EL1

[ 0.734 cpu0 kernel] memory: 0x000040000000..0x000044000000 uefi type 7
[ 0.734 cpu0 kernel] memory: 0x000044000000..0x000044020000 uefi type 4
[ 0.734 cpu0 kernel] memory: 0x000044020000..0x000047666000 uefi type 7
[ 0.734 cpu0 kernel] memory: 0x000047666000..0x000047687000 uefi type 4
[ 0.735 cpu0 kernel] memory: 0x000047687000..0x0000476cc000 uefi type 3
[ 0.735 cpu0 kernel] memory: 0x0000476cc000..0x000047eea000 uefi type 4
[ 0.735 cpu0 kernel] memory: 0x000047eea000..0x000047ef2000 uefi type 3
[ 0.735 cpu0 kernel] memory: 0x000047ef2000..0x000047ff3000 uefi type 4
[ 0.735 cpu0 kernel] memory: 0x000047ff3000..0x000047ffa000 uefi type 3
[ 0.735 cpu0 kernel] memory: 0x000047ffa000..0x000048000000 uefi type 4
[ 0.736 cpu0 kernel] memory: 0x000048000000..0x0000bac91000 uefi type 7
[ 0.736 cpu0 kernel] memory: 0x0000bac91000..0x0000bc431000 uefi type 2
[ 0.736 cpu0 kernel] memory: 0x0000bc431000..0x0000bc470000 uefi type 1
[ 0.736 cpu0 kernel] memory: 0x0000bc470000..0x0000bc4f0000 uefi type 5
[ 0.736 cpu0 kernel] memory: 0x0000bc4f0000..0x0000bc660000 uefi type 6
[ 0.736 cpu0 kernel] memory: 0x0000bc660000..0x0000bc6b0000 uefi type 5
[ 0.737 cpu0 kernel] memory: 0x0000bc6b0000..0x0000bc750000 uefi type 6
[ 0.737 cpu0 kernel] memory: 0x0000bc750000..0x0000bc7a0000 uefi type 5
[ 0.737 cpu0 kernel] memory: 0x0000bc7a0000..0x0000bcaa0000 uefi type 0
[ 0.737 cpu0 kernel] memory: 0x0000bcaa0000..0x0000bcb40000 uefi type 5
[ 0.737 cpu0 kernel] memory: 0x0000bcb40000..0x0000bcb41000 uefi type 2
[ 0.738 cpu0 kernel] memory: 0x0000bcb41000..0x0000bcb44000 uefi type 9
[ 0.738 cpu0 kernel] memory: 0x0000bcb44000..0x0000be0f5000 uefi type 7
[ 0.738 cpu0 kernel] memory: 0x0000be0f5000..0x0000bfa38000 uefi type 4
[ 0.738 cpu0 kernel] memory: 0x0000bfa38000..0x0000bfb8c000 uefi type 7
[ 0.738 cpu0 kernel] memory: 0x0000bfb8c000..0x0000bfe20000 uefi type 3
[ 0.738 cpu0 kernel] memory: 0x0000bfe20000..0x0000bfeb0000 uefi type 5
[ 0.739 cpu0 kernel] memory: 0x0000bfeb0000..0x0000bfec0000 uefi type 7
[ 0.739 cpu0 kernel] memory: 0x0000bfec0000..0x0000bffe0000 uefi type 6
[ 0.739 cpu0 kernel] memory: 0x0000bffe0000..0x0000bffff000 uefi type 7
[ 0.739 cpu0 kernel] memory: 0x0000bffff000..0x0000c0000000 uefi type 4
[ 0.739 cpu0 kernel] memory: 0x000004000000..0x000008000000 uefi type 11
[ 0.739 cpu0 kernel] memory: 0x000009010000..0x000009011000 uefi type 11
[ 0.740 cpu0 kernel] memory: 33 ranges, as the loader handed them over
[ 0.740 cpu0 kernel] ACPI: MADT GICD at 0x8000000, GIC version 3
[ 0.740 cpu0 kernel] ACPI: MADT GICC uid=0 mpidr=0x0 enabled=true gicr=0x0
[ 0.740 cpu0 kernel] ACPI: MADT GICR range 0x80a0000+0xf60000
[ 0.740 cpu0 kernel] ACPI: MADT ITS 0 at 0x8080000
[ 0.740 cpu0 kernel] ACPI: MADT names 1 GIC CPU interfaces, 1 enabled
[ 0.740 cpu0 kernel] ACPI: GTDT timers: EL1 physical GSIV 30, EL1 virtual GSIV 27, EL2 GSIV 26 (level)
[ 0.741 cpu0 kernel] boot: memory map 0xbac92018+0x318, kernel 0xbae00000+0xd13000, stack image+0x513000+0x800000
[ 0.742 cpu0 kernel] boot: kernel elf 0xbc1b6018+0x277750, rsdp 0xbcb43018, boot pml4 0xbac94000
[ 0.742 cpu0 kernel] boot: gop 0xbc7a0000+0x300000 800x600 stride 800 format 1
[ 0.742 cpu0 kernel] boot: boot partition present=1 lba 2048 +69632 blocks guid [90, ef, 3f, c9, 7c, eb, 9e, 4b, bc, 94, e6, ed, a3, b5, eb, fa]
[ 0.743 cpu0 kernel] boot: log partition guid [57, 58, 4d, 47, d5, 2a, 09, 4d, 82, 28, 09, 4f, 00, 57, 09, 72]
[ 0.744 cpu0 kernel] boot: cmdline 0xbcb40818+49
[ 0.744 cpu0 kernel] boot: root=40549739a25c55e7ad92cca56d0cefc9
[ 0.744 cpu0 kernel] boot: slot A, the one the slot table marks
[ 0.744 cpu0 kernel] random: the loader's seed is mixed into the generator's key
[ 0.744 cpu0 kernel] random: RNDR is not mixed: ID_AA64ISAR0_EL1.RNDR is zero, so this CPU has no RNDR
[ 0.745 cpu0 kernel] random: the generator is keyed from 1 source(s), and every random byte is its ChaCha20
[ 0.745 cpu0 kernel] pmm: the firmware map calls 2138558464 bytes usable in 21 entries; managed=2101346304 withheld=23068672 unaligned=14143488, and the three sum to it; frames=1002 reserved_frames=11 base=0x40000000 span=1023
[ 0.747 cpu0 kernel] paging: the direct map holds memory below 0xc0000000 in 1019 2 MiB blocks and 384 4 KiB pages
[ 0.748 cpu0 kernel] mmio: 0xbc7a0000+0x300000 WriteCombining
[ 0.748 cpu0 kernel] ACPI: APIC at 0xbcb43c98 len=184 rev=4 oem="BOCHS" checksummed
[ 0.748 cpu0 kernel] ACPI: FACP at 0xbcb43b18 len=276 rev=6 oem="BOCHS" checksummed
[ 0.748 cpu0 kernel] ACPI: GTDT at 0xbcb43098 len=104 rev=3 oem="BOCHS" checksummed
[ 0.749 cpu0 kernel] ACPI: SPCR at 0xbcb43e98 len=80 rev=2 oem="BOCHS" checksummed
[ 0.749 cpu0 kernel] ACPI: MCFG at 0xbcb43a98 len=60 rev=1 oem="BOCHS" checksummed
[ 0.749 cpu0 kernel] ACPI: 5 of 5 tables checksummed under the RSDP at 0xbcb43018
[ 0.750 cpu0 kernel] PSCI: 1.1 through HVC
[ 0.750 cpu0 kernel] percpu: BSP cpu_id=0 mpidr=0x0
[ 0.750 cpu0 kernel] mmio: 0x80a0000+0xf60000 Uncacheable
[ 0.750 cpu0 kernel] mmio: 0x8000000+0x10000 Uncacheable
[ 0.750 cpu0 kernel] GIC: v3 distributor at 0x8000000; SGIs and the virtual timer's PPI 27 (level) taken at priority 0x80
[ 0.751 cpu0 kernel] GIC: this CPU's redistributor at 0x80a0000, its SGIs and timer enabled
[ 0.751 cpu0 kernel] mmio: 0x8080000+0x10000 Uncacheable
[ 0.752 cpu0 kernel] ITS: 0 at 0x8080000 armed: doorbell 0x8090040, collection 0 on the boot CPU's redistributor at 0x80a0000, LPIs [8192, 8193, 8194, 8195] for the claim slots
[ 0.752 cpu0 kernel] counters: cpu0 reads smi=false aperf=false mperf=false hwp_request=false hwp_request_pkg=false energy_perf_bias=false
[ 0.753 cpu0 kernel] symbols: loaded 18544 kernel symbols
[ 0.753 cpu0 kernel] clock: the generic timer counts at 24000000 Hz; no wall clock is read on this architecture
[ 0.753 cpu0 kernel] timer: the EL1 virtual timer, PPI 27, stopped until the scheduler arms it
[ 0.754 cpu0 kernel] Boot: CPU ready (0ms)
[ 0.754 cpu0 kernel] ACPI: RSDP at 0xbcb43018
[ 0.754 cpu0 kernel] ACPI: MCFG found at 0xbcb43a98
[ 0.754 cpu0 kernel] ACPI: ECAM base address: 0x4010000000
[ 0.754 cpu0 kernel] mmio: 0x4010000000+0x10000000 Uncacheable
[ 0.754 cpu0 kernel] PCI: Enumerating devices...
[ 0.755 cpu0 kernel]   PCI 00:00.0 [0600] vendor=1b36 device=0008 prog_if=00 bars=[]
[ 0.755 cpu0 kernel]   PCI 00:01.0 [0c03] vendor=1033 device=0194 prog_if=30 bars=[bar0=0x8000004000]
[ 0.755 cpu0 kernel]   PCI 00:02.0 [00ff] vendor=1af4 device=1005 prog_if=00 bars=[bar0=none(it is an I/O BAR at port 0x0, not memory) bar1=0x10100000 bar4=0x8000000000]
[ 0.755 cpu0 kernel]   PCI 00:03.0 [00ff] vendor=1234 device=11e8 prog_if=00 bars=[bar0=0x10000000]
[ 0.756 cpu0 kernel]   PCI 00:04.0 [0600] vendor=1b36 device=000b prog_if=00 bars=[]
[ 0.756 cpu0 kernel]   PCI 08:00.0 [0604] vendor=1b36 device=000c prog_if=00 bars=[bar0=0x10400000]
[ 0.756 cpu0 kernel]   PCI 09:00.0 [0200] vendor=8086 device=10d3 prog_if=00 bars=[bar0=0x10220000 bar1=0x10200000 bar2=none(it is an I/O BAR at port 0x1000, not memory) bar3=0x10240000]
[ 0.767 cpu0 kernel] PCI: Enumeration complete, 7 functions.
[ 0.768 cpu0 kernel] pcidev: PCI 08:00.0 forwards 0x10200000..0x10400000 to its secondary bus
[ 0.768 cpu0 kernel] pcidev: firmware declared root bridge memory: mem 0x10000000..0x10200000, mem 0x8000000000..0x8000100000, mem 0x10200000..0x10500000, mem 0x4000000..0x8000000, mem 0x10500000..0x3f000000, mem 0x4010000000..0x4020000000, mem 0x8000100000..0x10000000000
[ 0.769 cpu0 kernel] pcidev: 7 functions; 5 run(s) of 2 MiB or more below 0xfec00000 and 2 from 0x100000000
[ 0.769 cpu0 kernel] pcidev:   0x0..0x4000000 (64 MiB)
[ 0.769 cpu0 kernel] pcidev:   0x8000000..0x9010000 (16 MiB)
[ 0.769 cpu0 kernel] pcidev:   0x9011000..0x10000000 (111 MiB)
[ 0.770 cpu0 kernel] pcidev:   0x10401000..0x40000000 (763 MiB)
[ 0.770 cpu0 kernel] pcidev:   0xc0000000..0xfec00000 (1004 MiB)
[ 0.770 cpu0 kernel] pcidev:   0x100000000..0x8000000000 (520192 MiB)
[ 0.770 cpu0 kernel] pcidev:   0x8000008000..0xffffffffffffffff (17592185520127 MiB)
[ 0.771 cpu0 kernel] mmio: 0x9050000+0x20000 Uncacheable
[ 0.771 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000: GBPA 0x101000, every transaction aborts while SMMUEN is clear
[ 0.771 cpu0 kernel] IOMMU: 08:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2048 })
[ 0.771 cpu0 kernel] IOMMU: 09:00.0 is not routed through the SMMUv3: Untranslated(ItsDevice { its: 0, device: 2304 })
[ 0.772 cpu0 kernel] IOMMU: SMMUv3 at 0x9050000 armed, CR0ACK 0xd: 5 functions' streams aborting in a table of 64, every other entry invalid; a CMD_SYNC consumed; events on SPI 106
[ 0.773 cpu0 kernel] file cache: budget 8016 pages (31 MiB)
[ 0.773 cpu0 kernel] gpt: the boot volume names 474D5857-2AD5-4D09-8228-094F00570972 as the log partition
[ 0.774 cpu0 kernel] gpt: firmware booted us from partition C93FEF90-EB7C-4B9E-BC94-E6EDA3B5EBFA at LBA 2048+69632
[ 0.774 cpu0 kernel] Boot: peripherals ready (20ms)
[ 0.775 cpu0 kernel] SMP: 1 of 1 MADT CPUs online
[ 0.775 cpu0 kernel] root: mounted read-only from memory at 0xbbbb6000+0x600000, filesystem 40549739a25c55e7ad92cca56d0cefc9, 1536 blocks
[ 0.776 cpu0 kernel] Boot: subsystems ready (0ms)
[ 0.779 cpu0 kernel] spawn: /system/bin/supervisor pid=0 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=2ms total=2ms)
[ 0.779 cpu0 kernel] spawned /system/bin/supervisor pid=0
[ 0.779 cpu0 kernel] boot: the supervisor spawned with ROOT from memory; storage commands before it: 0
[ 0.780 cpu0 kernel] xHCI: found at PCI 00:01.0 1033:0194
[ 0.780 cpu0 kernel] xHCI: BAR0=0x8000004000
[ 0.780 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.781 cpu0 kernel] PCI 00:01.0: not armed — a driver in this kernel is given no LPI: the ITS maps only a claimed function's DeviceID, and such a driver has no address space for its DMA
[ 0.782 cpu0 kernel] xHCI: NOT INITIALISED at PCI 00:01.0 — the controller offers neither MSI-X nor MSI, and this driver has no other way to be told it has anything to say. No USB device on it can be used.
[ 0.782 cpu0 kernel] xHCI: 1 controller(s) present, none of them usable, USB unavailable
[ 2.283 cpu0 kernel] usb-storage: 0 disk(s) on this machine and none carries the boot partition after 1500 ms of looking
[ 2.284 cpu0 kernel] root: the partition ROOT was read from, FCC9BF39-17A2-4BFF-8DA6-6BEA0FE4157A, is not held because it is on no disk this kernel drives; every claim of it is refused; disks that did not answer: []
[ 2.284 cpu0 kernel] Boot: storage ready (1504ms)
[ 2.284 cpu0 kernel] virtio-console: no device found
[ 2.285 cpu0 kernel] GPU: using UEFI GOP
[ 2.285 cpu0 kernel] GOP: the scanout at 0xbc7a0000+0x300000 is refused: its base is not on a 2 MiB page, and a process is given a scanout in 2 MiB pages
[ 2.285 cpu0 kernel] GPU: none this boot, running headless
[ 2.285 cpu0 kernel] Boot: devices ready (1ms)
[ 2.286 cpu0 kernel] log: /log is on a disk this kernel does not drive; its file server says whether it mounted
[ 2.286 cpu0 kernel] Boot: complete (1533ms)
[ 2.287 cpu0 kernel] boot: power-on to loader 634 ms, loader 91 ms (ROOT read 4 ms), kernel to Boot: complete 1560 ms
[ 2.287 cpu0 kernel] kthread: klogd pid=1 tid=0 runs in the kernel address space
[ 2.292 cpu0 kernel] spawn: /system/bin/logkeeper pid=2 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.293 cpu0 kernel] spawn: /system/bin/test-runner pid=3 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.299 cpu0 kernel] spawn: /system/bin/test_rs_claim_lpi pid=4 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=1ms total=1ms)
[ 2.299 cpu0 kernel] iommu: domain1 root=0x40803000 context=0x40804000 asid=1 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[ 2.299 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[ 2.299 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000001
[ 2.299 cpu0 kernel] mmio: 0x10000000+0x100000 Uncacheable
[ 2.300 cpu0 kernel] mmio: 0x10600000+0x200000 Uncacheable
[ 2.288 supervisor] supervisor: build 0de25fd5e4007a51baae8e04e3505d520a9f043d dirty, committed 2026-10-10 14:53:26 UTC, toolchain c6ef51116e8de2e2, aarch64
[ 2.290 supervisor tid=1] supervisor: /home/toy could not be made, so this boot has no session home: permission denied
[ 2.290 supervisor] supervisor: logkeeper: /state/logkeeper could not be made: permission denied
[ 2.292 supervisor] supervisor: started logkeeper
[ 2.293 supervisor] supervisor: started test-runner
[ 2.295 logkeeper] logkeeper: cannot create /log/unknown-00.log: permission denied
[ 2.295 logkeeper] logkeeper: no /log on this machine - this boot's kernel log is on the console only (undated: this machine will not say what time it is)
[ 2.300 cpu0 kernel] pcidev: PCI 00:03.0 BAR 0 (0x100000 bytes) placed at 0x10600000 — inside firmware's mem 0x10500000; its +0x0 dword answers 0x010000ed there, and answered 0x010000ed from 0x10000000, where firmware put it
[ 2.300 cpu0 kernel] iommu: 00:03.0 moves to domain1
[ 2.300 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[ 2.300 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 4
[ 2.300 cpu0 kernel] iommu: domain1 maps 0x46600000..0x46800000 at 0x400002000000
[ 2.296 test-runner] ===READY===
[ 2.297 test-runner] ===TEST_START test_rs_claim_lpi===
[12.307 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[12.307 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[12.307 cpu0 kernel] exit: test_rs_claim_lpi pid=4 code=101 cpu=3ms peak=4MB allocs=3 frees=0 syscalls=54 syscall_wall=10007ms 1=3 6=1 9=2 10=10 13=2 14=3 21=1 50=1 51=1 63=2 66=2 72=1 73=1 89=1 90=1 91=2 99=2 102=4 105=4 106=7 111=1 117=1 118=1
[12.308 cpu0 kernel] spawn: /system/bin/test_rs_claim_unrouted pid=5 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[12.308 cpu0 kernel] iommu: domain2 root=0x4080a000 context=0x4080b000 asid=2 addresses from 0x400000000000 to 0x1000000000000, the doorbell page at 0x8090000
[12.309 cpu0 kernel] pcidev: PCI 09:00.0 NOT HANDED OVER — no message of its own could be made for it — the IORT gives it no DeviceID at this kernel's ITS behind the SMMUv3, so no table of its own would translate its message and no domain of its own would confine its writes
[12.309 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[12.309 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000001
[12.309 cpu0 kernel] iommu: 00:03.0 moves to domain1
[12.309 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[12.309 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[12.309 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[12.309 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[12.309 cpu0 kernel] exit: test_rs_claim_unrouted pid=5 code=0 cpu=1ms peak=2MB allocs=2 frees=0 syscalls=14 syscall_wall=1ms 6=1 10=2 14=1 50=1 51=1 63=1 72=1 73=1 91=1 99=1 106=1 111=2
[12.318 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=6 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[12.318 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[12.318 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000001
[12.318 cpu0 kernel] iommu: 00:03.0 moves to domain1
[12.318 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[12.318 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[12.318 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 6
[12.318 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[12.304 test-runner error pid=4] 
[12.304 test-runner error pid=4] thread 'main' (1) panicked at src/bin/claim_lpi.rs:54:25:
[12.304 test-runner error pid=4] claim_lpi: message 1 was not read as the claim's interrupt within 10s: WouldBlock
[12.304 test-runner error pid=4] stack backtrace:
[12.306 test-runner error pid=4]    0:      0x10000065ee0 - _Unwind_Backtrace
[12.306 test-runner error pid=4]    1:      0x10000051044 - <<std[1ed676a381e62ece]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[f28ba090d62d1c7]::fmt::Display>::fmt
[12.306 test-runner error pid=4]    2:      0x1000006a0b4 - core[f28ba090d62d1c7]::fmt::write
[12.306 test-runner error pid=4]    3:      0x10000054dd8 - <std[1ed676a381e62ece]::sys::stdio::toyos::Stderr as core[f28ba090d62d1c7]::io::write::Write>::write_fmt
[12.318 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[12.320 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=7 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[12.320 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[12.320 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000001
[12.320 cpu0 kernel] iommu: 00:03.0 moves to domain1
[12.320 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[12.320 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[12.320 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 7
[12.306 test-runner error pid=4]    4:      0x1000003b1b0 - std[1ed676a381e62ece]::panicking::default_hook::{closure#0}
[12.306 test-runner error pid=4]    5:      0x1000004c72c - std[1ed676a381e62ece]::panicking::default_hook
[12.306 test-runner error pid=4]    6:      0x1000004c8f0 - std[1ed676a381e62ece]::panicking::panic_with_hook
[12.306 test-runner error pid=4]    7:      0x1000003b254 - std[1ed676a381e62ece]::panicking::panic_handler::{closure#0}
[12.306 test-runner error pid=4]    8:      0x100000343f0 - std[1ed676a381e62ece]::sys::backtrace::__rust_end_short_backtrace::<std[1ed676a381e62ece]::panicking::panic_handler::{closure#0}, !>
[12.306 test-runner error pid=4]    9:      0x1000003ba2c - __rustc[d0c72ce299f394e5]::rust_begin_unwind
[12.306 test-runner error pid=4]   10:      0x1000006a848 - core[f28ba090d62d1c7]::panicking::panic_fmt
[12.306 test-runner error pid=4]   11:      0x1000002a0f4 - claim_lpi[e297ea72218eb836]::main
[12.320 cpu0 kernel alert] FAULT pc=0x000001000002da8c far=0x000001000002f1f8 esr=0x02000000 sp=0x000000fffec00080 tid=0
[12.320 cpu0 kernel] SIGILL tid=0: illegal instruction
[12.320 cpu0 kernel]   pc:
[12.320 cpu0 kernel]     0x1000002da8c  /system/bin/test_rs_claim_bar_fault+0x2da8c id=52133103438db6fdc169e33be3df9462a76daf7f
[12.320 cpu0 kernel]   Registers:
[12.320 cpu0 kernel]     x0 =0x000000fffec00000  x1 =0x0000000000100000
[12.320 cpu0 kernel]     x2 =0x0000000000000000  x3 =0x0000000000000000
[12.320 cpu0 kernel]     x4 =0x0000000000000000  x5 =0x0000000000000000
[12.306 test-runner error pid=4]   12:      0x1000002a440 - std[1ed676a381e62ece]::sys::backtrace::__rust_begin_short_backtrace::<fn(), ()>
[12.306 test-runner error pid=4]   13:      0x1000002a740 - std[1ed676a381e62ece]::rt::lang_start::<()>::{closure#0}
[12.306 test-runner error pid=4]   14:      0x1000004c0c4 - std[1ed676a381e62ece]::rt::lang_start_internal
[12.306 test-runner error pid=4]   15:      0x1000002a2f8 - main
[12.306 test-runner error pid=4]   16:      0x1000004fac8 - std[1ed676a381e62ece]::sys::pal::toyos::start_rust
[12.306 test-runner error pid=4]   17:      0x1000002b89c - _start
[12.307 test-runner] ===TEST_END test_rs_claim_lpi exit=101===
[12.307 test-runner] ===TEST_START test_rs_claim_unrouted===
[12.320 cpu0 kernel]     x6 =0x0000000000000000  x7 =0x0000000000000000
[12.320 cpu0 kernel]     x8 =0x000000fffec00080  x9 =0x0000000000000065
[12.320 cpu0 kernel]     x10=0x0000000000000065  x11=0x000000006d617266
[12.320 cpu0 kernel]     x12=0x000001000000956c  x13=0x0000000000000070
[12.320 cpu0 kernel]     x14=0x0000000000000005  x15=0x0000000000000000
[12.320 cpu0 kernel]     x16=0x0000000000000000  x17=0x0000000000000000
[12.320 cpu0 kernel]     x18=0x0000000000000000  x19=0x000000ffff000080
[12.320 cpu0 kernel]     x20=0x0000000000000005  x21=0x000000fffffffcc0
[12.309 test-runner pid=5] claim_unrouted: e1000e, routed past the SMMUv3, was refused, and edu was claimed after
[12.317 test-runner] ===TEST_END test_rs_claim_unrouted exit=0===
[12.317 test-runner] ===TEST_START test_rs_claim_bar_fault===
[12.318 test-runner pid=6] claim_bar_fault: a read into the BAR and a write from it were refused BadAddress, the registers untouched
[12.320 test-runner pid=6] claim_bar_fault: the frame child's fault in the BAR ended it
[12.321 test-runner pid=6] claim_bar_fault: the jump child's fault in the BAR ended it
[12.322 test-runner pid=6] claim_bar_fault: two faults in the BAR ended their processes, and a syscall naming it was refused
[12.322 test-runner] ===TEST_END test_rs_claim_bar_fault exit=0===
[12.320 cpu0 kernel]     x22=0x0000000000000000  x23=0x0000000000000000
[12.320 cpu0 kernel]     x24=0x0000000000000000  x25=0x0000000000000000
[12.320 cpu0 kernel]     x26=0x0000000000000000  x27=0x0000000000000000
[12.320 cpu0 kernel]     x28=0x0000000000000000  x29=0x000000fffec00080
[12.320 cpu0 kernel]     x30=0x000001000002da10  sp=0x000000fffec00080  spsr=0x60000000
[12.320 cpu0 kernel]   Backtrace:
[12.320 cpu0 kernel]   Page fault trace (1 total, last 1):
[12.320 cpu0 kernel]     fault=0x1000002f1f8 elf_off=0x0 blk=524288 relocs=605 354us [    X]
[12.320 cpu0 kernel]   Thread pointer: 0xffff400210
[12.320 cpu0 kernel]     TP+0x0 = 0x000000ffff400000
[12.320 cpu0 kernel]     TP+0x8 = 0x0000000000000000
[12.320 cpu0 kernel]     TP+0x10 = 0x0000000000000000
[12.320 cpu0 kernel]     TP+0x18 = 0x0000000000000001
[12.320 cpu0 kernel]     TP+0x20 = 0x0000000000000000
[12.320 cpu0 kernel]     TP+0x28 = 0x0000000000000000
[12.320 cpu0 kernel]     TP+0x30 = 0x0000000000000008
[12.320 cpu0 kernel]     TP+0x38 = 0x0000000000000000
[12.320 cpu0 kernel]   TLS data before TP:
[12.320 cpu0 kernel]     TP-0x8 = 0xffffffffffffffff
[12.320 cpu0 kernel]     TP-0x10 = 0xffffffffffffffff
[12.320 cpu0 kernel]     TP-0x18 = 0xffffffffffffffff
[12.320 cpu0 kernel]     TP-0x20 = 0xffffffffffffffff
[12.320 cpu0 kernel] exit: test_rs_claim_bar_fault pid=7 code=-1 cpu=0ms peak=2MB allocs=2 frees=0 syscalls=10 syscall_wall=0ms 1=1 6=1 10=1 63=1 73=1 91=1 99=1 106=1 111=1 117=1
[12.320 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[12.320 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[12.321 cpu0 kernel] spawn: /system/bin/test_rs_claim_bar_fault pid=8 unresolved=0 (layout=0ms relocs=0ms deps=0ms tls=0ms total=0ms)
[12.321 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[12.321 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000001
[12.321 cpu0 kernel] iommu: 00:03.0 moves to domain1
[12.321 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[12.321 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[12.321 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 8
[12.321 cpu0 kernel alert] FAULT pc=0x000000fffec00080 far=0x000000fffec00080 esr=0x8200000e sp=0x000000fffffffcc0 tid=0
[12.321 cpu0 kernel] SEGFAULT tid=0: execute protection violation at 0xfffec00080 (FSC 0xe)
[12.321 cpu0 kernel]   pc:
[12.321 cpu0 kernel]     0xfffec00080
[12.321 cpu0 kernel]   Page walk for 0xfffec00080 through TTBR0_EL1=0x8000046230000:
[12.321 cpu0 kernel]     L0[1] = 0x0000000046236003
[12.321 cpu0 kernel]     L1[511] = 0x0000000046238003
[12.321 cpu0 kernel]     L2[502] = 0x0060000010600c41
[12.321 cpu0 kernel]   Registers:
[12.321 cpu0 kernel]     x0 =0x000000fffec00000  x1 =0x0000000000100000
[12.321 cpu0 kernel]     x2 =0x0000000000000000  x3 =0x0000000000000000
[12.321 cpu0 kernel]     x4 =0x0000000000000000  x5 =0x0000000000000000
[12.321 cpu0 kernel]     x6 =0x0000000000000000  x7 =0x0000000000000000
[12.321 cpu0 kernel]     x8 =0x000000fffec00080  x9 =0x00000000706d756a
[12.321 cpu0 kernel]     x10=0x00000000706d756a  x11=0x0000000000000000
[12.321 cpu0 kernel]     x12=0x000001000000956c  x13=0x0000000000000070
[12.321 cpu0 kernel]     x14=0x0000000000000005  x15=0x0000000000000000
[12.321 cpu0 kernel]     x16=0x0000000000000000  x17=0x0000000000000000
[12.321 cpu0 kernel]     x18=0x0000000000000000  x19=0x000000ffff000080
[12.321 cpu0 kernel]     x20=0x0000000000000004  x21=0x000000fffffffcc0
[12.321 cpu0 kernel]     x22=0x0000000000000000  x23=0x0000000000000000
[12.321 cpu0 kernel]     x24=0x0000000000000000  x25=0x0000000000000000
[12.321 cpu0 kernel]     x26=0x0000000000000000  x27=0x0000000000000000
[12.321 cpu0 kernel]     x28=0x0000000000000000  x29=0x000000fffffffe80
[12.321 cpu0 kernel]     x30=0x000001000002daac  sp=0x000000fffffffcc0  spsr=0x60000800
[12.321 cpu0 kernel]   Backtrace:
[12.321 cpu0 kernel]     0x1000002e374  /system/bin/test_rs_claim_bar_fault+0x2e373 id=52133103438db6fdc169e33be3df9462a76daf7f
[12.321 cpu0 kernel]     0x1000002cd90  /system/bin/test_rs_claim_bar_fault+0x2cd8f id=52133103438db6fdc169e33be3df9462a76daf7f
[12.321 cpu0 kernel]     0x100000550b0  /system/bin/test_rs_claim_bar_fault+0x550af id=52133103438db6fdc169e33be3df9462a76daf7f
[12.321 cpu0 kernel]     0x1000002dd64  /system/bin/test_rs_claim_bar_fault+0x2dd63 id=52133103438db6fdc169e33be3df9462a76daf7f
[12.321 cpu0 kernel]     0x10000059304  /system/bin/test_rs_claim_bar_fault+0x59303 id=52133103438db6fdc169e33be3df9462a76daf7f
[12.321 cpu0 kernel]     0x1000002f20c  /system/bin/test_rs_claim_bar_fault+0x2f20b id=52133103438db6fdc169e33be3df9462a76daf7f
[12.321 cpu0 kernel]   Page fault trace (1 total, last 1):
[12.321 cpu0 kernel]     fault=0x1000002f1f8 elf_off=0x0 blk=524288 relocs=605 184us [    X]
[12.321 cpu0 kernel]   Thread pointer: 0xffff400210
[12.321 cpu0 kernel]     TP+0x0 = 0x000000ffff400000
[12.321 cpu0 kernel]     TP+0x8 = 0x0000000000000000
[12.321 cpu0 kernel]     TP+0x10 = 0x0000000000000000
[12.321 cpu0 kernel]     TP+0x18 = 0x0000000000000001
[12.321 cpu0 kernel]     TP+0x20 = 0x0000000000000000
[12.321 cpu0 kernel]     TP+0x28 = 0x0000000000000000
[12.321 cpu0 kernel]     TP+0x30 = 0x0000000000000008
[12.321 cpu0 kernel]     TP+0x38 = 0x0000000000000000
[12.321 cpu0 kernel]   TLS data before TP:
[12.321 cpu0 kernel]     TP-0x8 = 0xffffffffffffffff
[12.321 cpu0 kernel]     TP-0x10 = 0xffffffffffffffff
[12.321 cpu0 kernel]     TP-0x18 = 0xffffffffffffffff
[12.321 cpu0 kernel]     TP-0x20 = 0xffffffffffffffff
[12.321 cpu0 kernel] exit: test_rs_claim_bar_fault pid=8 code=-1 cpu=0ms peak=2MB allocs=2 frees=0 syscalls=10 syscall_wall=0ms 1=1 6=1 10=1 63=1 73=1 91=1 99=1 106=1 111=1 117=1
[12.321 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[12.321 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[12.321 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, event 0 is slot 0's LPI 8192
[12.322 cpu0 kernel] PCI 00:03.0: msi address=0x08090040 data=0x00000001
[12.322 cpu0 kernel] iommu: 00:03.0 moves to domain1
[12.322 cpu0 kernel] pcidev: slot 0 holds 1 range(s), 2097152 bytes, its function was left aimed at: a grant of a range's size is placed there, on fresh pages
[12.322 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] handed over on slot 0, LPI 8192
[12.322 cpu0 kernel] shm: 0x10600000 mapped Uncacheable into pid 6
[12.322 cpu0 kernel] ITS: 00:03.0, DeviceID 0x18, unmapped from slot 0
[12.322 cpu0 kernel] pcidev: PCI 00:03.0 [1234:11e8] released from slot 0; reset by nothing (Express: no capability; AF: no capability; PM: no capability), so where it may still be aimed is kept for its next claim
[12.322 cpu0 kernel] exit: test_rs_claim_bar_fault pid=6 code=0 cpu=2ms peak=2MB allocs=2 frees=0 syscalls=54 syscall_wall=3ms 0=2 1=3 6=1 10=12 14=1 21=2 24=1 25=2 50=5 51=1 63=1 72=1 73=1 91=1 99=2 102=3 105=3 106=6 108=2 111=2 117=2
[12.322 cpu0 kernel tid=1] exit: test-runner pid=3 code=0 cpu=4ms peak=6MB allocs=3 frees=0 syscalls=69 syscall_wall=10025ms 6=1 10=18 14=1 21=3 24=3 25=3 40=1 50=10 51=1 63=2 72=1 73=2 91=1 99=2 102=6 105=5 106=6 108=3

15:41:10   FAIL  virt_claim_lpi  (13s)
15:41:10   --- 1 guests, 0 of them not the shipping kernel, 1 kernel build(s): [""]

15:41:10 host: fastest boot 826 ms against the reference 1424 ms — liveness ceilings paid at 1.00x
15:41:10 host: 14 core(s); a guest wider than that waits vcpus/cores longer again
15:41:10 failures:
15:41:10     virt_claim_lpi: "claim_lpi: 16 messages edu sent were read as 16 interrupts of its claim, one each" not on the PL011 ([12.307 test-runner] ===TEST_END test_rs_claim_lpi exit=101===)

15:41:10 test result: FAILED. 0 passed, 1 failed, 0 invalidated, 1 total (29.4s; workers: 16s building, 13s testing)
15:41:10 [toyos] this red run's serial logs are kept at /Users/jan/Dev/jan/toyos-arm-g3/target/red-run-serial/toyos-tmp-50036-0
error: test failed, to rerun pass `--test toyos-build`

Caused by:
  process didn't exit successfully: `/Users/jan/Dev/jan/toyos-arm-g3/target/debug/deps/toyos_build-8bef5b37e99e2df5 virt_claim_lpi` (exit status: 1)
EXIT=1

@Japabu Japabu changed the title A claimed function's message is its claim slot's LPI through the GICv3 ITS, and no generic signature carries an x86 vector A claimed function's message is its claim slot's LPI through the GICv3 ITS, no generic signature carries an x86 vector, and the kernel copies and reports through no user leaf of a device's registers Oct 10, 2026
@Japabu

Japabu commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator Author

Review of #846 at 0de25fd, round 2, against .claude/agents/reviewer.md.

Earlier BLOCKERs

  • CLOSED — kernel/src/arch/aarch64/paging.rs, the crash report reading through a user leaf of a device's registers.
    • The fix: walk (and so translate and leaf) and read_user_word now answer nothing for a leaf whose policy is Uncacheable. A BAR is mapped Uncacheable (pcidev/mod.rs:1554). The WriteCombining scanout is still answered, and the direct map holds it as WC (gop.rs asserts that).
    • Every kernel reader of user memory goes through those paths: user_ptr through leaf, futex through translate_user, and the dump in process.rs:1594 through translate.
    • map_window_if_absent now asks the tables directly, so a Device leaf is not read as absent.
    • The test: claim_bar_fault covers the issue's exit (x29 in the BAR, a fault at an address in it, and a read), plus a write.
    • The reds: m1 (the whole paging change reverted) and m3 (walk reverted) are red at 0de25fd, EXIT=1. m2 (read_user_word reverted) is red on the marker, EXIT=1.
    • The issue is deleted with no citation left in the tree, and its rule now sits in the paging.rs module header.
  • CLOSED — kernel/src/arch/aarch64/irqchip/its.rs, LPI tables freed after EnableLPIs.
    • Both read-backs after EnableLPIs are assert!s.
    • Nothing after them returns Err: the ITT memory.alloc, Phys::new(..).expect and issue all panic on failure.
    • Every ? comes before EnableLPIs, while the redistributor cannot use the tables.
  • CLOSED — kernel/src/pcidev/mod.rs, a claim the SMMU does not route.
    • The premise was measured, and the test was moved to the topology that measurement found: pxb-pcie bypass_iommu=on gives Untranslated(ItsDevice { its: 0, device: 2304 }), EXIT=0.
    • device_of now reads the DeviceID from smmu::its_device, the same routes that stream() reads. So a function attach would panic on is refused by claim_msi, which bring_up runs before attach.
    • The mutation as named (patch comment 6098488206) is red at 0de25fd, EXIT=1, on the refusal's name (comment 6099233576).
    • That log also shows why the red cannot be the panic: 09:00.0 NOT HANDED OVER — its BAR was moved onto 8 32-bit address(es) … answered at none of them.

Earlier NOTEs: all closed.

  • The storm issue no longer cites pcidev::VECTORS, and it names each architecture's lever.
  • GITS_CBASER, GICR_PROPBASER and GICR_PENDBASER (without the write-only PTZ) are read back and refused before EnableLPIs.
  • Stage 6 of the track names the owed smmu-selftest arm as an exit a test can fail, and the premise is corrected: smmu/domain.rs has no detach.

Evidence at 0de25fd: cargo run -- --ci host EXIT=0; the default suite, virt_claim_lpi included, EXIT=0; both architecture builds EXIT=0. The negative control (production reverted onto 819b308, tests kept) is red, EXIT=1. r1-* and m1–m4 are red at this head.

Lines: git diff --shortstat origin/main...0de25fd5e gives 36 files, +1289 −376. Production (kernel/, Cargo.lock, toyos-its/) is +810 −289. Tests and harness are +416 −1, issues +63 −86. This round's production growth (read-backs, the route-carried DeviceID, the Device-leaf filter) is accepted: each piece closes a finding. The second IORT reader is deleted.

BLOCKER
(none)

NOTE
(none)

LAND

@Japabu
Japabu marked this pull request as ready for review October 10, 2026 15:48
@Japabu
Japabu enabled auto-merge October 10, 2026 15:48
@Japabu
Japabu added this pull request to the merge queue Oct 10, 2026
Merged via the queue into main with commit 6646a4f Oct 10, 2026
6 checks passed
@Japabu
Japabu deleted the wt/toyos-arm-g3 branch October 10, 2026 16:34
Japabu added a commit that referenced this pull request Oct 10, 2026
Keeps both sides of #846's VirtIts and virt_claim_lpi beside this branch's
VirtLowEcam and virt_low_ecam in tests/common/qemu.rs and tests/toyos.rs.
The merge also returns issues/the-loader-does-only-what-must-precede-the-handover.md
to main's text: a pull request edits only the issue it takes up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
Japabu added a commit that referenced this pull request Oct 10, 2026
…unit goes through the dispatch

#846 named VT-d's interrupt unit `message_unit` beside `pub use vtd as
iommu_unit`. This branch makes `iommu_unit` the dispatch between VT-d and
AMD-Vi, so `message_unit` is now `iommu_unit::interrupt`: the dispatch stays
the one place that says which backend serves the machine. On an AMD-Vi
machine VT-d holds no unit, so `is_armed` is false, `remapping` is
`NotRemapped` and a driver's message is the compatibility one, as before.

The module doc of tests/common/iommu.rs keeps both sides' sentences.

The branch no longer edits
issues/a-counters-read-under-host-load-can-go-silent-for-15-s.md: it takes
none of that issue up, and the red it recorded stays in the pull request's
checks table.

issues/an-amd-vi-machine-isolates-no-device.md names its holder, the AMD
laptop track's stages 5 and 6, and is assigned. The --ci host abort at
d242c7f is filed as
issues/the-host-gate-aborts-with-no-message-when-a-destructor-panics-during-unwinding.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
Japabu added a commit that referenced this pull request Oct 10, 2026
…c::narrow_destination's

#846 moved MSG_DEST to apic.rs, made msi_message take only a vector and
shift MSG_DEST unbounded, and brought back the I/O APIC's `>= 0xFF`. The
resolution folds both onto narrow_destination: the I/O APIC's direct entry
narrows through it, and MSG_DEST's eight bits are a const that fails the
build where narrow_destination refuses it, which msi_message shifts. VT-d's
const assert of the same fact goes, since that const states it.

The review's rule that a branch edits no issue it does not take up drops
this branch's hunk in x2apic-is-enabled-without-reading-firmwares-opt-out.md.
The untested `x2apic &&` term in vtd::remappable moves to an issue of its
own, and the xAPIC ICR's unpolled Delivery Status, which the laptop's log
does not reach, gets one with the laptop's shootdown line as its exit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
Japabu added a commit that referenced this pull request Oct 10, 2026
#846, #843, #849, #850, #840, #839, #837) into the batch: the icons' and wallpaper's digests hash with toyos-sha2-hw, and the loader's wall clock reads through its own UEFI bindings

The batch's merge of main at f72d53d moved #813's wallpaper and #814's
icon digest tests onto `toyos_sha2`. #833, already on main, had replaced
the root package's `toyos-sha2` dependency with `toyos-sha2-hw`, so CI's
merge of the two compiled no `toyos-build` lib test and both the build
system's tests and clippy went red with E0432. Both tests now hash through
`toyos_sha2_hw`, as every other SHA-256 the build takes does.

#842's `bootloader/src/wallclock.rs` was written on the `uefi` crate,
which #815 removes; it now calls `efi`'s `RuntimeServices::get_time`,
whose `Time` fields are plain and whose error is the `Status` itself.
`start_kernel` takes main's `wall_clock` and the batch's `SystemTable`;
the batch's `armed_at` goes, as main replaced it with `wallclock::now`.

Cargo.lock takes main's `ntapi`; `nonempty` goes with `gix`, which the
batch removed and which was its only user (`cargo metadata --offline`).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017cSFvbD35xJ2kGANVdm23C
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant