1 /* 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #include <limits> 12 13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "webrtc/modules/audio_coding/codecs/isac/main/include/audio_encoder_isac.h" 15 16 namespace webrtc { 17 18 namespace { 19 20 void TestBadConfig(const AudioEncoderIsac::Config& config) { 21 EXPECT_FALSE(config.IsOk()); 22 } 23 24 void TestGoodConfig(const AudioEncoderIsac::Config& config) { 25 EXPECT_TRUE(config.IsOk()); 26 AudioEncoderIsac aei(config); 27 } 28 29 // Wrap subroutine calls that test things in this, so that the error messages 30 // will be accompanied by stack traces that make it possible to tell which 31 // subroutine invocation caused the failure. 32 #define S(x) do { SCOPED_TRACE(#x); x; } while (0) 33 34 } // namespace 35 36 TEST(AudioEncoderIsacTest, TestConfigBitrate) { 37 AudioEncoderIsac::Config config; 38 39 // The default value is some real, positive value. 40 EXPECT_GT(config.bit_rate, 1); 41 S(TestGoodConfig(config)); 42 43 // 0 is another way to ask for the default value. 44 config.bit_rate = 0; 45 S(TestGoodConfig(config)); 46 47 // Try some unreasonable values and watch them fail. 48 config.bit_rate = -1; 49 S(TestBadConfig(config)); 50 config.bit_rate = 1; 51 S(TestBadConfig(config)); 52 config.bit_rate = std::numeric_limits<int>::max(); 53 S(TestBadConfig(config)); 54 } 55 56 } // namespace webrtc 57