Add headless wgpu vision and camera controls
This commit is contained in:
@@ -120,6 +120,27 @@ async fn golden_scene_is_deterministic_depth_ordered_and_privacy_marked() {
|
||||
assert!(pixels[center + 1] > 180 && pixels[center] < 80 && pixels[center + 2] < 80);
|
||||
}
|
||||
|
||||
#[cfg(feature = "live-grid")]
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn offscreen_wgpu_renders_depth_ordered_scene_when_an_adapter_is_available() {
|
||||
let Ok(renderer) = WgpuRenderer::new().await else {
|
||||
return;
|
||||
};
|
||||
let limits = VisionLimits {
|
||||
width: 64,
|
||||
height: 64,
|
||||
minimum_interval: std::time::Duration::ZERO,
|
||||
..VisionLimits::default()
|
||||
};
|
||||
let rgba = tokio::task::spawn_blocking(move || renderer.render(&scene(), limits))
|
||||
.await
|
||||
.expect("render worker")
|
||||
.expect("offscreen render");
|
||||
assert_eq!(rgba.len(), 64 * 64 * 4);
|
||||
let center = (32 * 64 + 32) * 4;
|
||||
assert!(rgba[center + 1] > 180 && rgba[center] < 80 && rgba[center + 2] < 80);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn invalid_camera_huge_scene_stale_generation_and_size_limit_fail_closed() {
|
||||
let mut bad = scene();
|
||||
@@ -332,7 +353,7 @@ async fn responder_adds_generic_image_payload_and_returns_summary_on_capability_
|
||||
.await
|
||||
.unwrap();
|
||||
assert!(response.as_str().contains("does not support visual input"));
|
||||
assert!(response.as_str().contains("Synthetic viewport"));
|
||||
assert!(response.as_str().contains("Reconstructed viewport"));
|
||||
assert_eq!(*endpoint.parts.lock().unwrap(), 3);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user