Skip to content

Commit 14ba90e

Browse files
committed
remove usage of devolve
Signed-off-by: Jorge Prendes <[email protected]>
1 parent db55edc commit 14ba90e

File tree

2 files changed

+12
-44
lines changed

2 files changed

+12
-44
lines changed

src/hyperlight_host/src/sandbox/initialized_multi_use.rs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ mod tests {
425425
#[cfg(target_os = "linux")]
426426
use crate::mem::shared_mem::{ExclusiveSharedMemory, GuestSharedMemory, SharedMemory as _};
427427
use crate::sandbox::{Callable, SandboxConfiguration};
428-
use crate::sandbox_state::sandbox::{DevolvableSandbox, EvolvableSandbox};
428+
use crate::sandbox_state::sandbox::EvolvableSandbox;
429429
use crate::sandbox_state::transition::{MultiUseContextCallback, Noop};
430430
use crate::{GuestBinary, HyperlightError, MultiUseSandbox, Result, UninitializedSandbox};
431431

@@ -469,26 +469,30 @@ mod tests {
469469
}
470470

471471
/// Tests that evolving from MultiUseSandbox to MultiUseSandbox creates a new state
472-
/// and devolving from MultiUseSandbox to MultiUseSandbox restores the previous state
472+
/// and restoring a snapshot from before evolving restores the previous state
473473
#[test]
474-
fn evolve_devolve_handles_state_correctly() {
475-
let sbox1: MultiUseSandbox = {
474+
fn snapshot_evolve_restore_handles_state_correctly() {
475+
let mut sbox: MultiUseSandbox = {
476476
let path = simple_guest_as_string().unwrap();
477477
let u_sbox = UninitializedSandbox::new(GuestBinary::FilePath(path), None).unwrap();
478478
u_sbox.evolve(Noop::default())
479479
}
480480
.unwrap();
481481

482+
let snapshot = sbox.snapshot().unwrap();
483+
482484
let func = Box::new(|call_ctx: &mut MultiUseGuestCallContext| {
483485
call_ctx.call::<i32>("AddToStatic", 5i32)?;
484486
Ok(())
485487
});
486488
let transition_func = MultiUseContextCallback::from(func);
487-
let mut sbox2 = sbox1.evolve(transition_func).unwrap();
488-
let res: i32 = sbox2.call_guest_function_by_name("GetStatic", ()).unwrap();
489+
let mut sbox = sbox.evolve(transition_func).unwrap();
490+
491+
let res: i32 = sbox.call_guest_function_by_name("GetStatic", ()).unwrap();
489492
assert_eq!(res, 5);
490-
let mut sbox3: MultiUseSandbox = sbox2.devolve(Noop::default()).unwrap();
491-
let res: i32 = sbox3.call_guest_function_by_name("GetStatic", ()).unwrap();
493+
494+
sbox.restore(&snapshot).unwrap();
495+
let res: i32 = sbox.call_guest_function_by_name("GetStatic", ()).unwrap();
492496
assert_eq!(res, 0);
493497
}
494498

src/hyperlight_host/src/sandbox_state/transition.rs

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -140,39 +140,3 @@ where
140140
}
141141
}
142142
}
143-
#[cfg(test)]
144-
mod tests {
145-
use super::Noop;
146-
use crate::Result;
147-
use crate::sandbox_state::sandbox::{DevolvableSandbox, EvolvableSandbox, Sandbox};
148-
149-
#[derive(Debug, Eq, PartialEq, Clone)]
150-
struct MySandbox1 {}
151-
#[derive(Debug, Eq, PartialEq, Clone)]
152-
struct MySandbox2 {}
153-
154-
impl Sandbox for MySandbox1 {}
155-
impl Sandbox for MySandbox2 {}
156-
157-
impl EvolvableSandbox<MySandbox1, MySandbox2, Noop<MySandbox1, MySandbox2>> for MySandbox1 {
158-
fn evolve(self, _: Noop<MySandbox1, MySandbox2>) -> Result<MySandbox2> {
159-
Ok(MySandbox2 {})
160-
}
161-
}
162-
163-
impl DevolvableSandbox<MySandbox2, MySandbox1, Noop<MySandbox2, MySandbox1>> for MySandbox2 {
164-
fn devolve(self, _: Noop<MySandbox2, MySandbox1>) -> Result<MySandbox1> {
165-
Ok(MySandbox1 {})
166-
}
167-
}
168-
169-
#[test]
170-
fn test_evolve_devolve() {
171-
let sbox_1_1 = MySandbox1 {};
172-
let sbox_2_1 = sbox_1_1.clone().evolve(Noop::default()).unwrap();
173-
let sbox_1_2 = sbox_2_1.clone().devolve(Noop::default()).unwrap();
174-
let sbox_2_2 = sbox_1_2.clone().evolve(Noop::default()).unwrap();
175-
assert_eq!(sbox_1_1, sbox_1_2);
176-
assert_eq!(sbox_2_1, sbox_2_2);
177-
}
178-
}

0 commit comments

Comments
 (0)