Issue #13726 has been updated by MSP-Greg (Greg L).


usa (Usaku NAKAMURA) wrote:
> I've tested the patches, and I found that my Windows7 box often set the ctime and mtime as a little future -- some hundreds nano seconds.
> I can't find the reason, but it makes some troubles with test-all and test-spec...

Thanks for looking at it.  I'll look over the patches I'm using in ruby-loco, as all the time tests/specs have been stable for quite a while, both locally and on Appveyor.  I believe all the time patches are in the [patches/gte20500](https://github.com/MSP-Greg/ruby-loco/tree/master/patches/gte20500) folder.  Disk IO on AV gets a little funny when running parallel tests/specs, so I did need to increase (or add) some deltas in any numeric comparison tests...

Thanks, Greg

----------------------------------------
Feature #13726: PATCH: Windows builds - fractional second file times
https://bugs.ruby-lang.org/issues/13726#change-68157

* Author: MSP-Greg (Greg L)
* Status: Assigned
* Priority: Normal
* Assignee: usa (Usaku NAKAMURA)
* Target version: 
----------------------------------------
At present, I believe Windows builds have integer seconds resolution on File times.

Attached are three patches that seem to correct the issue. The numbered patches are best applied in order.

The c source patches were created by kubo (Kubo Takehiro); I created the spec patch, along with some testing.

All related tests (run parallel) pass on my system for MinGW builds and x64-mswin64_140 builds.  I did some checks with Appveyor, and there may be issues with the logger tests, due to the fact that the tests are very time sensitive (I ran -j3 on a quad system, Appveyor runs -j2 on a dual core).

I believe file time values are stored with 100 ns resolution, but times have 100 s resolution.  This was the reason for some of the changes to the tests, as time appears to be truncated (floor), as opposed to round.

I would appreciate if consideration could be given to adding this (or similar) code.  Thank you.

---Files--------------------------------
02-file-utime.patch (5.53 KB)
spec-rubyspec-core-file-time.patch (2.99 KB)
01-time-subsec.patch (15.2 KB)
spec-rubyspec-core-file-time.patch (3.28 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>