1840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org/* 2840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 3840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org * 4840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org * Use of this source code is governed by a BSD-style license 5840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org * that can be found in the LICENSE file in the root of the source 6840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org * tree. An additional intellectual property rights grant can be found 7840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org * in the file PATENTS. All contributing project authors may 8840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org */ 10840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org 11840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org// TODO(bjornv): Make this a comprehensive test. 12840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org 13840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org#include "webrtc/modules/audio_processing/aec/include/echo_cancellation.h" 14840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org 153f45c2e0ac4cb280f941efa3a3476895795e3dd6pbos@webrtc.org#include <stdlib.h> 163f45c2e0ac4cb280f941efa3a3476895795e3dd6pbos@webrtc.org#include <time.h> 17840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org 18840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.orgextern "C" { 19840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org#include "webrtc/modules/audio_processing/aec/aec_core.h" 20840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org} 21840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org 22840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org#include "testing/gtest/include/gtest/gtest.h" 23840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org 24840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.orgnamespace webrtc { 25840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org 26840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.orgTEST(EchoCancellationTest, CreateAndFreeHandlesErrors) { 27840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org EXPECT_EQ(-1, WebRtcAec_Create(NULL)); 28840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org void* handle = NULL; 29840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org ASSERT_EQ(0, WebRtcAec_Create(&handle)); 30840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org EXPECT_TRUE(handle != NULL); 31840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org EXPECT_EQ(-1, WebRtcAec_Free(NULL)); 32840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org EXPECT_EQ(0, WebRtcAec_Free(handle)); 33840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org} 34840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org 35840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.orgTEST(EchoCancellationTest, ApplyAecCoreHandle) { 36840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org void* handle = NULL; 37840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org ASSERT_EQ(0, WebRtcAec_Create(&handle)); 38840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org EXPECT_TRUE(handle != NULL); 39840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org EXPECT_TRUE(WebRtcAec_aec_core(NULL) == NULL); 40840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org AecCore* aec_core = WebRtcAec_aec_core(handle); 41840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org EXPECT_TRUE(aec_core != NULL); 42840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org // A simple test to verify that we can set and get a value from the lower 43840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org // level |aec_core| handle. 44840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org int delay = 111; 45840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org WebRtcAec_SetSystemDelay(aec_core, delay); 46840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org EXPECT_EQ(delay, WebRtcAec_system_delay(aec_core)); 47840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org EXPECT_EQ(0, WebRtcAec_Free(handle)); 48840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org} 49840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org 50840fa0390c8b65de6f9fb9d790166769690654bbbjornv@webrtc.org} // namespace webrtc 51