Mercurial > public > mercurial-scm > hg
annotate tests/test-hashutil.py @ 48674:f7086f6173f8 stable
dirstate-v2: rename the configuration to enable the format
The rename of the old experimental name was overlooked before the 6.0 release.
We rename everything to use the new name (and keep the released name as an alias
for compatibility).
Differential Revision: https://phab.mercurial-scm.org/D12129
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 01 Feb 2022 16:36:20 +0100 |
parents | dc9b53482689 |
children | 6000f5b25c9b |
rev | line source |
---|---|
44058
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
1 # Tests to ensure that sha1dc.sha1 is exactly a drop-in for |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
2 # hashlib.sha1 for our needs. |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
3 from __future__ import absolute_import |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
4 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
5 import hashlib |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
6 import unittest |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
7 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
8 import silenttestrunner |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
9 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
10 try: |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
11 from mercurial.thirdparty import sha1dc |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
12 except ImportError: |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
13 sha1dc = None |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
14 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
15 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
16 class hashertestsbase(object): |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
17 def test_basic_hash(self): |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
18 h = self.hasher() |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
19 h.update(b'foo') |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
20 self.assertEqual( |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
21 '0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33', h.hexdigest() |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
22 ) |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
23 h.update(b'bar') |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
24 self.assertEqual( |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
25 '8843d7f92416211de9ebb963ff4ce28125932878', h.hexdigest() |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
26 ) |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
27 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
28 def test_copy_hasher(self): |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
29 h = self.hasher() |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
30 h.update(b'foo') |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
31 h2 = h.copy() |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
32 h.update(b'baz') |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
33 h2.update(b'bar') |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
34 self.assertEqual( |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
35 '21eb6533733a5e4763acacd1d45a60c2e0e404e1', h.hexdigest() |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
36 ) |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
37 self.assertEqual( |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
38 '8843d7f92416211de9ebb963ff4ce28125932878', h2.hexdigest() |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
39 ) |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
40 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
41 def test_init_hasher(self): |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
42 h = self.hasher(b'initial string') |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
43 self.assertEqual( |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
44 b'\xc9y|n\x1f3S\xa4:\xbaJ\xca,\xc1\x1a\x9e\xb8\xd8\xdd\x86', |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
45 h.digest(), |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
46 ) |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
47 |
44087
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
48 def test_bytes_like_types(self): |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
49 h = self.hasher() |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
50 h.update(bytearray(b'foo')) |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
51 h.update(memoryview(b'baz')) |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
52 self.assertEqual( |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
53 '21eb6533733a5e4763acacd1d45a60c2e0e404e1', h.hexdigest() |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
54 ) |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
55 |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
56 h = self.hasher(bytearray(b'foo')) |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
57 h.update(b'baz') |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
58 self.assertEqual( |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
59 '21eb6533733a5e4763acacd1d45a60c2e0e404e1', h.hexdigest() |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
60 ) |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
61 |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
62 h = self.hasher(memoryview(b'foo')) |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
63 h.update(b'baz') |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
64 self.assertEqual( |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
65 '21eb6533733a5e4763acacd1d45a60c2e0e404e1', h.hexdigest() |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
66 ) |
dc9b53482689
sha1dc: use buffer protocol when parsing arguments
Gregory Szorc <gregory.szorc@gmail.com>
parents:
44058
diff
changeset
|
67 |
44058
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
68 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
69 class hashlibtests(unittest.TestCase, hashertestsbase): |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
70 hasher = hashlib.sha1 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
71 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
72 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
73 if sha1dc: |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
74 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
75 class sha1dctests(unittest.TestCase, hashertestsbase): |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
76 hasher = sha1dc.sha1 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
77 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
78 |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
79 if __name__ == '__main__': |
bde1cd4c99d9
sha1dc: initial implementation of Python extension
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
80 silenttestrunner.main(__name__) |