blob: 7d45e7cde9923ca5d44f1449319f7b466ca7faf6 [file] [log] [blame]
Alejandro Luebsa181c9a2016-06-30 15:33:37 -07001/*
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 Bonadei92ea95e2017-09-15 06:47:31 +020011#include "common_audio/channel_buffer.h"
Jonas Olssona4d87372019-07-05 19:08:33 +020012
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020013#include "test/gtest.h"
Alejandro Luebsa181c9a2016-06-30 15:33:37 -070014
15namespace webrtc {
16
17namespace {
18
19const size_t kNumFrames = 480u;
20const size_t kStereo = 2u;
21const size_t kMono = 1u;
22
23void ExpectNumChannels(const IFChannelBuffer& ifchb, size_t num_channels) {
24 EXPECT_EQ(ifchb.ibuf_const()->num_channels(), num_channels);
25 EXPECT_EQ(ifchb.fbuf_const()->num_channels(), num_channels);
26 EXPECT_EQ(ifchb.num_channels(), num_channels);
27}
28
29} // namespace
30
31TEST(ChannelBufferTest, SetNumChannelsSetsNumChannels) {
32 ChannelBuffer<float> chb(kNumFrames, kStereo);
33 EXPECT_EQ(chb.num_channels(), kStereo);
34 chb.set_num_channels(kMono);
35 EXPECT_EQ(chb.num_channels(), kMono);
36}
37
38TEST(IFChannelBufferTest, SetNumChannelsSetsChannelBuffersNumChannels) {
39 IFChannelBuffer ifchb(kNumFrames, kStereo);
40 ExpectNumChannels(ifchb, kStereo);
41 ifchb.set_num_channels(kMono);
42 ExpectNumChannels(ifchb, kMono);
43}
44
45TEST(IFChannelBufferTest, SettingNumChannelsOfOneChannelBufferSetsTheOther) {
46 IFChannelBuffer ifchb(kNumFrames, kStereo);
47 ExpectNumChannels(ifchb, kStereo);
48 ifchb.ibuf()->set_num_channels(kMono);
49 ExpectNumChannels(ifchb, kMono);
50 ifchb.fbuf()->set_num_channels(kStereo);
51 ExpectNumChannels(ifchb, kStereo);
52}
53
54#if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
55TEST(ChannelBufferTest, SetNumChannelsDeathTest) {
56 ChannelBuffer<float> chb(kNumFrames, kMono);
57 EXPECT_DEATH(chb.set_num_channels(kStereo), "num_channels");
58}
59
60TEST(IFChannelBufferTest, SetNumChannelsDeathTest) {
61 IFChannelBuffer ifchb(kNumFrames, kMono);
62 EXPECT_DEATH(ifchb.ibuf()->set_num_channels(kStereo), "num_channels");
63}
64#endif
65
66} // namespace webrtc