Change in osmo-ttcn3-hacks[master]: MGCP_Test: add function to check for RTP err counters

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Wed Jul 25 18:44:54 UTC 2018


Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/10154 )

Change subject: MGCP_Test: add function to check for RTP err counters
......................................................................

MGCP_Test: add function to check for RTP err counters

At the moment we check the error counters of the RTP statistics in
the testcases. However, in most situations we will do the check to
make sure that no errors occurred (all counters == 0). Rather than
having a long tail of if statements in the testcases we should have
a function for this. This also makes it much easier in case we add
more error countes lateron.

- add and use function f_rtpem_stats_err_check()

Change-Id: I69e5f80b0765284ec99056ce62c315461967d2a1
Related: OS#3384
---
M library/RTP_Emulation.ttcn
M mgw/MGCP_Test.ttcn
2 files changed, 50 insertions(+), 47 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/library/RTP_Emulation.ttcn b/library/RTP_Emulation.ttcn
index 2a358a9..fcb158b 100644
--- a/library/RTP_Emulation.ttcn
+++ b/library/RTP_Emulation.ttcn
@@ -242,6 +242,42 @@
 	return true;
 }
 
+/* Check the statistics for general signs of errors. This is a basic general
+ * check that will fit most situations and  is intended to be executed by
+ * the testcases as as needed. */
+function f_rtpem_stats_err_check(RtpemStats s) {
+	log("stats: ", s);
+
+	/* Check if there was some activity at either on the RX or on the
+	 * TX side, but complete silence would indicate some problem */
+	if (s.num_pkts_tx < 1 and s.num_pkts_rx < 1) {
+		setverdict(fail, "no RTP packet activity detected (packets)");
+		mtc.stop;
+	}
+	if (s.bytes_payload_tx < 1 and s.bytes_payload_rx < 1) {
+		setverdict(fail, "no RTP packet activity detected (bytes)");
+		mtc.stop;
+	}
+
+	/* Check error counters */
+	if (s.num_pkts_rx_err_seq != 0) {
+		setverdict(fail, "RTP packet sequence number errors occurred");
+		mtc.stop;
+	}
+	if (s.num_pkts_rx_err_ts != 0) {
+		setverdict(fail, "RTP packet timestamp errors occurred");
+		mtc.stop;
+	}
+	if (s.num_pkts_rx_err_pt != 0) {
+		setverdict(fail, "RTP packet payload type errors occurred");
+		mtc.stop;
+	}
+	if (s.num_pkts_rx_err_disabled != 0) {
+		setverdict(fail, "RTP packets received while RX was disabled");
+		mtc.stop;
+	}
+}
+
 template PDU_RTP ts_RTP(BIT32_BO_LAST ssrc, INT7b pt, LIN2_BO_LAST seq, uint32_t ts,
 			octetstring payload, BIT1 marker := '0'B) := {
 	version := 2,
diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn
index 264ac28..a6d3460 100644
--- a/mgw/MGCP_Test.ttcn
+++ b/mgw/MGCP_Test.ttcn
@@ -961,21 +961,8 @@
 		if (stats.bytes_payload_tx < 190) {
 			setverdict(fail);
 		}
-		if (stats.num_pkts_rx != 0) {
-			setverdict(fail);
-		}
-		if (stats.num_pkts_rx_err_seq != 0) {
-			setverdict(fail);
-		}
-		if (stats.num_pkts_rx_err_ts != 0) {
-			setverdict(fail);
-		}
-		if (stats.num_pkts_rx_err_pt != 0) {
-			setverdict(fail);
-		}
-		if (stats.num_pkts_rx_err_disabled != 0) {
-			setverdict(fail);
-		}
+
+		f_rtpem_stats_err_check(stats);
 
 		setverdict(pass);
 	}
@@ -1005,18 +992,8 @@
 		if (stats.bytes_payload_tx != stats.bytes_payload_rx) {
 			setverdict(fail);
 		}
-		if (stats.num_pkts_rx_err_seq != 0) {
-			setverdict(fail);
-		}
-		if (stats.num_pkts_rx_err_ts != 0) {
-			setverdict(fail);
-		}
-		if (stats.num_pkts_rx_err_pt != 0) {
-			setverdict(fail);
-		}
-		if (stats.num_pkts_rx_err_disabled != 0) {
-			setverdict(fail);
-		}
+
+		f_rtpem_stats_err_check(stats);
 
 		setverdict(pass);
 	}
@@ -1068,10 +1045,8 @@
 			mtc.stop;
 		}
 
-		if (stats[0].num_pkts_rx_err_pt > 0 or stats[1].num_pkts_rx_err_pt > 0) {
-			setverdict(fail, "RTP packets with wrong payload type received");
-			mtc.stop;
-		}
+		f_rtpem_stats_err_check(stats[0]);
+		f_rtpem_stats_err_check(stats[1]);
 
 		setverdict(pass);
 	}
@@ -1174,20 +1149,15 @@
 			setverdict(fail, "number of packets not within normal parameters");
 			mtc.stop;
 		}
-		if (stats[0].num_pkts_rx_err_pt > 0) {
-			setverdict(fail, "RTP packets with wrong payload type received");
-			mtc.stop;
-		}
 
 		temp := stats[1].num_pkts_tx - num_pkts_tx[1] - stats[0].num_pkts_rx;
 		if (temp > 3 or temp < -3) {
 			setverdict(fail, "number of packets not within normal parameters");
 			mtc.stop;
 		}
-		if (stats[0].num_pkts_rx_err_pt > 0) {
-			setverdict(fail, "RTP packets with wrong payload type received");
-			mtc.stop;
-		}
+
+		f_rtpem_stats_err_check(stats[0]);
+		f_rtpem_stats_err_check(stats[1]);
 
 		/* Tear down */
 		f_flow_delete(RTPEM[0]);
@@ -1240,10 +1210,8 @@
 			mtc.stop;
 		}
 
-		if (stats[0].num_pkts_rx_err_pt > 0 or stats[1].num_pkts_rx_err_pt > 0) {
-			setverdict(fail, "RTP packets with wrong payload type received");
-			mtc.stop;
-		}
+		f_rtpem_stats_err_check(stats[0]);
+		f_rtpem_stats_err_check(stats[0]);
 
 		setverdict(pass);
 	}
@@ -1308,10 +1276,9 @@
 			mtc.stop;
 		}
 
-		if (stats[0].num_pkts_rx_err_pt > 0 or stats[1].num_pkts_rx_err_pt > 0) {
-			setverdict(fail, "RTP packets with wrong payload type received");
-			mtc.stop;
-		}
+		f_rtpem_stats_err_check(stats[0]);
+		f_rtpem_stats_err_check(stats[1]);
+		f_rtpem_stats_err_check(stats[2]);
 
 		setverdict(pass);
 	}

-- 
To view, visit https://gerrit.osmocom.org/10154
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I69e5f80b0765284ec99056ce62c315461967d2a1
Gerrit-Change-Number: 10154
Gerrit-PatchSet: 3
Gerrit-Owner: dexter <pmaier at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20180725/d9ef7cf7/attachment.htm>


More information about the gerrit-log mailing list