summaryrefslogtreecommitdiffstats
path: root/googletest/test/gtest-param-test_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'googletest/test/gtest-param-test_test.cc')
-rw-r--r--googletest/test/gtest-param-test_test.cc63
1 files changed, 54 insertions, 9 deletions
diff --git a/googletest/test/gtest-param-test_test.cc b/googletest/test/gtest-param-test_test.cc
index 16d1e6e..adc4d1b 100644
--- a/googletest/test/gtest-param-test_test.cc
+++ b/googletest/test/gtest-param-test_test.cc
@@ -41,8 +41,8 @@
# include <sstream>
# include <string>
# include <vector>
-# include "src/gtest-internal-inl.h" // for UnitTestOptions
+# include "src/gtest-internal-inl.h" // for UnitTestOptions
# include "test/gtest-param-test_test.h"
using ::std::vector;
@@ -536,6 +536,51 @@ TEST(CombineTest, CombineWithMaxNumberOfParameters) {
VerifyGenerator(gen, expected_values);
}
+#if GTEST_LANG_CXX11
+
+class NonDefaultConstructAssignString {
+ public:
+ NonDefaultConstructAssignString(const std::string& s) : str_(s) {}
+
+ const std::string& str() const { return str_; }
+
+ private:
+ std::string str_;
+
+ // Not default constructible
+ NonDefaultConstructAssignString();
+ // Not assignable
+ void operator=(const NonDefaultConstructAssignString&);
+};
+
+TEST(CombineTest, NonDefaultConstructAssign) {
+ const ParamGenerator<tuple<int, NonDefaultConstructAssignString> > gen =
+ Combine(Values(0, 1), Values(NonDefaultConstructAssignString("A"),
+ NonDefaultConstructAssignString("B")));
+
+ ParamGenerator<tuple<int, NonDefaultConstructAssignString> >::iterator it =
+ gen.begin();
+
+ EXPECT_EQ(0, std::get<0>(*it));
+ EXPECT_EQ("A", std::get<1>(*it).str());
+ ++it;
+
+ EXPECT_EQ(0, std::get<0>(*it));
+ EXPECT_EQ("B", std::get<1>(*it).str());
+ ++it;
+
+ EXPECT_EQ(1, std::get<0>(*it));
+ EXPECT_EQ("A", std::get<1>(*it).str());
+ ++it;
+
+ EXPECT_EQ(1, std::get<0>(*it));
+ EXPECT_EQ("B", std::get<1>(*it).str());
+ ++it;
+
+ EXPECT_TRUE(it == gen.end());
+}
+
+#endif // GTEST_LANG_CXX11
# endif // GTEST_HAS_COMBINE
// Tests that an generator produces correct sequence after being
@@ -839,8 +884,8 @@ class CustomFunctorNamingTest : public TestWithParam<std::string> {};
TEST_P(CustomFunctorNamingTest, CustomTestNames) {}
struct CustomParamNameFunctor {
- std::string operator()(const ::testing::TestParamInfo<std::string>& info) {
- return info.param;
+ std::string operator()(const ::testing::TestParamInfo<std::string>& inf) {
+ return inf.param;
}
};
@@ -857,8 +902,8 @@ INSTANTIATE_TEST_CASE_P(AllAllowedCharacters,
CustomParamNameFunctor());
inline std::string CustomParamNameFunction(
- const ::testing::TestParamInfo<std::string>& info) {
- return info.param;
+ const ::testing::TestParamInfo<std::string>& inf) {
+ return inf.param;
}
class CustomFunctionNamingTest : public TestWithParam<std::string> {};
@@ -876,11 +921,10 @@ INSTANTIATE_TEST_CASE_P(CustomParamNameFunction,
class CustomLambdaNamingTest : public TestWithParam<std::string> {};
TEST_P(CustomLambdaNamingTest, CustomTestNames) {}
-INSTANTIATE_TEST_CASE_P(CustomParamNameLambda,
- CustomLambdaNamingTest,
+INSTANTIATE_TEST_CASE_P(CustomParamNameLambda, CustomLambdaNamingTest,
Values(std::string("LambdaName")),
- [](const ::testing::TestParamInfo<std::string>& tpinfo) {
- return tpinfo.param;
+ [](const ::testing::TestParamInfo<std::string>& inf) {
+ return inf.param;
});
#endif // GTEST_LANG_CXX11
@@ -1047,6 +1091,7 @@ TEST_F(ParameterizedDeathTest, GetParamDiesFromTestF) {
INSTANTIATE_TEST_CASE_P(RangeZeroToFive, ParameterizedDerivedTest, Range(0, 5));
+
int main(int argc, char **argv) {
// Used in TestGenerationTest test case.
AddGlobalTestEnvironment(TestGenerationTest::Environment::Instance());