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