Пример #1
0
 def test_per_writeLength(self):
     """
     @summary: test writeLength function in per module
     """
     l1 = per.writeLength(0x1a)
     self.assertTrue(isinstance(l1, type.UInt8), "bad write length type in small case")
     
     l2 = per.writeLength(0x7f)
     self.assertTrue(isinstance(l2, type.UInt8), "bad write length type in small case limit")
     
     l3 = per.writeLength(0x80)
     self.assertTrue(isinstance(l3, type.UInt16Be), "bad write length type in large case limit")
     
     l4 = per.writeLength(0xab)
     self.assertTrue(isinstance(l4, type.UInt16Be), "bad write length type in large case")
Пример #2
0
 def test_per_readInteger(self):
     """
     @summary: test readInteger function in per module
     """
     for t in [type.UInt8, type.UInt16Be, type.UInt32Be]:
         v = t(3)
         s = type.Stream()
         s.writeType((per.writeLength(type.sizeof(v)), v))
         s.pos = 0
         
         self.assertTrue(per.readInteger(s) == 3, "invalid readLength for type %s"%t)
     
     #error case
     for l in [0, 3, 5]:
         s = type.Stream()
         s.writeType(per.writeLength(l))
         s.pos = 0
         
         self.assertRaises(error.InvalidValue, per.readInteger, s)
Пример #3
0
    def test_per_writeLength(self):
        """
        @summary: test writeLength function in per module
        """
        l1 = per.writeLength(0x1a)
        self.assertTrue(isinstance(l1, type.UInt8),
                        "bad write length type in small case")

        l2 = per.writeLength(0x7f)
        self.assertTrue(isinstance(l2, type.UInt8),
                        "bad write length type in small case limit")

        l3 = per.writeLength(0x80)
        self.assertTrue(isinstance(l3, type.UInt16Be),
                        "bad write length type in large case limit")

        l4 = per.writeLength(0xab)
        self.assertTrue(isinstance(l4, type.UInt16Be),
                        "bad write length type in large case")
Пример #4
0
    def test_per_readInteger(self):
        """
        @summary: test readInteger function in per module
        """
        for t in [type.UInt8, type.UInt16Be, type.UInt32Be]:
            v = t(3)
            s = type.Stream()
            s.writeType((per.writeLength(type.sizeof(v)), v))
            s.pos = 0

            self.assertTrue(
                per.readInteger(s) == 3, "invalid readLength for type %s" % t)

        #error case
        for l in [0, 3, 5]:
            s = type.Stream()
            s.writeType(per.writeLength(l))
            s.pos = 0

            self.assertRaises(error.InvalidValue, per.readInteger, s)
Пример #5
0
 def send(self, channelId, data):
     """
     @summary: Specific send function for channelId
     @param channelId: {integer} Channel use to send
     @param data: {type.type | tuple} message to send
     """
     self._transport.send((self.writeMCSPDUHeader(UInt8(self._sendOpcode)),
                           per.writeInteger16(self._userId,
                                              Channel.MCS_USERCHANNEL_BASE),
                           per.writeInteger16(channelId), UInt8(0x70),
                           per.writeLength(sizeof(data)), data))