test case for openclpow module

This commit is contained in:
navjot 2021-01-17 00:28:40 +05:30 committed by Muzahid
parent a5786f72e6
commit 27383ff635
Signed by untrusted user: cis-muzahid
GPG Key ID: 1DC85E7D3AB613EA
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_)