diff --git a/test/py/control/tbuf_dump.py b/test/py/control/tbuf_dump.py index 8acb307ccfc427127e9109424a8ab9fc172e87e3..a2cd06c21584a2e9bf0478386fbd346e7fe3f9e7 100755 --- a/test/py/control/tbuf_dump.py +++ b/test/py/control/tbuf_dump.py @@ -291,6 +291,14 @@ class Tbuf: self.logger.info(f"tbuf_dump_done: {self.sdp.tbuf_dump_done}") def verify_dump(self): + def test_value(name, value, expected_value): + if value == expected_value: + self.print_log(f" valid {name} = {value}") + return True + else: + self.print_log(f" wrong {name} = {value}, expected {expected_value}") + return False + success = True # first get all values from the nodes dump_nof_packets = self.sdp.tbuf_dump_nof_packets @@ -309,31 +317,15 @@ class Tbuf: for n in range(self.n_nodes): expected_nof_packets[n] = dump_nof_packets[n] * bin(self.en[n]).count('1') - if memory_read_nof_packets != expected_nof_packets: - self.print_log(f"wrong tbuf_memory_read_nof_packets = {memory_read_nof_packets} expected {expected_nof_packets}") - success = False - if memory_read_nof_crc_errors.count(0) != self.n_nodes: - self.print_log(f"wrong tbuf_memory_read_nof_crc_errors = {memory_read_nof_crc_errors}") - success = False - if memory_read_nof_rsn_errors.count(0) != self.n_nodes: - self.print_log(f"wrong tbuf_memory_read_nof_rsn_errors = {memory_read_nof_rsn_errors}") - success = False - if output_nof_packets != memory_read_nof_packets: - self.print_log(f"wrong tbuf_output_nof_packets = {output_nof_packets} expected {memory_read_nof_packets}") - success = False - if tbuf_state.tbuf_arbiter.state != ["idle"] * self.n_nodes: - self.print_log(f"wrong tbuf_state = {tbuf_state.tbuf_arbiter.state}") - success = False - if ddr_fifo_full.count(0) != self.n_nodes: - self.print_log(f"wrong ddr_fifo_full = {ddr_fifo_full}") - success = False - if ddr_wr_fifo_usedw.count(0) != self.n_nodes: - self.print_log(f"wrong ddr_wr_fifo_usedw = {ddr_wr_fifo_usedw}") - success = False - if ddr_rd_fifo_usedw.count(0) != self.n_nodes: - self.print_log(f"wrong ddr_rd_fifo_usedw = {ddr_rd_fifo_usedw}") - success = False - self.print_result("verify_dump:", success) + success &= test_value("tbuf_memory_read_nof_packets", memory_read_nof_packets, expected_nof_packets) + success &= test_value("tbuf_memory_read_nof_crc_errors", memory_read_nof_crc_errors, [0]*self.n_nodes) + success &= test_value("tbuf_memory_read_nof_rsn_errors", memory_read_nof_rsn_errors, [0]*self.n_nodes) + success &= test_value("tbuf_output_nof_packets", output_nof_packets, memory_read_nof_packets) + success &= test_value("tbuf_state.arbiter", tbuf_state.tbuf_arbiter.state, ["idle"] * self.n_nodes) + success &= test_value("ddr_fifo_full", ddr_fifo_full, [0]*self.n_nodes) + success &= test_value("ddr_wr_fifo_usedw", ddr_wr_fifo_usedw, [0]*self.n_nodes) + success &= test_value("ddr_rd_fifo_usedw", ddr_rd_fifo_usedw, [0]*self.n_nodes) + self.print_result("Verify dump statistics", success) def finish_dump(self): # Disable dump @@ -419,16 +411,16 @@ def start_processing(client, sdp): sdp.sdp_info_observation_id = [12345678] * client.n_nodes logger.info("Setup 10GbE output source for ping") - SRC_MACs = ['00:22:86:08:00:00','00:22:86:08:00:01','00:22:86:08:00:02','00:22:86:08:00:03'] - SRC_IPs = ['192.168.0.01','192.168.0.02','192.168.0.03','192.168.0.04'] - SRC_PORTs = [0xD000,0xD001,0xD002,0xD003] + SRC_MACs = ['00:22:86:08:00:00', '00:22:86:08:00:01', '00:22:86:08:00:02', '00:22:86:08:00:03'] + SRC_IPs = ['192.168.0.01', '192.168.0.02', '192.168.0.03', '192.168.0.04'] + SRC_PORTs = [0xD000, 0xD001, 0xD002, 0xD003] sdp.beamlet_output_hdr_eth_source_mac = SRC_MACs sdp.beamlet_output_hdr_ip_source_address = SRC_IPs sdp.beamlet_output_hdr_udp_source_port = SRC_PORTs logger.info("Enable processing") sdp.processing_enable = [True] * client.n_nodes - time.sleep(2.0) + time.sleep(1.0) logger.info("Monitor input samples") logger.info(f"signal_input_bsn = {sdp.signal_input_bsn}") @@ -593,7 +585,7 @@ def main(): logger.info(f"Run record-freeze-dump {args.repeat}x") for i in range(args.repeat): if args.repeat > 1: - logger.info(f"record-freeze-dump run nr {i+1}") + logger.info(f"RECORD-FREEZE-DUMP run nr {i+1}") run_record(tbuf, args.record, args.wgperiods) run_dump(tbuf, dumpnode_list, args.mbps, args.antennas, args.dump_page_offset, args.dump_nof_pages, args.dump_verify) run_tbuf_state(tbuf, args.state, node_list)