| Alejandro Luebs | a181c9a | 2016-06-30 15:33:37 -0700 | [diff] [blame] | 1 | /* | 
|  | 2 | *  Copyright (c) 2016 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 |  | 
| Mirko Bonadei | 92ea95e | 2017-09-15 06:47:31 +0200 | [diff] [blame^] | 11 | #include "common_audio/channel_buffer.h" | 
|  | 12 | #include "test/gtest.h" | 
| Alejandro Luebs | a181c9a | 2016-06-30 15:33:37 -0700 | [diff] [blame] | 13 |  | 
|  | 14 | namespace webrtc { | 
|  | 15 |  | 
|  | 16 | namespace { | 
|  | 17 |  | 
|  | 18 | const size_t kNumFrames = 480u; | 
|  | 19 | const size_t kStereo = 2u; | 
|  | 20 | const size_t kMono = 1u; | 
|  | 21 |  | 
|  | 22 | void ExpectNumChannels(const IFChannelBuffer& ifchb, size_t num_channels) { | 
|  | 23 | EXPECT_EQ(ifchb.ibuf_const()->num_channels(), num_channels); | 
|  | 24 | EXPECT_EQ(ifchb.fbuf_const()->num_channels(), num_channels); | 
|  | 25 | EXPECT_EQ(ifchb.num_channels(), num_channels); | 
|  | 26 | } | 
|  | 27 |  | 
|  | 28 | }  // namespace | 
|  | 29 |  | 
|  | 30 | TEST(ChannelBufferTest, SetNumChannelsSetsNumChannels) { | 
|  | 31 | ChannelBuffer<float> chb(kNumFrames, kStereo); | 
|  | 32 | EXPECT_EQ(chb.num_channels(), kStereo); | 
|  | 33 | chb.set_num_channels(kMono); | 
|  | 34 | EXPECT_EQ(chb.num_channels(), kMono); | 
|  | 35 | } | 
|  | 36 |  | 
|  | 37 | TEST(IFChannelBufferTest, SetNumChannelsSetsChannelBuffersNumChannels) { | 
|  | 38 | IFChannelBuffer ifchb(kNumFrames, kStereo); | 
|  | 39 | ExpectNumChannels(ifchb, kStereo); | 
|  | 40 | ifchb.set_num_channels(kMono); | 
|  | 41 | ExpectNumChannels(ifchb, kMono); | 
|  | 42 | } | 
|  | 43 |  | 
|  | 44 | TEST(IFChannelBufferTest, SettingNumChannelsOfOneChannelBufferSetsTheOther) { | 
|  | 45 | IFChannelBuffer ifchb(kNumFrames, kStereo); | 
|  | 46 | ExpectNumChannels(ifchb, kStereo); | 
|  | 47 | ifchb.ibuf()->set_num_channels(kMono); | 
|  | 48 | ExpectNumChannels(ifchb, kMono); | 
|  | 49 | ifchb.fbuf()->set_num_channels(kStereo); | 
|  | 50 | ExpectNumChannels(ifchb, kStereo); | 
|  | 51 | } | 
|  | 52 |  | 
|  | 53 | #if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID) | 
|  | 54 | TEST(ChannelBufferTest, SetNumChannelsDeathTest) { | 
|  | 55 | ChannelBuffer<float> chb(kNumFrames, kMono); | 
|  | 56 | EXPECT_DEATH(chb.set_num_channels(kStereo), "num_channels"); | 
|  | 57 | } | 
|  | 58 |  | 
|  | 59 | TEST(IFChannelBufferTest, SetNumChannelsDeathTest) { | 
|  | 60 | IFChannelBuffer ifchb(kNumFrames, kMono); | 
|  | 61 | EXPECT_DEATH(ifchb.ibuf()->set_num_channels(kStereo), "num_channels"); | 
|  | 62 | } | 
|  | 63 | #endif | 
|  | 64 |  | 
|  | 65 | }  // namespace webrtc |