Skip to content

Commit 0b21dea

Browse files
committed
remove usage of devolve
Signed-off-by: Jorge Prendes <[email protected]>
1 parent 928f8a9 commit 0b21dea

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
@@ -338,7 +338,7 @@ mod tests {
338338

339339
use crate::func::call_ctx::MultiUseGuestCallContext;
340340
use crate::sandbox::{Callable, SandboxConfiguration};
341-
use crate::sandbox_state::sandbox::{DevolvableSandbox, EvolvableSandbox};
341+
use crate::sandbox_state::sandbox::EvolvableSandbox;
342342
use crate::sandbox_state::transition::{MultiUseContextCallback, Noop};
343343
use crate::{GuestBinary, HyperlightError, MultiUseSandbox, Result, UninitializedSandbox};
344344

@@ -382,26 +382,30 @@ mod tests {
382382
}
383383

384384
/// Tests that evolving from MultiUseSandbox to MultiUseSandbox creates a new state
385-
/// and devolving from MultiUseSandbox to MultiUseSandbox restores the previous state
385+
/// and restoring a snapshot from before evolving restores the previous state
386386
#[test]
387-
fn evolve_devolve_handles_state_correctly() {
388-
let sbox1: MultiUseSandbox = {
387+
fn snapshot_evolve_restore_handles_state_correctly() {
388+
let mut sbox: MultiUseSandbox = {
389389
let path = simple_guest_as_string().unwrap();
390390
let u_sbox = UninitializedSandbox::new(GuestBinary::FilePath(path), None).unwrap();
391391
u_sbox.evolve(Noop::default())
392392
}
393393
.unwrap();
394394

395+
let snapshot = sbox.snapshot().unwrap();
396+
395397
let func = Box::new(|call_ctx: &mut MultiUseGuestCallContext| {
396398
call_ctx.call::<i32>("AddToStatic", 5i32)?;
397399
Ok(())
398400
});
399401
let transition_func = MultiUseContextCallback::from(func);
400-
let mut sbox2 = sbox1.evolve(transition_func).unwrap();
401-
let res: i32 = sbox2.call_guest_function_by_name("GetStatic", ()).unwrap();
402+
let mut sbox = sbox.evolve(transition_func).unwrap();
403+
404+
let res: i32 = sbox.call_guest_function_by_name("GetStatic", ()).unwrap();
402405
assert_eq!(res, 5);
403-
let mut sbox3: MultiUseSandbox = sbox2.devolve(Noop::default()).unwrap();
404-
let res: i32 = sbox3.call_guest_function_by_name("GetStatic", ()).unwrap();
406+
407+
sbox.restore(&snapshot).unwrap();
408+
let res: i32 = sbox.call_guest_function_by_name("GetStatic", ()).unwrap();
405409
assert_eq!(res, 0);
406410
}
407411

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)