def _get_header(buffer): packet = PortAgentPacket() if(len(buffer) < HEADER_SIZE): return None header = buffer[0:HEADER_SIZE] packet.unpack_header(header) if(packet.get_data_length() < 0): return None return packet
def _get_header(buffer): packet = PortAgentPacket() if (len(buffer) < HEADER_SIZE): return None header = buffer[0:HEADER_SIZE] packet.unpack_header(header) if (packet.get_data_length() < 0): return None return packet
def _get_header(buffer): packet = PortAgentPacket() if (len(buffer) < HEADER_SIZE): return None header = buffer[0:HEADER_SIZE] packet.unpack_header(header) if (packet.get_data_length() < 0): return None print "time: %f" % packet.get_timestamp() return packet
def _get_header(buffer): packet = PortAgentPacket() if(len(buffer) < HEADER_SIZE): return None header = buffer[0:HEADER_SIZE] packet.unpack_header(header) if(packet.get_data_length() < 0): return None print "time: %f" % packet.get_timestamp() return packet
class PAClientTestPortAgentPacket(MiUnitTest): @staticmethod def ntp_to_system_time(date): """convert a NTP time to system time""" return date - NTP_DELTA @staticmethod def system_to_ntp_time(date): """convert a system time to a NTP time""" return date + NTP_DELTA def setUp(self): self.pap = PortAgentPacket() # self.test_time = time.time() # self.ntp_time = self.system_to_ntp_time(self.test_time) # self.pap.set_timestamp(self.ntp_time) def test_pack_header(self): test_data = "Only the length of this matters?" test_data_length = len(test_data) self.pap.attach_data(test_data) self.pap.pack_header() self.assertEqual(self.pap.get_data_length(), test_data_length) def test_get_length(self): test_length = 100 self.pap.set_data_length(test_length) got_length = self.pap.get_data_length() self.assertEqual(got_length, test_length) def test_checksum(self): """ This tests the checksum algorithm; if somebody changes the algorithm this test should catch it. Had to jump through some hoops to do this; needed to add set_data_length and set_header because we're building our own header here (the one in PortAgentPacket includes the timestamp so the checksum is not consistent). """ test_data = "This tests the checksum algorithm." test_length = len(test_data) self.pap.attach_data(test_data) # Now build a header variable_tuple = (0xa3, 0x9d, 0x7a, self.pap.DATA_FROM_DRIVER, test_length + HEADER_SIZE, 0x0000, 0) self.pap.set_data_length(test_length) header_format = '>BBBBHHd' size = struct.calcsize(header_format) temp_header = ctypes.create_string_buffer(size) struct.pack_into(header_format, temp_header, 0, *variable_tuple) # Now set the header member in PortAgentPacket to the header # we built self.pap.set_header(temp_header.raw) # Now get the checksum and verify it is what we expect it to be. checksum = self.pap.calculate_checksum() self.assertEqual(checksum, 2) def test_unpack_header(self): self.pap = PortAgentPacket() data_length = 32 data = self.pap.unpack_header(array.array('B', [163, 157, 122, 2, 0, data_length + HEADER_SIZE, 14, 145, 65, 234, 142, 154, 23, 155, 51, 51])) got_timestamp = self.pap.get_timestamp() self.assertEqual(self.pap.get_header_type(), self.pap.DATA_FROM_DRIVER) self.assertEqual(self.pap.get_data_length(), data_length) self.assertEqual(got_timestamp, 1105890970.092212) self.assertEqual(self.pap.get_header_recv_checksum(), 3729)
class PAClientTestPortAgentPacket(MiUnitTest): @staticmethod def ntp_to_system_time(date): """convert a NTP time to system time""" return date - NTP_DELTA @staticmethod def system_to_ntp_time(date): """convert a system time to a NTP time""" return date + NTP_DELTA def setUp(self): self.pap = PortAgentPacket() # self.test_time = time.time() # self.ntp_time = self.system_to_ntp_time(self.test_time) # self.pap.set_timestamp(self.ntp_time) def test_pack_header(self): test_data = "Only the length of this matters?" test_data_length = len(test_data) self.pap.attach_data(test_data) self.pap.pack_header() self.assertEqual(self.pap.get_data_length(), test_data_length) def test_get_length(self): test_length = 100 self.pap.set_data_length(test_length) got_length = self.pap.get_data_length() self.assertEqual(got_length, test_length) def test_checksum(self): """ This tests the checksum algorithm; if somebody changes the algorithm this test should catch it. Had to jump through some hoops to do this; needed to add set_data_length and set_header because we're building our own header here (the one in PortAgentPacket includes the timestamp so the checksum is not consistent). """ test_data = "This tests the checksum algorithm." test_length = len(test_data) self.pap.attach_data(test_data) # Now build a header variable_tuple = (0xa3, 0x9d, 0x7a, self.pap.DATA_FROM_DRIVER, test_length + HEADER_SIZE, 0x0000, 0) self.pap.set_data_length(test_length) header_format = '>BBBBHHd' size = struct.calcsize(header_format) temp_header = ctypes.create_string_buffer(size) struct.pack_into(header_format, temp_header, 0, *variable_tuple) # Now set the header member in PortAgentPacket to the header # we built self.pap.set_header(temp_header.raw) # Now get the checksum and verify it is what we expect it to be. checksum = self.pap.calculate_checksum() self.assertEqual(checksum, 2) def test_unpack_header(self): self.pap = PortAgentPacket() data_length = 32 data = self.pap.unpack_header( array.array('B', [ 163, 157, 122, 2, 0, data_length + HEADER_SIZE, 14, 145, 65, 234, 142, 154, 23, 155, 51, 51 ])) got_timestamp = self.pap.get_timestamp() self.assertEqual(self.pap.get_header_type(), self.pap.DATA_FROM_DRIVER) self.assertEqual(self.pap.get_data_length(), data_length) self.assertEqual(got_timestamp, 1105890970.092212) self.assertEqual(self.pap.get_header_recv_checksum(), 3729)