mirror of
https://github.com/uutils/coreutils
synced 2024-10-07 00:19:14 +00:00
Merge pull request #5182 from sylvestre/clippy_
Fix some of the recent clippy warnings
This commit is contained in:
commit
0b9c829bce
1
build.rs
1
build.rs
|
@ -40,6 +40,7 @@ pub fn main() {
|
|||
mf.write_all(
|
||||
"type UtilityMap<T> = phf::OrderedMap<&'static str, (fn(T) -> i32, fn() -> Command)>;\n\
|
||||
\n\
|
||||
#[allow(clippy::too_many_lines)]
|
||||
fn util_map<T: uucore::Args>() -> UtilityMap<T> {\n"
|
||||
.as_bytes(),
|
||||
)
|
||||
|
|
|
@ -187,7 +187,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
NumberingMode::None
|
||||
};
|
||||
|
||||
let show_nonprint = vec![
|
||||
let show_nonprint = [
|
||||
options::SHOW_ALL.to_owned(),
|
||||
options::SHOW_NONPRINTING_ENDS.to_owned(),
|
||||
options::SHOW_NONPRINTING_TABS.to_owned(),
|
||||
|
@ -196,7 +196,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
.iter()
|
||||
.any(|v| matches.get_flag(v));
|
||||
|
||||
let show_ends = vec![
|
||||
let show_ends = [
|
||||
options::SHOW_ENDS.to_owned(),
|
||||
options::SHOW_ALL.to_owned(),
|
||||
options::SHOW_NONPRINTING_ENDS.to_owned(),
|
||||
|
@ -204,7 +204,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
.iter()
|
||||
.any(|v| matches.get_flag(v));
|
||||
|
||||
let show_tabs = vec![
|
||||
let show_tabs = [
|
||||
options::SHOW_ALL.to_owned(),
|
||||
options::SHOW_TABS.to_owned(),
|
||||
options::SHOW_NONPRINTING_TABS.to_owned(),
|
||||
|
|
|
@ -436,25 +436,25 @@ mod tests {
|
|||
fn test_extract_negative_modes() {
|
||||
// "chmod -w -r file" becomes "chmod -w,-r file". clap does not accept "-w,-r" as MODE.
|
||||
// Therefore, "w" is added as pseudo mode to pass clap.
|
||||
let (c, a) = extract_negative_modes(vec!["-w", "-r", "file"].iter().map(OsString::from));
|
||||
let (c, a) = extract_negative_modes(["-w", "-r", "file"].iter().map(OsString::from));
|
||||
assert_eq!(c, Some("-w,-r".to_string()));
|
||||
assert_eq!(a, vec!["w", "file"]);
|
||||
assert_eq!(a, ["w", "file"]);
|
||||
|
||||
// "chmod -w file -r" becomes "chmod -w,-r file". clap does not accept "-w,-r" as MODE.
|
||||
// Therefore, "w" is added as pseudo mode to pass clap.
|
||||
let (c, a) = extract_negative_modes(vec!["-w", "file", "-r"].iter().map(OsString::from));
|
||||
let (c, a) = extract_negative_modes(["-w", "file", "-r"].iter().map(OsString::from));
|
||||
assert_eq!(c, Some("-w,-r".to_string()));
|
||||
assert_eq!(a, vec!["w", "file"]);
|
||||
assert_eq!(a, ["w", "file"]);
|
||||
|
||||
// "chmod -w -- -r file" becomes "chmod -w -r file", where "-r" is interpreted as file.
|
||||
// Again, "w" is needed as pseudo mode.
|
||||
let (c, a) = extract_negative_modes(vec!["-w", "--", "-r", "f"].iter().map(OsString::from));
|
||||
let (c, a) = extract_negative_modes(["-w", "--", "-r", "f"].iter().map(OsString::from));
|
||||
assert_eq!(c, Some("-w".to_string()));
|
||||
assert_eq!(a, vec!["w", "--", "-r", "f"]);
|
||||
assert_eq!(a, ["w", "--", "-r", "f"]);
|
||||
|
||||
// "chmod -- -r file" becomes "chmod -r file".
|
||||
let (c, a) = extract_negative_modes(vec!["--", "-r", "file"].iter().map(OsString::from));
|
||||
let (c, a) = extract_negative_modes(["--", "-r", "file"].iter().map(OsString::from));
|
||||
assert_eq!(c, None);
|
||||
assert_eq!(a, vec!["--", "-r", "file"]);
|
||||
assert_eq!(a, ["--", "-r", "file"]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -165,9 +165,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
println!("{s}");
|
||||
Ok(())
|
||||
}
|
||||
Err(s) => {
|
||||
return Err(USimpleError::new(1, s));
|
||||
}
|
||||
Err(s) => Err(USimpleError::new(1, s)),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -305,7 +305,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
}
|
||||
|
||||
if default_format {
|
||||
id_print(&mut state, &groups);
|
||||
id_print(&state, &groups);
|
||||
}
|
||||
print!("{line_ending}");
|
||||
|
||||
|
@ -547,7 +547,7 @@ fn auditid() {
|
|||
println!("asid={}", auditinfo.ai_asid);
|
||||
}
|
||||
|
||||
fn id_print(state: &mut State, groups: &[u32]) {
|
||||
fn id_print(state: &State, groups: &[u32]) {
|
||||
let uid = state.ids.as_ref().unwrap().uid;
|
||||
let gid = state.ids.as_ref().unwrap().gid;
|
||||
let euid = state.ids.as_ref().unwrap().euid;
|
||||
|
|
|
@ -619,7 +619,7 @@ fn copy_files_into_dir(files: &[PathBuf], target_dir: &Path, b: &Behavior) -> UR
|
|||
if !target_dir.is_dir() {
|
||||
return Err(InstallError::TargetDirIsntDir(target_dir.to_path_buf()).into());
|
||||
}
|
||||
for sourcepath in files.iter() {
|
||||
for sourcepath in files {
|
||||
if let Err(err) = sourcepath
|
||||
.metadata()
|
||||
.map_err_context(|| format!("cannot stat {}", sourcepath.quote()))
|
||||
|
|
|
@ -99,12 +99,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
matches.get_one::<u64>("major"),
|
||||
matches.get_one::<u64>("minor"),
|
||||
) {
|
||||
(_, None) | (None, _) => {
|
||||
return Err(UUsageError::new(
|
||||
1,
|
||||
"Special files require major and minor device numbers.",
|
||||
));
|
||||
}
|
||||
(_, None) | (None, _) => Err(UUsageError::new(
|
||||
1,
|
||||
"Special files require major and minor device numbers.",
|
||||
)),
|
||||
(Some(&major), Some(&minor)) => {
|
||||
let dev = makedev(major, minor);
|
||||
let exit_code = match file_type {
|
||||
|
|
|
@ -361,7 +361,7 @@ fn move_files_into_dir(files: &[PathBuf], target_dir: &Path, b: &Behavior) -> UR
|
|||
None
|
||||
};
|
||||
|
||||
for sourcepath in files.iter() {
|
||||
for sourcepath in files {
|
||||
if let Some(ref pb) = count_progress {
|
||||
pb.set_message(sourcepath.to_string_lossy().to_string());
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ pub fn format_ascii_dump(bytes: &[u8]) -> String {
|
|||
let mut result = String::new();
|
||||
|
||||
result.push('>');
|
||||
for c in bytes.iter() {
|
||||
for c in bytes {
|
||||
if *c >= 0x20 && *c <= 0x7e {
|
||||
result.push_str(C_CHARS[*c as usize]);
|
||||
} else {
|
||||
|
|
|
@ -54,7 +54,7 @@ pub fn check(path: &OsStr, settings: &GlobalSettings) -> UResult<()> {
|
|||
|
||||
let mut prev_chunk: Option<Chunk> = None;
|
||||
let mut line_idx = 0;
|
||||
for chunk in loaded_receiver.iter() {
|
||||
for chunk in loaded_receiver {
|
||||
line_idx += 1;
|
||||
if let Some(prev_chunk) = prev_chunk.take() {
|
||||
// Check if the first element of the new chunk is greater than the last
|
||||
|
@ -107,7 +107,7 @@ fn reader(
|
|||
settings: &GlobalSettings,
|
||||
) -> UResult<()> {
|
||||
let mut carry_over = vec![];
|
||||
for recycled_chunk in receiver.iter() {
|
||||
for recycled_chunk in receiver {
|
||||
let should_continue = chunks::read(
|
||||
sender,
|
||||
recycled_chunk,
|
||||
|
|
|
@ -215,7 +215,7 @@ fn reader(
|
|||
settings: &GlobalSettings,
|
||||
separator: u8,
|
||||
) -> UResult<()> {
|
||||
for (file_idx, recycled_chunk) in recycled_receiver.iter() {
|
||||
for (file_idx, recycled_chunk) in recycled_receiver {
|
||||
if let Some(ReaderFile {
|
||||
file,
|
||||
sender,
|
||||
|
|
|
@ -130,7 +130,7 @@ fn set_command_env(command: &mut process::Command, buffer_name: &str, buffer_typ
|
|||
}
|
||||
}
|
||||
|
||||
fn get_preload_env(tmp_dir: &mut TempDir) -> io::Result<(String, PathBuf)> {
|
||||
fn get_preload_env(tmp_dir: &TempDir) -> io::Result<(String, PathBuf)> {
|
||||
let (preload, extension) = preload_strings();
|
||||
let inject_path = tmp_dir.path().join("libstdbuf").with_extension(extension);
|
||||
|
||||
|
@ -152,8 +152,8 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
let mut command = process::Command::new(command_values.next().unwrap());
|
||||
let command_params: Vec<&str> = command_values.map(|s| s.as_ref()).collect();
|
||||
|
||||
let mut tmp_dir = tempdir().unwrap();
|
||||
let (preload_env, libstdbuf) = get_preload_env(&mut tmp_dir).map_err_context(String::new)?;
|
||||
let tmp_dir = tempdir().unwrap();
|
||||
let (preload_env, libstdbuf) = get_preload_env(&tmp_dir).map_err_context(String::new)?;
|
||||
command.env(preload_env, libstdbuf);
|
||||
set_command_env(&mut command, "_STDBUF_I", &options.stdin);
|
||||
set_command_env(&mut command, "_STDBUF_O", &options.stdout);
|
||||
|
|
|
@ -33,7 +33,7 @@ fn bsd_sum(mut reader: Box<dyn Read>) -> (usize, u16) {
|
|||
match reader.read(&mut buf) {
|
||||
Ok(n) if n != 0 => {
|
||||
bytes_read += n;
|
||||
for &byte in buf[..n].iter() {
|
||||
for &byte in &buf[..n] {
|
||||
checksum = checksum.rotate_right(1);
|
||||
checksum = checksum.wrapping_add(u16::from(byte));
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ fn sysv_sum(mut reader: Box<dyn Read>) -> (usize, u16) {
|
|||
match reader.read(&mut buf) {
|
||||
Ok(n) if n != 0 => {
|
||||
bytes_read += n;
|
||||
for &byte in buf[..n].iter() {
|
||||
for &byte in &buf[..n] {
|
||||
ret = ret.wrapping_add(u32::from(byte));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -173,7 +173,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
let path = Path::new(&f);
|
||||
if let Err(e) = open(path, OFlag::O_NONBLOCK, Mode::empty()) {
|
||||
if e != Errno::EACCES || (e == Errno::EACCES && path.is_dir()) {
|
||||
return e.map_err_context(|| format!("error opening {}", f.quote()))?;
|
||||
e.map_err_context(|| format!("error opening {}", f.quote()))?;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -495,7 +495,7 @@ impl LinesChunk {
|
|||
fn calculate_bytes_offset_from(&self, offset: usize) -> usize {
|
||||
let mut lines_offset = offset;
|
||||
let mut bytes_offset = 0;
|
||||
for byte in self.get_buffer().iter() {
|
||||
for byte in self.get_buffer() {
|
||||
if lines_offset == 0 {
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -686,7 +686,7 @@ fn compute_number_width(inputs: &Inputs, settings: &Settings) -> usize {
|
|||
|
||||
let mut minimum_width = 1;
|
||||
let mut total: u64 = 0;
|
||||
for input in inputs.iter() {
|
||||
for input in inputs {
|
||||
match input {
|
||||
Input::Stdin(_) => minimum_width = MINIMUM_WIDTH,
|
||||
Input::Path(path) => {
|
||||
|
|
|
@ -842,7 +842,7 @@ mod tests {
|
|||
let path1 = temp_file.path();
|
||||
let path2 = temp_file.path();
|
||||
|
||||
assert_eq!(are_hardlinks_to_same_file(&path1, &path2), true);
|
||||
assert!(are_hardlinks_to_same_file(&path1, &path2));
|
||||
}
|
||||
|
||||
#[cfg(unix)]
|
||||
|
@ -857,7 +857,7 @@ mod tests {
|
|||
let path1 = temp_file1.path();
|
||||
let path2 = temp_file2.path();
|
||||
|
||||
assert_eq!(are_hardlinks_to_same_file(&path1, &path2), false);
|
||||
assert!(!are_hardlinks_to_same_file(&path1, &path2));
|
||||
}
|
||||
|
||||
#[cfg(unix)]
|
||||
|
@ -870,6 +870,6 @@ mod tests {
|
|||
let path2 = temp_file.path().with_extension("hardlink");
|
||||
fs::hard_link(&path1, &path2).unwrap();
|
||||
|
||||
assert_eq!(are_hardlinks_to_same_file(&path1, &path2), true);
|
||||
assert!(are_hardlinks_to_same_file(&path1, &path2));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2026,12 +2026,12 @@ fn test_cp_reflink_always_override() {
|
|||
const USERDIR: &str = "dir/";
|
||||
const MOUNTPOINT: &str = "mountpoint/";
|
||||
|
||||
let src1_path: &str = &vec![MOUNTPOINT, USERDIR, "src1"].concat();
|
||||
let src2_path: &str = &vec![MOUNTPOINT, USERDIR, "src2"].concat();
|
||||
let dst_path: &str = &vec![MOUNTPOINT, USERDIR, "dst"].concat();
|
||||
let src1_path: &str = &[MOUNTPOINT, USERDIR, "src1"].concat();
|
||||
let src2_path: &str = &[MOUNTPOINT, USERDIR, "src2"].concat();
|
||||
let dst_path: &str = &[MOUNTPOINT, USERDIR, "dst"].concat();
|
||||
|
||||
scene.fixtures.mkdir(ROOTDIR);
|
||||
scene.fixtures.mkdir(vec![ROOTDIR, USERDIR].concat());
|
||||
scene.fixtures.mkdir([ROOTDIR, USERDIR].concat());
|
||||
|
||||
// Setup:
|
||||
// Because neither `mkfs.btrfs` not btrfs `mount` options allow us to have a mountpoint owned
|
||||
|
|
|
@ -171,7 +171,6 @@ fn test_random() {
|
|||
break;
|
||||
}
|
||||
}
|
||||
let factor = factor;
|
||||
|
||||
match product.checked_mul(factor) {
|
||||
Some(p) => {
|
||||
|
@ -315,7 +314,7 @@ fn run(input_string: &[u8], output_string: &[u8]) {
|
|||
fn test_primes_with_exponents() {
|
||||
let mut input_string = String::new();
|
||||
let mut output_string = String::new();
|
||||
for primes in PRIMES_BY_BITS.iter() {
|
||||
for primes in PRIMES_BY_BITS {
|
||||
for &prime in *primes {
|
||||
input_string.push_str(&(format!("{prime} "))[..]);
|
||||
output_string.push_str(&(format!("{prime}: {prime}\n"))[..]);
|
||||
|
|
|
@ -62,7 +62,7 @@ fn test_link_one_argument() {
|
|||
#[test]
|
||||
fn test_link_three_arguments() {
|
||||
let (_, mut ucmd) = at_and_ucmd!();
|
||||
let arguments = vec![
|
||||
let arguments = [
|
||||
"test_link_argument1",
|
||||
"test_link_argument2",
|
||||
"test_link_argument3",
|
||||
|
|
|
@ -1282,7 +1282,7 @@ fn test_mv_verbose() {
|
|||
|
||||
#[test]
|
||||
#[cfg(any(target_os = "linux", target_os = "android"))] // mkdir does not support -m on windows. Freebsd doesn't return a permission error either.
|
||||
#[cfg(features = "mkdir")]
|
||||
#[cfg(feature = "mkdir")]
|
||||
fn test_mv_permission_error() {
|
||||
let scene = TestScenario::new("mkdir");
|
||||
let folder1 = "bar";
|
||||
|
|
|
@ -482,7 +482,7 @@ fn test_rm_prompts() {
|
|||
// Needed for talking with stdin on platforms where CRLF or LF matters
|
||||
const END_OF_LINE: &str = if cfg!(windows) { "\r\n" } else { "\n" };
|
||||
|
||||
let mut answers = vec![
|
||||
let mut answers = [
|
||||
"rm: descend into directory 'a'?",
|
||||
"rm: remove write-protected regular empty file 'a/empty-no-write'?",
|
||||
"rm: remove symbolic link 'a/slink'?",
|
||||
|
|
|
@ -75,7 +75,7 @@ fn test_echo() {
|
|||
#[test]
|
||||
fn test_head_count() {
|
||||
let repeat_limit = 5;
|
||||
let input_seq = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
||||
let input_seq = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
||||
let input = input_seq
|
||||
.iter()
|
||||
.map(ToString::to_string)
|
||||
|
@ -106,7 +106,7 @@ fn test_head_count() {
|
|||
#[test]
|
||||
fn test_repeat() {
|
||||
let repeat_limit = 15000;
|
||||
let input_seq = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
||||
let input_seq = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
||||
let input = input_seq
|
||||
.iter()
|
||||
.map(ToString::to_string)
|
||||
|
|
|
@ -541,7 +541,7 @@ impl CmdResult {
|
|||
let contents = String::from_utf8(read_scenario_fixture(&self.tmpd, file_rel_path)).unwrap();
|
||||
let possible_values = template_vars.iter().map(|vars| {
|
||||
let mut contents = contents.clone();
|
||||
for kv in vars.iter() {
|
||||
for kv in vars {
|
||||
contents = contents.replace(&kv.0, &kv.1);
|
||||
}
|
||||
contents
|
||||
|
@ -2211,12 +2211,12 @@ impl UChild {
|
|||
let join_handle = thread::spawn(move || {
|
||||
let mut writer = BufWriter::new(stdin);
|
||||
|
||||
match writer.write_all(&content).and_then(|_| writer.flush()) {
|
||||
match writer.write_all(&content).and_then(|()| writer.flush()) {
|
||||
Err(error) if !ignore_stdin_write_error => Err(io::Error::new(
|
||||
io::ErrorKind::Other,
|
||||
format!("failed to write to stdin of child: {error}"),
|
||||
)),
|
||||
Ok(_) | Err(_) => Ok(()),
|
||||
Ok(()) | Err(_) => Ok(()),
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -2263,12 +2263,12 @@ impl UChild {
|
|||
pub fn try_write_in<T: Into<Vec<u8>>>(&mut self, data: T) -> io::Result<()> {
|
||||
let stdin = self.raw.stdin.as_mut().unwrap();
|
||||
|
||||
match stdin.write_all(&data.into()).and_then(|_| stdin.flush()) {
|
||||
match stdin.write_all(&data.into()).and_then(|()| stdin.flush()) {
|
||||
Err(error) if !self.ignore_stdin_write_error => Err(io::Error::new(
|
||||
io::ErrorKind::Other,
|
||||
format!("failed to write to stdin of child: {error}"),
|
||||
)),
|
||||
Ok(_) | Err(_) => Ok(()),
|
||||
Ok(()) | Err(_) => Ok(()),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2505,11 +2505,11 @@ pub fn expected_result(ts: &TestScenario, args: &[&str]) -> std::result::Result<
|
|||
|
||||
/// This is a convenience wrapper to run a ucmd with root permissions.
|
||||
/// It can be used to test programs when being root is needed
|
||||
/// This runs 'sudo -E --non-interactive target/debug/coreutils util_name args`
|
||||
/// This runs `sudo -E --non-interactive target/debug/coreutils util_name args`
|
||||
/// This is primarily designed to run in an environment where whoami is in $path
|
||||
/// and where non-interactive sudo is possible.
|
||||
/// To check if i) non-interactive sudo is possible and ii) if sudo works, this runs:
|
||||
/// 'sudo -E --non-interactive whoami' first.
|
||||
/// `sudo -E --non-interactive whoami` first.
|
||||
///
|
||||
/// This return an `Err()` if run inside CICD because there's no 'sudo'.
|
||||
///
|
||||
|
@ -3279,7 +3279,7 @@ mod tests {
|
|||
std::assert_eq!(error.to_string(), "kill: Timeout of '0s' reached");
|
||||
}
|
||||
Err(error) => panic!("Assertion failed: Expected error with timeout but was: {error}"),
|
||||
Ok(_) => panic!("Assertion failed: Expected timeout of `try_kill`."),
|
||||
Ok(()) => panic!("Assertion failed: Expected timeout of `try_kill`."),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue