diff --git a/tests/options.rs b/tests/options.rs
index 9a96b9c..be11d58 100644
@@ -5,33 +5,36 @@ use socket2::{Domain, Socket, Type};
/// Macro to create a simple test to set and get a socket option.
macro_rules! test {
($get_fn: ident, $set_fn: ident ( $arg: expr ) ) => {
+ test!($get_fn, $set_fn($arg), $arg);
+ };
+ ($get_fn: ident, $set_fn: ident ( $arg: expr ), $expected: expr ) => {
#[test]
fn $get_fn() {
- test!(Domain::IPV4, $get_fn, $set_fn($arg));
- test!(Domain::IPV6, $get_fn, $set_fn($arg));
+ test!(Domain::IPV4, $get_fn, $set_fn($arg), $expected);
+ test!(Domain::IPV6, $get_fn, $set_fn($arg), $expected);
}
};
// Only test using a IPv4 socket.
(IPv4 $get_fn: ident, $set_fn: ident ( $arg: expr ) ) => {
#[test]
fn $get_fn() {
- test!(Domain::IPV4, $get_fn, $set_fn($arg));
+ test!(Domain::IPV4, $get_fn, $set_fn($arg), $arg);
}
};
// Only test using a IPv6 socket.
(IPv6 $get_fn: ident, $set_fn: ident ( $arg: expr ) ) => {
#[test]
fn $get_fn() {
- test!(Domain::IPV6, $get_fn, $set_fn($arg));
+ test!(Domain::IPV6, $get_fn, $set_fn($arg), $arg);
}
};
- ($ty: expr, $get_fn: ident, $set_fn: ident ( $arg: expr ) ) => {
+ ($ty: expr, $get_fn: ident, $set_fn: ident ( $arg: expr ), $expected: expr ) => {
let socket = Socket::new($ty, Type::STREAM, None).expect("failed to create `Socket`");
let initial = socket.$get_fn().expect("failed to get initial value");
let arg = $arg;
- let expected = arg.clone();
+ let expected = $expected;
assert_ne!(initial, arg, "initial value and argument are the same");
socket.$set_fn(arg).expect("failed to set option");
@@ -41,8 +44,8 @@ macro_rules! test {
}
test!(nodelay, set_nodelay(true));
-test!(recv_buffer_size, set_recv_buffer_size(512));
-test!(send_buffer_size, set_send_buffer_size(512));
+test!(recv_buffer_size, set_recv_buffer_size(4096), 8192);
+test!(send_buffer_size, set_send_buffer_size(4096), 8192);
#[cfg(all(feature = "all", not(target_os = "redox")))]
test!(out_of_band_inline, set_out_of_band_inline(true));
test!(reuse_address, set_reuse_address(true));
@@ -52,7 +55,9 @@ test!(reuse_address, set_reuse_address(true));
))]
test!(reuse_port, set_reuse_port(true));
#[cfg(all(feature = "all", unix))]
-test!(mss, set_mss(1300));
+test!(mss, set_mss(200));
+#[cfg(all(feature = "all", target_os = "linux"))]
+test!(mark, set_mark(123));
test!(IPv4 ttl, set_ttl(40));
test!(IPv4 broadcast, set_broadcast(true));