Add thread range generator
This commit is contained in:
@@ -184,5 +184,16 @@ class TestDatabase(TestBase):
|
||||
self.assertEqual(flags, 5)
|
||||
|
||||
|
||||
def test_backend_sql_custom(self):
|
||||
chain_spec = ChainSpec('evm', 'bloxberg', 8996, 'foo')
|
||||
flags = 5
|
||||
flags_target = 1023
|
||||
flag_count = 10
|
||||
backend = SQLBackend.custom(chain_spec, 666, 42, 2, flags, flag_count)
|
||||
self.assertEqual(((42, 2), flags), backend.start())
|
||||
self.assertEqual(((42, 2), flags), backend.get())
|
||||
self.assertEqual((666, flags_target), backend.target())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
29
tests/test_mem.py
Normal file
29
tests/test_mem.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# standard imports
|
||||
import unittest
|
||||
|
||||
# external imports
|
||||
from chainlib.chain import ChainSpec
|
||||
|
||||
# local imports
|
||||
from chainsyncer.backend.memory import MemBackend
|
||||
|
||||
# testutil imports
|
||||
from tests.chainsyncer_base import TestBase
|
||||
|
||||
|
||||
class TestMem(TestBase):
|
||||
|
||||
def test_backend_mem_custom(self):
|
||||
chain_spec = ChainSpec('evm', 'bloxberg', 8996, 'foo')
|
||||
flags = int(5).to_bytes(2, 'big')
|
||||
#flags_target = int(1024-1).to_bytes(2, 'big')
|
||||
flag_count = 10
|
||||
backend = MemBackend.custom(chain_spec, 666, 42, 2, flags, flag_count, object_id='xyzzy')
|
||||
self.assertEqual(((42, 2), flags), backend.start())
|
||||
self.assertEqual(((42, 2), flags), backend.get())
|
||||
self.assertEqual((666, flags), backend.target())
|
||||
self.assertEqual(backend.object_id, 'xyzzy')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
12
tests/test_thread.py
Normal file
12
tests/test_thread.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# standard imports
|
||||
import logging
|
||||
import unittest
|
||||
|
||||
# test imports
|
||||
from tests.chainsyncer_base import TestBase
|
||||
|
||||
|
||||
class TestThreadRange(TestBase):
|
||||
|
||||
def test_hello(self):
|
||||
ThreadPoolRangeHistorySyncer(None, 3)
|
||||
56
tests/test_thread_range.py
Normal file
56
tests/test_thread_range.py
Normal file
@@ -0,0 +1,56 @@
|
||||
# standard imports
|
||||
import unittest
|
||||
import logging
|
||||
|
||||
# external imports
|
||||
from chainlib.chain import ChainSpec
|
||||
|
||||
# local imports
|
||||
from chainsyncer.backend.memory import MemBackend
|
||||
from chainsyncer.driver.threadrange import (
|
||||
range_to_backends,
|
||||
ThreadPoolRangeHistorySyncer,
|
||||
)
|
||||
from chainsyncer.unittest.base import MockConn
|
||||
|
||||
# testutil imports
|
||||
from tests.chainsyncer_base import TestBase
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
logg = logging.getLogger()
|
||||
|
||||
|
||||
class TestThreadRange(TestBase):
|
||||
|
||||
def test_range_split_even(self):
|
||||
chain_spec = ChainSpec('evm', 'bloxberg', 8996, 'foo')
|
||||
backends = range_to_backends(chain_spec, 5, 3, 20, 5, 10, MemBackend, 3)
|
||||
self.assertEqual(len(backends), 3)
|
||||
self.assertEqual(((5, 3), 5), backends[0].start())
|
||||
self.assertEqual((9, 1023), backends[0].target())
|
||||
self.assertEqual(((10, 0), 0), backends[1].start())
|
||||
self.assertEqual((14, 1023), backends[1].target())
|
||||
self.assertEqual(((15, 0), 0), backends[2].start())
|
||||
self.assertEqual((19, 1023), backends[2].target())
|
||||
|
||||
|
||||
def test_range_split_underflow(self):
|
||||
chain_spec = ChainSpec('evm', 'bloxberg', 8996, 'foo')
|
||||
backends = range_to_backends(chain_spec, 5, 3, 7, 5, 10, MemBackend, 3)
|
||||
self.assertEqual(len(backends), 2)
|
||||
self.assertEqual(((5, 3), 5), backends[0].start())
|
||||
self.assertEqual((5, 1023), backends[0].target())
|
||||
self.assertEqual(((6, 0), 0), backends[1].start())
|
||||
self.assertEqual((6, 1023), backends[1].target())
|
||||
|
||||
|
||||
def test_range_syncer(self):
|
||||
chain_spec = ChainSpec('evm', 'bloxberg', 8996, 'foo')
|
||||
backends = range_to_backends(chain_spec, 5, 3, 20, 5, 10, MemBackend, 3)
|
||||
|
||||
syncer = ThreadPoolRangeHistorySyncer(MockConn, 3, backends, self.interface)
|
||||
syncer.loop(1, None)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user