1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Use of this source code is governed by a BSD-style license 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * that can be found in the LICENSE file in the root of the source 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * tree. An additional intellectual property rights grant can be found 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * in the file PATENTS. All contributing project authors may 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 11b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifndef WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_TEST_DEFINES_H 12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_TEST_DEFINES_H 13b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 14bc669ace8f09d73e95f923253ecdadd366f9b7f1pbos@webrtc.org#include "webrtc/common_types.h" 15bc669ace8f09d73e95f923253ecdadd366f9b7f1pbos@webrtc.org#include "webrtc/modules/audio_device/include/audio_device.h" 16bc669ace8f09d73e95f923253ecdadd366f9b7f1pbos@webrtc.org#include "webrtc/modules/utility/interface/process_thread.h" 17bc669ace8f09d73e95f923253ecdadd366f9b7f1pbos@webrtc.org#include "webrtc/system_wrappers/interface/trace.h" 18b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 19b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifdef _WIN32 20b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define MACRO_DEFAULT_DEVICE AudioDeviceModule::kDefaultDevice 21b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define MACRO_DEFAULT_COMMUNICATION_DEVICE AudioDeviceModule::kDefaultCommunicationDevice 22b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#else 23b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define MACRO_DEFAULT_DEVICE 0 24b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define MACRO_DEFAULT_COMMUNICATION_DEVICE 0 25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif 26b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 27b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifdef ANDROID 28b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#include <android/log.h> 29b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define LOG_TAG "WebRtc ADM TEST" 30b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define TEST_LOG(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) 31b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define TEST_LOG_ERROR(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) 32b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#else 33b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define TEST_LOG printf 34b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define TEST_LOG_ERROR(...) fprintf(stderr, __VA_ARGS__) 35b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif 36b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 37b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgstatic int warningCount = 0; 38b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 39b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define RESET_TEST \ 40b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org do { \ 41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org warningCount = 0; \ 42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } while(0) \ 43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 44b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define PRINT_ERR_MSG(msg) \ 45b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org do { \ 46b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org TEST_LOG_ERROR("Error at line %i of %s\n%s", \ 47b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org __LINE__, __FILE__, msg); \ 48b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } while(0) 49b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 50b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define WARNING(expr) \ 51b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org do { \ 52b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (!(expr)) { \ 53b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org TEST_LOG_ERROR("WARNING #%d: at line %i\n\n", \ 54b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org warningCount+1, __LINE__); \ 55b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org warningCount++; \ 56b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } \ 57b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } while(0) 58b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 59b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define PRINT_TEST_RESULTS \ 60b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org do { \ 61b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (warningCount > 0) \ 62b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { \ 63b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org TEST_LOG(">> %d warnings <<\n\n", \ 64b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org warningCount); \ 65b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } \ 66b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } while(0) 67b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 68b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// Helper functions 69b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// For iPhone, they are defined in iPhone specific test code. 70b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// For Android, they are defined in API test only (since both 71b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// API and Func tests are built into the same lib). 72b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org// For other, they are defined in both API test and Func test. 73b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgconst char* GetFilename(const char* filename); 74b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgconst char* GetResource(const char* resource); 75b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 76b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif // WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_TEST_DEFINES_H 77