Skip to content

Commit b04d486

Browse files
committed
Add basic tests for statime-netptp
1 parent 01115e4 commit b04d486

5 files changed

Lines changed: 71 additions & 0 deletions

File tree

statime-netptp/Cargo.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,14 @@ description.workspace = true
1010
publish.workspace = true
1111
rust-version.workspace = true
1212

13+
[features]
14+
default = ["privileged_tests"]
15+
privileged_tests = []
16+
1317
[dependencies]
1418
timestamped-socket.workspace = true
1519
tokio = { workspace = true, features = ["sync"] }
1620
tracing.workspace = true
21+
22+
[dev-dependencies]
23+
tokio = { workspace = true, features = ["rt", "macros"] }

statime-netptp/src/addresses/ipv4.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,14 @@ use crate::{
1616
addresses::{BoundInterface, SealedPtpAddressFamily},
1717
};
1818

19+
#[cfg(not(test))]
1920
const EVENT_PORT: u16 = 319;
21+
#[cfg(not(test))]
2022
const GENERAL_PORT: u16 = 320;
23+
#[cfg(test)]
24+
const EVENT_PORT: u16 = 4319;
25+
#[cfg(test)]
26+
const GENERAL_PORT: u16 = 4320;
2127

2228
type RecvTimestampFuture =
2329
dyn Future<Output = Result<(SendTimestampToken, FullTimestampData)>> + Sync + Send + 'static;

statime-netptp/src/addresses/ipv6.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,14 @@ use crate::{
1616
addresses::{BoundInterface, SealedPtpAddressFamily},
1717
};
1818

19+
#[cfg(not(test))]
1920
const EVENT_PORT: u16 = 319;
21+
#[cfg(not(test))]
2022
const GENERAL_PORT: u16 = 320;
23+
#[cfg(test)]
24+
const EVENT_PORT: u16 = 4319;
25+
#[cfg(test)]
26+
const GENERAL_PORT: u16 = 4320;
2127

2228
type RecvTimestampFuture =
2329
dyn Future<Output = Result<(SendTimestampToken, FullTimestampData)>> + Sync + Send + 'static;

statime-netptp/src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,3 +380,6 @@ enum TimestampSource {
380380
System,
381381
Hardware,
382382
}
383+
384+
#[cfg(all(test, feature = "privileged_tests"))]
385+
mod test;

statime-netptp/src/test.rs

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
use std::net::{Ipv4Addr, Ipv6Addr};
2+
3+
use crate::NetworkManager;
4+
5+
#[tokio::test]
6+
async fn test_ipv4() {
7+
let manager = NetworkManager::<Ipv4Addr>::new().unwrap();
8+
let general = manager.open_general();
9+
let mut socket = general.listen_socket();
10+
11+
socket
12+
.send_general(&[1, 2, 3, 4], None, Ipv4Addr::LOCALHOST)
13+
.await
14+
.unwrap();
15+
let result = socket.recv().await.unwrap();
16+
assert_eq!(&*result.bytes_read, [1, 2, 3, 4].as_slice());
17+
18+
let ts = socket
19+
.send_event(&[5, 6, 7, 8], None, Ipv4Addr::LOCALHOST)
20+
.await
21+
.unwrap();
22+
assert!(ts.is_some());
23+
let result = socket.recv().await.unwrap();
24+
assert_eq!(&*result.bytes_read, [5, 6, 7, 8].as_slice());
25+
assert!(result.timestamp.is_some());
26+
}
27+
28+
#[tokio::test]
29+
async fn test_ipv6() {
30+
let manager = NetworkManager::<Ipv6Addr>::new().unwrap();
31+
let general = manager.open_general();
32+
let mut socket = general.listen_socket();
33+
34+
socket
35+
.send_general(&[1, 2, 3, 4], None, Ipv6Addr::LOCALHOST)
36+
.await
37+
.unwrap();
38+
let result = socket.recv().await.unwrap();
39+
assert_eq!(&*result.bytes_read, [1, 2, 3, 4].as_slice());
40+
41+
let ts = socket
42+
.send_event(&[5, 6, 7, 8], None, Ipv6Addr::LOCALHOST)
43+
.await
44+
.unwrap();
45+
assert!(ts.is_some());
46+
let result = socket.recv().await.unwrap();
47+
assert_eq!(&*result.bytes_read, [5, 6, 7, 8].as_slice());
48+
assert!(result.timestamp.is_some());
49+
}

0 commit comments

Comments
 (0)