blob: 3fe8c1a709cb526f605260dcec618e3c512cb9a1 [file] [log] [blame]
/*
* 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 "webrtc/modules/audio_coding/codecs/isac/main/include/audio_encoder_isac.h"
#include "webrtc/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