}
}
-impl NativeHandle<*uvll::uv_getaddrinfo_t> for GetAddrInfoRequest {
- fn from_native_handle(handle: *uvll::uv_getaddrinfo_t) -> GetAddrInfoRequest {
- GetAddrInfoRequest(handle)
- }
- fn native_handle(&self) -> *uvll::uv_getaddrinfo_t {
- match self { &GetAddrInfoRequest(ptr) => ptr }
- }
-}
-
#[cfg(test)]
mod test {
- use Loop;
use std::rt::io::net::ip::{SocketAddr, Ipv4Addr};
use super::*;
+ use super::super::local_loop;
#[test]
+ #[ignore(cfg(target_os="android"))] // cannot give tcp/ip permission without help of apk
fn getaddrinfo_test() {
- let mut loop_ = Loop::new();
- let mut req = GetAddrInfoRequest::new();
- do req.getaddrinfo(&loop_, Some("localhost"), None, None) |_, addrinfo, _| {
- let sockaddrs = accum_addrinfo(addrinfo);
- let mut found_local = false;
- let local_addr = &SocketAddr {
- ip: Ipv4Addr(127, 0, 0, 1),
- port: 0
- };
- for addr in sockaddrs.iter() {
- found_local = found_local || addr.address == *local_addr;
+ match GetAddrInfoRequest::run(local_loop(), Some("localhost"), None, None) {
+ Ok(infos) => {
+ let mut found_local = false;
+ let local_addr = &SocketAddr {
+ ip: Ipv4Addr(127, 0, 0, 1),
+ port: 0
+ };
+ for addr in infos.iter() {
+ found_local = found_local || addr.address == *local_addr;
+ }
+ assert!(found_local);
}
- assert!(found_local);
+ Err(e) => fail!("{:?}", e),
}
- loop_.run();
- loop_.close();
- req.delete();
}
}