aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests.rs
diff options
context:
space:
mode:
authorMathias Hall-Andersen <mathias@hall-andersen.dk>2019-10-11 12:57:24 +0200
committerMathias Hall-Andersen <mathias@hall-andersen.dk>2019-10-11 12:57:24 +0200
commit3d6e8f08a7408a3f68b7917ae4ff4ea804c36d00 (patch)
tree379151be9a700d09db96e63313f623cc890808de /src/tests.rs
parentStart porting kernel timer semantics (diff)
downloadwireguard-rs-3d6e8f08a7408a3f68b7917ae4ff4ea804c36d00.tar.xz
wireguard-rs-3d6e8f08a7408a3f68b7917ae4ff4ea804c36d00.zip
Enable adding TUN reader to WG interface
Diffstat (limited to 'src/tests.rs')
-rw-r--r--src/tests.rs46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/tests.rs b/src/tests.rs
new file mode 100644
index 0000000..8e15037
--- /dev/null
+++ b/src/tests.rs
@@ -0,0 +1,46 @@
+use crate::types::tun::Tun;
+use crate::types::{bind, dummy, tun};
+use crate::wireguard::Wireguard;
+
+use std::thread;
+use std::time::Duration;
+
+fn init() {
+ let _ = env_logger::builder().is_test(true).try_init();
+}
+
+/* Create and configure two matching pure instances of WireGuard
+ *
+ */
+#[test]
+fn test_pure_wireguard() {
+ init();
+
+ // create WG instances for fake TUN devices
+
+ let (fake1, tun_reader1, tun_writer1, mtu1) = dummy::TunTest::create(1500, true);
+ let wg1: Wireguard<dummy::TunTest, dummy::PairBind> =
+ Wireguard::new(vec![tun_reader1], tun_writer1, mtu1);
+
+ let (fake2, tun_reader2, tun_writer2, mtu2) = dummy::TunTest::create(1500, true);
+ let wg2: Wireguard<dummy::TunTest, dummy::PairBind> =
+ Wireguard::new(vec![tun_reader2], tun_writer2, mtu2);
+
+ // create pair bind to connect the interfaces "over the internet"
+
+ let ((bind_reader1, bind_writer1), (bind_reader2, bind_writer2)) = dummy::PairBind::pair();
+
+ wg1.set_writer(bind_writer1);
+ wg2.set_writer(bind_writer2);
+
+ wg1.add_reader(bind_reader1);
+ wg2.add_reader(bind_reader2);
+
+ // generate (public, pivate) key pairs
+
+ // configure cryptkey router
+
+ // create IP packets
+
+ thread::sleep(Duration::from_millis(500));
+}