Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / lib / python2.4 / test / test_md5.py
CommitLineData
920dae64
AT
1# Testing md5 module
2
3import unittest
4from md5 import md5
5from test import test_support
6
7def hexstr(s):
8 import string
9 h = string.hexdigits
10 r = ''
11 for c in s:
12 i = ord(c)
13 r = r + h[(i >> 4) & 0xF] + h[i & 0xF]
14 return r
15
16class MD5_Test(unittest.TestCase):
17
18 def md5test(self, s, expected):
19 self.assertEqual(hexstr(md5(s).digest()), expected)
20 self.assertEqual(md5(s).hexdigest(), expected)
21
22 def test_basics(self):
23 eq = self.md5test
24 eq('', 'd41d8cd98f00b204e9800998ecf8427e')
25 eq('a', '0cc175b9c0f1b6a831c399e269772661')
26 eq('abc', '900150983cd24fb0d6963f7d28e17f72')
27 eq('message digest', 'f96b697d7cb7938d525a2f31aaf161d0')
28 eq('abcdefghijklmnopqrstuvwxyz', 'c3fcd3d76192e4007dfb496cca67e13b')
29 eq('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',
30 'd174ab98d277d9f5a5611c2c9f419d9f')
31 eq('12345678901234567890123456789012345678901234567890123456789012345678901234567890',
32 '57edf4a22be3c955ac49da2e2107b67a')
33
34 def test_hexdigest(self):
35 # hexdigest is new with Python 2.0
36 m = md5('testing the hexdigest method')
37 h = m.hexdigest()
38 self.assertEqual(hexstr(m.digest()), h)
39
40 def test_large_update(self):
41 aas = 'a' * 64
42 bees = 'b' * 64
43 cees = 'c' * 64
44
45 m1 = md5()
46 m1.update(aas)
47 m1.update(bees)
48 m1.update(cees)
49
50 m2 = md5()
51 m2.update(aas + bees + cees)
52 self.assertEqual(m1.digest(), m2.digest())
53
54def test_main():
55 test_support.run_unittest(MD5_Test)
56
57if __name__ == '__main__':
58 test_main()