D11900: tests: add a short `sleep` in test-status.t
SimonSapin
phabricator at mercurial-scm.org
Fri Dec 10 22:14:56 UTC 2021
SimonSapin created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
With dirstate-v2 and rhg both enabled, this test would sometimes fail for me
with:
--- tests/test-status.t
+++ tests/test-status.t#dirstate-v2.err
@@ -943,7 +943,7 @@
$ rm subdir/unknown
$ hg status
$ hg debugdirstate --all --no-dates | grep '^ '
- 0 -1 set subdir
+ 0 -1 unset subdir
Meaning that `status` did not write a directory mtime in the dirstate
as expected. This can happen if the observed mtime of the directory is
the same as "current time" at the start of `status`. This current time
is obtained by creating a temporary file and checking its mtime.
Even with ext4 on my system being able to store nanosecond precision,
identical mtime for successive but separate operations is still possible
becuse the kernel may cache the current time:
https://stackoverflow.com/a/14393315/1162888
0.1 second should be enough for this cache to be updated, without
significantly slowing down the test.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D11900
AFFECTED FILES
tests/test-status.t
CHANGE DETAILS
diff --git a/tests/test-status.t b/tests/test-status.t
--- a/tests/test-status.t
+++ b/tests/test-status.t
@@ -941,6 +941,7 @@
Now the directory is eligible for caching, so its mtime is save in the dirstate
$ rm subdir/unknown
+ $ sleep 0.1 # ensure the kernelâs internal clock for mtimes has ticked
$ hg status
$ hg debugdirstate --all --no-dates | grep '^ '
0 -1 set subdir
To: SimonSapin, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list