1 /* 2 * Copyright (c) 2012 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 11 #ifndef WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_TEST_DEFINES_H 12 #define WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_TEST_DEFINES_H 13 14 #include "webrtc/common_types.h" 15 #include "webrtc/modules/audio_device/include/audio_device.h" 16 #include "webrtc/modules/utility/include/process_thread.h" 17 #include "webrtc/system_wrappers/include/trace.h" 18 19 #ifdef _WIN32 20 #define MACRO_DEFAULT_DEVICE AudioDeviceModule::kDefaultDevice 21 #define MACRO_DEFAULT_COMMUNICATION_DEVICE AudioDeviceModule::kDefaultCommunicationDevice 22 #else 23 #define MACRO_DEFAULT_DEVICE 0 24 #define MACRO_DEFAULT_COMMUNICATION_DEVICE 0 25 #endif 26 27 #ifdef ANDROID 28 #include <android/log.h> 29 #define LOG_TAG "WebRtc ADM TEST" 30 #define TEST_LOG(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) 31 #define TEST_LOG_ERROR(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) 32 #else 33 #define TEST_LOG printf 34 #define TEST_LOG_ERROR(...) fprintf(stderr, __VA_ARGS__) 35 #endif 36 37 static int warningCount = 0; 38 39 #define RESET_TEST \ 40 do { \ 41 warningCount = 0; \ 42 } while(0) \ 43 44 #define PRINT_ERR_MSG(msg) \ 45 do { \ 46 TEST_LOG_ERROR("Error at line %i of %s\n%s", \ 47 __LINE__, __FILE__, msg); \ 48 } while(0) 49 50 #define WARNING(expr) \ 51 do { \ 52 if (!(expr)) { \ 53 TEST_LOG_ERROR("WARNING #%d: at line %i\n\n", \ 54 warningCount+1, __LINE__); \ 55 warningCount++; \ 56 } \ 57 } while(0) 58 59 #define PRINT_TEST_RESULTS \ 60 do { \ 61 if (warningCount > 0) \ 62 { \ 63 TEST_LOG(">> %d warnings <<\n\n", \ 64 warningCount); \ 65 } \ 66 } while(0) 67 68 // Helper functions 69 // For iPhone, they are defined in iPhone specific test code. 70 // For Android, they are defined in API test only (since both 71 // API and Func tests are built into the same lib). 72 // For other, they are defined in both API test and Func test. 73 const char* GetFilename(const char* filename); 74 const char* GetResource(const char* resource); 75 76 #endif // WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_TEST_DEFINES_H 77