aboutsummaryrefslogtreecommitdiffstats
path: root/src/router/tests.rs
diff options
context:
space:
mode:
authorMathias Hall-Andersen <mathias@hall-andersen.dk>2019-09-02 20:22:47 +0200
committerMathias Hall-Andersen <mathias@hall-andersen.dk>2019-09-02 20:22:47 +0200
commit62d71a7a67e2f4e32a8fc48d3e483fecea2c352e (patch)
tree3fd87e5878d4ca533e65b65351ed7a7a05b84ef5 /src/router/tests.rs
parentOutbound cryptkey routing (diff)
downloadwireguard-rs-62d71a7a67e2f4e32a8fc48d3e483fecea2c352e.tar.xz
wireguard-rs-62d71a7a67e2f4e32a8fc48d3e483fecea2c352e.zip
Reconsider inorder queueing
Diffstat (limited to '')
-rw-r--r--src/router/tests.rs41
1 files changed, 38 insertions, 3 deletions
diff --git a/src/router/tests.rs b/src/router/tests.rs
index 07851a8..8c51ff1 100644
--- a/src/router/tests.rs
+++ b/src/router/tests.rs
@@ -3,11 +3,13 @@ use std::fmt;
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;
+use std::thread;
+use std::time::{Duration, Instant};
use pnet::packet::ipv4::MutableIpv4Packet;
use pnet::packet::ipv6::MutableIpv6Packet;
-use super::super::types::{Bind, Tun};
+use super::super::types::{Bind, Key, KeyPair, Tun};
use super::{Device, Peer, SIZE_MESSAGE_PREFIX};
#[derive(Debug)]
@@ -93,6 +95,32 @@ impl fmt::Display for BindError {
}
}
+fn dummy_keypair(initiator: bool) -> KeyPair {
+ let k1 = Key {
+ key: [0x53u8; 32],
+ id: 0x646e6573,
+ };
+ let k2 = Key {
+ key: [0x52u8; 32],
+ id: 0x76636572,
+ };
+ if initiator {
+ KeyPair {
+ birth: Instant::now(),
+ initiator: true,
+ send: k1,
+ recv: k2,
+ }
+ } else {
+ KeyPair {
+ birth: Instant::now(),
+ initiator: false,
+ send: k2,
+ recv: k1,
+ }
+ }
+}
+
#[test]
fn test_outbound() {
let opaque = Arc::new(AtomicBool::new(false));
@@ -134,6 +162,11 @@ fn test_outbound() {
),
];
+ thread::sleep(Duration::from_millis(1000));
+ assert!(false);
+
+ peer.add_keypair(dummy_keypair(true));
+
for (mask, len, ip, okay) in &tests {
opaque.store(false, Ordering::SeqCst);
@@ -161,8 +194,8 @@ fn test_outbound() {
// cryptkey routing succeeded
assert!(res.is_ok());
- // and a key should have been requested
- assert!(opaque.load(Ordering::Acquire));
+ // and a key should have been requested
+ // assert!(opaque.load(Ordering::Acquire), "did not request key");
} else {
assert!(res.is_err());
}
@@ -170,4 +203,6 @@ fn test_outbound() {
// clear subnets for next test
peer.remove_subnets();
}
+
+ assert!(false);
}