summaryrefslogtreecommitdiff
path: root/test/test.rs
diff options
context:
space:
mode:
authorAlan Somers <asomers@gmail.com>2020-05-02 14:03:28 -0600
committerAlan Somers <asomers@gmail.com>2020-07-03 10:47:29 -0600
commitd970e8e4b2825c4474ca92e7af85b8f54388b10d (patch)
treec55b0a55ee5dbdc7f44bac928dd0da13829e4559 /test/test.rs
parentc18b1d03f0c4bebbbfa8556d97f37972beb92f92 (diff)
downloadnix-d970e8e4b2825c4474ca92e7af85b8f54388b10d.zip
Factor out common code from the various skip macros
Diffstat (limited to 'test/test.rs')
-rw-r--r--test/test.rs51
1 files changed, 18 insertions, 33 deletions
diff --git a/test/test.rs b/test/test.rs
index ac842b11..2d43196c 100644
--- a/test/test.rs
+++ b/test/test.rs
@@ -5,22 +5,27 @@ extern crate nix;
#[macro_use]
extern crate lazy_static;
+macro_rules! skip {
+ ($($reason: expr),+) => {
+ use ::std::io::{self, Write};
+
+ let stderr = io::stderr();
+ let mut handle = stderr.lock();
+ writeln!(handle, $($reason),+).unwrap();
+ return;
+ }
+}
+
cfg_if! {
if #[cfg(any(target_os = "android", target_os = "linux"))] {
macro_rules! require_capability {
($capname:ident) => {
use ::caps::{Capability, CapSet, has_cap};
- use ::std::io::{self, Write};
if !has_cap(None, CapSet::Effective, Capability::$capname)
.unwrap()
{
- let stderr = io::stderr();
- let mut handle = stderr.lock();
- writeln!(handle,
- "Insufficient capabilities. Skipping test.")
- .unwrap();
- return;
+ skip!("Insufficient capabilities. Skipping test.");
}
}
}
@@ -39,12 +44,7 @@ macro_rules! skip_if_jailed {
if let CtlValue::Int(1) = ::sysctl::value("security.jail.jailed")
.unwrap()
{
- use ::std::io::Write;
- let stderr = ::std::io::stderr();
- let mut handle = stderr.lock();
- writeln!(handle, "{} cannot run in a jail. Skipping test.", $name)
- .unwrap();
- return;
+ skip!("{} cannot run in a jail. Skipping test.", $name);
}
}
}
@@ -55,11 +55,7 @@ macro_rules! skip_if_not_root {
use nix::unistd::Uid;
if !Uid::current().is_root() {
- use ::std::io::Write;
- let stderr = ::std::io::stderr();
- let mut handle = stderr.lock();
- writeln!(handle, "{} requires root privileges. Skipping test.", $name).unwrap();
- return;
+ skip!("{} requires root privileges. Skipping test.", $name);
}
};
}
@@ -74,13 +70,8 @@ cfg_if! {
if fields.next() == Some("Seccomp:") &&
fields.next() != Some("0")
{
- use ::std::io::Write;
- let stderr = ::std::io::stderr();
- let mut handle = stderr.lock();
- writeln!(handle,
- "{} cannot be run in Seccomp mode. Skipping test.",
- stringify!($name)).unwrap();
- return;
+ skip!("{} cannot be run in Seccomp mode. Skipping test.",
+ stringify!($name));
}
}
}
@@ -97,7 +88,6 @@ cfg_if! {
if #[cfg(target_os = "linux")] {
macro_rules! require_kernel_version {
($name:expr, $version_requirement:expr) => {
- use ::std::io::Write;
use semver::{Version, VersionReq};
let version_requirement = VersionReq::parse($version_requirement)
@@ -112,13 +102,8 @@ cfg_if! {
version.build.clear();
if !version_requirement.matches(&version) {
- let stderr = ::std::io::stderr();
- let mut handle = stderr.lock();
-
- writeln!(handle,
- "Skip {} because kernel version `{}` doesn't match the requirement `{}`",
- stringify!($name), version, version_requirement).unwrap();
- return;
+ skip!("Skip {} because kernel version `{}` doesn't match the requirement `{}`",
+ stringify!($name), version, version_requirement);
}
}
}