mirror of
https://github.com/nimbold/Firelink.git
synced 2026-09-09 09:16:57 +00:00
fix(ci): repair cross-platform cleanup checks
- Remove the duplicate Windows filesystem flag import and add the missing file identity import.\n- Make the Linux replacement-file regression deterministic while retaining permission-repair coverage.\n- Re-run the native test suite before publishing the corrective commit.
This commit is contained in:
@@ -39,7 +39,7 @@ fn windows_directory_identity(path: &Path) -> io::Result<String> {
|
||||
use windows_sys::Win32::Foundation::{CloseHandle, INVALID_HANDLE_VALUE};
|
||||
use windows_sys::Win32::Storage::FileSystem::{
|
||||
CreateFileW, GetFileInformationByHandle, BY_HANDLE_FILE_INFORMATION,
|
||||
FILE_FLAG_BACKUP_SEMANTICS, FILE_FLAG_OPEN_REPARSE_POINT, FILE_FLAG_BACKUP_SEMANTICS, FILE_SHARE_DELETE,
|
||||
FILE_FLAG_BACKUP_SEMANTICS, FILE_FLAG_OPEN_REPARSE_POINT, FILE_SHARE_DELETE,
|
||||
FILE_SHARE_READ, FILE_SHARE_WRITE, OPEN_EXISTING,
|
||||
};
|
||||
|
||||
@@ -86,8 +86,8 @@ pub fn file_identity(path: &Path) -> Option<String> {
|
||||
use windows_sys::Win32::Foundation::{CloseHandle, INVALID_HANDLE_VALUE};
|
||||
use windows_sys::Win32::Storage::FileSystem::{
|
||||
CreateFileW, GetFileInformationByHandle, BY_HANDLE_FILE_INFORMATION, FILE_ATTRIBUTE_NORMAL,
|
||||
FILE_FLAG_OPEN_REPARSE_POINT, FILE_SHARE_DELETE, FILE_SHARE_READ, FILE_SHARE_WRITE,
|
||||
OPEN_EXISTING,
|
||||
FILE_FLAG_BACKUP_SEMANTICS, FILE_FLAG_OPEN_REPARSE_POINT, FILE_SHARE_DELETE,
|
||||
FILE_SHARE_READ, FILE_SHARE_WRITE, OPEN_EXISTING,
|
||||
};
|
||||
|
||||
let wide_path = path
|
||||
@@ -119,9 +119,7 @@ pub fn file_identity(path: &Path) -> Option<String> {
|
||||
let _ = CloseHandle(handle);
|
||||
succeeded
|
||||
};
|
||||
result.then(|| {
|
||||
format_file_identity(&metadata)
|
||||
})
|
||||
result.then(|| format_file_identity(&metadata))
|
||||
}
|
||||
|
||||
/// Return the identity of the already-open Windows file handle. This keeps a
|
||||
|
||||
@@ -365,7 +365,7 @@ mod tests {
|
||||
std::fs::remove_file(&a).unwrap();
|
||||
assert!(validate_manifest(&manifest, &snapshot_assets(&roots).unwrap()).is_ok());
|
||||
let replacement = root.join("replacement");
|
||||
std::fs::write(&replacement, b"original").unwrap();
|
||||
std::fs::write(&replacement, b"replacement").unwrap();
|
||||
std::fs::rename(&replacement, &a).unwrap();
|
||||
assert!(validate_manifest(&manifest, &snapshot_assets(&roots).unwrap()).is_err());
|
||||
std::fs::remove_file(&a).unwrap();
|
||||
|
||||
Reference in New Issue
Block a user