summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorbodamnam <bodamnam@google.com>2023-03-08 02:32:16 +0000
committerBodam Nam <bodamnam@google.com>2023-03-23 08:59:25 +0000
commit80fb0bc91a885a2de2497fe4d0d4ec491f5cb73c (patch)
treef88eda6def422a855fa68069040832a39265866c /tests
parent1c5b107260665d80f916074910c35864471c0cad (diff)
downloadImsMedia-80fb0bc91a885a2de2497fe4d0d4ec491f5cb73c.tar.gz
Modify to notify MediaQualityStatus checking media direction
1) Add statement to check the direction in Rtp, Rtcp, Jitter and packet loss notification 2) Modify to reset the statistics status when the direction changed in the MediQualityAnalzyer 3) Modify to check rtcp enabled to reset the inactivity counter for rtcp Bug: 272068717 Test: atest ImsMediaNativeTests, Verified Voice Call hold/resume case in live network. Verified VZW VoWIFI 10.3 which includes hold/resume operation. Change-Id: I61b0b9cce09139e0a9599c4ca4a07e3899b62276
Diffstat (limited to 'tests')
-rw-r--r--tests/native/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzerTest.cpp89
1 files changed, 86 insertions, 3 deletions
diff --git a/tests/native/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzerTest.cpp b/tests/native/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzerTest.cpp
index bedb63bb..ba468406 100644
--- a/tests/native/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzerTest.cpp
+++ b/tests/native/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzerTest.cpp
@@ -26,7 +26,7 @@ using namespace android::telephony::imsmedia;
using ::testing::_;
// RtpConfig
-const int32_t kMediaDirection = RtpConfig::MEDIA_DIRECTION_INACTIVE;
+const int32_t kMediaDirection = RtpConfig::MEDIA_DIRECTION_SEND_RECEIVE;
const android::String8 kRemoteAddress("127.0.0.1");
const int32_t kRemotePort = 10000;
const int8_t kDscp = 0;
@@ -128,6 +128,7 @@ public:
{
notifyCallQuality();
reset();
+ counter = 0;
}
void testProcessCycle(const int32_t numCycle)
@@ -293,7 +294,7 @@ TEST_F(MediaQualityAnalyzerTest, TestCollectTxPackets)
TEST_F(MediaQualityAnalyzerTest, TestRtpInactivityNotRunning)
{
- EXPECT_CALL(mCallback, onEvent(kAudioCallQualityChangedInd, _, _)).Times(1);
+ EXPECT_CALL(mCallback, onEvent(kAudioCallQualityChangedInd, _, _)).Times(2);
EXPECT_CALL(mCallback, onEvent(kImsMediaEventMediaQualityStatus, _, _)).Times(0);
MediaQualityThreshold threshold;
threshold.setRtpInactivityTimerMillis(std::vector<int32_t>{0});
@@ -301,9 +302,61 @@ TEST_F(MediaQualityAnalyzerTest, TestRtpInactivityNotRunning)
mAnalyzer->start();
mAnalyzer->testProcessCycle(2);
mAnalyzer->stop();
+
+ threshold.setRtpInactivityTimerMillis(std::vector<int32_t>{2000});
+ mConfig.setMediaDirection(RtpConfig::MEDIA_DIRECTION_INACTIVE);
+ mAnalyzer->setConfig(&mConfig);
+ mAnalyzer->setMediaQualityThreshold(threshold);
+ mAnalyzer->start();
+ mAnalyzer->testProcessCycle(2);
+ mAnalyzer->stop();
+}
+
+TEST_F(MediaQualityAnalyzerTest, TestRtpInactivityNoUpdateByDirection)
+{
+ EXPECT_CALL(mCallback, onEvent(kAudioCallQualityChangedInd, _, _)).Times(2);
+ EXPECT_CALL(mCallback, onEvent(kImsMediaEventMediaQualityStatus, _, _)).Times(1);
+ MediaQualityThreshold threshold;
+ threshold.setRtpInactivityTimerMillis(std::vector<int32_t>{4000});
+ mAnalyzer->setMediaQualityThreshold(threshold);
+ mAnalyzer->testProcessCycle(2);
+
+ mConfig.setMediaDirection(RtpConfig::MEDIA_DIRECTION_RECEIVE_ONLY);
+
+ if (!mAnalyzer->isSameConfig(&mConfig))
+ {
+ mAnalyzer->stop();
+ mAnalyzer->start();
+ }
+
+ mAnalyzer->testProcessCycle(2);
+ mAnalyzer->stop();
+ MediaQualityStatus quality = mFakeCallback.getMediaQualityStatus();
+ EXPECT_EQ(quality.getRtpInactivityTimeMillis(), 4000);
+}
+
+TEST_F(MediaQualityAnalyzerTest, TestRtpInactivityUpdateByDirection)
+{
+ EXPECT_CALL(mCallback, onEvent(kAudioCallQualityChangedInd, _, _)).Times(2);
+ EXPECT_CALL(mCallback, onEvent(kImsMediaEventMediaQualityStatus, _, _)).Times(1);
+ MediaQualityThreshold threshold;
+ threshold.setRtpInactivityTimerMillis(std::vector<int32_t>{2000});
+ mAnalyzer->setMediaQualityThreshold(threshold);
+ mAnalyzer->testProcessCycle(2);
+
+ mConfig.setMediaDirection(RtpConfig::MEDIA_DIRECTION_INACTIVE);
+
+ if (!mAnalyzer->isSameConfig(&mConfig))
+ {
+ mAnalyzer->stop();
+ mAnalyzer->start();
+ }
+
+ mAnalyzer->testProcessCycle(2);
+ mAnalyzer->stop();
}
-TEST_F(MediaQualityAnalyzerTest, TestRtpInactivityRunning)
+TEST_F(MediaQualityAnalyzerTest, TestRtpInactivityUpdate)
{
EXPECT_CALL(mCallback, onEvent(kAudioCallQualityChangedInd, _, _)).Times(2);
EXPECT_CALL(mCallback, onEvent(kImsMediaEventMediaQualityStatus, _, _)).Times(3);
@@ -334,6 +387,36 @@ TEST_F(MediaQualityAnalyzerTest, TestRtpInactivityRunning)
mAnalyzer->stop();
}
+TEST_F(MediaQualityAnalyzerTest, TestRtcpInactivityNotRunning)
+{
+ EXPECT_CALL(mCallback, onEvent(kAudioCallQualityChangedInd, _, _)).Times(3);
+ EXPECT_CALL(mCallback, onEvent(kImsMediaEventMediaQualityStatus, _, _)).Times(0);
+ MediaQualityThreshold threshold;
+ threshold.setRtcpInactivityTimerMillis(0);
+ mAnalyzer->setMediaQualityThreshold(threshold);
+ mAnalyzer->start();
+ mAnalyzer->testProcessCycle(2);
+ mAnalyzer->stop();
+
+ threshold.setRtcpInactivityTimerMillis(2000);
+ mConfig.setMediaDirection(RtpConfig::MEDIA_DIRECTION_NO_FLOW);
+ mAnalyzer->setConfig(&mConfig);
+ mAnalyzer->setMediaQualityThreshold(threshold);
+ mAnalyzer->start();
+ mAnalyzer->testProcessCycle(2);
+ mAnalyzer->stop();
+
+ threshold.setRtcpInactivityTimerMillis(2000);
+ mRtcpConfig.setIntervalSec(0);
+ mConfig.setMediaDirection(RtpConfig::MEDIA_DIRECTION_INACTIVE);
+ mConfig.setRtcpConfig(mRtcpConfig);
+ mAnalyzer->setConfig(&mConfig);
+ mAnalyzer->setMediaQualityThreshold(threshold);
+ mAnalyzer->start();
+ mAnalyzer->testProcessCycle(2);
+ mAnalyzer->stop();
+}
+
TEST_F(MediaQualityAnalyzerTest, TestRtcpInactivity)
{
EXPECT_CALL(mCallback, onEvent(kAudioCallQualityChangedInd, _, _)).Times(2);