diff --git a/src/runtime/my_tests.rs b/src/runtime/my_tests.rs new file mode 100644 index 0000000000000000000000000000000000000000..56d9f89c5429c586800e84ff96dcc5824bd3cab2 --- /dev/null +++ b/src/runtime/my_tests.rs @@ -0,0 +1,76 @@ +use crate as reowolf; +use reowolf::Polarity::*; +use std::net::SocketAddr; +use std::{sync::Arc, time::Duration}; + +fn next_test_addr() -> SocketAddr { + use std::{ + net::{Ipv4Addr, SocketAddrV4}, + sync::atomic::{AtomicU16, Ordering::SeqCst}, + }; + static TEST_PORT: AtomicU16 = AtomicU16::new(5_000); + let port = TEST_PORT.fetch_add(1, SeqCst); + SocketAddrV4::new(Ipv4Addr::LOCALHOST, port).into() +} + +lazy_static::lazy_static! { + static ref MINIMAL_PROTO: Arc = + { Arc::new(reowolf::ProtocolDescription::parse(b"").unwrap()) }; +} + +#[test] +fn simple_connector() { + let c = reowolf::Connector::new_simple(MINIMAL_PROTO.clone(), 0); + println!("{:#?}", c); +} + +#[test] +fn add_port_pair() { + let mut c = reowolf::Connector::new_simple(MINIMAL_PROTO.clone(), 0); + let [_, _] = c.add_port_pair(); + let [_, _] = c.add_port_pair(); + println!("{:#?}", c); +} + +#[test] +fn add_sync() { + let mut c = reowolf::Connector::new_simple(MINIMAL_PROTO.clone(), 0); + let [o, i] = c.add_port_pair(); + c.add_component(b"sync", &[i, o]).unwrap(); + println!("{:#?}", c); +} + +#[test] +fn add_net_port() { + let mut c = reowolf::Connector::new_simple(MINIMAL_PROTO.clone(), 0); + let sock_addr = next_test_addr(); + let _ = c + .add_net_port(reowolf::EndpointSetup { polarity: Getter, sock_addr, is_active: false }) + .unwrap(); + let _ = c + .add_net_port(reowolf::EndpointSetup { polarity: Putter, sock_addr, is_active: true }) + .unwrap(); + println!("{:#?}", c); +} + +#[test] +fn trivial_connect() { + let mut c = reowolf::Connector::new_simple(MINIMAL_PROTO.clone(), 0); + c.connect(Duration::from_secs(1)).unwrap(); + println!("{:#?}", c); +} + +#[test] +fn single_node_connect() { + let mut c = reowolf::Connector::new_simple(MINIMAL_PROTO.clone(), 0); + let sock_addr = next_test_addr(); + let _ = c + .add_net_port(reowolf::EndpointSetup { polarity: Getter, sock_addr, is_active: false }) + .unwrap(); + let _ = c + .add_net_port(reowolf::EndpointSetup { polarity: Putter, sock_addr, is_active: true }) + .unwrap(); + c.connect(Duration::from_secs(1)).unwrap(); + println!("{:#?}", c); + c.get_logger().dump_log(&mut std::io::stdout().lock()); +}