mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
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.