From 990bb4224d3d4f58e14c999b3d7ffae06e8ef304 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Orhun=20Parmaks=C4=B1z?= Date: Sat, 22 Oct 2022 17:45:40 +0300 Subject: [PATCH] test: add test for `nix::Error` conversions --- src/uucore/src/lib/mods/error.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/uucore/src/lib/mods/error.rs b/src/uucore/src/lib/mods/error.rs index 67fed9a46..9e1bbc09b 100644 --- a/src/uucore/src/lib/mods/error.rs +++ b/src/uucore/src/lib/mods/error.rs @@ -729,3 +729,29 @@ impl Display for ClapErrorWrapper { Ok(()) } } + +#[cfg(test)] +mod tests { + use super::*; + use nix::errno::Errno; + use std::io::ErrorKind; + + #[test] + fn test_nix_error_conversion() { + for (nix_error, expected_error_kind) in [ + (Errno::EACCES, ErrorKind::PermissionDenied), + (Errno::ENOENT, ErrorKind::NotFound), + (Errno::EEXIST, ErrorKind::AlreadyExists), + ] { + let error = UIoError::from(nix_error); + assert_eq!(expected_error_kind, error.inner.kind()); + } + assert_eq!( + "test: Permission denied", + Err::<(), nix::Error>(Errno::EACCES) + .map_err_context(|| String::from("test")) + .unwrap_err() + .to_string() + ) + } +}