mirror of
https://github.com/capnproto/pycapnp.git
synced 2025-03-04 08:24:43 +01:00
Test large reads
This commit is contained in:
parent
239286d4ac
commit
e4c128de61
2 changed files with 55 additions and 0 deletions
13
test/test_large_read.capnp
Normal file
13
test/test_large_read.capnp
Normal file
|
@ -0,0 +1,13 @@
|
|||
@0x86dbb3b256f5d2af;
|
||||
|
||||
struct Row {
|
||||
values @0 :List(Int32);
|
||||
}
|
||||
|
||||
struct MultiArray {
|
||||
rows @0 :List(Row);
|
||||
}
|
||||
|
||||
struct Msg {
|
||||
data @0 :List(UInt8);
|
||||
}
|
42
test/test_large_read.py
Normal file
42
test/test_large_read.py
Normal file
|
@ -0,0 +1,42 @@
|
|||
import pytest
|
||||
import capnp
|
||||
import os
|
||||
import tempfile
|
||||
import sys
|
||||
|
||||
this_dir = os.path.dirname(__file__)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def test_capnp():
|
||||
return capnp.load(os.path.join(this_dir, 'test_large_read.capnp'))
|
||||
|
||||
|
||||
def test_large_read(test_capnp):
|
||||
f = tempfile.TemporaryFile()
|
||||
|
||||
array = test_capnp.MultiArray.new_message()
|
||||
|
||||
row = array.init('rows', 1)[0]
|
||||
values = row.init('values', 10000)
|
||||
for i in range(len(values)):
|
||||
values[i] = i
|
||||
|
||||
array.write_packed(f)
|
||||
f.seek(0)
|
||||
|
||||
array = test_capnp.MultiArray.read_packed(f)
|
||||
del f
|
||||
assert array.rows[0].values[9000] == 9000
|
||||
|
||||
def test_large_read_multiple(test_capnp):
|
||||
f = tempfile.TemporaryFile()
|
||||
msg1 = test_capnp.Msg.new_message()
|
||||
msg1.data = [0x41] * 8192
|
||||
msg1.write(f)
|
||||
msg2 = test_capnp.Msg.new_message()
|
||||
msg2.write(f)
|
||||
f.seek(0)
|
||||
|
||||
for m in test_capnp.Msg.read_multiple(f):
|
||||
pass
|
Loading…
Add table
Reference in a new issue