Files
@ 63a9f085c357
Branch filter:
Location: CSY/reowolf/src/test/connector.rs - annotation
63a9f085c357
3.3 KiB
application/rls-services+xml
Update connector test
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 06f259bf8031 06f259bf8031 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 06f259bf8031 63a9f085c357 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 06f259bf8031 b788ae5c2251 b788ae5c2251 63a9f085c357 b788ae5c2251 63a9f085c357 b788ae5c2251 b788ae5c2251 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 b788ae5c2251 b788ae5c2251 b788ae5c2251 b788ae5c2251 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 b788ae5c2251 b788ae5c2251 b788ae5c2251 b788ae5c2251 63a9f085c357 63a9f085c357 63a9f085c357 b788ae5c2251 b788ae5c2251 b788ae5c2251 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 63a9f085c357 b788ae5c2251 63a9f085c357 b788ae5c2251 b788ae5c2251 b788ae5c2251 b788ae5c2251 63a9f085c357 63a9f085c357 63a9f085c357 b788ae5c2251 b788ae5c2251 b788ae5c2251 b788ae5c2251 | extern crate test_generator;
use super::*;
use std::fs;
use std::path::Path;
use std::thread;
use test_generator::test_resources;
use crate::common::*;
use crate::runtime::*;
#[test]
fn incremental() {
let timeout = Duration::from_millis(1_500);
let addrs = ["127.0.0.1:7010".parse().unwrap(), "127.0.0.1:7011".parse().unwrap()];
let a = thread::spawn(move || {
let mut x = Connector::Unconfigured(Unconfigured { controller_id: 0 });
x.configure(
b"primitive main(out a, out b) {
synchronous {
msg m = create(0);
put(a, m);
}
}",
)
.unwrap();
x.bind_port(0, PortBinding::Passive(addrs[0])).unwrap();
x.bind_port(1, PortBinding::Passive(addrs[1])).unwrap();
x.connect(timeout).unwrap();
assert_eq!(0, x.sync(timeout).unwrap());
});
let b = thread::spawn(move || {
let mut x = Connector::Unconfigured(Unconfigured { controller_id: 1 });
x.configure(
b"primitive main(in a, in b) {
synchronous {
get(a);
}
}",
)
.unwrap();
x.bind_port(0, PortBinding::Active(addrs[0])).unwrap();
x.bind_port(1, PortBinding::Active(addrs[1])).unwrap();
x.connect(timeout).unwrap();
assert_eq!(0, x.sync(timeout).unwrap());
});
handle(a.join());
handle(b.join());
}
#[test]
fn duo() {
let timeout = Duration::from_millis(1_500);
let addrs = ["127.0.0.1:7012".parse().unwrap(), "127.0.0.1:7013".parse().unwrap()];
let a = thread::spawn(move || {
let mut x = Connector::Unconfigured(Unconfigured { controller_id: 0 });
x.configure(b"
primitive main(out a, out b) {
synchronous {}
synchronous {}
synchronous {
msg m = create(0);
put(a, m);
}
synchronous {
msg m = create(0);
put(b, m);
}
}").unwrap();
x.bind_port(0, PortBinding::Passive(addrs[0])).unwrap();
x.bind_port(1, PortBinding::Passive(addrs[1])).unwrap();
x.connect(timeout).unwrap();
assert_eq!(0, x.sync(timeout).unwrap());
assert_eq!(0, x.sync(timeout).unwrap());
assert_eq!(0, x.sync(timeout).unwrap());
assert_eq!(0, x.sync(timeout).unwrap());
});
let b = thread::spawn(move || {
let mut x = Connector::Unconfigured(Unconfigured { controller_id: 1 });
x.configure(b"
primitive main(in a, in b) {
while (true) {
synchronous {
if (fires(a)) {
get(a);
}
}
synchronous {
if (fires(b)) {
get(b);
}
}
}
}").unwrap();
x.bind_port(0, PortBinding::Active(addrs[0])).unwrap();
x.bind_port(1, PortBinding::Active(addrs[1])).unwrap();
x.connect(timeout).unwrap();
assert_eq!(0, x.sync(timeout).unwrap());
assert_eq!(0, x.sync(timeout).unwrap());
assert_eq!(0, x.sync(timeout).unwrap());
assert_eq!(0, x.sync(timeout).unwrap());
});
handle(a.join());
handle(b.join());
}
|