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)