blob: 8ec42346d1c47d4d919aa138047c36c67a610e2d [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"
Artem Titov9dc209a2019-11-28 17:09:30 +010014#include "test/testsupport/rtc_expect_death.h"
Alejandro Luebsa181c9a2016-06-30 15:33:37 -070015
16namespace webrtc {
17
18namespace {
19
20const size_t kNumFrames = 480u;
21const size_t kStereo = 2u;
22const size_t kMono = 1u;
23
24void ExpectNumChannels(const IFChannelBuffer& ifchb, size_t num_channels) {
25 EXPECT_EQ(ifchb.ibuf_const()->num_channels(), num_channels);
26 EXPECT_EQ(ifchb.fbuf_const()->num_channels(), num_channels);
27 EXPECT_EQ(ifchb.num_channels(), num_channels);
28}
29
30} // namespace
31
32TEST(ChannelBufferTest, SetNumChannelsSetsNumChannels) {
33 ChannelBuffer<float> chb(kNumFrames, kStereo);
34 EXPECT_EQ(chb.num_channels(), kStereo);
35 chb.set_num_channels(kMono);
36 EXPECT_EQ(chb.num_channels(), kMono);
37}
38
39TEST(IFChannelBufferTest, SetNumChannelsSetsChannelBuffersNumChannels) {
40 IFChannelBuffer ifchb(kNumFrames, kStereo);
41 ExpectNumChannels(ifchb, kStereo);
42 ifchb.set_num_channels(kMono);
43 ExpectNumChannels(ifchb, kMono);
44}
45
46TEST(IFChannelBufferTest, SettingNumChannelsOfOneChannelBufferSetsTheOther) {
47 IFChannelBuffer ifchb(kNumFrames, kStereo);
48 ExpectNumChannels(ifchb, kStereo);
49 ifchb.ibuf()->set_num_channels(kMono);
50 ExpectNumChannels(ifchb, kMono);
51 ifchb.fbuf()->set_num_channels(kStereo);
52 ExpectNumChannels(ifchb, kStereo);
53}
54
55#if RTC_DCHECK_IS_ON && GTEST_HAS_DEATH_TEST && !defined(WEBRTC_ANDROID)
56TEST(ChannelBufferTest, SetNumChannelsDeathTest) {
57 ChannelBuffer<float> chb(kNumFrames, kMono);
Artem Titov9dc209a2019-11-28 17:09:30 +010058 RTC_EXPECT_DEATH(chb.set_num_channels(kStereo), "num_channels");
Alejandro Luebsa181c9a2016-06-30 15:33:37 -070059}
60
61TEST(IFChannelBufferTest, SetNumChannelsDeathTest) {
62 IFChannelBuffer ifchb(kNumFrames, kMono);
Artem Titov9dc209a2019-11-28 17:09:30 +010063 RTC_EXPECT_DEATH(ifchb.ibuf()->set_num_channels(kStereo), "num_channels");
Alejandro Luebsa181c9a2016-06-30 15:33:37 -070064}
65#endif
66
67} // namespace webrtc