This is an archive of the discontinued Mercurial Phabricator instance.

tests: add a short `sleep` in test-status.t
ClosedPublic

Authored by SimonSapin on Dec 10 2021, 5:14 PM.

Details

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.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

SimonSapin created this revision.Dec 10 2021, 5:14 PM
Alphare accepted this revision.Dec 13 2021, 8:20 AM
This revision is now accepted and ready to land.Dec 13 2021, 8:20 AM
This revision was automatically updated to reflect the committed changes.