Files @ 43f31542f6db
Branch filter:

Location: CSY/reowolf/src/test/connector.rs

43f31542f6db 2.0 KiB application/rls-services+xml Show Annotation Show as Raw Download as Raw
Christopher Esterhuyse
more debug prints on branch predicates
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_resources("testdata/connector/duo/*.apdl")]
fn batch1(resource: &str) {
    let a = Path::new(resource);
    let b = a.with_extension("bpdl");
    let a = fs::read_to_string(a).unwrap();
    let b = fs::read_to_string(b).unwrap();
    duo(a, b);
}

fn duo(one: String, two: String) {
    let a = thread::spawn(move || {
        let timeout = Duration::from_millis(1_500);
        let addrs = ["127.0.0.1:7010".parse().unwrap(), "127.0.0.1:7011".parse().unwrap()];
        let mut x = Connector::Unconfigured(Unconfigured { controller_id: 0 });
        x.configure(one.as_bytes()).unwrap();
        x.bind_port(0, PortBinding::Passive(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());
        assert_eq!(0, x.sync(timeout).unwrap());
        assert_eq!(0, x.sync(timeout).unwrap());
    });
    let b = thread::spawn(move || {
        let timeout = Duration::from_millis(1_500);
        let addrs = ["127.0.0.1:7010".parse().unwrap(), "127.0.0.1:7011".parse().unwrap()];
        let mut x = Connector::Unconfigured(Unconfigured { controller_id: 1 });
        x.configure(two.as_bytes()).unwrap();
        x.bind_port(0, PortBinding::Passive(addrs[1])).unwrap();
        x.bind_port(1, PortBinding::Active(addrs[0])).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());
        assert_eq!(0, x.sync(timeout).unwrap());
        assert_eq!(0, x.sync(timeout).unwrap());
    });
    handle(a.join());
    handle(b.join());
}