def test_recv_buff(self):
        from rospy.impl.tcpros_base import recv_buff

        buff = cStringIO.StringIO()
        try:
            recv_buff(MockEmptySock(), buff, 1)
            self.fail("recv_buff should have raised TransportTerminated")
        except rospy.impl.tcpros_base.TransportTerminated:
            self.assertEquals('', buff.getvalue())

        self.assertEquals(5, recv_buff(MockSock('1234567890'), buff, 5))
        self.assertEquals('12345', buff.getvalue())
        buff = cStringIO.StringIO()

        self.assertEquals(10, recv_buff(MockSock('1234567890'), buff, 100))
        self.assertEquals('1234567890', buff.getvalue())
 def _read_service_error(self, sock, b):
     """
     Read service error from sock 
     @param sock: socket to read from
     @type  sock: socket
     @param b: currently read data from sock
     @type  b: StringIO
     """
     buff_size = 256 #can be small given that we are just reading an error string
     while b.tell() < 5:
         recv_buff(sock, b, buff_size)
     bval = b.getvalue()
     (length,) = struct.unpack('<I', bval[1:5]) # ready in len byte
     while b.tell() < (5 + length):
         recv_buff(sock, b, buff_size)
     bval = b.getvalue()
     return struct.unpack('<%ss'%length, bval[5:5+length])[0] # ready in len byte
示例#3
0
 def _read_service_error(self, sock, b):
     """
     Read service error from sock 
     @param sock: socket to read from
     @type  sock: socket
     @param b: currently read data from sock
     @type  b: StringIO
     """
     buff_size = 256 #can be small given that we are just reading an error string
     while b.tell() < 5:
         recv_buff(sock, b, buff_size)
     bval = b.getvalue()
     (length,) = struct.unpack('<I', bval[1:5]) # ready in len byte
     while b.tell() < (5 + length):
         recv_buff(sock, b, buff_size)
     bval = b.getvalue()
     return struct.unpack('<%ss'%length, bval[5:5+length])[0] # ready in len byte
    def test_recv_buff(self):
        from rospy.impl.tcpros_base import recv_buff


        buff = cStringIO.StringIO()
        try:
            recv_buff(MockEmptySock(), buff, 1)
            self.fail("recv_buff should have raised TransportTerminated")
        except rospy.impl.tcpros_base.TransportTerminated:
            self.assertEquals('', buff.getvalue())

        self.assertEquals(5, recv_buff(MockSock('1234567890'), buff, 5))
        self.assertEquals('12345', buff.getvalue())
        buff = cStringIO.StringIO()
        
        self.assertEquals(10, recv_buff(MockSock('1234567890'), buff, 100))
        self.assertEquals('1234567890', buff.getvalue())