コード例 #1
0
def test_should_correctly_report_size():
    bucket = []
    buffer = CoalescingRingBuffer(2)

    eq_(buffer.size, 0)
    ok_(buffer.empty)
    not_(buffer.full)

    buffer.offer('asd')

    eq_(buffer.size, 1)
    not_(buffer.empty)
    not_(buffer.full)

    buffer.offer(1, 'qwe')

    eq_(buffer.size, 2)
    not_(buffer.empty)
    ok_(buffer.full)

    fetched = buffer.poll(bucket, 1)

    eq_(fetched, 1)
    eq_(buffer.size, 1)
    not_(buffer.empty)
    not_(buffer.full)

    fetched = buffer.poll(bucket, 1)

    eq_(fetched, 1)
    eq_(buffer.size, 0)
    ok_(buffer.empty)
    not_(buffer.full)
コード例 #2
0
def test_should_correctly_report_size():
    bucket = []
    buffer = CoalescingRingBuffer(2)

    eq_(buffer.size, 0)
    ok_(buffer.empty)
    not_(buffer.full)

    buffer.offer('asd')

    eq_(buffer.size, 1)
    not_(buffer.empty)
    not_(buffer.full)

    buffer.offer(1, 'qwe')

    eq_(buffer.size, 2)
    not_(buffer.empty)
    ok_(buffer.full)

    fetched = buffer.poll(bucket, 1)

    eq_(fetched, 1)
    eq_(buffer.size, 1)
    not_(buffer.empty)
    not_(buffer.full)

    fetched = buffer.poll(bucket, 1)

    eq_(fetched, 1)
    eq_(buffer.size, 0)
    ok_(buffer.empty)
    not_(buffer.full)
コード例 #3
0
def test_should_hot_have_memory_leaks():
    counter = Counter()
    buffer = CoalescingRingBuffer(16)

    buffer.offer(CountingValue(counter))

    for key in (1, 2, 1):
        buffer.offer(CountingKey(key, counter), CountingValue(counter))

    buffer.offer(CountingValue(counter))

    eq_(buffer.size, 4)

    buffer.poll([], 1)
    buffer.poll([])

    ok_(buffer.empty)

    # to trigger the clean
    buffer.offer(None)
    gc.collect()

    eq_(counter.value, 8)
コード例 #4
0
def test_should_hot_have_memory_leaks():
    counter = Counter()
    buffer = CoalescingRingBuffer(16)

    buffer.offer(CountingValue(counter))

    for key in (1, 2, 1):
        buffer.offer(CountingKey(key, counter), CountingValue(counter))

    buffer.offer(CountingValue(counter))

    eq_(buffer.size, 4)

    buffer.poll([], 1)
    buffer.poll([])

    ok_(buffer.empty)

    # to trigger the clean
    buffer.offer(None)
    gc.collect()

    eq_(counter.value, 8)