1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/pkg/archive
John Howard 56b732058e pkg/archive fixes, and port most unit tests to Windows
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.
2018-11-26 10:20:40 -08:00
..
testdata Move archive package into pkg/archive 2014-09-29 23:23:36 -07:00
archive.go make xattr EPERM non-fatal in createTarFile 2018-10-04 00:00:23 -06:00
archive_linux.go Add canonical import comment 2018-02-05 16:51:57 -05:00
archive_linux_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
archive_other.go Add canonical import comment 2018-02-05 16:51:57 -05:00
archive_test.go pkg/archive fixes, and port most unit tests to Windows 2018-11-26 10:20:40 -08:00
archive_unix.go Add ADD/COPY --chown flag support to Windows 2018-08-13 21:59:11 -07:00
archive_unix_test.go LCOW: lazycontext: Use correct lstat, fix archive check 2018-06-27 13:29:21 -07:00
archive_windows.go Add ADD/COPY --chown flag support to Windows 2018-08-13 21:59:11 -07:00
archive_windows_test.go LCOW: lazycontext: Use correct lstat, fix archive check 2018-06-27 13:29:21 -07:00
changes.go pkg/archive fixes, and port most unit tests to Windows 2018-11-26 10:20:40 -08:00
changes_linux.go Update overlay2 to use naive diff for changes 2018-06-20 11:07:36 -07:00
changes_other.go Add canonical import comment 2018-02-05 16:51:57 -05:00
changes_posix_test.go Various code-cleanup 2018-05-23 17:50:54 +02:00
changes_test.go pkg/archive fixes, and port most unit tests to Windows 2018-11-26 10:20:40 -08:00
changes_unix.go pkg/archive fixes, and port most unit tests to Windows 2018-11-26 10:20:40 -08:00
changes_windows.go pkg/archive fixes, and port most unit tests to Windows 2018-11-26 10:20:40 -08:00
copy.go Add canonical import comment 2018-02-05 16:51:57 -05:00
copy_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
copy_unix_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
copy_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
diff.go pkg/archive fixes, and port most unit tests to Windows 2018-11-26 10:20:40 -08:00
diff_test.go pkg/archive fixes, and port most unit tests to Windows 2018-11-26 10:20:40 -08:00
example_changes.go Update logrus to v1.0.1 2017-07-31 13:16:46 -07:00
README.md Move archive package into pkg/archive 2014-09-29 23:23:36 -07:00
time_linux.go Various code-cleanup 2018-05-23 17:50:54 +02:00
time_unsupported.go Add canonical import comment 2018-02-05 16:51:57 -05:00
utils_test.go Add canonical import comment 2018-02-05 16:51:57 -05:00
whiteouts.go Add canonical import comment 2018-02-05 16:51:57 -05:00
wrap.go Add canonical import comment 2018-02-05 16:51:57 -05:00
wrap_test.go Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00

This code provides helper functions for dealing with archive files.