chore: sync from fn-registry agent
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user