From 610e90e9103731155fc1276ebd62ee9691933fa2 Mon Sep 17 00:00:00 2001 From: "phoglund@webrtc.org" Date: Thu, 15 Dec 2011 10:40:19 +0000 Subject: [PATCH] Completed rewrite of codec test. BUG= TEST= Review URL: http://webrtc-codereview.appspot.com/324011 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1203 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../standard/codec_before_streaming_test.cc | 82 +++++++++++++++++++ .../main/test/auto_test/voe_standard_test.cc | 54 ------------ .../main/test/voice_engine_tests.gypi | 1 + 3 files changed, 83 insertions(+), 54 deletions(-) create mode 100644 src/voice_engine/main/test/auto_test/standard/codec_before_streaming_test.cc diff --git a/src/voice_engine/main/test/auto_test/standard/codec_before_streaming_test.cc b/src/voice_engine/main/test/auto_test/standard/codec_before_streaming_test.cc new file mode 100644 index 0000000000..6d902efec6 --- /dev/null +++ b/src/voice_engine/main/test/auto_test/standard/codec_before_streaming_test.cc @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#include "after_initialization_fixture.h" + +class CodecBeforeStreamingTest : public AfterInitializationFixture { + protected: + void SetUp() { + memset(&codec_instance_, 0, sizeof(codec_instance_)); + codec_instance_.channels = 1; + codec_instance_.plfreq = 16000; + codec_instance_.pacsize = 480; + + channel_ = voe_base_->CreateChannel(); + } + + void TearDown() { + voe_base_->DeleteChannel(channel_); + } + + webrtc::CodecInst codec_instance_; + int channel_; +}; + +// TODO(phoglund): add test which verifies default pltypes for various codecs. + +TEST_F(CodecBeforeStreamingTest, GetRecPayloadTypeFailsForInvalidCodecName) { + strcpy(codec_instance_.plname, "SomeInvalidCodecName"); + + // Should fail since the codec name is invalid. + EXPECT_NE(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_)); +} + +TEST_F(CodecBeforeStreamingTest, GetRecPayloadTypeRecognizesISAC) { + strcpy(codec_instance_.plname, "iSAC"); + EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_)); + strcpy(codec_instance_.plname, "ISAC"); + EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_)); +} + +TEST_F(CodecBeforeStreamingTest, SetRecPayloadTypeCanChangeISACPayloadType) { + strcpy(codec_instance_.plname, "ISAC"); + + codec_instance_.pltype = 123; + EXPECT_EQ(0, voe_codec_->SetRecPayloadType(channel_, codec_instance_)); + EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_)); + EXPECT_EQ(123, codec_instance_.pltype); + + codec_instance_.pltype = 104; + EXPECT_EQ(0, voe_codec_->SetRecPayloadType(channel_, codec_instance_)); + EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_)); + + EXPECT_EQ(104, codec_instance_.pltype); +} + +TEST_F(CodecBeforeStreamingTest, SetRecPayloadTypeCanChangeILBCPayloadType) { + strcpy(codec_instance_.plname, "iLBC"); + codec_instance_.plfreq = 8000; + codec_instance_.pacsize = 240; + codec_instance_.rate = 13300; + + EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_)); + int original_pltype = codec_instance_.pltype; + codec_instance_.pltype = 123; + EXPECT_EQ(0, voe_codec_->SetRecPayloadType(channel_, codec_instance_)); + EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_)); + + EXPECT_EQ(123, codec_instance_.pltype); + + codec_instance_.pltype = original_pltype; + EXPECT_EQ(0, voe_codec_->SetRecPayloadType(channel_, codec_instance_)); + EXPECT_EQ(0, voe_codec_->GetRecPayloadType(channel_, codec_instance_)); + + EXPECT_EQ(original_pltype, codec_instance_.pltype); +} diff --git a/src/voice_engine/main/test/auto_test/voe_standard_test.cc b/src/voice_engine/main/test/auto_test/voe_standard_test.cc index 017da20505..bc2718fc5a 100644 --- a/src/voice_engine/main/test/auto_test/voe_standard_test.cc +++ b/src/voice_engine/main/test/auto_test/voe_standard_test.cc @@ -921,59 +921,6 @@ int VoETestManager::SetUp() { return 0; } -int VoETestManager::TestCodecsBeforeStreaming() { - CodecInst codec_instance; - memset(&codec_instance, 0, sizeof(codec_instance)); - - // This testing must be done before we start playing. -#ifdef _TEST_CODEC_ - // Test that set and get payload type work. -#if defined(WEBRTC_CODEC_ISAC) - TEST_LOG("Getting payload type for iSAC\n"); - strcpy(codec_instance.plname, "niklas"); - codec_instance.channels = 1; - codec_instance.plfreq = 16000; - codec_instance.pacsize = 480; - // Should fail since niklas is not a valid codec name. - TEST_MUSTPASS(!voe_codec_->GetRecPayloadType(0, codec_instance)); - // Both iSAC and ISAC should work here. - strcpy(codec_instance.plname, "iSAC"); - TEST_MUSTPASS(voe_codec_->GetRecPayloadType(0, codec_instance)); - strcpy(codec_instance.plname, "ISAC"); - TEST_MUSTPASS(voe_codec_->GetRecPayloadType(0,codec_instance)); - int original_pltype = codec_instance.pltype; // Default payload type is 103. - TEST_LOG("Setting payload type for iSAC to 127\n"); - codec_instance.pltype = 123; - TEST_MUSTPASS(voe_codec_->SetRecPayloadType(0,codec_instance)); - TEST_MUSTPASS(voe_codec_->GetRecPayloadType(0,codec_instance)); - TEST_MUSTPASS(!(codec_instance.pltype==123)); - TEST_LOG("Setting it back\n"); - codec_instance.pltype = original_pltype; - TEST_MUSTPASS(voe_codec_->SetRecPayloadType(0,codec_instance)); - TEST_MUSTPASS(voe_codec_->GetRecPayloadType(0,codec_instance)); - TEST_MUSTPASS(!(codec_instance.pltype==original_pltype)); - codec_instance.pltype = 123; - codec_instance.plfreq = 8000; - codec_instance.pacsize = 240; - codec_instance.rate = 13300; -#ifdef WEBRTC_CODEC_ILBC - strcpy(codec_instance.plname, "iLBC"); - TEST_MUSTPASS(voe_codec_->GetRecPayloadType(0,codec_instance)); - original_pltype = codec_instance.pltype; - codec_instance.pltype = 123; - TEST_MUSTPASS(voe_codec_->SetRecPayloadType(0,codec_instance)); - TEST_MUSTPASS(voe_codec_->GetRecPayloadType(0,codec_instance)); - TEST_LOG("Setting it back\n"); - codec_instance.pltype = original_pltype; - TEST_MUSTPASS(voe_codec_->SetRecPayloadType(0,codec_instance)); - TEST_MUSTPASS(voe_codec_->GetRecPayloadType(0,codec_instance)); - TEST_MUSTPASS(!(codec_instance.pltype==original_pltype)); -#endif // #ifdef WEBRTC_CODEC_ILBC -#endif // #if defined(WEBRTC_CODEC_ISAC) -#endif // #ifdef _TEST_CODEC_ - return 0; -} - int VoETestManager::TestNetworkBeforeStreaming() { /////////////////////////////////////////////// // Network (test before streaming is activated) @@ -1470,7 +1417,6 @@ int VoETestManager::DoStandardTest() { if (SetUp() != 0) return -1; - if (TestCodecsBeforeStreaming() != 0) return -1; if (TestNetworkBeforeStreaming() != 0) return -1; // TODO(qhogpat): this gets verified way later - quite ugly. Make sure to diff --git a/src/voice_engine/main/test/voice_engine_tests.gypi b/src/voice_engine/main/test/voice_engine_tests.gypi index 094a74a3f2..5990dd8371 100644 --- a/src/voice_engine/main/test/voice_engine_tests.gypi +++ b/src/voice_engine/main/test/voice_engine_tests.gypi @@ -28,6 +28,7 @@ 'auto_test/automated_mode.cc', 'auto_test/standard/after_initialization_fixture.cc', 'auto_test/standard/before_initialization_fixture.cc', + 'auto_test/standard/codec_before_streaming_test.cc', 'auto_test/standard/hardware_before_initializing_test.cc', 'auto_test/standard/hardware_before_streaming_test.cc', 'auto_test/standard/rtp_rtcp_before_streaming_test.cc',