tests/README
author |
Olivier Trempe <oliviertrempe@gmail.com> |
|
Wed, 08 Mar 2017 09:03:42 -0500 |
changeset 31846 |
1064a296a2a7 |
parent 26421 |
4b0fc75f9403
|
permissions |
-rw-r--r-- |
fsmonitor: match watchman and filesystem encoding
watchman's paths encoding can differ from filesystem encoding. For example,
on Windows, it's always utf-8.
Before this patch, on Windows, mismatch in path comparison between fsmonitor
state and osutil.statfiles would yield a clean status for added/modified files.
In addition to status reporting wrong results, this leads to files being
discarded from changesets while doing history editing operations such as rebase.
Benchmark:
There is a little overhead at module import:
python -m timeit "import hgext.fsmonitor"
Windows before patch: 1000000 loops, best of 3: 0.563 usec per loop
Windows after patch: 1000000 loops, best of 3: 0.583 usec per loop
Linx before patch: 1000000 loops, best of 3: 0.579 usec per loop
Linux after patch: 1000000 loops, best of 3: 0.588 usec per loop
10000 calls to _watchmantofsencoding:
python -m timeit -s "from hgext.fsmonitor import _watchmantofsencoding, _fixencoding" "fname = '/path/to/file'" "for i in range(10000):" " if _fixencoding: fname = _watchmantofsencoding(fname)"
Windows (_fixencoding is True): 100 loops, best of 3: 19.5 msec per loop
Linux (_fixencoding is False): 100 loops, best of 3: 3.08 msec per loop
332
|
1 |
To run the tests, do:
|
|
2 |
|
|
3 |
cd tests/
|
2207
|
4 |
python run-tests.py
|
332
|
5 |
|
26421
|
6 |
See https://mercurial-scm.org/wiki/WritingTests for
|
3934
|
7 |
more information on writing tests.
|