Files
@ 952d4edf0cbb
Branch filter:
Location: CSY/reowolf/src/test/setup.rs - annotation
952d4edf0cbb
2.7 KiB
application/rls-services+xml
first C example
b7be5c34cd3a 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 0fb83f27a238 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 0fb83f27a238 0fb83f27a238 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 b7be5c34cd3a b7be5c34cd3a b7be5c34cd3a b7be5c34cd3a b7be5c34cd3a b7be5c34cd3a b7be5c34cd3a b7be5c34cd3a 06f259bf8031 06f259bf8031 06f259bf8031 b7be5c34cd3a d7e889432d9a b7be5c34cd3a 0fb83f27a238 06f259bf8031 06f259bf8031 06f259bf8031 b7be5c34cd3a b7be5c34cd3a 0fb83f27a238 06f259bf8031 06f259bf8031 06f259bf8031 b7be5c34cd3a b7be5c34cd3a 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 b7be5c34cd3a d7e889432d9a b7be5c34cd3a 06f259bf8031 0fb83f27a238 06f259bf8031 06f259bf8031 b7be5c34cd3a b7be5c34cd3a 06f259bf8031 0fb83f27a238 06f259bf8031 06f259bf8031 06f259bf8031 b7be5c34cd3a b7be5c34cd3a 06f259bf8031 0fb83f27a238 06f259bf8031 06f259bf8031 06f259bf8031 b7be5c34cd3a b7be5c34cd3a 06f259bf8031 0fb83f27a238 06f259bf8031 06f259bf8031 b7be5c34cd3a b7be5c34cd3a 06f259bf8031 | use super::*;
use crate::common::*;
use crate::runtime::*;
use PortBinding::*;
#[test]
fn config_ok_0() {
let pdl = b"primitive main() {}";
let d = ProtocolD::parse(pdl).unwrap();
let pol = d.component_polarities(b"main").unwrap();
assert_eq!(&pol[..], &[]);
}
#[test]
fn config_ok_2() {
let pdl = b"primitive main(in x, out y) {}";
let d = ProtocolD::parse(pdl).unwrap();
let pol = d.component_polarities(b"main").unwrap();
assert_eq!(&pol[..], &[Getter, Putter]);
}
#[test]
#[should_panic]
fn config_non_port() {
let pdl = b"primitive main(in q, int q) {}";
ProtocolD::parse(pdl).unwrap();
}
#[test]
fn bind_too_much() {
let mut x = Connector::Unconfigured(Unconfigured { controller_id: 0 });
x.configure(b"primitive main(in a) {}", b"main").unwrap();
x.bind_port(0, Native).unwrap();
assert!(x.bind_port(1, Native).is_err());
}
#[test]
fn config_and_connect_2() {
let timeout = Duration::from_millis(1_500);
let addrs = [next_addr(), next_addr()];
assert!(run_connector_set(&[
&|x| {
x.configure(b"primitive main(in a, out b) {}", b"main").unwrap();
x.bind_port(0, Passive(addrs[0])).unwrap();
x.bind_port(1, Passive(addrs[1])).unwrap();
x.connect(timeout).unwrap();
},
&|x| {
x.configure(b"primitive main(out a, in b) {}", b"main").unwrap();
x.bind_port(0, Active(addrs[0])).unwrap();
x.bind_port(1, Active(addrs[1])).unwrap();
x.connect(timeout).unwrap();
},
]));
}
#[test]
fn config_and_connect_chain() {
let timeout = Duration::from_millis(1_500);
let addrs = [next_addr(), next_addr(), next_addr()];
assert!(run_connector_set(&[
&|x| {
// PRODUCER A->
x.configure(b"primitive main(out a) {}", b"main").unwrap();
x.bind_port(0, Active(addrs[0])).unwrap();
x.connect(timeout).unwrap();
},
&|x| {
// FORWARDER ->B->
x.configure(b"primitive main(in a, out b) {}", b"main").unwrap();
x.bind_port(0, Passive(addrs[0])).unwrap();
x.bind_port(1, Active(addrs[1])).unwrap();
x.connect(timeout).unwrap();
},
&|x| {
// FORWARDER ->C->
x.configure(b"primitive main(in a, out b) {}", b"main").unwrap();
x.bind_port(0, Passive(addrs[1])).unwrap();
x.bind_port(1, Active(addrs[2])).unwrap();
x.connect(timeout).unwrap();
},
&|x| {
// CONSUMER ->D
x.configure(b"primitive main(in a) {}", b"main").unwrap();
x.bind_port(0, Passive(addrs[2])).unwrap();
x.connect(timeout).unwrap();
},
]));
}
|