From 63dd5d92c923b9399f0af1c45fe3709c20864103 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 28 Mar 2026 16:12:04 +0000 Subject: [PATCH] refactor(test): replace #[cfg] with #[cfg_attr(..., ignore)] in device_id tests The device_id tests compile on all platforms since get_device_id and DeviceId exist everywhere. Use cfg_attr ignore instead of cfg gates so these tests are still compiled (catching type errors early) but skipped at runtime on unsupported platforms. Rename the duplicate-named different_filesystem_returns_different_ids functions to unique names to allow both to coexist without cfg gates. https://claude.ai/code/session_01UJVc5eCuHdjJwKFpcV82vP --- src/fs_tree_builder/device_id.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/fs_tree_builder/device_id.rs b/src/fs_tree_builder/device_id.rs index 83e5a854..10cbf093 100644 --- a/src/fs_tree_builder/device_id.rs +++ b/src/fs_tree_builder/device_id.rs @@ -25,12 +25,12 @@ pub fn get_device_id(_stats: &std::fs::Metadata) -> DeviceId { } #[cfg(test)] -#[cfg(unix)] mod tests { use super::get_device_id; use std::fs::symlink_metadata; #[test] + #[cfg_attr(not(unix), ignore = "device ID is meaningful only on unix")] fn same_filesystem_returns_equal_ids() { let root_stats = symlink_metadata("/").expect("stat /"); let root_stats2 = symlink_metadata("/").expect("stat / again"); @@ -43,8 +43,11 @@ mod tests { /// `/proc` is a virtual filesystem mounted separately from `/` on Linux. #[test] - #[cfg(target_os = "linux")] - fn different_filesystem_returns_different_ids() { + #[cfg_attr( + not(target_os = "linux"), + ignore = "/proc is a separate filesystem only on Linux" + )] + fn different_filesystem_returns_different_ids_linux() { let root_stats = symlink_metadata("/").expect("stat /"); let proc_stats = symlink_metadata("/proc").expect("stat /proc"); assert_ne!( @@ -56,8 +59,11 @@ mod tests { /// `/dev` is a separate filesystem (`devfs`) from `/` on macOS. #[test] - #[cfg(target_os = "macos")] - fn different_filesystem_returns_different_ids() { + #[cfg_attr( + not(target_os = "macos"), + ignore = "/dev is a separate filesystem only on macOS" + )] + fn different_filesystem_returns_different_ids_macos() { let root_stats = symlink_metadata("/").expect("stat /"); let dev_stats = symlink_metadata("/dev").expect("stat /dev"); assert_ne!(