Revert fstatat on *nix and test symlinks in path_filestat calls (#1725)
* Revert fstatat on *nix and test symlinks in path_filestat calls
This commit effectively reverts too eager refactoring on my part which
resulted in incorrect `path_filestat_{get, set_times}` behaviour on
*nix hosts. In the presence of symlinks, neither of the calls would
work properly.
In order to shield ourselves from similar errors in the future, I've
augmented the `path_filestat` test cases with symlink checks as well.
* Pass appropriate flags to fstatat and utimensat
* Fix formatting
* Fix Windows build
* Expand final symlinks if follow is set on Windows
* Fix formatting
* Do not follow symlinks unless specified on Windows
* Update comments and restart CI
* Skip testing volatile atim field
This commit is contained in:
@@ -69,6 +69,19 @@ impl Handle for OsDir {
|
||||
fn create_directory(&self, path: &str) -> Result<()> {
|
||||
path::create_directory(self, path)
|
||||
}
|
||||
fn filestat_get_at(&self, path: &str, follow: bool) -> Result<types::Filestat> {
|
||||
path::filestat_get_at(self, path, follow)
|
||||
}
|
||||
fn filestat_set_times_at(
|
||||
&self,
|
||||
path: &str,
|
||||
atim: types::Timestamp,
|
||||
mtim: types::Timestamp,
|
||||
fst_flags: types::Fstflags,
|
||||
follow: bool,
|
||||
) -> Result<()> {
|
||||
path::filestat_set_times_at(self, path, atim, mtim, fst_flags, follow)
|
||||
}
|
||||
fn openat(
|
||||
&self,
|
||||
path: &str,
|
||||
|
||||
Reference in New Issue
Block a user