mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
56b732058e
Signed-off-by: John Howard <jhoward@microsoft.com> If fixes an error in sameFsTime which was using `==` to compare two times. The correct way is to use go's built-in timea.Equals(timeb). In changes_windows, it uses sameFsTime to compare mTim of a `system.StatT` to allow TestChangesDirsMutated to operate correctly now. Note there is slight different between the Linux and Windows implementations of detecting changes. Due to https://github.com/moby/moby/issues/9874, and the fix at https://github.com/moby/moby/pull/11422, Linux does not consider a change to the directory time as a change. Windows on NTFS does. See https://github.com/moby/moby/pull/37982 for more information. The result in `TestChangesDirsMutated`, `dir3` is NOT considered a change in Linux, but IS considered a change on Windows. The test mutates dir3 to have a mtime of +1 second. With a handful of tests still outstanding, this change ports most of the unit tests under pkg/archive to Windows. It provides an implementation of `copyDir` in tests for Windows. To make a copy similar to Linux's `cp -a` while preserving timestamps and links to both valid and invalid targets, xcopy isn't sufficient. So I used robocopy, but had to circumvent certain exit codes that robocopy exits with which are warnings. Link to article describing this is in the code. |
||
---|---|---|
.. | ||
testdata | ||
archive.go | ||
archive_linux.go | ||
archive_linux_test.go | ||
archive_other.go | ||
archive_test.go | ||
archive_unix.go | ||
archive_unix_test.go | ||
archive_windows.go | ||
archive_windows_test.go | ||
changes.go | ||
changes_linux.go | ||
changes_other.go | ||
changes_posix_test.go | ||
changes_test.go | ||
changes_unix.go | ||
changes_windows.go | ||
copy.go | ||
copy_unix.go | ||
copy_unix_test.go | ||
copy_windows.go | ||
diff.go | ||
diff_test.go | ||
example_changes.go | ||
README.md | ||
time_linux.go | ||
time_unsupported.go | ||
utils_test.go | ||
whiteouts.go | ||
wrap.go | ||
wrap_test.go |
This code provides helper functions for dealing with archive files.