Merge pull request #2063 from mathbunnyru:master
PiperOrigin-RevId: 231456275
This commit is contained in:
		@@ -40,7 +40,7 @@ matrix:
 | 
			
		||||
    - os: linux
 | 
			
		||||
      group: deprecated-2017Q4
 | 
			
		||||
      compiler: clang
 | 
			
		||||
      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 -Wgnu-zero-variadic-macro-arguments"
 | 
			
		||||
      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11
 | 
			
		||||
    - os: linux
 | 
			
		||||
      compiler: clang
 | 
			
		||||
      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 NO_EXCEPTION=ON NO_RTTI=ON COMPILER_IS_GNUCXX=ON
 | 
			
		||||
 
 | 
			
		||||
@@ -1198,7 +1198,7 @@ also supports per-test-suite set-up/tear-down. To use it:
 | 
			
		||||
1.  Outside your test fixture class (typically just below it), define those
 | 
			
		||||
    member variables, optionally giving them initial values.
 | 
			
		||||
1.  In the same test fixture class, define a `static void SetUpTestSuite()`
 | 
			
		||||
    function (remember not to spell it as **`SetupTestSuite`** with a small `u`!)
 | 
			
		||||
    function (remember not to spell it as **`SetUpTestSuite`** with a small `u`!)
 | 
			
		||||
    to set up the shared resources and a `static void TearDownTestSuite()`
 | 
			
		||||
    function to tear them down.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -544,11 +544,10 @@ internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
 | 
			
		||||
      GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::AddToRegistry();     \
 | 
			
		||||
  void GTEST_TEST_CLASS_NAME_(test_suite_name, test_name)::TestBody()
 | 
			
		||||
 | 
			
		||||
// The last argument to INSTANTIATE_TEST_SUITE_P allows the user to specify
 | 
			
		||||
// generator and an optional function or functor that generates custom test name
 | 
			
		||||
// suffixes based on the test parameters. Such a function or functor should
 | 
			
		||||
// accept one argument of type testing::TestParamInfo<class ParamType>, and
 | 
			
		||||
// return std::string.
 | 
			
		||||
// The optional last argument to INSTANTIATE_TEST_SUITE_P allows the user
 | 
			
		||||
// to specify a function or functor that generates custom test name suffixes
 | 
			
		||||
// based on the test parameters. The function should accept one argument of
 | 
			
		||||
// type testing::TestParamInfo<class ParamType>, and return std::string.
 | 
			
		||||
//
 | 
			
		||||
// testing::PrintToStringParamName is a builtin test suffix generator that
 | 
			
		||||
// returns the value of testing::PrintToString(GetParam()).
 | 
			
		||||
@@ -557,21 +556,15 @@ internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
 | 
			
		||||
// alphanumeric characters or underscore. Because PrintToString adds quotes
 | 
			
		||||
// to std::string and C strings, it won't work for these types.
 | 
			
		||||
 | 
			
		||||
#define GTEST_EXPAND_(arg) arg
 | 
			
		||||
#define GTEST_GET_FIRST_(first, ...) first
 | 
			
		||||
#define GTEST_GET_SECOND_(first, second, ...) second
 | 
			
		||||
 | 
			
		||||
#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, ...)                \
 | 
			
		||||
#define INSTANTIATE_TEST_SUITE_P(prefix, test_suite_name, generator, ...)     \
 | 
			
		||||
  static ::testing::internal::ParamGenerator<test_suite_name::ParamType>      \
 | 
			
		||||
      gtest_##prefix##test_suite_name##_EvalGenerator_() {                    \
 | 
			
		||||
    return GTEST_EXPAND_(GTEST_GET_FIRST_(__VA_ARGS__, DUMMY_PARAM_));        \
 | 
			
		||||
    return generator;                                                         \
 | 
			
		||||
  }                                                                           \
 | 
			
		||||
  static ::std::string gtest_##prefix##test_suite_name##_EvalGenerateName_(   \
 | 
			
		||||
      const ::testing::TestParamInfo<test_suite_name::ParamType>& info) {     \
 | 
			
		||||
    return GTEST_EXPAND_(GTEST_GET_SECOND_(                                   \
 | 
			
		||||
        __VA_ARGS__,                                                          \
 | 
			
		||||
        ::testing::internal::DefaultParamName<test_suite_name::ParamType>,    \
 | 
			
		||||
        DUMMY_PARAM_))(info);                                                 \
 | 
			
		||||
    return ::testing::internal::GetParamNameGen<test_suite_name::ParamType>(  \
 | 
			
		||||
        __VA_ARGS__)(info);                                                   \
 | 
			
		||||
  }                                                                           \
 | 
			
		||||
  static int gtest_##prefix##test_suite_name##_dummy_                         \
 | 
			
		||||
      GTEST_ATTRIBUTE_UNUSED_ =                                               \
 | 
			
		||||
 
 | 
			
		||||
@@ -376,6 +376,26 @@ std::string DefaultParamName(const TestParamInfo<ParamType>& info) {
 | 
			
		||||
  return name_stream.GetString();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
 | 
			
		||||
//
 | 
			
		||||
// Parameterized test name overload helpers, which help the
 | 
			
		||||
// INSTANTIATE_TEST_SUITE_P macro choose between the default parameterized
 | 
			
		||||
// test name generator and user param name generator.
 | 
			
		||||
template <class ParamType, class ParamNameGenFunctor>
 | 
			
		||||
ParamNameGenFunctor GetParamNameGen(ParamNameGenFunctor func) {
 | 
			
		||||
  return func;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <class ParamType>
 | 
			
		||||
struct ParamNameGenFunc {
 | 
			
		||||
  typedef std::string Type(const TestParamInfo<ParamType>&);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
template <class ParamType>
 | 
			
		||||
typename ParamNameGenFunc<ParamType>::Type *GetParamNameGen() {
 | 
			
		||||
  return DefaultParamName;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
 | 
			
		||||
//
 | 
			
		||||
// Stores a parameter value and later creates tests parameterized with that
 | 
			
		||||
@@ -480,7 +500,7 @@ class ParameterizedTestSuiteInfo : public ParameterizedTestSuiteInfoBase {
 | 
			
		||||
  using ParamType = typename TestSuite::ParamType;
 | 
			
		||||
  // A function that returns an instance of appropriate generator type.
 | 
			
		||||
  typedef ParamGenerator<ParamType>(GeneratorCreationFunc)();
 | 
			
		||||
  typedef std::string ParamNameGeneratorFunc(const TestParamInfo<ParamType>&);
 | 
			
		||||
  typedef typename ParamNameGenFunc<ParamType>::Type ParamNameGeneratorFunc;
 | 
			
		||||
 | 
			
		||||
  explicit ParameterizedTestSuiteInfo(const char* name,
 | 
			
		||||
                                      CodeLocation code_location)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user