Skip to content
This repository has been archived by the owner on Jun 27, 2022. It is now read-only.

Commit

Permalink
add another test to rendezvous connection setup
Browse files Browse the repository at this point in the history
In this new test, each node calls `rendezvous_connect` at more farther
apart points in time.
  • Loading branch information
vinipsmaker committed Oct 27, 2015
1 parent 6ade921 commit be02527
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions src/socket.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1537,6 +1537,48 @@ mod test {
t.join().unwrap();
}

#[test]
fn test_rendezvous_connect2() {
use std::net::{UdpSocket, Ipv4Addr, SocketAddrV4};
use std::thread::sleep_ms;

let peer1_udp_socket = iotry!(UdpSocket::bind("0.0.0.0:0"));
let peer2_udp_socket = iotry!(UdpSocket::bind("0.0.0.0:0"));

let peer1_port = iotry!(peer1_udp_socket.local_addr()).port();
let peer1_addr = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1),
peer1_port);

let peer2_port = iotry!(peer2_udp_socket.local_addr()).port();
let peer2_addr = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1),
peer2_port);

let t = thread::spawn(move || {
thread::sleep_ms(2000);
println!("t connecting...");
let mut peer1 = iotry!(UtpSocket::rendezvous_connect(peer1_udp_socket,
peer2_addr));
println!("t connected");
let buf = [0u8; 4];
peer1.send_to(&buf).unwrap();
peer1.flush().unwrap();
println!("t disconnecting...");
let _ = peer1.close();
println!("t disconnected");
});

println!("main connecting...");
let mut peer2 = iotry!(UtpSocket::rendezvous_connect(peer2_udp_socket,
peer1_addr));
println!("main connected");
let mut buf = [0u8; 4];
peer2.recv_from(&mut buf).unwrap();
println!("main disconnecting...");
let _ = peer2.close();
println!("main disconnected");
t.join().unwrap();
}

#[test]
fn test_recvfrom_on_closed_socket() {
let server_addr = next_test_ip4();
Expand Down

0 comments on commit be02527

Please sign in to comment.