From 581a12536c51e5675229386fa6fa1ec35a9598b7 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Tue, 20 May 2025 09:43:21 -0400 Subject: [PATCH] MT#55283 add stats reporting test Change-Id: Ieb8bf7b1d66686b11c4fff60ba31d267f15738d9 --- t/auto-daemon-tests-measure-rtp.pl | 353 +++++++++++++++++++++++++++++ 1 file changed, 353 insertions(+) diff --git a/t/auto-daemon-tests-measure-rtp.pl b/t/auto-daemon-tests-measure-rtp.pl index 1c78a42e1..e43f9049f 100755 --- a/t/auto-daemon-tests-measure-rtp.pl +++ b/t/auto-daemon-tests-measure-rtp.pl @@ -8,6 +8,7 @@ use NGCP::Rtpengine::AutoTest; use Test::More; use NGCP::Rtpclient::ICE; use POSIX; +use Data::Dumper; autotest_start(qw(--config-file=none -t -1 -i 203.0.113.1 -i 2001:db8:4321::1 --measure-rtp --mos=LQ @@ -25,6 +26,358 @@ my ($sock_a, $sock_b, $sock_c, $sock_d, $port_a, $port_b, $ssrc, $ssrc_b, $resp, +($sock_a, $sock_ax, $sock_b, $sock_bx) = new_call( + [qw(198.51.100.1 7160)], + [qw(198.51.100.1 7161)], + [qw(198.51.100.3 7162)], + [qw(198.51.100.3 7163)], +); + +($port_a, $port_ax) = offer('stats delete w/o from-tag and w/o delete-delay', { }, < 0 } ); +#print Dumper($resp); +#print Dumper($resp->{SSRC}); +is($resp->{SSRC}{0x1234}{bytes}, 172, "0x1234 byte count"); +is($resp->{SSRC}{0x1234}{'highest MOS'}{MOS}, '43', "0x1234 MOS"); +is($resp->{SSRC}{0x6543}{bytes}, 172, "0x6543 byte count"); +is($resp->{SSRC}{0x6543}{'highest MOS'}{MOS}, '43', "0x6543 MOS"); +#print Dumper($resp->{tags}{ft()}{medias}[0]{'egress SSRCs'}); +is($resp->{tags}{ft()}{medias}[0]{'egress SSRCs'}[0]{SSRC}, 0x6543, 'egress SSRC'); +#print Dumper($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}); +is($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}[0]{SSRC}, 0x1234, 'ingress SSRC'); +is($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}[0]{'highest MOS'}{MOS}, '43', 'ingress SSRC MOS'); +#print Dumper($resp->{tags}{ft()}{medias}[0]{streams}[0]{SSRC}); +#print Dumper($resp->{tags}{tt()}{medias}[0]{'egress SSRCs'}); +is($resp->{tags}{tt()}{medias}[0]{'egress SSRCs'}[0]{SSRC}, 0x1234, 'egress SSRC'); +#print Dumper($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}); +#print Dumper($resp->{tags}{tt()}{medias}[0]{streams}[0]{SSRC}); +is($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}[0]{SSRC}, 0x6543, 'ingress SSRC'); +is($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}[0]{'highest MOS'}{MOS}, '43', 'ingress SSRC MOS'); +is($resp->{totals}{RTP}{packets}, 2, 'RTP packet count'); +is($resp->{totals}{RTP}{bytes}, 344, 'RTP octet count'); +is($resp->{totals}{RTCP}{packets}, 2, 'RTCP packet count'); +is($resp->{totals}{RTCP}{bytes}, 104, 'RTCP octet count'); + + + + +($sock_a, $sock_ax, $sock_b, $sock_bx) = new_call( + [qw(198.51.100.1 7164)], + [qw(198.51.100.1 7165)], + [qw(198.51.100.3 7166)], + [qw(198.51.100.3 7167)], +); + +($port_a, $port_ax) = offer('stats delete w/ from-tag and w/o delete-delay', { }, < 0, 'from-tag' => ft() } ); +#print Dumper($resp); +#print Dumper($resp->{SSRC}); +is($resp->{SSRC}{0x1234}{bytes}, 172, "0x1234 byte count"); +is($resp->{SSRC}{0x1234}{'highest MOS'}{MOS}, '43', "0x1234 MOS"); +is($resp->{SSRC}{0x6543}{bytes}, 172, "0x6543 byte count"); +is($resp->{SSRC}{0x6543}{'highest MOS'}{MOS}, '43', "0x6543 MOS"); +#print Dumper($resp->{tags}{ft()}{medias}[0]{'egress SSRCs'}); +is($resp->{tags}{ft()}{medias}[0]{'egress SSRCs'}[0]{SSRC}, 0x6543, 'egress SSRC'); +#print Dumper($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}); +is($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}[0]{SSRC}, 0x1234, 'ingress SSRC'); +is($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}[0]{'highest MOS'}{MOS}, '43', 'ingress SSRC MOS'); +#print Dumper($resp->{tags}{ft()}{medias}[0]{streams}[0]{SSRC}); +#print Dumper($resp->{tags}{tt()}{medias}[0]{'egress SSRCs'}); +is($resp->{tags}{tt()}{medias}[0]{'egress SSRCs'}[0]{SSRC}, 0x1234, 'egress SSRC'); +#print Dumper($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}); +#print Dumper($resp->{tags}{tt()}{medias}[0]{streams}[0]{SSRC}); +is($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}[0]{SSRC}, 0x6543, 'ingress SSRC'); +is($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}[0]{'highest MOS'}{MOS}, '43', 'ingress SSRC MOS'); +is($resp->{totals}{RTP}{packets}, 2, 'RTP packet count'); +is($resp->{totals}{RTP}{bytes}, 344, 'RTP octet count'); +is($resp->{totals}{RTCP}{packets}, 2, 'RTCP packet count'); +is($resp->{totals}{RTCP}{bytes}, 104, 'RTCP octet count'); + + + + +($sock_a, $sock_ax, $sock_b, $sock_bx) = new_call( + [qw(198.51.100.1 7168)], + [qw(198.51.100.1 7169)], + [qw(198.51.100.3 7170)], + [qw(198.51.100.3 7171)], +); + +($port_a, $port_ax) = offer('stats delete w/o from-tag and w/ delete-delay', { }, < 1 } ); +#print Dumper($resp); +#print Dumper($resp->{SSRC}); +is($resp->{SSRC}{0x1234}{bytes}, 172, "0x1234 byte count"); +is($resp->{SSRC}{0x1234}{'highest MOS'}{MOS}, '43', "0x1234 MOS"); +is($resp->{SSRC}{0x6543}{bytes}, 172, "0x6543 byte count"); +is($resp->{SSRC}{0x6543}{'highest MOS'}{MOS}, '43', "0x6543 MOS"); +#print Dumper($resp->{tags}{ft()}{medias}[0]{'egress SSRCs'}); +is($resp->{tags}{ft()}{medias}[0]{'egress SSRCs'}[0]{SSRC}, 0x6543, 'egress SSRC'); +#print Dumper($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}); +is($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}[0]{SSRC}, 0x1234, 'ingress SSRC'); +is($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}[0]{'highest MOS'}{MOS}, '43', 'ingress SSRC MOS'); +#print Dumper($resp->{tags}{ft()}{medias}[0]{streams}[0]{SSRC}); +#print Dumper($resp->{tags}{tt()}{medias}[0]{'egress SSRCs'}); +is($resp->{tags}{tt()}{medias}[0]{'egress SSRCs'}[0]{SSRC}, 0x1234, 'egress SSRC'); +#print Dumper($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}); +#print Dumper($resp->{tags}{tt()}{medias}[0]{streams}[0]{SSRC}); +is($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}[0]{SSRC}, 0x6543, 'ingress SSRC'); +is($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}[0]{'highest MOS'}{MOS}, '43', 'ingress SSRC MOS'); +is($resp->{totals}{RTP}{packets}, 2, 'RTP packet count'); +is($resp->{totals}{RTP}{bytes}, 344, 'RTP octet count'); +is($resp->{totals}{RTCP}{packets}, 2, 'RTCP packet count'); +is($resp->{totals}{RTCP}{bytes}, 104, 'RTCP octet count'); + + + + +($sock_a, $sock_ax, $sock_b, $sock_bx) = new_call( + [qw(198.51.100.1 7172)], + [qw(198.51.100.1 7173)], + [qw(198.51.100.3 7174)], + [qw(198.51.100.3 7175)], +); + +($port_a, $port_ax) = offer('stats delete w/ from-tag and w/ delete-delay', { }, < 1, 'from-tag' => ft() } ); +#print Dumper($resp); +#print Dumper($resp->{SSRC}); +is($resp->{SSRC}{0x1234}{bytes}, 172, "0x1234 byte count"); +is($resp->{SSRC}{0x1234}{'highest MOS'}{MOS}, '43', "0x1234 MOS"); +is($resp->{SSRC}{0x6543}{bytes}, 172, "0x6543 byte count"); +is($resp->{SSRC}{0x6543}{'highest MOS'}{MOS}, '43', "0x6543 MOS"); +#print Dumper($resp->{tags}{ft()}{medias}[0]{'egress SSRCs'}); +is($resp->{tags}{ft()}{medias}[0]{'egress SSRCs'}[0]{SSRC}, 0x6543, 'egress SSRC'); +#print Dumper($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}); +is($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}[0]{SSRC}, 0x1234, 'ingress SSRC'); +is($resp->{tags}{ft()}{medias}[0]{'ingress SSRCs'}[0]{'highest MOS'}{MOS}, '43', 'ingress SSRC MOS'); +#print Dumper($resp->{tags}{ft()}{medias}[0]{streams}[0]{SSRC}); +#print Dumper($resp->{tags}{tt()}{medias}[0]{'egress SSRCs'}); +is($resp->{tags}{tt()}{medias}[0]{'egress SSRCs'}[0]{SSRC}, 0x1234, 'egress SSRC'); +#print Dumper($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}); +#print Dumper($resp->{tags}{tt()}{medias}[0]{streams}[0]{SSRC}); +is($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}[0]{SSRC}, 0x6543, 'ingress SSRC'); +is($resp->{tags}{tt()}{medias}[0]{'ingress SSRCs'}[0]{'highest MOS'}{MOS}, '43', 'ingress SSRC MOS'); +is($resp->{totals}{RTP}{packets}, 2, 'RTP packet count'); +is($resp->{totals}{RTP}{bytes}, 344, 'RTP octet count'); +is($resp->{totals}{RTCP}{packets}, 2, 'RTCP packet count'); +is($resp->{totals}{RTCP}{bytes}, 104, 'RTCP octet count'); + + + + if ($extended_tests) { ($sock_a, $sock_ax, $sock_b, $sock_bx) = new_call([qw(198.51.100.23 3000)], [qw(198.51.100.23 3001)],