blob: dc9679f49e9d9e1dd322f82459d13f10c78f6b44 [file] [log] [blame]
kjellander@webrtc.org51198f12012-02-21 17:53:46 +00001/*
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
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef RTC_BASE_GTEST_PROD_UTIL_H_
12#define RTC_BASE_GTEST_PROD_UTIL_H_
kjellander@webrtc.org51198f12012-02-21 17:53:46 +000013
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020014// Define our own version of FRIEND_TEST here rather than including
15// gtest_prod.h to avoid depending on any part of GTest in production code.
16#define FRIEND_TEST_WEBRTC(test_case_name, test_name)\
17friend class test_case_name##_##test_name##_Test
kjellander@webrtc.org51198f12012-02-21 17:53:46 +000018
Henrik Kjellanderec78f1c2017-06-29 07:52:50 +020019// This file is a plain copy of Chromium's base/gtest_prod_util.h.
20//
21// This is a wrapper for gtest's FRIEND_TEST macro that friends
22// test with all possible prefixes. This is very helpful when changing the test
23// prefix, because the friend declarations don't need to be updated.
24//
25// Example usage:
26//
27// class MyClass {
28// private:
29// void MyMethod();
30// FRIEND_TEST_ALL_PREFIXES(MyClassTest, MyMethod);
31// };
32#define FRIEND_TEST_ALL_PREFIXES(test_case_name, test_name) \
33 FRIEND_TEST_WEBRTC(test_case_name, test_name); \
34 FRIEND_TEST_WEBRTC(test_case_name, DISABLED_##test_name); \
35 FRIEND_TEST_WEBRTC(test_case_name, FLAKY_##test_name); \
36 FRIEND_TEST_WEBRTC(test_case_name, FAILS_##test_name)
kjellander@webrtc.org51198f12012-02-21 17:53:46 +000037
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020038#endif // RTC_BASE_GTEST_PROD_UTIL_H_