chore: sync from fn-registry agent

This commit is contained in:
fn-registry agent
2026-05-11 16:28:46 +02:00
commit 49a9f3273d
4 changed files with 375 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
---
name: runtime_test
lang: cpp
domain: gamedev
description: "Exerciser end-to-end del runtime nucleo gamedev (issue 0072b). Inicializa sokol_gfx + audio (miniaudio) + input unificado + sprite_batch + camera 2D + game loop. Modo `--self-test` corre 60 frames y sale exit 0; sin args entra modo interactivo (3 sprites en gradient)."
tags: [imgui, sdl3, sokol, gamedev, smoke, runtime]
uses_functions:
- sokol_setup_cpp_gfx
- sprite_batch_cpp_gfx
- audio_engine_cpp_gamedev
- audio_play_cpp_gamedev
- input_unified_cpp_gamedev
- game_loop_cpp_gamedev
- camera_2d_cpp_gamedev
uses_types:
- Vec2_cpp_core
- Rect_cpp_core
- Color_cpp_core
framework: "imgui"
entry_point: "main.cpp"
dir_path: "cpp/apps/runtime_test"
repo_url: ""
e2e_checks:
- id: build_pc
cmd: "cmake --build build --target runtime_test -j"
timeout_s: 300
- id: self_test_pc
cmd: "./build/apps/runtime_test/runtime_test --self-test"
timeout_s: 30
severity: warning # requires display in CI
- id: build_wasm
cmd: "bash bash/functions/infra/build_wasm_cpp_app.sh runtime_test"
timeout_s: 600
severity: warning
- id: wasm_size_budget
cmd: "test -f build/wasm/runtime_test/runtime_test.wasm.gz && test $(stat -c%s build/wasm/runtime_test/runtime_test.wasm.gz) -lt 2097152"
severity: warning
---
# runtime_test
Test integrado del runtime nucleo gamedev. Si compila y corre, el stack 0072b esta verde.
## Modo --self-test
Corre 60 frames con audio init no-fatal (CI sin device de audio sigue pasando), 3 sprites animados, input procesando eventos vacios, salida exit 0.
```bash
./build/apps/runtime_test/runtime_test --self-test
```
## Modo interactivo
```bash
./build/apps/runtime_test/runtime_test
```
Pulsa Esc o Back (gamepad) para salir.
## Que ejercita
- `sokol_setup_cpp_gfx` — make_environment + make_swapchain.
- `sprite_batch_cpp_gfx` — 3 sprites por frame con tint distinto.
- `audio_engine_cpp_gamedev` — engine_init / engine_shutdown.
- `input_unified_cpp_gamedev` — input_begin_frame / input_process_event con SDL_Events.
- `camera_2d_cpp_gamedev` — view_proj_matrix.
- `game_loop_cpp_gamedev` — loop_run con fixed timestep + emscripten branch.
- Tipos `Vec2`, `Rect`, `Color` de `cpp/functions/core/math2d.h`.
## Notas
- NO carga assets de disco. Crea textura 2x2 blanca en GPU para alimentar `sprite_batch`. Asi el self-test es asset-free.
- Audio init es no-fatal: si no hay device, registra error y sigue. Permite correr en CI / WSL sin audio.
- Sin ImGui en este test (a diferencia de `engine_smoke`). Reduce binary size y aisla la validacion del runtime puro.