| /* |
| * Copyright (c) 2015 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 <limits> |
| |
| #include "modules/audio_coding/codecs/isac/main/include/audio_encoder_isac.h" |
| #include "test/gtest.h" |
| |
| namespace webrtc { |
| |
| namespace { |
| |
| void TestBadConfig(const AudioEncoderIsacFloatImpl::Config& config) { |
| EXPECT_FALSE(config.IsOk()); |
| } |
| |
| void TestGoodConfig(const AudioEncoderIsacFloatImpl::Config& config) { |
| EXPECT_TRUE(config.IsOk()); |
| AudioEncoderIsacFloatImpl aei(config); |
| } |
| |
| // Wrap subroutine calls that test things in this, so that the error messages |
| // will be accompanied by stack traces that make it possible to tell which |
| // subroutine invocation caused the failure. |
| #define S(x) \ |
| do { \ |
| SCOPED_TRACE(#x); \ |
| x; \ |
| } while (0) |
| |
| } // namespace |
| |
| TEST(AudioEncoderIsacTest, TestConfigBitrate) { |
| AudioEncoderIsacFloatImpl::Config config; |
| |
| // The default value is some real, positive value. |
| EXPECT_GT(config.bit_rate, 1); |
| S(TestGoodConfig(config)); |
| |
| // 0 is another way to ask for the default value. |
| config.bit_rate = 0; |
| S(TestGoodConfig(config)); |
| |
| // Try some unreasonable values and watch them fail. |
| config.bit_rate = -1; |
| S(TestBadConfig(config)); |
| config.bit_rate = 1; |
| S(TestBadConfig(config)); |
| config.bit_rate = std::numeric_limits<int>::max(); |
| S(TestBadConfig(config)); |
| } |
| |
| } // namespace webrtc |