def test_leveldb_log_small(spec_log, data_log_small): dtree = model.DataTree(data_log_small, spec_log) assert model.make_python_object(dtree.head_blocks) == [] records = dtree.tail_block.records assert len(records) == 2 assert records[0].checksum == 0xC227CC1B assert records[0].length == 33 assert records[0].rtype == 1 assert len(records[0].data) == 33 assert model.eval('sizeof(tail_block.records[0])', dtree) == 40 assert records[1].checksum == 0x6EC2C495 assert records[1].length == 39 assert records[1].rtype == 1 assert len(records[1].data) == 39 assert model.eval('sizeof(tail_block.records[1])', dtree) == 46 assert model.eval('sizeof(tail_block.records)', dtree) == 86 assert model.eval('sizeof(tail_block)', dtree) == 86 with pytest.raises(IndexError): dummy = records[2] with pytest.raises(ValueError): model.eval('tail_block.records[2]', dtree)
def test_sst_index_block(spec_sst_index, data_sst_index_block_1): data, nb_entries = (data_sst_index_block_1['data'], data_sst_index_block_1['nb_entries']) dtree = model.DataTree(data, spec_sst_index) assert len(dtree.entries) == nb_entries last_index = None for i, entry in enumerate(dtree.entries): last_index = i model.make_python_object(entry) assert last_index == nb_entries - 1 assert len(dtree.restarts) == dtree.nb_restarts assert model.get_size(dtree.restarts) == dtree.nb_restarts * 4
def test_leveldb_log_empty(spec_log, data_log_empty): dtree = model.DataTree(data_log_empty, spec_log) assert model.make_python_object(dtree.head_blocks) == [] assert model.make_python_object(dtree.tail_block.records) == [] assert len(dtree.head_blocks) == 0 assert len(dtree.tail_block.records) == 0 assert model.eval('sizeof(head_blocks)', dtree) == 0 assert model.eval('sizeof(tail_block.records)', dtree) == 0 with pytest.raises(IndexError): dtree.tail_block.records[0] with pytest.raises(ValueError): model.eval('tail_block.records[0]', dtree)
def test_leveldb_log_multiblock(spec_log, data_log_multiblock): dtree = model.DataTree(data_log_multiblock, spec_log) assert len(dtree.head_blocks) == 1 assert len(dtree.head_blocks[0].records) == 762 assert len(dtree.tail_block.records) == 3 assert model.eval('sizeof(head_blocks)', dtree) == 32768 assert model.eval('sizeof(head_blocks[0])', dtree) == 32768 assert model.eval('sizeof(head_blocks[0].records)', dtree) == 32766 assert model.eval('sizeof(head_blocks[0].trailer)', dtree) == 2 assert model.make_python_object(model.eval('head_blocks[0].trailer', dtree)) == '\x00\x00' assert model.eval('sizeof(tail_block.records)', dtree) == 43 * 3 records = dtree.head_blocks[0].records dummy = records[761] with pytest.raises(IndexError): dummy = records[762]
def test_leveldb_log_browse(spec_log, data_log_empty, data_log_small): inputs = [data_log_empty, data_log_small] for data in inputs: dtree = model.DataTree(data, spec_log) block_count = 0 for block in dtree.head_blocks: block_count += 1 record_count = 0 for record in block.records: record_count += 1 assert record_count == len(block.records) assert block_count == len(dtree.head_blocks) block = dtree.tail_block record_count = 0 for record in block.records: record_count += 1 assert record_count == len(block.records)
def make_testcase(param): data = to_bytes(param['data']) param['dtree'] = model.DataTree(data, param['spec']) param['data'] = data return param
def test_unknown_typename(): #FIXME use custom error for syntax errors with pytest.raises(OSError): dtree = model.DataTree('', spec_unknown_type_name_1)