Home | History | Annotate | Download | only in source
      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