Re: [PATCH] Add a new lstat and fstat implementation based on Win32 API
- From
Johannes Sixt <j.sixt@eudaptics.com>
- Date
- Sep 3, 2007, 13:49 UTC
- Message-ID
- <46DC10FE.1080805@eudaptics.com>
- In-Reply-To
- <46DBFA2A.7050003@trolltech.com>
Marius Storm-Olsen schrieb:
Show 7 quoted lines
> There was a problem with racy conditions, which this revision fixes. > The problem was that fstat was using the builtin implementation, which for > for some reason is off by some amount of seconds. (This is probably due to > some leap-year issue in one of the implementations. However, Microsoft > tells > us to use 116444736000000000 in http://support.microsoft.com/kb/167296, so > I'll stick with that.)
Thanks for the analysis and new patch. Indeed, FILETIME is UTC, which is good; the native implementation returns local time, if I read the code (of msvcrt) correctly.
Show 16 quoted lines
> With the our own implementations of lstat & fstat, the following test cases > are now fixed: > t4116-apply-reverte.sh > ok 3: apply in reverse > t4200-rerere.sh > ok 17: young records still live > However, the following test cases seems to fail now: > t6024-recursive-merge.sh > FAIL 1: setup tests > FAIL 3: result contains a conflict > FAIL 4: virtual trees were processed > FAIL 5: refuse to merge binaries > > See attached test case logs. > Are some of these test cases unstable, so the result will fluctuate on > Windows?
I see many more failures. in:
t4001-diff-rename.sh: 5 t4101-apply-nonl.sh: all t4102-apply-rename.sh: 2,3,4 t4116-apply-reverse.sh: 3 t4200-rerere.sh: 12,13,17 t5515-fetch-merge-logic.sh: 54 etc...
There is something fishy going on.
But at least the failure in t4116 is easy to work around:
diff --git a/t/t4116-apply-reverse.sh b/t/t4116-apply-reverse.sh index fc2f622..f3e0c4a 100755 --- a/t/t4116-apply-reverse.sh +++ b/t/t4116-apply-reverse.sh @@ -43,7 +43,8 @@ test_expect_success 'apply in reverse' ' git reset --hard second && git apply --reverse --binary --index patch && git diff >diff && - git diff /dev/null diff + : > empty && + git diff empty diff ' -- Hannes