diff --git a/src/runtime2/tests/mod.rs b/src/runtime2/tests/mod.rs index 5523acfc876170b88d69435262ec2e3956e6fd19..00483c0c9a5217fe43870aa270e3e618ffad4fe0 100644 --- a/src/runtime2/tests/mod.rs +++ b/src/runtime2/tests/mod.rs @@ -1,7 +1,19 @@ use crate::protocol::*; use crate::protocol::eval::*; use crate::runtime2::runtime::*; -use crate::runtime2::component::CompPDL; +use crate::runtime2::component::{CompCtx, CompPDL}; + +fn create_component(rt: &Runtime, module_name: &str, routine_name: &str, args: ValueGroup) { + let prompt = rt.inner.protocol.new_component( + module_name.as_bytes(), routine_name.as_bytes(), args + ).expect("create prompt"); + let reserved = rt.inner.start_create_pdl_component(); + let ctx = CompCtx::new(&reserved); + let (key, _) = rt.inner.finish_create_pdl_component(reserved, CompPDL::new(prompt, 0), ctx, false); + rt.inner.enqueue_work(key); +} + +fn no_args() -> ValueGroup { ValueGroup::new_stack(Vec::new()) } #[test] fn test_component_creation() { @@ -14,11 +26,7 @@ fn test_component_creation() { let rt = Runtime::new(1, pd); for i in 0..20 { - let prompt = rt.inner.protocol.new_component(b"", b"nothing_at_all", ValueGroup::new_stack(Vec::new())) - .expect("component creation"); - let comp = CompPDL::new(prompt, 0); - let (key, _) = rt.inner.create_pdl_component(comp, false); - rt.inner.enqueue_work(key); + create_component(&rt, "", "nothing_at_all", no_args()); } } @@ -44,8 +52,5 @@ fn test_component_communication() { ").expect("compilation"); let rt = Runtime::new(1, pd); - let prompt = rt.inner.protocol.new_component(b"", b"constructor", ValueGroup::new_stack(Vec::new())) - .expect("creation"); - let (key, _) = rt.inner.create_pdl_component(CompPDL::new(prompt, 0), false); - rt.inner.enqueue_work(key); + create_component(&rt, "", "constructor", no_args()); } \ No newline at end of file