Files
@ ab8066658334
Branch filter:
Location: CSY/reowolf/src/runtime2/tests/mod.rs - annotation
ab8066658334
1.5 KiB
application/rls-services+xml
WIP on shutting down connectors
665aa326769e 665aa326769e 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 665aa326769e 665aa326769e 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 665aa326769e 7d01f1245b7c 7d01f1245b7c 665aa326769e 7d01f1245b7c 7d01f1245b7c 98aadfccbafd 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 665aa326769e 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 665aa326769e 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 665aa326769e 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 665aa326769e 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 665aa326769e 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 7d01f1245b7c 665aa326769e 7d01f1245b7c ff6ade8b8097 | use std::sync::Arc;
use super::*;
use crate::{PortId, ProtocolDescription};
use crate::common::Id;
use crate::protocol::eval::*;
fn runtime_for(num_threads: u32, pdl: &str) -> Runtime {
let protocol = ProtocolDescription::parse(pdl.as_bytes()).expect("parse pdl");
let runtime = Runtime::new(num_threads, protocol);
return runtime;
}
#[test]
fn test_put_and_get() {
let rt = runtime_for(1, "
primitive putter(out<bool> sender, u32 loops) {
u32 index = 0;
while (index < loops) {
synchronous {
print(\"putting!\");
put(sender, true);
}
index += 1;
}
}
primitive getter(in<bool> receiver, u32 loops) {
u32 index = 0;
while (index < loops) {
synchronous {
print(\"getting!\");
auto result = get(receiver);
assert(result);
}
index += 1;
}
}
");
let mut api = rt.create_interface();
let channel = api.create_channel();
let num_loops = 5;
api.create_connector("", "putter", ValueGroup::new_stack(vec![
Value::Output(PortId(Id{ connector_id: 0, u32_suffix: channel.putter_id.index })),
Value::UInt32(num_loops)
])).expect("create putter");
api.create_connector("", "getter", ValueGroup::new_stack(vec![
Value::Input(PortId(Id{ connector_id: 0, u32_suffix: channel.getter_id.index })),
Value::UInt32(num_loops)
])).expect("create getter");
println!("Am I running?");
}
|