[PATCH v3 0/2] Reduce explicit sleep calls in t7063 untracked cache tests
- From
Tao Klerks via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Mar 2, 2022, 06:05 UTC
- Message-ID
- <pull.1166.v3.git.1646201124.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1166.v2.git.1646127910.gitgitgadget@gmail.com>
Replace sleep calls with backdating of filesystem changes, but first fix the test-tool chmtime functionality to work for directories in Windows.
In this third version, a bug with inaccessible-path-handling that Jeff found is fixed, and a relative-path-avoiding strategy that had been added in t7073 is simplified out after Junio's comments revealed it was misguided.
Tao Klerks (2): t/helper/test-chmtime: update mingw to support chmtime on directories t7063: mtime-mangling instead of delays in untracked cache testing
compat/mingw.c | 23 +++++++++++++++++++---- t/t7063-status-untracked-cache.sh | 21 +++++++++------------ 2 files changed, 28 insertions(+), 16 deletions(-)
base-commit: 4c53a8c20f8984adb226293a3ffd7b88c3f4ac1a Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1166%2FTaoK%2Ftaok-untracked-cache-testing-remote-waits-v3 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1166/TaoK/taok-untracked-cache-testing-remote-waits-v3 Pull-Request: https://github.com/gitgitgadget/git/pull/1166
Range-diff vs v2:
1: 7cdef0ad5fb ! 1: 052b3dd9bba t/helper/test-chmtime: update mingw to support chmtime on directories
@@ compat/mingw.c: int mingw_utime (const char *file_name, const struct utimbuf *ti
- if ((fh = _wopen(wfilename, O_RDWR | O_BINARY)) < 0) {
+ osfilehandle = CreateFileW(wfilename,
-+ 0x100 /*FILE_WRITE_ATTRIBUTES*/,
++ FILE_WRITE_ATTRIBUTES,
+ 0 /*FileShare.None*/,
+ NULL,
+ OPEN_EXISTING,
-+ attrs & FILE_ATTRIBUTE_DIRECTORY ?
++ (attrs != INVALID_FILE_ATTRIBUTES &&
++ (attrs & FILE_ATTRIBUTE_DIRECTORY)) ?
+ FILE_FLAG_BACKUP_SEMANTICS : 0,
+ NULL);
+ if (osfilehandle == INVALID_HANDLE_VALUE) {
@@ compat/mingw.c: int mingw_utime (const char *file_name, const struct utimbuf *ti
aft = mft;
}
- if (!SetFileTime((HANDLE)_get_osfhandle(fh), NULL, &aft, &mft)) {
++
+ if (!SetFileTime(osfilehandle, NULL, &aft, &mft)) {
errno = EINVAL;
rc = -1;
2: 3e3c9c7faac ! 2: dceb2857609 t7063: mtime-mangling instead of delays in untracked cache testing
@@ Commit message
Signed-off-by: Tao Klerks <tao@klerks.biz>
## t/t7063-status-untracked-cache.sh ##
-@@ t/t7063-status-untracked-cache.sh: sync_mtime () {
- find . -type d -exec ls -ld {} + >/dev/null
- }
-
-+chmtime_worktree_root () {
-+ # chmtime doesnt handle relative paths on windows, so need
-+ # to "hardcode" a reference to the worktree folder name.
-+ test-tool -C .. chmtime $1 worktree
-+}
-+
- avoid_racy() {
- sleep 1
- }
@@ t/t7063-status-untracked-cache.sh: test_expect_success 'setup' '
cd worktree &&
mkdir done dtwo dthree &&
touch one two three done/one dtwo/two dthree/three &&
+ test-tool chmtime =-300 one two three done/one dtwo/two dthree/three &&
+ test-tool chmtime =-300 done dtwo dthree &&
-+ chmtime_worktree_root =-300 &&
++ test-tool chmtime =-300 . &&
git add one two done/one &&
: >.git/info/exclude &&
git update-index --untracked-cache &&
@@ t/t7063-status-untracked-cache.sh: test_expect_success 'create/modify files, som
- rm base &&
+ test-tool chmtime =-180 done/two done/three done/four done/five done &&
+ # we need to ensure that the root dir is touched (in the past);
-+ chmtime_worktree_root =-180 &&
++ test-tool chmtime =-180 . &&
sync_mtime
'
-- gitgitgadget