From f5e7bccb527276165ea9103f3e0913fb9712c7e5 Mon Sep 17 00:00:00 2001 From: Wei Zhang Date: Mon, 18 Sep 2023 23:42:47 +0800 Subject: [PATCH] fix test Signed-off-by: Wei Zhang --- src/config_file.rs | 4 ++-- src/core.rs | 27 ++++++++++++++----------- src/display.rs | 22 ++++++++++---------- src/icon.rs | 22 ++++++++++---------- src/meta/filetype.rs | 2 +- src/meta/mod.rs | 14 ++++++++----- src/meta/name.rs | 6 +++--- src/sort.rs | 48 ++++++++++++++++++++++---------------------- 8 files changed, 76 insertions(+), 69 deletions(-) diff --git a/src/config_file.rs b/src/config_file.rs index c9392c838..575a1de4f 100644 --- a/src/config_file.rs +++ b/src/config_file.rs @@ -1,3 +1,5 @@ +//! This module provides methods to handle the program's config files and +//! operations related to this. use crate::flags::display::Display; use crate::flags::icons::{IconOption, IconTheme}; use crate::flags::layout::Layout; @@ -6,8 +8,6 @@ use crate::flags::size::SizeFlag; use crate::flags::sorting::{DirGrouping, SortColumn}; use crate::flags::HyperlinkOption; use crate::flags::{ColorOption, ThemeOption}; -///! This module provides methods to handle the program's config files and operations related to -///! this. use crate::print_error; use std::path::{Path, PathBuf}; diff --git a/src/core.rs b/src/core.rs index 826b67333..647c9b1c4 100644 --- a/src/core.rs +++ b/src/core.rs @@ -1,6 +1,8 @@ use crate::color::Colors; use crate::display; -use crate::flags::{ColorOption, Display, Flags, HyperlinkOption, Layout, SortOrder, PermissionFlag, ThemeOption}; +use crate::flags::{ + ColorOption, Display, Flags, HyperlinkOption, Layout, PermissionFlag, SortOrder, ThemeOption, +}; use crate::git::GitCache; use crate::icon::Icons; @@ -103,17 +105,18 @@ impl Core { }; for path in paths { - let mut meta = - match Meta::from_path(&path, - self.flags.dereference.0, - self.flags.permission == PermissionFlag::Disable) { - Ok(meta) => meta, - Err(err) => { - print_error!("{}: {}.", path.display(), err); - exit_code.set_if_greater(ExitCode::MajorIssue); - continue; - } - }; + let mut meta = match Meta::from_path( + &path, + self.flags.dereference.0, + self.flags.permission == PermissionFlag::Disable, + ) { + Ok(meta) => meta, + Err(err) => { + print_error!("{}: {}.", path.display(), err); + exit_code.set_if_greater(ExitCode::MajorIssue); + continue; + } + }; let cache = if self.flags.blocks.0.contains(&Block::GitStatus) { Some(GitCache::new(&path)) diff --git a/src/display.rs b/src/display.rs index 6fea6e9a3..ad0d86652 100644 --- a/src/display.rs +++ b/src/display.rs @@ -683,7 +683,7 @@ mod tests { dir.child("one.d").create_dir_all().unwrap(); dir.child("one.d/two").touch().unwrap(); dir.child("one.d/.hidden").touch().unwrap(); - let mut metas = Meta::from_path(Path::new(dir.path()), false) + let mut metas = Meta::from_path(Path::new(dir.path()), false, false) .unwrap() .recurse_into(42, &flags, None) .unwrap() @@ -716,7 +716,7 @@ mod tests { let dir = assert_fs::TempDir::new().unwrap(); dir.child("dir").create_dir_all().unwrap(); dir.child("dir/file").touch().unwrap(); - let metas = Meta::from_path(Path::new(dir.path()), false) + let metas = Meta::from_path(Path::new(dir.path()), false, false) .unwrap() .recurse_into(42, &flags, None) .unwrap() @@ -757,7 +757,7 @@ mod tests { let dir = assert_fs::TempDir::new().unwrap(); dir.child("dir").create_dir_all().unwrap(); dir.child("dir/file").touch().unwrap(); - let metas = Meta::from_path(Path::new(dir.path()), false) + let metas = Meta::from_path(Path::new(dir.path()), false, false) .unwrap() .recurse_into(42, &flags, None) .unwrap() @@ -797,7 +797,7 @@ mod tests { let dir = assert_fs::TempDir::new().unwrap(); dir.child("one.d").create_dir_all().unwrap(); dir.child("one.d/two").touch().unwrap(); - let metas = Meta::from_path(Path::new(dir.path()), false) + let metas = Meta::from_path(Path::new(dir.path()), false, false) .unwrap() .recurse_into(42, &flags, None) .unwrap() @@ -828,7 +828,7 @@ mod tests { let dir = assert_fs::TempDir::new().unwrap(); dir.child("testdir").create_dir_all().unwrap(); dir.child("test").touch().unwrap(); - let metas = Meta::from_path(Path::new(dir.path()), false) + let metas = Meta::from_path(Path::new(dir.path()), false, false) .unwrap() .recurse_into(1, &flags, None) .unwrap() @@ -862,7 +862,7 @@ mod tests { let dir = assert_fs::TempDir::new().unwrap(); dir.child("testdir").create_dir_all().unwrap(); - let metas = Meta::from_path(Path::new(dir.path()), false) + let metas = Meta::from_path(Path::new(dir.path()), false, false) .unwrap() .recurse_into(1, &flags, None) .unwrap() @@ -892,11 +892,11 @@ mod tests { let file_path = tmp_dir.path().join("file"); std::fs::File::create(&file_path).expect("failed to create the file"); - let file = Meta::from_path(&file_path, false).unwrap(); + let file = Meta::from_path(&file_path, false, false).unwrap(); let dir_path = tmp_dir.path().join("dir"); std::fs::create_dir(&dir_path).expect("failed to create the dir"); - let dir = Meta::from_path(&dir_path, false).unwrap(); + let dir = Meta::from_path(&dir_path, false, false).unwrap(); assert_eq!( display_folder_path(&dir), @@ -942,15 +942,15 @@ mod tests { let file_path = tmp_dir.path().join("file"); std::fs::File::create(&file_path).expect("failed to create the file"); - let file = Meta::from_path(&file_path, false).unwrap(); + let file = Meta::from_path(&file_path, false, false).unwrap(); let dir_path = tmp_dir.path().join("dir"); std::fs::create_dir(&dir_path).expect("failed to create the dir"); - let dir = Meta::from_path(&dir_path, false).unwrap(); + let dir = Meta::from_path(&dir_path, false, false).unwrap(); let link_path = tmp_dir.path().join("link"); std::os::unix::fs::symlink("dir", &link_path).unwrap(); - let link = Meta::from_path(&link_path, false).unwrap(); + let link = Meta::from_path(&link_path, false, false).unwrap(); let grid_flags = Flags { layout: Layout::Grid, diff --git a/src/icon.rs b/src/icon.rs index 3d1e32a48..d07eca29a 100644 --- a/src/icon.rs +++ b/src/icon.rs @@ -85,7 +85,7 @@ mod test { let tmp_dir = tempdir().expect("failed to create temp dir"); let file_path = tmp_dir.path().join("file.txt"); File::create(&file_path).expect("failed to create file"); - let meta = Meta::from_path(&file_path, false).unwrap(); + let meta = Meta::from_path(&file_path, false, false).unwrap(); let icons = Icons::new(true, IconOption::Never, FlagTheme::Fancy, " ".to_string()); let icon = icons.get(&meta.name); @@ -97,7 +97,7 @@ mod test { let tmp_dir = tempdir().expect("failed to create temp dir"); let file_path = tmp_dir.path().join("file.txt"); File::create(&file_path).expect("failed to create file"); - let meta = Meta::from_path(&file_path, false).unwrap(); + let meta = Meta::from_path(&file_path, false, false).unwrap(); let icons = Icons::new(false, IconOption::Never, FlagTheme::Fancy, " ".to_string()); let icon = icons.get(&meta.name); @@ -110,7 +110,7 @@ mod test { let tmp_dir = tempdir().expect("failed to create temp dir"); let file_path = tmp_dir.path().join("file.txt"); File::create(&file_path).expect("failed to create file"); - let meta = Meta::from_path(&file_path, false).unwrap(); + let meta = Meta::from_path(&file_path, false, false).unwrap(); let icons = Icons::new(false, IconOption::Auto, FlagTheme::Fancy, " ".to_string()); let icon = icons.get(&meta.name); @@ -122,7 +122,7 @@ mod test { let tmp_dir = tempdir().expect("failed to create temp dir"); let file_path = tmp_dir.path().join("file.txt"); File::create(&file_path).expect("failed to create file"); - let meta = Meta::from_path(&file_path, false).unwrap(); + let meta = Meta::from_path(&file_path, false, false).unwrap(); let icons = Icons::new(true, IconOption::Auto, FlagTheme::Fancy, " ".to_string()); let icon = icons.get(&meta.name); @@ -135,7 +135,7 @@ mod test { let tmp_dir = tempdir().expect("failed to create temp dir"); let file_path = tmp_dir.path().join("file"); File::create(&file_path).expect("failed to create file"); - let meta = Meta::from_path(&file_path, false).unwrap(); + let meta = Meta::from_path(&file_path, false, false).unwrap(); let icon = Icons::new(true, IconOption::Always, FlagTheme::Fancy, " ".to_string()); let icon_str = icon.get(&meta.name); @@ -148,7 +148,7 @@ mod test { let tmp_dir = tempdir().expect("failed to create temp dir"); let file_path = tmp_dir.path().join("file"); File::create(&file_path).expect("failed to create file"); - let meta = Meta::from_path(&file_path, false).unwrap(); + let meta = Meta::from_path(&file_path, false, false).unwrap(); let icon = Icons::new(false, IconOption::Always, FlagTheme::Fancy, " ".to_string()); let icon_str = icon.get(&meta.name); @@ -161,7 +161,7 @@ mod test { let tmp_dir = tempdir().expect("failed to create temp dir"); let file_path = tmp_dir.path().join("file"); File::create(&file_path).expect("failed to create file"); - let meta = Meta::from_path(&file_path, false).unwrap(); + let meta = Meta::from_path(&file_path, false, false).unwrap(); let icon = Icons::new( false, @@ -178,7 +178,7 @@ mod test { fn get_icon_default_directory() { let tmp_dir = tempdir().expect("failed to create temp dir"); let file_path = tmp_dir.path(); - let meta = Meta::from_path(file_path, false).unwrap(); + let meta = Meta::from_path(file_path, false, false).unwrap(); let icon = Icons::new(false, IconOption::Always, FlagTheme::Fancy, " ".to_string()); let icon_str = icon.get(&meta.name); @@ -190,7 +190,7 @@ mod test { fn get_icon_default_directory_unicode() { let tmp_dir = tempdir().expect("failed to create temp dir"); let file_path = tmp_dir.path(); - let meta = Meta::from_path(file_path, false).unwrap(); + let meta = Meta::from_path(file_path, false, false).unwrap(); let icon = Icons::new( false, @@ -210,7 +210,7 @@ mod test { for (file_name, file_icon) in &IconTheme::get_default_icons_by_name() { let file_path = tmp_dir.path().join(file_name); File::create(&file_path).expect("failed to create file"); - let meta = Meta::from_path(&file_path, false).unwrap(); + let meta = Meta::from_path(&file_path, false, false).unwrap(); let icon = Icons::new(false, IconOption::Always, FlagTheme::Fancy, " ".to_string()); let icon_str = icon.get(&meta.name); @@ -226,7 +226,7 @@ mod test { for (ext, file_icon) in &IconTheme::get_default_icons_by_extension() { let file_path = tmp_dir.path().join(format!("file.{ext}")); File::create(&file_path).expect("failed to create file"); - let meta = Meta::from_path(&file_path, false).unwrap(); + let meta = Meta::from_path(&file_path, false, false).unwrap(); let icon = Icons::new(false, IconOption::Always, FlagTheme::Fancy, " ".to_string()); let icon_str = icon.get(&meta.name); diff --git a/src/meta/filetype.rs b/src/meta/filetype.rs index 72ddefa33..61f63482c 100644 --- a/src/meta/filetype.rs +++ b/src/meta/filetype.rs @@ -144,7 +144,7 @@ mod test { fn test_dir_type() { let tmp_dir = tempdir().expect("failed to create temp dir"); #[cfg(not(windows))] - let meta = crate::meta::Meta::from_path(tmp_dir.path(), false) + let meta = crate::meta::Meta::from_path(tmp_dir.path(), false, false) .expect("failed to get tempdir path"); let metadata = tmp_dir.path().metadata().expect("failed to get metas"); diff --git a/src/meta/mod.rs b/src/meta/mod.rs index ccc776537..a1ae130fe 100644 --- a/src/meta/mod.rs +++ b/src/meta/mod.rs @@ -269,7 +269,7 @@ impl Meta { // path.symlink_metadata would have errored out if dereference { broken_link = true; - eprintln!("lsd: {}: {}\n", path.to_str().unwrap_or(""), e); + eprintln!("lsd: {}: {}", path.to_str().unwrap_or(""), e); } } } @@ -292,7 +292,11 @@ impl Meta { match windows_utils::get_file_data(path) { Ok((owner, permissions)) => (Some(owner), Some(permissions)), Err(e) => { - eprintln!("lsd: {}: {}\n", path.to_str().unwrap_or(""), e); + eprintln!( + "lsd: {}: {}(Hint: Consider using `--permission disabled`.)", + path.to_str().unwrap_or(""), + e + ); (None, None) } } @@ -352,7 +356,7 @@ mod tests { #[test] fn test_from_path_path() { let dir = assert_fs::TempDir::new().unwrap(); - let meta = Meta::from_path(dir.path(), false).unwrap(); + let meta = Meta::from_path(dir.path(), false, false).unwrap(); assert_eq!(meta.path, dir.path()) } @@ -362,7 +366,7 @@ mod tests { let path_a = tmp_dir.path().join("aaa.aa"); File::create(&path_a).expect("failed to create file"); - let meta_a = Meta::from_path(&path_a, false).expect("failed to get meta"); + let meta_a = Meta::from_path(&path_a, false, false).expect("failed to get meta"); let path_b = tmp_dir.path().join("bbb.bb"); let path_c = tmp_dir.path().join("ccc.cc"); @@ -377,7 +381,7 @@ mod tests { std::os::windows::fs::symlink_file(&path_c, &path_b) .expect("failed to create broken symlink"); - let meta_b = Meta::from_path(&path_b, true).expect("failed to get meta"); + let meta_b = Meta::from_path(&path_b, true, false).expect("failed to get meta"); assert!( meta_a.inode.is_some() diff --git a/src/meta/name.rs b/src/meta/name.rs index fbd4e1730..15b32980e 100644 --- a/src/meta/name.rs +++ b/src/meta/name.rs @@ -271,7 +271,7 @@ mod test { // Create the directory let dir_path = tmp_dir.path().join("directory"); fs::create_dir(&dir_path).expect("failed to create the dir"); - let meta = Meta::from_path(&dir_path, false).unwrap(); + let meta = Meta::from_path(&dir_path, false, false).unwrap(); let colors = Colors::new(color::ThemeOption::NoLscolors); @@ -395,7 +395,7 @@ mod test { // Create the file; let file_path = tmp_dir.path().join("file.txt"); File::create(&file_path).expect("failed to create file"); - let meta = Meta::from_path(&file_path, false).unwrap(); + let meta = Meta::from_path(&file_path, false, false).unwrap(); let colors = Colors::new(color::ThemeOption::NoColor); @@ -421,7 +421,7 @@ mod test { // Create the file; let file_path = tmp_dir.path().join("file.txt"); File::create(&file_path).expect("failed to create file"); - let meta = Meta::from_path(&file_path, false).unwrap(); + let meta = Meta::from_path(&file_path, false, false).unwrap(); let colors = Colors::new(color::ThemeOption::NoColor); diff --git a/src/sort.rs b/src/sort.rs index e2623e405..6986fa8f8 100644 --- a/src/sort.rs +++ b/src/sort.rs @@ -93,12 +93,12 @@ mod tests { // Create the file; let path_a = tmp_dir.path().join("zzz"); File::create(&path_a).expect("failed to create file"); - let meta_a = Meta::from_path(&path_a, false).expect("failed to get meta"); + let meta_a = Meta::from_path(&path_a, false, false).expect("failed to get meta"); // Create a dir; let path_z = tmp_dir.path().join("aaa"); create_dir(&path_z).expect("failed to create dir"); - let meta_z = Meta::from_path(&path_z, false).expect("failed to get meta"); + let meta_z = Meta::from_path(&path_z, false, false).expect("failed to get meta"); let mut flags = Flags::default(); flags.sorting.dir_grouping = DirGrouping::First; @@ -121,12 +121,12 @@ mod tests { // Create the file; let path_a = tmp_dir.path().join("zzz"); File::create(&path_a).expect("failed to create file"); - let meta_a = Meta::from_path(&path_a, false).expect("failed to get meta"); + let meta_a = Meta::from_path(&path_a, false, false).expect("failed to get meta"); // Create a dir; let path_z = tmp_dir.path().join("aaa"); create_dir(&path_z).expect("failed to create dir"); - let meta_z = Meta::from_path(&path_z, false).expect("failed to get meta"); + let meta_z = Meta::from_path(&path_z, false, false).expect("failed to get meta"); let mut flags = Flags::default(); flags.sorting.dir_grouping = DirGrouping::Last; @@ -147,12 +147,12 @@ mod tests { // Create the file; let path_a = tmp_dir.path().join("aaa"); File::create(&path_a).expect("failed to create file"); - let meta_a = Meta::from_path(&path_a, false).expect("failed to get meta"); + let meta_a = Meta::from_path(&path_a, false, false).expect("failed to get meta"); // Create a dir; let path_z = tmp_dir.path().join("zzz"); create_dir(&path_z).expect("failed to create dir"); - let meta_z = Meta::from_path(&path_z, false).expect("failed to get meta"); + let meta_z = Meta::from_path(&path_z, false, false).expect("failed to get meta"); let mut flags = Flags::default(); flags.sorting.dir_grouping = DirGrouping::None; @@ -175,12 +175,12 @@ mod tests { // Create the file; let path_a = tmp_dir.path().join("zzz"); File::create(&path_a).expect("failed to create file"); - let meta_a = Meta::from_path(&path_a, false).expect("failed to get meta"); + let meta_a = Meta::from_path(&path_a, false, false).expect("failed to get meta"); // Create a dir; let path_z = tmp_dir.path().join("aaa"); create_dir(&path_z).expect("failed to create dir"); - let meta_z = Meta::from_path(&path_z, false).expect("failed to get meta"); + let meta_z = Meta::from_path(&path_z, false, false).expect("failed to get meta"); let mut flags = Flags::default(); flags.sorting.dir_grouping = DirGrouping::None; @@ -203,7 +203,7 @@ mod tests { // Create the file; let path_a = tmp_dir.path().join("aaa"); File::create(&path_a).expect("failed to create file"); - let meta_a = Meta::from_path(&path_a, false).expect("failed to get meta"); + let meta_a = Meta::from_path(&path_a, false, false).expect("failed to get meta"); // Create the file; let path_z = tmp_dir.path().join("zzz"); @@ -229,7 +229,7 @@ mod tests { .success(); assert!(success, "failed to change file timestamp"); - let meta_z = Meta::from_path(&path_z, false).expect("failed to get meta"); + let meta_z = Meta::from_path(&path_z, false, false).expect("failed to get meta"); let mut flags = Flags::default(); flags.sorting.column = SortColumn::Time; @@ -251,22 +251,22 @@ mod tests { // Create the file with rs extension; let path_a = tmp_dir.path().join("aaa.rs"); File::create(&path_a).expect("failed to create file"); - let meta_a = Meta::from_path(&path_a, false).expect("failed to get meta"); + let meta_a = Meta::from_path(&path_a, false, false).expect("failed to get meta"); // Create the file with rs extension; let path_z = tmp_dir.path().join("zzz.rs"); File::create(&path_z).expect("failed to create file"); - let meta_z = Meta::from_path(&path_z, false).expect("failed to get meta"); + let meta_z = Meta::from_path(&path_z, false, false).expect("failed to get meta"); // Create the file with js extension; let path_j = tmp_dir.path().join("zzz.js"); File::create(&path_j).expect("failed to create file"); - let meta_j = Meta::from_path(&path_j, false).expect("failed to get meta"); + let meta_j = Meta::from_path(&path_j, false, false).expect("failed to get meta"); // Create the file with txt extension; let path_t = tmp_dir.path().join("zzz.txt"); File::create(&path_t).expect("failed to create file"); - let meta_t = Meta::from_path(&path_t, false).expect("failed to get meta"); + let meta_t = Meta::from_path(&path_t, false, false).expect("failed to get meta"); let mut flags = Flags::default(); flags.sorting.column = SortColumn::Extension; @@ -288,15 +288,15 @@ mod tests { let path_a = tmp_dir.path().join("2"); File::create(&path_a).expect("failed to create file"); - let meta_a = Meta::from_path(&path_a, false).expect("failed to get meta"); + let meta_a = Meta::from_path(&path_a, false, false).expect("failed to get meta"); let path_b = tmp_dir.path().join("11"); File::create(&path_b).expect("failed to create file"); - let meta_b = Meta::from_path(&path_b, false).expect("failed to get meta"); + let meta_b = Meta::from_path(&path_b, false, false).expect("failed to get meta"); let path_c = tmp_dir.path().join("12"); File::create(&path_c).expect("failed to create file"); - let meta_c = Meta::from_path(&path_c, false).expect("failed to get meta"); + let meta_c = Meta::from_path(&path_c, false, false).expect("failed to get meta"); let mut flags = Flags::default(); flags.sorting.column = SortColumn::Version; @@ -314,19 +314,19 @@ mod tests { let path_a = tmp_dir.path().join("aaa.aa"); File::create(&path_a).expect("failed to create file"); - let meta_a = Meta::from_path(&path_a, false).expect("failed to get meta"); + let meta_a = Meta::from_path(&path_a, false, false).expect("failed to get meta"); let path_b = tmp_dir.path().join("aaa"); create_dir(&path_b).expect("failed to create dir"); - let meta_b = Meta::from_path(&path_b, false).expect("failed to get meta"); + let meta_b = Meta::from_path(&path_b, false, false).expect("failed to get meta"); let path_c = tmp_dir.path().join("zzz.zz"); File::create(&path_c).expect("failed to create file"); - let meta_c = Meta::from_path(&path_c, false).expect("failed to get meta"); + let meta_c = Meta::from_path(&path_c, false, false).expect("failed to get meta"); let path_d = tmp_dir.path().join("zzz"); create_dir(&path_d).expect("failed to create dir"); - let meta_d = Meta::from_path(&path_d, false).expect("failed to get meta"); + let meta_d = Meta::from_path(&path_d, false, false).expect("failed to get meta"); let mut flags = Flags::default(); flags.sorting.column = SortColumn::None; @@ -359,14 +359,14 @@ mod tests { .expect("failed to create file") .write_all(b"1, 2, 3") .expect("failed to write to file"); - let meta_a = Meta::from_path(&path_a, false).expect("failed to get meta"); + let meta_a = Meta::from_path(&path_a, false, false).expect("failed to get meta"); let path_b = tmp_dir.path().join("bbb.bb"); File::create(&path_b) .expect("failed to create file") .write_all(b"1, 2, 3, 4, 5, 6, 7, 8, 9, 10") .expect("failed to write file"); - let meta_b = Meta::from_path(&path_b, false).expect("failed to get meta"); + let meta_b = Meta::from_path(&path_b, false, false).expect("failed to get meta"); let path_c = tmp_dir.path().join("ccc.cc"); let path_d = tmp_dir.path().join("ddd.dd"); @@ -381,7 +381,7 @@ mod tests { std::os::windows::fs::symlink_file(&path_d, &path_c) .expect("failed to create broken symlink"); - let meta_c = Meta::from_path(&path_c, true).expect("failed to get meta"); + let meta_c = Meta::from_path(&path_c, true, false).expect("failed to get meta"); assert_eq!(by_size(&meta_a, &meta_a), Ordering::Equal); assert_eq!(by_size(&meta_a, &meta_b), Ordering::Greater);