Skip to content

Commit fc187c1

Browse files
committed
add ipv6 test exception if ipv6 is not available
1 parent e9f39c6 commit fc187c1

File tree

6 files changed

+40
-11
lines changed

6 files changed

+40
-11
lines changed

cli/src/external_ip/providers/external_ip_resolver.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::{
22
future::Future,
3-
net::{AddrParseError, Ipv4Addr, Ipv6Addr},
3+
net::{AddrParseError, Ipv4Addr, Ipv6Addr, TcpListener},
44
pin::Pin,
55
};
66

@@ -60,3 +60,8 @@ pub async fn resolve_ipv6_with_url<T: IntoUrl>(url: T) -> Result<Ipv6Addr, Exter
6060
let ip: Ipv6Addr = text.parse()?;
6161
Ok(ip)
6262
}
63+
64+
65+
pub fn is_ipv6_available() -> bool {
66+
TcpListener::bind("[::1]:0").is_ok()
67+
}

cli/src/external_ip/providers/icanhazip.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ pub fn get_resolver() -> ProviderResolver {
2222

2323
#[cfg(test)]
2424
mod tests {
25+
use crate::external_ip::providers::external_ip_resolver::is_ipv6_available;
26+
2527
use super::*;
2628

2729
#[tokio::test]
@@ -32,7 +34,9 @@ mod tests {
3234

3335
#[tokio::test]
3436
async fn test_ipv6() {
35-
let ip = resolve_ipv6().await;
36-
assert!(ip.is_ok());
37+
if is_ipv6_available() { // Only run test if ipv6 is available on this system.
38+
let ip = resolve_ipv6().await;
39+
assert!(ip.is_ok());
40+
}
3741
}
3842
}

cli/src/external_ip/providers/identme.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ pub fn get_resolver() -> ProviderResolver {
2222

2323
#[cfg(test)]
2424
mod tests {
25+
use crate::external_ip::providers::external_ip_resolver::is_ipv6_available;
26+
2527
use super::*;
2628

2729
#[tokio::test]
@@ -32,7 +34,10 @@ mod tests {
3234

3335
#[tokio::test]
3436
async fn test_ipv6() {
35-
let ip = resolve_ipv6().await;
36-
assert!(ip.is_ok());
37+
if is_ipv6_available() {
38+
// Only run test if ipv6 is available on this system.
39+
let ip = resolve_ipv6().await;
40+
assert!(ip.is_ok());
41+
}
3742
}
3843
}

cli/src/external_ip/providers/ipifyorg.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ pub fn get_resolver() -> ProviderResolver {
2222

2323
#[cfg(test)]
2424
mod tests {
25+
use crate::external_ip::providers::external_ip_resolver::is_ipv6_available;
26+
2527
use super::*;
2628

2729
#[tokio::test]
@@ -32,7 +34,10 @@ mod tests {
3234

3335
#[tokio::test]
3436
async fn test_ipv6() {
35-
let ip = resolve_ipv6().await;
36-
assert!(ip.is_ok());
37+
if is_ipv6_available() {
38+
// Only run test if ipv6 is available on this system.
39+
let ip = resolve_ipv6().await;
40+
assert!(ip.is_ok());
41+
}
3742
}
3843
}

cli/src/external_ip/providers/ipinfoio.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ pub fn get_resolver() -> ProviderResolver {
3333

3434
#[cfg(test)]
3535
mod tests {
36+
use crate::external_ip::providers::external_ip_resolver::is_ipv6_available;
37+
3638
use super::*;
3739

3840
#[tokio::test]
@@ -43,7 +45,10 @@ mod tests {
4345

4446
#[tokio::test]
4547
async fn test_ipv6() {
46-
let ip = resolve_ipv6().await;
47-
ip.expect("Valid ipv6");
48+
if is_ipv6_available() {
49+
// Only run test if ipv6 is available on this system.
50+
let ip = resolve_ipv6().await;
51+
assert!(ip.is_ok());
52+
}
4853
}
4954
}

cli/src/external_ip/providers/myip.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ pub fn get_resolver() -> ProviderResolver {
3333

3434
#[cfg(test)]
3535
mod tests {
36+
use crate::external_ip::providers::external_ip_resolver::is_ipv6_available;
37+
3638
use super::*;
3739

3840
#[tokio::test]
@@ -43,7 +45,10 @@ mod tests {
4345

4446
#[tokio::test]
4547
async fn test_ipv6() {
46-
let ip = resolve_ipv6().await;
47-
ip.expect("Valid ipv6");
48+
if is_ipv6_available() {
49+
// Only run test if ipv6 is available on this system.
50+
let ip = resolve_ipv6().await;
51+
assert!(ip.is_ok());
52+
}
4853
}
4954
}

0 commit comments

Comments
 (0)