aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/functional/test_framework/muhash.py11
-rwxr-xr-xtest/functional/test_runner.py1
2 files changed, 12 insertions, 0 deletions
diff --git a/test/functional/test_framework/muhash.py b/test/functional/test_framework/muhash.py
index 7dfce1b756..70a3cc53a0 100644
--- a/test/functional/test_framework/muhash.py
+++ b/test/functional/test_framework/muhash.py
@@ -4,6 +4,7 @@
"""Native Python MuHash3072 implementation."""
import hashlib
+import unittest
from .util import modinv
@@ -88,3 +89,13 @@ class MuHash3072:
val = (self.numerator * modinv(self.denominator, self.MODULUS)) % self.MODULUS
bytes384 = val.to_bytes(384, 'little')
return hashlib.sha256(bytes384).digest()
+
+class TestFrameworkMuhash(unittest.TestCase):
+ def test_muhash(self):
+ muhash = MuHash3072()
+ muhash.insert([0]*32)
+ muhash.insert([1] + [0]*31)
+ muhash.remove([2] + [0]*31)
+ finalized = muhash.digest()
+ # This mirrors the result in the C++ MuHash3072 unit test
+ self.assertEqual(finalized[::-1].hex(), "a44e16d5e34d259b349af21c06e65d653915d2e208e4e03f389af750dc0bfdc3")
diff --git a/test/functional/test_runner.py b/test/functional/test_runner.py
index c948833c42..d7ec9b8b8e 100755
--- a/test/functional/test_runner.py
+++ b/test/functional/test_runner.py
@@ -69,6 +69,7 @@ TEST_EXIT_SKIPPED = 77
TEST_FRAMEWORK_MODULES = [
"address",
"blocktools",
+ "muhash",
"script",
"util",
]