Mercurial > public > mercurial-scm > hg-stable
comparison tests/test-encoding-func.py @ 33946:6c119dbfd0c0
encoding: add fast path of from/toutf8b() for ASCII strings
See the previous patch for why.
The added test seems not making much sense because ASCII strings should
never contain "\xed" and be valid UTF-8.
(with mercurial repo)
$ export HGRCPATH=/dev/null HGPLAIN=
$ hg log --time --config experimental.stabilization=all -Tjson > /dev/null
(original)
time: real 6.830 secs (user 6.740+0.000 sys 0.080+0.000)
time: real 6.690 secs (user 6.650+0.000 sys 0.040+0.000)
time: real 6.700 secs (user 6.640+0.000 sys 0.060+0.000)
(fast jsonescape)
time: real 5.630 secs (user 5.550+0.000 sys 0.070+0.000)
time: real 5.700 secs (user 5.650+0.000 sys 0.050+0.000)
time: real 5.690 secs (user 5.640+0.000 sys 0.050+0.000)
(this patch)
time: real 5.190 secs (user 5.120+0.000 sys 0.070+0.000)
time: real 5.230 secs (user 5.170+0.000 sys 0.050+0.000)
time: real 5.220 secs (user 5.150+0.000 sys 0.070+0.000)
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 23 Apr 2017 13:08:58 +0900 |
parents | 853574db5b12 |
children | 57b0c7221dba |
comparison
equal
deleted
inserted
replaced
33945:853574db5b12 | 33946:6c119dbfd0c0 |
---|---|
32 def testasciifastpath(self): | 32 def testasciifastpath(self): |
33 s = b'\0' * 100 | 33 s = b'\0' * 100 |
34 self.assertTrue(s is encoding.tolocal(s)) | 34 self.assertTrue(s is encoding.tolocal(s)) |
35 self.assertTrue(s is encoding.fromlocal(s)) | 35 self.assertTrue(s is encoding.fromlocal(s)) |
36 | 36 |
37 class Utf8bEncodingTest(unittest.TestCase): | |
38 def testasciifastpath(self): | |
39 s = b'\0' * 100 | |
40 self.assertTrue(s is encoding.toutf8b(s)) | |
41 self.assertTrue(s is encoding.fromutf8b(s)) | |
42 | |
37 if __name__ == '__main__': | 43 if __name__ == '__main__': |
38 import silenttestrunner | 44 import silenttestrunner |
39 silenttestrunner.main(__name__) | 45 silenttestrunner.main(__name__) |