From deaababb1e19c8c7627670903178d1d9d57faf5e Mon Sep 17 00:00:00 2001 From: bQUARKz Date: Fri, 15 May 2026 05:07:10 +0100 Subject: [PATCH] test fixes --- .../src/services/vm_runtime/dispatch.rs | 6 ++--- .../src/services/vm_runtime/tests.rs | 26 +++---------------- .../services/vm_runtime/tests_asset_bank.rs | 5 ---- .../src/services/vm_runtime/tick.rs | 4 +-- .../src/debugger.rs | 14 +++++++--- .../src/overlay.rs | 2 +- .../prometeu-host-desktop-winit/src/runner.rs | 14 +++++----- .../config/runtime-edge-coverage-domains.json | 23 ++++++++++++---- 8 files changed, 45 insertions(+), 49 deletions(-) diff --git a/crates/console/prometeu-system/src/services/vm_runtime/dispatch.rs b/crates/console/prometeu-system/src/services/vm_runtime/dispatch.rs index 0556241e..e73c2d03 100644 --- a/crates/console/prometeu-system/src/services/vm_runtime/dispatch.rs +++ b/crates/console/prometeu-system/src/services/vm_runtime/dispatch.rs @@ -509,7 +509,7 @@ impl NativeInterface for VmRuntimeHost<'_> { ret.push_int(0); return Ok(()); } - let stat = self.memcard.slot_stat(&self.fs, self.current_app_id, slot); + let stat = self.memcard.slot_stat(self.fs, self.current_app_id, slot); let status = if stat.state == MemcardSlotState::Corrupt { MemcardStatus::Corrupt } else { @@ -533,7 +533,7 @@ impl NativeInterface for VmRuntimeHost<'_> { return Ok(()); } let read = - self.memcard.slot_read(&self.fs, self.current_app_id, slot, offset, max_bytes); + self.memcard.slot_read(self.fs, self.current_app_id, slot, offset, max_bytes); ret.push_int(read.status as i64); ret.push_string(hex_encode(&read.bytes)); ret.push_int(read.bytes_read as i64); @@ -550,7 +550,7 @@ impl NativeInterface for VmRuntimeHost<'_> { } let payload = hex_decode(&payload_hex)?; let app_id = self.current_app_id; - let write = self.memcard.slot_write(&self.fs, app_id, slot, offset, &payload); + let write = self.memcard.slot_write(self.fs, app_id, slot, offset, &payload); ret.push_int(write.status as i64); ret.push_int(write.bytes_written as i64); Ok(()) diff --git a/crates/console/prometeu-system/src/services/vm_runtime/tests.rs b/crates/console/prometeu-system/src/services/vm_runtime/tests.rs index dae048e7..8a840997 100644 --- a/crates/console/prometeu-system/src/services/vm_runtime/tests.rs +++ b/crates/console/prometeu-system/src/services/vm_runtime/tests.rs @@ -190,11 +190,6 @@ mod fs_memcard; fn initialize_vm_applies_cartridge_capabilities_before_loader_resolution() { let mut runtime = VirtualMachineRuntime::new(None); let mut log_service = LogService::new(4096); - let mut fs = VirtualFS::new(); - let mut fs_state = FsState::Unmounted; - let mut memcard = MemcardService::new(); - let mut open_files: HashMap = HashMap::new(); - let mut next_handle = 1; let mut vm = VirtualMachine::default(); let code = assemble("PUSH_I32 0\nHOSTCALL 0\nHALT").expect("assemble"); let program = serialized_single_function_module( @@ -221,11 +216,6 @@ fn initialize_vm_applies_cartridge_capabilities_before_loader_resolution() { fn initialize_vm_succeeds_when_cartridge_capabilities_cover_hostcalls() { let mut runtime = VirtualMachineRuntime::new(None); let mut log_service = LogService::new(4096); - let mut fs = VirtualFS::new(); - let mut fs_state = FsState::Unmounted; - let mut memcard = MemcardService::new(); - let mut open_files: HashMap = HashMap::new(); - let mut next_handle = 1; let mut vm = VirtualMachine::default(); let code = assemble("PUSH_I32 0\nHOSTCALL 0\nHALT").expect("assemble"); let program = serialized_single_function_module( @@ -775,11 +765,6 @@ fn tick_draw_text_survives_no_scene_frame_path() { fn initialize_vm_success_clears_previous_crash_report() { let mut runtime = VirtualMachineRuntime::new(None); let mut log_service = LogService::new(4096); - let mut fs = VirtualFS::new(); - let mut fs_state = FsState::Unmounted; - let mut memcard = MemcardService::new(); - let mut open_files: HashMap = HashMap::new(); - let mut next_handle = 1; runtime.last_crash_report = Some(CrashReport::VmPanic { message: "stale".into(), pc: Some(1) }); let mut vm = VirtualMachine::default(); @@ -804,9 +789,9 @@ fn initialize_vm_success_clears_previous_crash_report() { fn reset_clears_cartridge_scoped_runtime_state() { let mut runtime = VirtualMachineRuntime::new(None); let mut vm = VirtualMachine::default(); - let mut fs_state = FsState::Mounted; + let fs_state = FsState::Mounted; let mut open_files: HashMap = HashMap::new(); - let mut next_handle = 9; + let next_handle = 9; runtime.tick_index = 77; runtime.logical_frame_index = 12; @@ -941,11 +926,7 @@ fn tick_already_materialized_string_path_records_zero_internal_allocations() { fn initialize_vm_failure_clears_previous_identity_and_handles() { let mut runtime = VirtualMachineRuntime::new(None); let mut log_service = LogService::new(4096); - let mut fs = VirtualFS::new(); - let mut fs_state = FsState::Unmounted; - let mut memcard = MemcardService::new(); let mut open_files: HashMap = HashMap::new(); - let mut next_handle = 1; let mut vm = VirtualMachine::default(); let good_program = serialized_single_function_module( @@ -964,7 +945,8 @@ fn initialize_vm_failure_clears_previous_identity_and_handles() { .expect("runtime must initialize"); open_files.insert(5, "/save.dat".into()); - next_handle = 6; + + let next_handle = 6; runtime.paused = true; runtime.debug_step_request = true; runtime.atomic_telemetry.cycles_used.store(123, Ordering::Relaxed); diff --git a/crates/console/prometeu-system/src/services/vm_runtime/tests_asset_bank.rs b/crates/console/prometeu-system/src/services/vm_runtime/tests_asset_bank.rs index 3e64b7b1..28584be8 100644 --- a/crates/console/prometeu-system/src/services/vm_runtime/tests_asset_bank.rs +++ b/crates/console/prometeu-system/src/services/vm_runtime/tests_asset_bank.rs @@ -232,11 +232,6 @@ fn tick_bank_info_returns_slot_summary_not_json() { fn initialize_vm_rejects_removed_bank_slot_info_syscall_identity() { let mut runtime = VirtualMachineRuntime::new(None); let mut log_service = LogService::new(4096); - let mut fs = VirtualFS::new(); - let mut fs_state = FsState::Unmounted; - let mut memcard = MemcardService::new(); - let mut open_files: HashMap = HashMap::new(); - let mut next_handle = 1; let mut vm = VirtualMachine::default(); let code = assemble("PUSH_I32 0\nPUSH_I32 0\nHOSTCALL 0\nHALT").expect("assemble"); let program = serialized_single_function_module( diff --git a/crates/console/prometeu-system/src/services/vm_runtime/tick.rs b/crates/console/prometeu-system/src/services/vm_runtime/tick.rs index ebf53aa7..3456bf7a 100644 --- a/crates/console/prometeu-system/src/services/vm_runtime/tick.rs +++ b/crates/console/prometeu-system/src/services/vm_runtime/tick.rs @@ -110,7 +110,7 @@ impl VirtualMachineRuntime { log_service: &mut LogService, fs: &mut VirtualFS, fs_state: &mut FsState, - memcard: &mut MemcardService, + mem_card: &mut MemcardService, open_files: &mut HashMap, next_handle: &mut u32, vm: &mut VirtualMachine, @@ -163,7 +163,7 @@ impl VirtualMachineRuntime { log_service, fs, fs_state, - memcard, + memcard: mem_card, open_files, next_handle, }; diff --git a/crates/host/prometeu-host-desktop-winit/src/debugger.rs b/crates/host/prometeu-host-desktop-winit/src/debugger.rs index 5430cd15..a1867789 100644 --- a/crates/host/prometeu-host-desktop-winit/src/debugger.rs +++ b/crates/host/prometeu-host-desktop-winit/src/debugger.rs @@ -58,7 +58,11 @@ impl HostDebugger { // Pre-load cartridge metadata so the Handshake message can contain // valid information about the App being debugged. if let Ok(cartridge) = CartridgeLoader::load(path) { - let _ = firmware.os.vm_runtime.initialize_vm(&mut firmware.vm, &cartridge); + let _ = firmware.os.vm_runtime.initialize_vm( + &mut firmware.os.log_service, + &mut firmware.vm, + &cartridge, + ); } match TcpListener::bind(format!("127.0.0.1:{}", debug_port)) { @@ -201,7 +205,11 @@ impl HostDebugger { DebugCommand::Step => { // Execute exactly one instruction and keep paused. firmware.os.vm_runtime.paused = true; - let _ = firmware.os.vm_runtime.debug_step_instruction(&mut firmware.vm, hardware); + let _ = firmware.os.vm_runtime.debug_step_instruction( + &mut firmware.os.log_service, + &mut firmware.vm, + hardware, + ); } DebugCommand::StepFrame => { // Execute until the end of the current logical frame. @@ -308,7 +316,7 @@ impl HostDebugger { } // 1. Process and send new log entries. - let new_events = firmware.os.vm_runtime.log_service.get_after(self.last_log_seq); + let new_events = firmware.os.log_service.get_after(self.last_log_seq); for event in new_events { self.last_log_seq = event.seq; diff --git a/crates/host/prometeu-host-desktop-winit/src/overlay.rs b/crates/host/prometeu-host-desktop-winit/src/overlay.rs index b54707bb..ec1ae313 100644 --- a/crates/host/prometeu-host-desktop-winit/src/overlay.rs +++ b/crates/host/prometeu-host-desktop-winit/src/overlay.rs @@ -59,7 +59,7 @@ struct FrameCanvas<'a> { pub(crate) fn capture_snapshot(stats: &HostStats, firmware: &Firmware) -> OverlaySnapshot { let tel = firmware.os.vm_runtime.atomic_telemetry.snapshot(); - let recent_logs = firmware.os.vm_runtime.log_service.get_recent(10); + let recent_logs = firmware.os.log_service.get_recent(10); let violations_count = recent_logs.iter().filter(|e| e.tag >= 0xCA01 && e.tag <= 0xCA07).count(); diff --git a/crates/host/prometeu-host-desktop-winit/src/runner.rs b/crates/host/prometeu-host-desktop-winit/src/runner.rs index af4dd44e..e7f61988 100644 --- a/crates/host/prometeu-host-desktop-winit/src/runner.rs +++ b/crates/host/prometeu-host-desktop-winit/src/runner.rs @@ -153,7 +153,7 @@ impl HostRunner { let mut firmware = Firmware::new(cap_config); if let Some(root) = &fs_root { let backend = HostDirBackend::new(root); - firmware.os.vm_runtime.mount_fs(Box::new(backend)); + firmware.os.mount_fs(Box::new(backend)); } Self { @@ -333,13 +333,11 @@ impl ApplicationHandler for HostRunner { // 2. Maintain filesystem connection if it was lost (e.g., directory removed). if let Some(root) = &self.fs_root { use prometeu_system::fs::FsState; - if matches!( - self.firmware.os.vm_runtime.fs_state, - FsState::Unmounted | FsState::Error(_) - ) && std::path::Path::new(root).exists() + if matches!(self.firmware.os.fs_state, FsState::Unmounted | FsState::Error(_)) + && std::path::Path::new(root).exists() { let backend = HostDirBackend::new(root); - self.firmware.os.vm_runtime.mount_fs(Box::new(backend)); + self.firmware.os.mount_fs(Box::new(backend)); } } @@ -403,9 +401,9 @@ impl ApplicationHandler for HostRunner { // Synchronize system logs to the host console. let last_seq = self.log_sink.last_seq().unwrap_or(u64::MAX); let new_events = if last_seq == u64::MAX { - self.firmware.os.vm_runtime.log_service.get_recent(4096) + self.firmware.os.log_service.get_recent(4096) } else { - self.firmware.os.vm_runtime.log_service.get_after(last_seq) + self.firmware.os.log_service.get_after(last_seq) }; self.log_sink.process_events(new_events); diff --git a/files/config/runtime-edge-coverage-domains.json b/files/config/runtime-edge-coverage-domains.json index 26d502fe..c9ed097d 100644 --- a/files/config/runtime-edge-coverage-domains.json +++ b/files/config/runtime-edge-coverage-domains.json @@ -1,20 +1,33 @@ { "version": 1, "domains": { - "system/runtime": { - "baseline_percent": 68, + "system/os": { + "baseline_percent": 78, "paths": [ - "crates/console/prometeu-system/src/virtual_machine_runtime.rs", - "crates/console/prometeu-system/src/virtual_machine_runtime/" + "crates/console/prometeu-system/src/os/", + "crates/console/prometeu-system/src/services/process", + "crates/console/prometeu-system/src/services/task" ] }, - "fs": { + "system/runtime": { + "baseline_percent": 70, + "paths": [ + "crates/console/prometeu-system/src/services/vm_runtime" + ] + }, + "system/fs": { "baseline_percent": 77, "paths": [ "crates/console/prometeu-system/src/services/fs/", "crates/console/prometeu-system/src/services/memcard.rs" ] }, + "system/programs": { + "baseline_percent": 55, + "paths": [ + "crates/console/prometeu-system/src/programs/" + ] + }, "asset/bank": { "baseline_percent": 86, "paths": [