nix/test/test.rs
2015-04-27 13:37:18 -07:00

36 lines
868 B
Rust

extern crate nix;
extern crate libc;
extern crate rand;
mod sys;
mod test_nix_path;
mod test_stat;
mod test_unistd;
#[cfg(any(target_os = "linux"))]
mod test_mq;
mod ports {
use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT};
use std::sync::atomic::Ordering::SeqCst;
// Helper for getting a unique port for the task run
// TODO: Reuse ports to not spam the system
static mut NEXT_PORT: AtomicUsize = ATOMIC_USIZE_INIT;
const FIRST_PORT: usize = 18080;
pub fn next_port() -> usize {
unsafe {
// If the atomic was never used, set it to the initial port
NEXT_PORT.compare_and_swap(0, FIRST_PORT, SeqCst);
// Get and increment the port list
NEXT_PORT.fetch_add(1, SeqCst)
}
}
pub fn localhost() -> String {
format!("127.0.0.1:{}", next_port())
}
}