--- name: e2e_run_cpp_windows lang: bash domain: infra description: "Cross-compila una app C++ del registry para Windows con mingw-w64, deploy al Desktop\\apps de Windows (matando instancia previa con taskkill.exe), lanza el .exe nativamente desde WSL y devuelve stdout + exit code. Pensado para tests headless tipo altsnap_jitter_test." tags: [windows, e2e, cross-compile, test, mingw] purity: impure kind: function signature: "e2e_run_cpp_windows(target string, --no-build, --no-deploy) int" params: - name: target desc: "Nombre del target CMake del registry (ej. altsnap_jitter_test)" - name: --no-build desc: "Saltar cross-compile (usa el .exe ya construido en cpp/build/windows/)" - name: --no-deploy desc: "Saltar copia a Desktop\\apps (asume que ya esta deployed)" output: "Exit code del .exe (0 = pass, no-cero = fail). stdout/stderr del .exe se imprimen tal cual." uses_functions: - build_cpp_windows_bash_infra uses_types: [] returns: "" returns_optional: false error_type: "exit_code_bash_core" imports: [] example: | source bash/functions/infra/e2e_run_cpp_windows.sh e2e_run_cpp_windows altsnap_jitter_test # cross-compila, taskkill previo, copia a /mnt/c/Users/lucas/Desktop/apps/altsnap_jitter_test/ # ejecuta y devuelve exit code tested: false file_path: "bash/functions/infra/e2e_run_cpp_windows.sh" --- Lanzador para tests e2e de apps C++ en Windows desde WSL. Workflow: 1. **Cross-compile** via `build_cpp_windows_bash_infra` (skipable con `--no-build`). 2. **Localiza** `${target}.exe` bajo `cpp/build/windows/apps//` o el arbol completo de build. 3. **Mata instancia previa** con `taskkill.exe /IM .exe /F` (evita `Permission denied` al copiar el exe). 4. **Deploy** a `/mnt/c/Users/lucas/Desktop/apps//` con sidecars (`assets/`, `runtime/`, `enrichers/`, `*.dll`). 5. **Run** nativamente desde WSL (`./target.exe` con cwd en deploy_dir, asi `local_files/` se crea ahi). 6. **Exit code** del .exe propaga al return de la funcion. Variables de entorno: - `FN_REGISTRY_ROOT` — raiz del registry (auto-detectado). - `BUILD_WIN` — directorio de build cross (default `cpp/build/windows`). - `WIN_DESKTOP_APPS` — root de deploy en Windows (default `/mnt/c/Users/lucas/Desktop/apps`). Requiere WSL2 con interop a Windows (cmd.exe, taskkill.exe en PATH) y mingw-w64.