gtest_prod_util.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. #ifndef RTC_BASE_GTEST_PROD_UTIL_H_
  11. #define RTC_BASE_GTEST_PROD_UTIL_H_
  12. // Define our own version of FRIEND_TEST here rather than including
  13. // gtest_prod.h to avoid depending on any part of GTest in production code.
  14. #define FRIEND_TEST_WEBRTC(test_case_name, test_name) \
  15. friend class test_case_name##_##test_name##_Test
  16. // This file is a plain copy of Chromium's base/gtest_prod_util.h.
  17. //
  18. // This is a wrapper for gtest's FRIEND_TEST macro that friends
  19. // test with all possible prefixes. This is very helpful when changing the test
  20. // prefix, because the friend declarations don't need to be updated.
  21. //
  22. // Example usage:
  23. //
  24. // class MyClass {
  25. // private:
  26. // void MyMethod();
  27. // FRIEND_TEST_ALL_PREFIXES(MyClassTest, MyMethod);
  28. // };
  29. #define FRIEND_TEST_ALL_PREFIXES(test_case_name, test_name) \
  30. FRIEND_TEST_WEBRTC(test_case_name, test_name); \
  31. FRIEND_TEST_WEBRTC(test_case_name, DISABLED_##test_name); \
  32. FRIEND_TEST_WEBRTC(test_case_name, FLAKY_##test_name); \
  33. FRIEND_TEST_WEBRTC(test_case_name, FAILS_##test_name)
  34. #endif // RTC_BASE_GTEST_PROD_UTIL_H_