summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDwayne C. Litzenberger <dlitz@dlitz.net>2009-10-10 16:39:51 -0400
committerDwayne C. Litzenberger <dlitz@dlitz.net>2009-10-12 14:49:01 -0400
commit22fe3248e64938944d0a8e107552691dbf822d39 (patch)
tree081881f087aec9ae571f177ed6f300a7367f39a4
parent6680b6fff7b18926f17f6804bf08545021f4ae81 (diff)
downloadpycrypto-22fe3248e64938944d0a8e107552691dbf822d39.tar.gz
SelfTest: Add tests for Counter wraparound behaviour and for the 'carry' attribute
-rw-r--r--lib/Crypto/SelfTest/Util/test_Counter.py45
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