Ejemplo n.º 1
0
 def test_getslice(self):
     buf = RBuffer(10)
     buf.setitem(0, '\x01')
     buf.setitem(1, '\x02')
     buf.setitem(2, '\x03')
     assert buf.getslice(0, 3) == '\x01\x02\x03'
     buf.free()
Ejemplo n.º 2
0
 def __init__(self, space, w_arg):
     if space.is_true(space.isinstance(w_arg, space.w_unicode)):
         arg = space.unicode_w(w_arg)
         size = len(arg) * rffi.sizeof(lltype.UniChar)
         self._buffer = RBuffer(size)
         # XXX memory copy interface, redesign and share
         UNICODE_ARRAY_P = rffi.CArrayPtr(lltype.UniChar)
         ll_buffer = rffi.cast(UNICODE_ARRAY_P, self._buffer.ll_buffer)
         for i in range(len(arg)):
             ll_buffer[i] = arg[i]
     else:
         size = space.int_w(space.len(w_arg))
         self._buffer = RBuffer(size)
         for i in range(size):
             self._buffer.setitem(
                 i,
                 rffi.cast(lltype.Char,
                           space.int_w(space.getitem(w_arg,
                                                     space.wrap(i)))))
     self.size = size
Ejemplo n.º 3
0
 def test_creation(self):
     buf = RBuffer(3)
     assert buf.address()
     buf.free()
Ejemplo n.º 4
0
 def test_fromaddress(self):
     buf = RBuffer(10)
     buf.setitem(2, '\x03')
     buf2 = RBuffer(7, buf.address() + 2)
     assert buf2.getitem(0) == '\x03'
     buf.free()
Ejemplo n.º 5
0
 def test_getsetitem(self):
     buf = RBuffer(10)
     assert buf.getitem(3) == '\x00'
     buf.setitem(4, '\x01')
     assert buf.getitem(4) == '\x01'
     buf.free()