Пример #1
0
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)
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
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]
Пример #5
0
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)
Пример #6
0
def make_testcase(param):
    data = to_bytes(param['data'])
    param['dtree'] = model.DataTree(data, param['spec'])
    param['data'] = data
    return param
Пример #7
0
def test_unknown_typename():

    #FIXME use custom error for syntax errors
    with pytest.raises(OSError):
        dtree = model.DataTree('', spec_unknown_type_name_1)