diff options
author | Dwayne C. Litzenberger <dlitz@dlitz.net> | 2009-10-10 16:39:51 -0400 |
---|---|---|
committer | Dwayne C. Litzenberger <dlitz@dlitz.net> | 2009-10-12 14:49:01 -0400 |
commit | 22fe3248e64938944d0a8e107552691dbf822d39 (patch) | |
tree | 081881f087aec9ae571f177ed6f300a7367f39a4 | |
parent | 6680b6fff7b18926f17f6804bf08545021f4ae81 (diff) | |
download | pycrypto-22fe3248e64938944d0a8e107552691dbf822d39.tar.gz |
SelfTest: Add tests for Counter wraparound behaviour and for the 'carry' attribute
-rw-r--r-- | lib/Crypto/SelfTest/Util/test_Counter.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/Crypto/SelfTest/Util/test_Counter.py b/lib/Crypto/SelfTest/Util/test_Counter.py index 3ec16b4..553e21d 100644 --- a/lib/Crypto/SelfTest/Util/test_Counter.py +++ b/lib/Crypto/SelfTest/Util/test_Counter.py @@ -91,6 +91,51 @@ class CounterTests(unittest.TestCase): self.assertEqual(256, c.next_value()) self.assertEqual("\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", c()) + def test_BE8_wraparound(self): + """8-bit, Big endian, wraparound""" + c = Counter.new(8) + for i in xrange(1, 256): + self.assertEqual(i, c.next_value()) + self.assertEqual(chr(i), c()) + self.assertEqual(0, c.next_value()) + self.assertEqual("\x00", c()) + self.assertEqual(1, c.next_value()) + + def test_LE8_wraparound(self): + """8-bit, Little endian, wraparound""" + c = Counter.new(8, little_endian=True) + for i in xrange(1, 256): + self.assertEqual(i, c.next_value()) + self.assertEqual(chr(i), c()) + self.assertEqual(0, c.next_value()) + self.assertEqual("\x00", c()) + self.assertEqual(1, c.next_value()) + + def test_BE8_carry(self): + """8-bit, Big endian, carry attribute""" + c = Counter.new(8) + for i in xrange(1, 256): + self.assertEqual(0, c.carry) + self.assertEqual(i, c.next_value()) + self.assertEqual(chr(i), c()) + self.assertEqual(0, c.next_value()) + self.assertEqual(1, c.carry) + self.assertEqual("\x00", c()) + self.assertEqual(1, c.next_value()) + self.assertEqual(0, c.carry) + + def test_LE8_carry(self): + """8-bit, Little endian, carry attribute""" + c = Counter.new(8, little_endian=True) + for i in xrange(1, 256): + self.assertEqual(0, c.carry) + self.assertEqual(i, c.next_value()) + self.assertEqual(chr(i), c()) + self.assertEqual(0, c.next_value()) + self.assertEqual(1, c.carry) + self.assertEqual("\x00", c()) + self.assertEqual(1, c.next_value()) + self.assertEqual(0, c.carry) def get_tests(config={}): from Crypto.SelfTest.st_common import list_test_cases |