}
}
-#[test]
+/// Test the fallback for getting the metadata of files like hiberfil.sys that
+/// Windows holds a special lock on, preventing normal means of querying
+/// metadata. See #96980.
+///
+/// Note this fails in CI because `hiberfil.sys` does not actually exist there.
+/// Therefore it's marked as ignored.
+#[test]
+#[ignore]
#[cfg(windows)]
fn hiberfil_sys() {
- // Get the system drive, which is usually `C:`.
- let mut hiberfil = crate::env::var("SystemDrive").unwrap();
- hiberfil.push_str(r"\hiberfil.sys");
-
- fs::metadata(&hiberfil).unwrap();
- fs::symlink_metadata(&hiberfil).unwrap();
+ let hiberfil = Path::new(r"C:\hiberfil.sys");
+ assert_eq!(true, hiberfil.try_exists().unwrap());
+ fs::symlink_metadata(hiberfil).unwrap();
+ fs::metadata(hiberfil).unwrap();
+ assert_eq!(true, hiberfil.exists());
}