tawasuyu/llimphi
Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.
⎇ 168cd187519c0ad575d3ce63baee2f164c38d9d1
llimphi-wasm-core/tests/dev_trust.rs
Historia
Quién tocó qué
crudo
1//! Atajo de desarrollo `LLIMPHI_WASM_DEV_TRUST` (mudanza a Linux, 2026-07-17).
2//!
3//! En su PROPIO binario de test (proceso aislado): setea/limpia la variable de
4//! entorno, y así no cruza estado con los tests unitarios de la lib que corren
5//! en paralelo en otro proceso y asumen el modo estricto por default.
6
7use llimphi_wasm_core::{resolve, AppRef, MapSource, TrustRing};
8
9#[test]
10fn dev_trust_corre_sin_concesion_y_es_fail_closed_por_default() {
11 let mut src = MapSource::new();
12 let bytecode = src.put(b"\0asm bytecode de prueba");
13 let trust = TrustRing::empty(); // nadie de confianza
14
15 // Una app que DECLARA PERMISO_RED (1<<0) pero SIN concesión que lo respalde.
16 let app = AppRef {
17 bytecode,
18 declarados: 1,
19 concesion: None,
20 };
21
22 // 1) Fail-closed por default: sin la env, sin concesión ⇒ cero capacidades.
23 std::env::remove_var("LLIMPHI_WASM_DEV_TRUST");
24 let v = resolve(&src, &trust, &app).expect("resuelve estricto");
25 assert_eq!(v.permisos, 0, "sin dev-trust y sin concesión: cero caps");
26
27 // 2) Con el atajo EXPLÍCITO: corre con los permisos DECLARADOS, sin firma.
28 std::env::set_var("LLIMPHI_WASM_DEV_TRUST", "1");
29 let v = resolve(&src, &trust, &app).expect("resuelve dev-trust");
30 assert_eq!(v.permisos, 1, "dev-trust: honra los permisos declarados");
31
32 // 3) Un valor no reconocido NO activa el atajo (fail-closed).
33 std::env::set_var("LLIMPHI_WASM_DEV_TRUST", "0");
34 let v = resolve(&src, &trust, &app).expect("resuelve");
35 assert_eq!(v.permisos, 0, "valor != 1/true no activa el atajo");
36
37 std::env::remove_var("LLIMPHI_WASM_DEV_TRUST");
38}