1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 11:37:44 +00:00

cp: fix preserved hardlinks are not reported in --verbose

This commit is contained in:
Moïse Valvassori 2024-06-26 06:44:55 +02:00
parent 92665144c9
commit 2e223dfdfc
2 changed files with 34 additions and 4 deletions

View file

@ -608,6 +608,36 @@ fn test_cp_arg_link_with_same_file() {
assert!(at.file_exists(file));
}
#[test]
#[cfg(target_os = "linux")]
fn test_cp_verbose_preserved_link_to_dir() {
use std::os::linux::fs::MetadataExt;
let (at, mut ucmd) = at_and_ucmd!();
let file = "file";
let hardlink = "hardlink";
let dir = "dir";
let dst_file = "dir/file";
let dst_hardlink = "dir/hardlink";
at.touch(file);
at.hard_link(file, hardlink);
at.mkdir(dir);
ucmd.args(&["-d", "--verbose", file, hardlink, dir])
.succeeds()
.stdout_is("'file' -> 'dir/file'\n'hardlink' -> 'dir/hardlink'\n");
assert!(at.file_exists(dst_file));
assert!(at.file_exists(dst_hardlink));
assert_eq!(at.metadata(dst_file).st_nlink(), 2);
assert_eq!(at.metadata(dst_hardlink).st_nlink(), 2);
assert_eq!(
at.metadata(dst_file).st_ino(),
at.metadata(dst_hardlink).st_ino()
);
}
#[test]
fn test_cp_arg_symlink() {
let (at, mut ucmd) = at_and_ucmd!();