Files
@ 166c201a1d43
Branch filter:
Location: CSY/reowolf/src/test/setup.rs - annotation
166c201a1d43
2.7 KiB
application/rls-services+xml
bitsets are so great
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();
},
]));
}
|