From 3a54f0d2a60892af1b90dea6bd8d1aed42638150 Mon Sep 17 00:00:00 2001 From: hlsxx Date: Thu, 5 Feb 2026 15:44:48 +0100 Subject: [PATCH] test: mv file to broken symlink file/dir --- tests/by-util/test_mv.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/by-util/test_mv.rs b/tests/by-util/test_mv.rs index d756cea7d7e..345072881f8 100644 --- a/tests/by-util/test_mv.rs +++ b/tests/by-util/test_mv.rs @@ -467,6 +467,36 @@ fn test_mv_replace_symlink_with_file() { assert!(at.file_exists("a")); } +#[test] +#[cfg(all(unix, not(target_os = "android")))] +fn test_mv_file_to_broken_symlink_file() { + let (at, mut ucmd) = at_and_ucmd!(); + + at.touch("file"); + at.symlink_file("missing-target", "broken"); + + ucmd.arg("file").arg("broken").succeeds().no_stderr(); + + assert!(at.file_exists("broken")); + assert!(!at.is_symlink("broken")); + assert!(!at.file_exists("file")); +} + +#[test] +#[cfg(all(unix, not(target_os = "android")))] +fn test_mv_file_to_broken_symlink_directory() { + let (at, mut ucmd) = at_and_ucmd!(); + + at.touch("file"); + at.symlink_dir("missing-target", "broken"); + + ucmd.arg("file").arg("broken").succeeds().no_stderr(); + + assert!(at.file_exists("broken")); + assert!(!at.is_symlink("broken")); + assert!(!at.file_exists("file")); +} + #[test] #[cfg(all(unix, not(target_os = "android")))] fn test_mv_file_to_symlink_directory() {