test case for openclpow module

This commit is contained in:
navjot 2021-01-17 00:28:40 +05:30
parent 9c5d329c90
commit 1612f9c778
No known key found for this signature in database
GPG Key ID: 9EE70AFD71357F1C
2 changed files with 29 additions and 13 deletions

View File

@ -2,9 +2,8 @@
""" """
Module for Proof of Work using OpenCL Module for Proof of Work using OpenCL
""" """
import hashlib
import os import os
from struct import pack, unpack from struct import pack
import paths import paths
from bmconfigparser import BMConfigParser from bmconfigparser import BMConfigParser
@ -109,14 +108,3 @@ def do_opencl_pow(hash_, target):
raise Exception("Interrupted") raise Exception("Interrupted")
# logger.debug("Took %d tries.", progress) # logger.debug("Took %d tries.", progress)
return output[0][0] return output[0][0]
if __name__ == "__main__":
initCL()
target_ = 54227212183
initialHash = ("3758f55b5a8d902fd3597e4ce6a2d3f23daff735f65d9698c270987f4e67ad590"
"b93f3ffeba0ef2fd08a8dc2f87b68ae5a0dc819ab57f22ad2c4c9c8618a43b3").decode("hex")
nonce = do_opencl_pow(initialHash.encode("hex"), target_)
trialValue, = unpack(
'>Q', hashlib.sha512(hashlib.sha512(pack('>Q', nonce) + initialHash).digest()).digest()[0:8])
print "{} - value {} < {}".format(nonce, trialValue, target_)

View File

@ -0,0 +1,28 @@
"""
Tests for openclpow module
"""
import hashlib
import unittest
import pybitmessage.openclpow as openclpow
from struct import pack, unpack
class TestOpenClPow(unittest.TestCase):
"""
Main opencl test case
"""
@unittest.skipIf(not openclpow.libAvailable,
"pyopencl is not installed")
def test_openclpow(self):
"""Check the working of openclpow module"""
openclpow.initCL()
target_ = 54227212183
initialHash = ("3758f55b5a8d902fd3597e4ce6a2d3f23daff735f65d9698c270987f4e67ad590"
"b93f3ffeba0ef2fd08a8dc2f87b68ae5a0dc819ab57f22ad2c4c9c8618a43b3").decode("hex")
nonce = openclpow.do_opencl_pow(initialHash.encode("hex"), target_)
trialValue, = unpack(
'>Q', hashlib.sha512(hashlib.sha512(pack('>Q', nonce) + initialHash).digest()).digest()[0:8])
self.assertLess((nonce - trialValue), target_)