fork download
  1. #define XXX
  2.  
  3. #if defined(XXX)
  4. #define _VER BUILDX
  5. #elif defined(YYY)
  6. #define _VER BUILDY
  7. #endif
  8.  
  9. #define _TEST_SUITE_NAME_PACKAGE(Suite,Package) Suite##_##Package
  10. #define TEST_SUITE_NAME_PACKAGE(Suite,Package) _TEST_SUITE_NAME_PACKAGE(Suite,Package)
  11. #define TEST_SUITE_NAME(Suite) TEST_SUITE_NAME_PACKAGE(Suite,_VER)
  12.  
  13. #define GTEST_TEST_(test_case_name, test_name, parent_class)\
  14. struct test_case_name ## test_name {};
  15.  
  16. #define GTEST_TEST(test_case_name, test_name)\
  17.   GTEST_TEST_(test_case_name, test_name)
  18.  
  19. #define TEST(test_case_name, test_name) \
  20.   GTEST_TEST(TEST_SUITE_NAME(test_case_name), test_name)
  21.  
  22. #define TEST_F_I(test_fixture, test_name, original_name) \
  23.   GTEST_TEST_(test_fixture, test_name, original_name)
  24.  
  25. #define TEST_F(test_fixture, test_name) \
  26.   TEST_F_I(TEST_SUITE_NAME(test_fixture), test_name, test_fixture)
  27.  
  28. #define TEST_F_YOUR_INVALID_MACRO(test_fixture, test_name) \
  29.   GTEST_TEST_(TEST_SUITE_NAME(test_fixture), test_name, test_fixture)
  30.  
  31. // Tests:
  32.  
  33. // TEST_F_YOUR_INVALID_MACRO(ABC, DEF)
  34.  
  35. TEST_F(GHI, JKL)
  36.  
  37. TEST_F(MNO, PQR)
  38.  
  39. int main()
  40. {
  41. GHI_BUILDXJKL a;
  42. MNO_BUILDXPQR b;
  43.  
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0s 3336KB
stdin
Standard input is empty
stdout
Standard output is empty