feat: more unit tests!
This commit is contained in:
parent
082d666fe0
commit
28550c78d9
3 changed files with 49 additions and 15 deletions
|
@ -1,5 +1,5 @@
|
|||
use char_enum::{char_enum_derive::FromChar, FromChar, FromStrError, ToChar};
|
||||
use std::{error::Error, fmt::Display, num::ParseIntError, ops::ControlFlow, str::FromStr};
|
||||
use std::{error::Error, fmt::Display, num::ParseIntError, str::FromStr};
|
||||
|
||||
use itertools::{peek_nth, Itertools};
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
use char_enum::FromStrError;
|
||||
use itertools::Itertools;
|
||||
use std::{
|
||||
convert::Infallible,
|
||||
|
@ -100,7 +99,7 @@ impl FromStr for MountOptions {
|
|||
|
||||
impl Display for MountOptions {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
let options = self.0.iter().map(|x| x.to_string()).join(",");
|
||||
let options = self.0.iter().map(|x| x.to_string()).join(" ");
|
||||
write!(f, "{options}")
|
||||
}
|
||||
}
|
||||
|
@ -902,7 +901,7 @@ mod tests {
|
|||
use crate::fs::{
|
||||
id_mapping::UntypedIdRange,
|
||||
mount::{ParseDeviceIdTypeError, ParseOptionsSourceError},
|
||||
permission::Permissions,
|
||||
permission::{OctalPermissions, Permissions},
|
||||
};
|
||||
|
||||
use super::{
|
||||
|
@ -1252,7 +1251,14 @@ mod tests {
|
|||
fn it_works() {
|
||||
let mut options = MountOptions::default();
|
||||
options.push(MountOption::FsType(vec!["overlay"].into()));
|
||||
options.push(MountOption::MakeDir(Some(Permissions::Octal(
|
||||
BitFlags::from_bits(0x7777).unwrap().into(),
|
||||
))));
|
||||
|
||||
let mount = Mount::new("/test", "/target", options);
|
||||
println!("{mount}");
|
||||
assert_eq!(
|
||||
mount.to_string(),
|
||||
"mount --types overlay --mkdir 7777 /test /target"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
use char_enum::{char_enum_derive::FromChar, AsIter, FromChar, FromStrError, ToChar};
|
||||
use enumflags2::{bitflags, BitFlag, FromBitsError};
|
||||
use enumflags2::{bitflags, BitFlag, BitFlags, FromBitsError};
|
||||
use std::{error::Error, fmt::Display, num::ParseIntError, ops::BitOr, str::FromStr};
|
||||
|
||||
use enumflags2::BitFlags;
|
||||
|
||||
use crate::utils::MapWhileRefExt;
|
||||
|
||||
#[derive(Debug)]
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
pub struct ParseModeError(String);
|
||||
|
||||
impl ParseModeError {
|
||||
|
@ -55,7 +53,7 @@ pub enum Mode {
|
|||
|
||||
impl Display for Mode {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
write!(f, "{}", self.to_string())
|
||||
write!(f, "{}", self)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -74,7 +72,7 @@ impl FromStr for ModeFlags {
|
|||
|
||||
impl Display for ModeFlags {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
write!(f, "{}", self.0)
|
||||
write!(f, "{:X}", self.0)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -417,11 +415,41 @@ impl Display for Permissions {
|
|||
mod tests {
|
||||
use std::str::FromStr;
|
||||
|
||||
use super::Permissions;
|
||||
use enumflags2::BitFlags;
|
||||
|
||||
use crate::fs::permission::{
|
||||
GroupId, Modes, Operator, SymbolicArgs, SymbolicMode, SymbolicPermissions,
|
||||
};
|
||||
|
||||
use super::{ModeFlags, Permissions};
|
||||
|
||||
#[test]
|
||||
fn it_works() {
|
||||
let a = Permissions::from_str("ug+w");
|
||||
println!("{}", a.unwrap());
|
||||
fn mode_flags() {
|
||||
let flags = ModeFlags(BitFlags::all());
|
||||
assert_eq!(flags.to_string(), "7777");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn symbolic_permissions() {
|
||||
let sym = Permissions::from_str("ug+w").unwrap();
|
||||
let group_sym = Permissions::from_str("g=u").unwrap();
|
||||
|
||||
assert_eq!(
|
||||
sym,
|
||||
Permissions::Symbolic(SymbolicPermissions::new(
|
||||
Modes(GroupId::User | GroupId::Group),
|
||||
Operator::Add,
|
||||
SymbolicArgs::Mode(Modes(BitFlags::from(SymbolicMode::Write)))
|
||||
))
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
group_sym,
|
||||
Permissions::Symbolic(SymbolicPermissions::new(
|
||||
Modes(GroupId::Group.into()),
|
||||
Operator::Eq,
|
||||
SymbolicArgs::Group(Modes(BitFlags::from(GroupId::User)))
|
||||
))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue