Skip to content

F3.8: tests host (scheduler/MPU/ABI) + integración en CI#77

Merged
guillo93 merged 3 commits into
mainfrom
f3.8-host-tests-ci
Jun 2, 2026
Merged

F3.8: tests host (scheduler/MPU/ABI) + integración en CI#77
guillo93 merged 3 commits into
mainfrom
f3.8-host-tests-ci

Conversation

@guillo93
Copy link
Copy Markdown
Owner

@guillo93 guillo93 commented Jun 2, 2026

Summary

  • Nuevo crate rugus-host-tests (excluido del workspace embebido, std, triple nativo): 17 tests que ejercitan la lógica arch-agnóstica de rugus-core con un Arch simulado (MockArch).
  • Cobertura: scheduler (round-robin por banda, preempción por slice, sleep/wake, kill + respawn-guard), sandbox MPU (región userland vs privilegiada, stacks alineados pow2), ABI de syscalls (ABI_VERSION, Id::from_raw, validate_user_range/dispatch) y faults (FaultKind/FaultReport/Domain).
  • rugus-core: feature test-util (OFF por defecto, no se filtra a binarios del kernel) con semillas de prueba; syscall::user gateado a target_arch = "arm" (trampolines SVC con r0..r3 no compilan en host).
  • CI: el job host corre fmt-check + clippy + cargo test del nuevo crate.
  • Canonicalización rustfmt en HAL F4/F7 y ejemplos app-sandbox.

Test plan

  • cargo test --manifest-path crates/rugus-host-tests/Cargo.toml → 17 passed
  • cargo build --workspace --target thumbv7em-none-eabihf (exit 0)
  • cargo build --workspace --target thumbv7m-none-eabi (exit 0)
  • cargo fmt --all -- --check limpio

🤖 Generated with Claude Code

guillo93 and others added 3 commits June 2, 2026 05:13
Crate `rugus-host-tests` (excluido del workspace embebido, std, triple
nativo) que prueba la lógica arch-agnóstica de rugus-core con un `Arch`
simulado (MockArch): 17 tests sobre scheduler (round-robin por banda,
preempción por slice, sleep/wake, kill/respawn-guard), sandbox MPU
(región userland vs privilegiada, stacks alineados pow2), ABI de
syscalls (versión, Id::from_raw, validate_user_range/dispatch) y faults
(FaultKind/FaultReport/Domain).

- rugus-core: feature `test-util` (OFF por defecto, no se filtra a los
  binarios del kernel) con semillas de prueba del scheduler; `pub mod
  user` de syscall gateado a `target_arch = "arm"` (los trampolines SVC
  usan r0..r3, no compilan en host x86).
- CI: el job `host` ahora corre fmt-check + clippy + test del nuevo
  crate junto a rugus-proto/rugus-cli.
- Canonicalización rustfmt de HAL F4/F7 (gpio/usart/adc) y ejemplos
  app-sandbox; re-habilitada la falla deliberada de bad_app.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
El job `doc` de CI (RUSTDOCFLAGS=-D warnings) fallaba por enlaces
intra-doc a items privados o no resolubles, arrastrados de fases
previas:
- `Context` → `mpu::app_region_for` (módulo privado).
- `time`: `[`now_ms`](crate::time::now_ms)` enlace explícito redundante.
- `sched`: `SLICE_TICKS` (const privada) enlazada dos veces.
- HAL F1 postmortem: `rugus_core::fault::FaultKind` (sin dependencia
  hacia rugus-core en scope).
- ejemplos app-sandbox F4/F7: `[`main`]` no resoluble.

Se degradan a spans de código (sin enlace) donde el destino no es
público; el resto del workspace documenta limpio.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Drift de formato preexistente que hacía fallar el paso `rustfmt (host
crates)` del job `host` de CI, ahora que ese job también cubre
rugus-host-tests. Solo reformatea un encadenamiento de métodos.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@guillo93 guillo93 merged commit 5298f41 into main Jun 2, 2026
9 checks passed
@guillo93 guillo93 deleted the f3.8-host-tests-ci branch June 2, 2026 10:34
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