vpncloud/src/tests/nat.rs

74 lines
2.2 KiB
Rust
Raw Normal View History

2019-12-04 12:09:20 +00:00
// VpnCloud - Peer-to-Peer VPN
2021-02-08 09:11:20 +00:00
// Copyright (C) 2015-2021 Dennis Schwerdel
2019-12-04 12:09:20 +00:00
// This software is licensed under GPL-3 or newer (see LICENSE.md)
2021-02-08 16:30:58 +00:00
use super::common::*;
2019-12-04 12:09:20 +00:00
#[test]
fn connect_nat_2_peers() {
2020-09-24 17:48:13 +00:00
let config = Config { port_forwarding: false, ..Default::default() };
let mut sim = TapSimulator::new();
let node1 = sim.add_node(true, &config);
let node2 = sim.add_node(true, &config);
2019-12-04 12:09:20 +00:00
2020-09-24 17:48:13 +00:00
sim.connect(node1, node2);
sim.connect(node2, node1);
2019-12-04 12:09:20 +00:00
2020-09-24 17:48:13 +00:00
sim.simulate_time(60);
2019-12-04 12:09:20 +00:00
2020-09-24 17:48:13 +00:00
assert!(sim.is_connected(node1, node2));
assert!(sim.is_connected(node2, node1));
2019-12-04 12:09:20 +00:00
}
#[test]
fn connect_nat_3_peers() {
2020-09-24 17:48:13 +00:00
let config = Config::default();
let mut sim = TapSimulator::new();
let node1 = sim.add_node(true, &config);
let node2 = sim.add_node(true, &config);
let node3 = sim.add_node(true, &config);
sim.connect(node1, node2);
sim.connect(node2, node1);
sim.connect(node1, node3);
sim.connect(node3, node1);
sim.simulate_time(300);
assert!(sim.is_connected(node1, node2));
assert!(sim.is_connected(node2, node1));
assert!(sim.is_connected(node1, node3));
assert!(sim.is_connected(node3, node1));
assert!(sim.is_connected(node2, node3));
assert!(sim.is_connected(node3, node2));
2019-12-04 12:09:20 +00:00
}
#[test]
fn nat_keepalive() {
2020-09-24 17:48:13 +00:00
let config = Config::default();
let mut sim = TapSimulator::new();
let node1 = sim.add_node(true, &config);
let node2 = sim.add_node(true, &config);
let node3 = sim.add_node(true, &config);
sim.connect(node1, node2);
sim.connect(node2, node1);
sim.connect(node1, node3);
sim.connect(node3, node1);
sim.simulate_time(1000);
assert!(sim.is_connected(node1, node2));
assert!(sim.is_connected(node2, node1));
assert!(sim.is_connected(node1, node3));
assert!(sim.is_connected(node3, node1));
assert!(sim.is_connected(node2, node3));
assert!(sim.is_connected(node3, node2));
sim.simulate_time(10000);
assert!(sim.is_connected(node1, node2));
assert!(sim.is_connected(node2, node1));
assert!(sim.is_connected(node1, node3));
assert!(sim.is_connected(node3, node1));
assert!(sim.is_connected(node2, node3));
assert!(sim.is_connected(node3, node2));
2019-12-04 12:09:20 +00:00
}