Fixes Sun C++ compiler errors (by Pasi Valminen)
This commit is contained in:
		@@ -417,7 +417,7 @@ class ParameterizedTestCaseInfoBase {
 | 
				
			|||||||
  virtual ~ParameterizedTestCaseInfoBase() {}
 | 
					  virtual ~ParameterizedTestCaseInfoBase() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Base part of test case name for display purposes.
 | 
					  // Base part of test case name for display purposes.
 | 
				
			||||||
  virtual const String& GetTestCaseName() const = 0;
 | 
					  virtual const string& GetTestCaseName() const = 0;
 | 
				
			||||||
  // Test case id to verify identity.
 | 
					  // Test case id to verify identity.
 | 
				
			||||||
  virtual TypeId GetTestCaseTypeId() const = 0;
 | 
					  virtual TypeId GetTestCaseTypeId() const = 0;
 | 
				
			||||||
  // UnitTest class invokes this method to register tests in this
 | 
					  // UnitTest class invokes this method to register tests in this
 | 
				
			||||||
@@ -454,7 +454,7 @@ class ParameterizedTestCaseInfo : public ParameterizedTestCaseInfoBase {
 | 
				
			|||||||
      : test_case_name_(name) {}
 | 
					      : test_case_name_(name) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Test case base name for display purposes.
 | 
					  // Test case base name for display purposes.
 | 
				
			||||||
  virtual const String& GetTestCaseName() const { return test_case_name_; }
 | 
					  virtual const string& GetTestCaseName() const { return test_case_name_; }
 | 
				
			||||||
  // Test case id to verify identity.
 | 
					  // Test case id to verify identity.
 | 
				
			||||||
  virtual TypeId GetTestCaseTypeId() const { return GetTypeId<TestCase>(); }
 | 
					  virtual TypeId GetTestCaseTypeId() const { return GetTypeId<TestCase>(); }
 | 
				
			||||||
  // TEST_P macro uses AddTestPattern() to record information
 | 
					  // TEST_P macro uses AddTestPattern() to record information
 | 
				
			||||||
@@ -472,7 +472,7 @@ class ParameterizedTestCaseInfo : public ParameterizedTestCaseInfoBase {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  // INSTANTIATE_TEST_CASE_P macro uses AddGenerator() to record information
 | 
					  // INSTANTIATE_TEST_CASE_P macro uses AddGenerator() to record information
 | 
				
			||||||
  // about a generator.
 | 
					  // about a generator.
 | 
				
			||||||
  int AddTestCaseInstantiation(const char* instantiation_name,
 | 
					  int AddTestCaseInstantiation(const string& instantiation_name,
 | 
				
			||||||
                               GeneratorCreationFunc* func,
 | 
					                               GeneratorCreationFunc* func,
 | 
				
			||||||
                               const char* /* file */,
 | 
					                               const char* /* file */,
 | 
				
			||||||
                               int /* line */) {
 | 
					                               int /* line */) {
 | 
				
			||||||
@@ -491,20 +491,20 @@ class ParameterizedTestCaseInfo : public ParameterizedTestCaseInfoBase {
 | 
				
			|||||||
      for (typename InstantiationContainer::iterator gen_it =
 | 
					      for (typename InstantiationContainer::iterator gen_it =
 | 
				
			||||||
               instantiations_.begin(); gen_it != instantiations_.end();
 | 
					               instantiations_.begin(); gen_it != instantiations_.end();
 | 
				
			||||||
               ++gen_it) {
 | 
					               ++gen_it) {
 | 
				
			||||||
        const String& instantiation_name = gen_it->first;
 | 
					        const string& instantiation_name = gen_it->first;
 | 
				
			||||||
        ParamGenerator<ParamType> generator((*gen_it->second)());
 | 
					        ParamGenerator<ParamType> generator((*gen_it->second)());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Message test_case_name_stream;
 | 
					        Message test_case_name_stream;
 | 
				
			||||||
        if ( !instantiation_name.empty() )
 | 
					        if ( !instantiation_name.empty() )
 | 
				
			||||||
          test_case_name_stream << instantiation_name.c_str() << "/";
 | 
					          test_case_name_stream << instantiation_name << "/";
 | 
				
			||||||
        test_case_name_stream << test_info->test_case_base_name.c_str();
 | 
					        test_case_name_stream << test_info->test_case_base_name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        int i = 0;
 | 
					        int i = 0;
 | 
				
			||||||
        for (typename ParamGenerator<ParamType>::iterator param_it =
 | 
					        for (typename ParamGenerator<ParamType>::iterator param_it =
 | 
				
			||||||
                 generator.begin();
 | 
					                 generator.begin();
 | 
				
			||||||
             param_it != generator.end(); ++param_it, ++i) {
 | 
					             param_it != generator.end(); ++param_it, ++i) {
 | 
				
			||||||
          Message test_name_stream;
 | 
					          Message test_name_stream;
 | 
				
			||||||
          test_name_stream << test_info->test_base_name.c_str() << "/" << i;
 | 
					          test_name_stream << test_info->test_base_name << "/" << i;
 | 
				
			||||||
          MakeAndRegisterTestInfo(
 | 
					          MakeAndRegisterTestInfo(
 | 
				
			||||||
              test_case_name_stream.GetString().c_str(),
 | 
					              test_case_name_stream.GetString().c_str(),
 | 
				
			||||||
              test_name_stream.GetString().c_str(),
 | 
					              test_name_stream.GetString().c_str(),
 | 
				
			||||||
@@ -530,17 +530,17 @@ class ParameterizedTestCaseInfo : public ParameterizedTestCaseInfoBase {
 | 
				
			|||||||
        test_base_name(a_test_base_name),
 | 
					        test_base_name(a_test_base_name),
 | 
				
			||||||
        test_meta_factory(a_test_meta_factory) {}
 | 
					        test_meta_factory(a_test_meta_factory) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const String test_case_base_name;
 | 
					    const string test_case_base_name;
 | 
				
			||||||
    const String test_base_name;
 | 
					    const string test_base_name;
 | 
				
			||||||
    const scoped_ptr<TestMetaFactoryBase<ParamType> > test_meta_factory;
 | 
					    const scoped_ptr<TestMetaFactoryBase<ParamType> > test_meta_factory;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  typedef ::std::vector<linked_ptr<TestInfo> > TestInfoContainer;
 | 
					  typedef ::std::vector<linked_ptr<TestInfo> > TestInfoContainer;
 | 
				
			||||||
  // Keeps pairs of <Instantiation name, Sequence generator creation function>
 | 
					  // Keeps pairs of <Instantiation name, Sequence generator creation function>
 | 
				
			||||||
  // received from INSTANTIATE_TEST_CASE_P macros.
 | 
					  // received from INSTANTIATE_TEST_CASE_P macros.
 | 
				
			||||||
  typedef ::std::vector<std::pair<String, GeneratorCreationFunc*> >
 | 
					  typedef ::std::vector<std::pair<string, GeneratorCreationFunc*> >
 | 
				
			||||||
      InstantiationContainer;
 | 
					      InstantiationContainer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const String test_case_name_;
 | 
					  const string test_case_name_;
 | 
				
			||||||
  TestInfoContainer tests_;
 | 
					  TestInfoContainer tests_;
 | 
				
			||||||
  InstantiationContainer instantiations_;
 | 
					  InstantiationContainer instantiations_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -271,7 +271,14 @@ GTEST_API_ bool ShouldRunTestOnShard(
 | 
				
			|||||||
// the given predicate.
 | 
					// the given predicate.
 | 
				
			||||||
template <class Container, typename Predicate>
 | 
					template <class Container, typename Predicate>
 | 
				
			||||||
inline int CountIf(const Container& c, Predicate predicate) {
 | 
					inline int CountIf(const Container& c, Predicate predicate) {
 | 
				
			||||||
  return static_cast<int>(std::count_if(c.begin(), c.end(), predicate));
 | 
					  // Implemented as an explicit loop since std::count_if() in libCstd on
 | 
				
			||||||
 | 
					  // Solaris has a non-standard signature.
 | 
				
			||||||
 | 
					  int count = 0;
 | 
				
			||||||
 | 
					  for (typename Container::const_iterator it = c.begin(); it != c.end(); ++it) {
 | 
				
			||||||
 | 
					    if (predicate(*it))
 | 
				
			||||||
 | 
					      ++count;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return count;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Applies a function/functor to each element in the container.
 | 
					// Applies a function/functor to each element in the container.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -857,7 +857,7 @@ TEST(PrintStlContainerTest, HashMultiSet) {
 | 
				
			|||||||
#endif  // GTEST_HAS_HASH_SET_
 | 
					#endif  // GTEST_HAS_HASH_SET_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEST(PrintStlContainerTest, List) {
 | 
					TEST(PrintStlContainerTest, List) {
 | 
				
			||||||
  const char* a[] = {
 | 
					  const string a[] = {
 | 
				
			||||||
    "hello",
 | 
					    "hello",
 | 
				
			||||||
    "world"
 | 
					    "world"
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
@@ -875,9 +875,15 @@ TEST(PrintStlContainerTest, Map) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
TEST(PrintStlContainerTest, MultiMap) {
 | 
					TEST(PrintStlContainerTest, MultiMap) {
 | 
				
			||||||
  multimap<bool, int> map1;
 | 
					  multimap<bool, int> map1;
 | 
				
			||||||
  map1.insert(make_pair(true, 0));
 | 
					  // The make_pair template function would deduce the type as
 | 
				
			||||||
  map1.insert(make_pair(true, 1));
 | 
					  // pair<bool, int> here, and since the key part in a multimap has to
 | 
				
			||||||
  map1.insert(make_pair(false, 2));
 | 
					  // be constant, without a templated ctor in the pair class (as in
 | 
				
			||||||
 | 
					  // libCstd on Solaris), make_pair call would fail to compile as no
 | 
				
			||||||
 | 
					  // implicit conversion is found.  Thus explicit typename is used
 | 
				
			||||||
 | 
					  // here instead.
 | 
				
			||||||
 | 
					  map1.insert(pair<const bool, int>(true, 0));
 | 
				
			||||||
 | 
					  map1.insert(pair<const bool, int>(true, 1));
 | 
				
			||||||
 | 
					  map1.insert(pair<const bool, int>(false, 2));
 | 
				
			||||||
  EXPECT_EQ("{ (false, 2), (true, 0), (true, 1) }", Print(map1));
 | 
					  EXPECT_EQ("{ (false, 2), (true, 0), (true, 1) }", Print(map1));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user