Skip to content

Commit 615e9dc

Browse files
Improve docs
1 parent ec47faa commit 615e9dc

File tree

2 files changed

+53
-1
lines changed

2 files changed

+53
-1
lines changed

mullvad-relay-selector/src/relay_selector/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ pub enum GetRelay {
125125
}
126126

127127
/// This struct defines the different Wireguard relays the the relay selector can end up selecting
128-
/// for an arbitrary Wireguard query.
128+
/// for an arbitrary Wireguard [`query`].
129129
///
130130
/// [`WireguardConfig::Singlehop`]; A normal wireguard relay where VPN traffic enters and exits
131131
/// through this sole relay.

mullvad-relay-selector/tests/relay_selector.rs

+52
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,58 @@ fn default_relay_selector() -> RelaySelector {
199199
RelaySelector::from_list(SelectorConfig::default(), RELAYS.clone())
200200
}
201201

202+
/// This is not an actual test. Rather, it serves as a reminder that if [`RETRY_ORDER`] is modified,
203+
/// the programmer should be made aware to update all external documents which rely on the retry order
204+
/// to be correct.
205+
///
206+
/// When all necessary changes have been made, feel free to update this test to mirror the new [`RETRY_ORDER`].
207+
#[test]
208+
fn assert_retry_order() {
209+
use talpid_types::net::{IpVersion, TransportProtocol};
210+
let expected_retry_order = vec![
211+
// 0
212+
RelayQueryBuilder::new().build(),
213+
// 1
214+
RelayQueryBuilder::new().wireguard().build(),
215+
// 2
216+
RelayQueryBuilder::new().wireguard().port(443).build(),
217+
// 3
218+
RelayQueryBuilder::new()
219+
.wireguard()
220+
.ip_version(IpVersion::V6)
221+
.build(),
222+
// 4
223+
RelayQueryBuilder::new()
224+
.openvpn()
225+
.transport_protocol(TransportProtocol::Tcp)
226+
.port(443)
227+
.build(),
228+
// 5
229+
RelayQueryBuilder::new().wireguard().udp2tcp().build(),
230+
// 6
231+
RelayQueryBuilder::new()
232+
.wireguard()
233+
.udp2tcp()
234+
.ip_version(IpVersion::V6)
235+
.build(),
236+
// 7
237+
RelayQueryBuilder::new()
238+
.openvpn()
239+
.transport_protocol(TransportProtocol::Tcp)
240+
.bridge()
241+
.build(),
242+
];
243+
244+
assert!(
245+
*RETRY_ORDER == expected_retry_order,
246+
"
247+
The relay selector's retry order has been modified!
248+
Make sure to update `docs/relay-selector.md` with these changes.
249+
Lastly, you may go ahead and fix this test to reflect the new retry order.
250+
"
251+
);
252+
}
253+
202254
/// Test whether the relay selector seems to respect the order as defined by [`RETRY_ORDER`].
203255
#[test]
204256
fn test_retry_order() {

0 commit comments

Comments
 (0)