Fixes Sun C++ compiler errors (by Pasi Valminen)
This commit is contained in:
parent
fc99b1ad51
commit
b8c0e16eeb
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user