@@ -5,22 +5,27 @@ extern crate nix;
55#[ macro_use]
66extern crate lazy_static;
77
8+ macro_rules! skip {
9+ ( $( $reason: expr) ,+) => {
10+ use :: std:: io:: { self , Write } ;
11+
12+ let stderr = io:: stderr( ) ;
13+ let mut handle = stderr. lock( ) ;
14+ writeln!( handle, $( $reason) ,+) . unwrap( ) ;
15+ return ;
16+ }
17+ }
18+
819cfg_if ! {
920 if #[ cfg( any( target_os = "android" , target_os = "linux" ) ) ] {
1021 macro_rules! require_capability {
1122 ( $capname: ident) => {
1223 use :: caps:: { Capability , CapSet , has_cap} ;
13- use :: std:: io:: { self , Write } ;
1424
1525 if !has_cap( None , CapSet :: Effective , Capability :: $capname)
1626 . unwrap( )
1727 {
18- let stderr = io:: stderr( ) ;
19- let mut handle = stderr. lock( ) ;
20- writeln!( handle,
21- "Insufficient capabilities. Skipping test." )
22- . unwrap( ) ;
23- return ;
28+ skip!( "Insufficient capabilities. Skipping test." ) ;
2429 }
2530 }
2631 }
@@ -39,12 +44,7 @@ macro_rules! skip_if_jailed {
3944 if let CtlValue :: Int ( 1 ) = :: sysctl:: value( "security.jail.jailed" )
4045 . unwrap( )
4146 {
42- use :: std:: io:: Write ;
43- let stderr = :: std:: io:: stderr( ) ;
44- let mut handle = stderr. lock( ) ;
45- writeln!( handle, "{} cannot run in a jail. Skipping test." , $name)
46- . unwrap( ) ;
47- return ;
47+ skip!( "{} cannot run in a jail. Skipping test." , $name) ;
4848 }
4949 }
5050}
@@ -55,11 +55,7 @@ macro_rules! skip_if_not_root {
5555 use nix:: unistd:: Uid ;
5656
5757 if !Uid :: current( ) . is_root( ) {
58- use :: std:: io:: Write ;
59- let stderr = :: std:: io:: stderr( ) ;
60- let mut handle = stderr. lock( ) ;
61- writeln!( handle, "{} requires root privileges. Skipping test." , $name) . unwrap( ) ;
62- return ;
58+ skip!( "{} requires root privileges. Skipping test." , $name) ;
6359 }
6460 } ;
6561}
@@ -74,13 +70,8 @@ cfg_if! {
7470 if fields. next( ) == Some ( "Seccomp:" ) &&
7571 fields. next( ) != Some ( "0" )
7672 {
77- use :: std:: io:: Write ;
78- let stderr = :: std:: io:: stderr( ) ;
79- let mut handle = stderr. lock( ) ;
80- writeln!( handle,
81- "{} cannot be run in Seccomp mode. Skipping test." ,
82- stringify!( $name) ) . unwrap( ) ;
83- return ;
73+ skip!( "{} cannot be run in Seccomp mode. Skipping test." ,
74+ stringify!( $name) ) ;
8475 }
8576 }
8677 }
@@ -97,7 +88,6 @@ cfg_if! {
9788 if #[ cfg( target_os = "linux" ) ] {
9889 macro_rules! require_kernel_version {
9990 ( $name: expr, $version_requirement: expr) => {
100- use :: std:: io:: Write ;
10191 use semver:: { Version , VersionReq } ;
10292
10393 let version_requirement = VersionReq :: parse( $version_requirement)
@@ -112,13 +102,8 @@ cfg_if! {
112102 version. build. clear( ) ;
113103
114104 if !version_requirement. matches( & version) {
115- let stderr = :: std:: io:: stderr( ) ;
116- let mut handle = stderr. lock( ) ;
117-
118- writeln!( handle,
119- "Skip {} because kernel version `{}` doesn't match the requirement `{}`" ,
120- stringify!( $name) , version, version_requirement) . unwrap( ) ;
121- return ;
105+ skip!( "Skip {} because kernel version `{}` doesn't match the requirement `{}`" ,
106+ stringify!( $name) , version, version_requirement) ;
122107 }
123108 }
124109 }
0 commit comments