From 25411e22c955761188fc68675de5023b7f39a4bc Mon Sep 17 00:00:00 2001 From: Andrew Kozlik Date: Fri, 12 Mar 2021 16:12:46 +0100 Subject: [PATCH] test(core): Add unit test for modtrezorconfig counter. --- core/tests/test_trezor.config.py | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/core/tests/test_trezor.config.py b/core/tests/test_trezor.config.py index 340c0c04a..c17397691 100644 --- a/core/tests/test_trezor.config.py +++ b/core/tests/test_trezor.config.py @@ -189,6 +189,49 @@ class TestConfig(unittest.TestCase): with self.assertRaises(ValueError): config.get(192, 1) + def test_counter(self): + config.init() + config.wipe() + + # Test writable_locked when storage is locked. + + config.lock() + + with self.assertRaises(RuntimeError): + config.set_counter(1, 2, 0, False) + + with self.assertRaises(RuntimeError): + config.next_counter(1, 2, False) + + config.set_counter(1, 2, 100, True) + for i in range(100, 200): + self.assertEqual(config.next_counter(1, 2, True), i + 1) + + # Test increment with storage unlocked. + + self.assertEqual(config.unlock('', None), True) + + for i in range(200, 300): + self.assertEqual(config.next_counter(1, 2, True), i + 1) + + # Test counter deletion. + + config.delete(1, 2, True, True) + self.assertEqual(config.next_counter(1, 2, True), 0) + + # Test overflow protection. + + with self.assertRaises(RuntimeError): + config.set_counter(1, 2, 0x1_0000_0000, True) + + start = 0xFFFF_FFFF - 100 + config.set_counter(1, 2, start, True) + for i in range(start, 0xFFFF_FFFF): + self.assertEqual(config.next_counter(1, 2, True), i + 1) + + with self.assertRaises(RuntimeError): + config.next_counter(1, 2, True) + def test_compact(self): config.init() config.wipe()