def testDecoderBase(self): # Allocate message, write reference payload msg = Message() msg.init(MSGID) msg.buf.skip(12) msg.buf.write(PAYLOAD) msg.finish() # Allocate and init decoder dec = Decoder() dec.init(msg) # Read try: i8 = dec.readI8() u8 = dec.readU8() i16 = dec.readI16() u16 = dec.readU16() i32 = dec.readI32() u32 = dec.readU32() i64 = dec.readI64() u64 = dec.readU64() sval = dec.readStr() buf = dec.readBuf() f32 = dec.readF32() f64 = dec.readF64() # Check self.assertEqual(VAL_I8, i8) self.assertEqual(VAL_U8, u8) self.assertEqual(VAL_I16, i16) self.assertEqual(VAL_U16, u16) self.assertEqual(VAL_I32, i32) self.assertEqual(VAL_U32, u32) self.assertEqual(VAL_I64, i64) self.assertEqual(VAL_U64, u64) self.assertEqual(VAL_STR, sval) self.assertEqual(len(VAL_BUF), len(buf)) self.assertEqual(VAL_BUF, buf) self.assertEqual(VAL_F32, f32) self.assertEqual(VAL_F64, f64) except DecodeException as ex: self.fail(ex.message) # Clear dec.clear() msg.clear()
def testEncoderBase(self): # Allocate message */ msg = Message() msg.init(MSGID) # Allocate and init encoder enc = Encoder() enc.init(msg) # Write try: enc.writeI8(VAL_I8) enc.writeU8(VAL_U8) enc.writeI16(VAL_I16) enc.writeU16(VAL_U16) enc.writeI32(VAL_I32) enc.writeU32(VAL_U32) enc.writeI64(VAL_I64) enc.writeU64(VAL_U64) enc.writeStr(VAL_STR) enc.writeBuf(VAL_BUF) enc.writeF32(VAL_F32) enc.writeF64(VAL_F64) except EncodeException as ex: self.fail(ex.message) msg.finish() # Buffer check data = msg.buf.getData() header = data[:12] payload = data[12:] self.assertEqual(len(HEADER), len(header)) self.assertEqual(len(PAYLOAD), len(payload)) self.assertEqual(HEADER, header) self.assertEqual(PAYLOAD, payload) # Clear enc.clear() msg.clear()
def testMessageBase(self): msg = Message() # Write msg.write(MSGID, "%hhd%hhu%hd%hu%d%u%lld%llu%s%p%f%lf", VAL_I8, VAL_U8, VAL_I16, VAL_U16, VAL_I32, VAL_U32, VAL_I64, VAL_U64, VAL_STR, VAL_BUF, VAL_F32, VAL_F64) # Buffer check data = msg.buf.getData() header = data[:12] payload = data[12:] self.assertEqual(len(HEADER), len(header)) self.assertEqual(len(PAYLOAD), len(payload)) self.assertEqual(HEADER, header) self.assertEqual(PAYLOAD, payload) # Read res = msg.read("%hhd%hhu%hd%hu%d%u%lld%llu%s%p%f%lf") self.assertEqual(len(res), 12) self.assertEqual(res[0], VAL_I8) self.assertEqual(res[1], VAL_U8) self.assertEqual(res[2], VAL_I16) self.assertEqual(res[3], VAL_U16) self.assertEqual(res[4], VAL_I32) self.assertEqual(res[5], VAL_U32) self.assertEqual(res[6], VAL_I64) self.assertEqual(res[7], VAL_U64) self.assertEqual(res[8], VAL_STR) self.assertEqual(res[9], VAL_BUF) self.assertEqual(res[10], VAL_F32) self.assertEqual(res[11], VAL_F64) # Dump buf = msg.dump() self.assertEqual(MSG_DUMP, buf)
def send(self, msgid, fmt, *args): msg = Message() msg.write(msgid, fmt, *args) self.sendMsg(msg)
def _allocMsg(self, msgid, size): from pomp.message import Message self.msg = Message() self.msg.init(msgid)