summaryrefslogtreecommitdiffstats
path: root/src/wireguard/tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/wireguard/tests.rs')
-rw-r--r--src/wireguard/tests.rs46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/wireguard/tests.rs b/src/wireguard/tests.rs
new file mode 100644
index 0000000..0148d5d
--- /dev/null
+++ b/src/wireguard/tests.rs
@@ -0,0 +1,46 @@
+use super::types::tun::Tun;
+use super::types::{bind, dummy, tun};
+use super::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));
+}