Merge branch 'master' into master
This commit is contained in:
commit
631e3a5838
11
.travis.yml
11
.travis.yml
@ -29,10 +29,6 @@ matrix:
|
||||
group: deprecated-2017Q4
|
||||
compiler: gcc
|
||||
env: BUILD_TYPE=Debug VERBOSE=1 CXX_FLAGS=-std=c++11
|
||||
- os: linux
|
||||
group: deprecated-2017Q4
|
||||
compiler: clang
|
||||
env: BUILD_TYPE=Debug VERBOSE=1
|
||||
- os: linux
|
||||
group: deprecated-2017Q4
|
||||
compiler: clang
|
||||
@ -40,16 +36,9 @@ matrix:
|
||||
- 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
|
||||
- os: osx
|
||||
compiler: gcc
|
||||
env: BUILD_TYPE=Debug VERBOSE=1
|
||||
- os: osx
|
||||
compiler: gcc
|
||||
env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11
|
||||
- os: osx
|
||||
compiler: clang
|
||||
env: BUILD_TYPE=Debug VERBOSE=1
|
||||
if: type != pull_request
|
||||
- os: osx
|
||||
env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11
|
||||
if: type != pull_request
|
||||
|
@ -1307,9 +1307,6 @@ class StrEqualityMatcher {
|
||||
#if GTEST_HAS_ABSL
|
||||
bool MatchAndExplain(const absl::string_view& s,
|
||||
MatchResultListener* listener) const {
|
||||
if (s.data() == NULL) {
|
||||
return !expect_eq_;
|
||||
}
|
||||
// This should fail to compile if absl::string_view is used with wide
|
||||
// strings.
|
||||
const StringType& str = string(s);
|
||||
@ -1380,9 +1377,6 @@ class HasSubstrMatcher {
|
||||
#if GTEST_HAS_ABSL
|
||||
bool MatchAndExplain(const absl::string_view& s,
|
||||
MatchResultListener* listener) const {
|
||||
if (s.data() == NULL) {
|
||||
return false;
|
||||
}
|
||||
// This should fail to compile if absl::string_view is used with wide
|
||||
// strings.
|
||||
const StringType& str = string(s);
|
||||
@ -1440,9 +1434,6 @@ class StartsWithMatcher {
|
||||
#if GTEST_HAS_ABSL
|
||||
bool MatchAndExplain(const absl::string_view& s,
|
||||
MatchResultListener* listener) const {
|
||||
if (s.data() == NULL) {
|
||||
return false;
|
||||
}
|
||||
// This should fail to compile if absl::string_view is used with wide
|
||||
// strings.
|
||||
const StringType& str = string(s);
|
||||
@ -1499,9 +1490,6 @@ class EndsWithMatcher {
|
||||
#if GTEST_HAS_ABSL
|
||||
bool MatchAndExplain(const absl::string_view& s,
|
||||
MatchResultListener* listener) const {
|
||||
if (s.data() == NULL) {
|
||||
return false;
|
||||
}
|
||||
// This should fail to compile if absl::string_view is used with wide
|
||||
// strings.
|
||||
const StringType& str = string(s);
|
||||
@ -1558,7 +1546,7 @@ class MatchesRegexMatcher {
|
||||
#if GTEST_HAS_ABSL
|
||||
bool MatchAndExplain(const absl::string_view& s,
|
||||
MatchResultListener* listener) const {
|
||||
return s.data() && MatchAndExplain(string(s), listener);
|
||||
return MatchAndExplain(string(s), listener);
|
||||
}
|
||||
#endif // GTEST_HAS_ABSL
|
||||
|
||||
|
@ -1335,6 +1335,11 @@ TEST(StrEqTest, MatchesEqualString) {
|
||||
EXPECT_TRUE(m3.Matches(absl::string_view("Hello")));
|
||||
EXPECT_FALSE(m3.Matches(absl::string_view("hello")));
|
||||
EXPECT_FALSE(m3.Matches(absl::string_view()));
|
||||
|
||||
Matcher<const absl::string_view&> m_empty = StrEq("");
|
||||
EXPECT_TRUE(m_empty.Matches(absl::string_view("")));
|
||||
EXPECT_TRUE(m_empty.Matches(absl::string_view()));
|
||||
EXPECT_FALSE(m_empty.Matches(absl::string_view("hello")));
|
||||
#endif // GTEST_HAS_ABSL
|
||||
}
|
||||
|
||||
@ -1459,6 +1464,10 @@ TEST(HasSubstrTest, WorksForStringClasses) {
|
||||
const Matcher<const std::string&> m2 = HasSubstr("foo");
|
||||
EXPECT_TRUE(m2.Matches(std::string("I love food.")));
|
||||
EXPECT_FALSE(m2.Matches(std::string("tofo")));
|
||||
|
||||
const Matcher<std::string> m_empty = HasSubstr("");
|
||||
EXPECT_TRUE(m_empty.Matches(std::string()));
|
||||
EXPECT_TRUE(m_empty.Matches(std::string("not empty")));
|
||||
}
|
||||
|
||||
// Tests that HasSubstr() works for matching C-string-typed values.
|
||||
@ -1472,6 +1481,11 @@ TEST(HasSubstrTest, WorksForCStrings) {
|
||||
EXPECT_TRUE(m2.Matches("I love food."));
|
||||
EXPECT_FALSE(m2.Matches("tofo"));
|
||||
EXPECT_FALSE(m2.Matches(NULL));
|
||||
|
||||
const Matcher<const char*> m_empty = HasSubstr("");
|
||||
EXPECT_TRUE(m_empty.Matches("not empty"));
|
||||
EXPECT_TRUE(m_empty.Matches(""));
|
||||
EXPECT_FALSE(m_empty.Matches(NULL));
|
||||
}
|
||||
|
||||
#if GTEST_HAS_ABSL
|
||||
@ -1489,7 +1503,8 @@ TEST(HasSubstrTest, WorksForStringViewClasses) {
|
||||
|
||||
const Matcher<const absl::string_view&> m3 = HasSubstr("");
|
||||
EXPECT_TRUE(m3.Matches(absl::string_view("foo")));
|
||||
EXPECT_FALSE(m3.Matches(absl::string_view()));
|
||||
EXPECT_TRUE(m3.Matches(absl::string_view("")));
|
||||
EXPECT_TRUE(m3.Matches(absl::string_view()));
|
||||
}
|
||||
#endif // GTEST_HAS_ABSL
|
||||
|
||||
@ -1713,6 +1728,13 @@ TEST(StartsWithTest, MatchesStringWithGivenPrefix) {
|
||||
EXPECT_TRUE(m2.Matches("High"));
|
||||
EXPECT_FALSE(m2.Matches("H"));
|
||||
EXPECT_FALSE(m2.Matches(" Hi"));
|
||||
|
||||
#if GTEST_HAS_ABSL
|
||||
const Matcher<absl::string_view> m_empty = StartsWith("");
|
||||
EXPECT_TRUE(m_empty.Matches(absl::string_view()));
|
||||
EXPECT_TRUE(m_empty.Matches(absl::string_view("")));
|
||||
EXPECT_TRUE(m_empty.Matches(absl::string_view("not empty")));
|
||||
#endif // GTEST_HAS_ABSL
|
||||
}
|
||||
|
||||
TEST(StartsWithTest, CanDescribeSelf) {
|
||||
@ -1748,9 +1770,8 @@ TEST(EndsWithTest, MatchesStringWithGivenSuffix) {
|
||||
const Matcher<const absl::string_view&> m4 = EndsWith("");
|
||||
EXPECT_TRUE(m4.Matches("Hi"));
|
||||
EXPECT_TRUE(m4.Matches(""));
|
||||
// Default-constructed absl::string_view should not match anything, in order
|
||||
// to distinguish it from an empty string.
|
||||
EXPECT_FALSE(m4.Matches(absl::string_view()));
|
||||
EXPECT_TRUE(m4.Matches(absl::string_view()));
|
||||
EXPECT_TRUE(m4.Matches(absl::string_view("")));
|
||||
#endif // GTEST_HAS_ABSL
|
||||
}
|
||||
|
||||
@ -1777,11 +1798,10 @@ TEST(MatchesRegexTest, MatchesStringMatchingGivenRegex) {
|
||||
EXPECT_TRUE(m3.Matches(absl::string_view("az")));
|
||||
EXPECT_TRUE(m3.Matches(absl::string_view("abcz")));
|
||||
EXPECT_FALSE(m3.Matches(absl::string_view("1az")));
|
||||
// Default-constructed absl::string_view should not match anything, in order
|
||||
// to distinguish it from an empty string.
|
||||
EXPECT_FALSE(m3.Matches(absl::string_view()));
|
||||
const Matcher<const absl::string_view&> m4 = MatchesRegex("");
|
||||
EXPECT_FALSE(m4.Matches(absl::string_view()));
|
||||
EXPECT_TRUE(m4.Matches(absl::string_view("")));
|
||||
EXPECT_TRUE(m4.Matches(absl::string_view()));
|
||||
#endif // GTEST_HAS_ABSL
|
||||
}
|
||||
|
||||
@ -1816,11 +1836,10 @@ TEST(ContainsRegexTest, MatchesStringContainingGivenRegex) {
|
||||
EXPECT_TRUE(m3.Matches(absl::string_view("azbz")));
|
||||
EXPECT_TRUE(m3.Matches(absl::string_view("az1")));
|
||||
EXPECT_FALSE(m3.Matches(absl::string_view("1a")));
|
||||
// Default-constructed absl::string_view should not match anything, in order
|
||||
// to distinguish it from an empty string.
|
||||
EXPECT_FALSE(m3.Matches(absl::string_view()));
|
||||
const Matcher<const absl::string_view&> m4 = ContainsRegex("");
|
||||
EXPECT_FALSE(m4.Matches(absl::string_view()));
|
||||
EXPECT_TRUE(m4.Matches(absl::string_view("")));
|
||||
EXPECT_TRUE(m4.Matches(absl::string_view()));
|
||||
#endif // GTEST_HAS_ABSL
|
||||
}
|
||||
|
||||
|
@ -63,9 +63,7 @@ TEST(CommandLineFlagsTest, CanBeAccessedInCodeOnceGTestHIsIncluded) {
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <ostream>
|
||||
#if GTEST_LANG_CXX11
|
||||
#include <unordered_set>
|
||||
#endif // GTEST_LANG_CXX11
|
||||
|
||||
#include "gtest/gtest-spi.h"
|
||||
#include "src/gtest-internal-inl.h"
|
||||
@ -5165,8 +5163,7 @@ TEST(AssertionResultTest, CanStreamOstreamManipulators) {
|
||||
EXPECT_STREQ("Data\n\\0Will be visible", r.message());
|
||||
}
|
||||
|
||||
// The next test uses explicit conversion operators -- a C++11 feature.
|
||||
#if GTEST_LANG_CXX11
|
||||
// The next test uses explicit conversion operators
|
||||
|
||||
TEST(AssertionResultTest, ConstructibleFromContextuallyConvertibleToBool) {
|
||||
struct ExplicitlyConvertibleToBool {
|
||||
@ -5179,8 +5176,6 @@ TEST(AssertionResultTest, ConstructibleFromContextuallyConvertibleToBool) {
|
||||
EXPECT_TRUE(v2);
|
||||
}
|
||||
|
||||
#endif // GTEST_LANG_CXX11
|
||||
|
||||
struct ConvertibleToAssertionResult {
|
||||
operator AssertionResult() const { return AssertionResult(true); }
|
||||
};
|
||||
@ -7564,7 +7559,6 @@ TEST(IsContainerTestTest, WorksForContainer) {
|
||||
sizeof(IsContainerTest<std::map<int, double> >(0)));
|
||||
}
|
||||
|
||||
#if GTEST_LANG_CXX11
|
||||
struct ConstOnlyContainerWithPointerIterator {
|
||||
using const_iterator = int*;
|
||||
const_iterator begin() const;
|
||||
@ -7586,7 +7580,6 @@ TEST(IsContainerTestTest, ConstOnlyContainer) {
|
||||
EXPECT_EQ(sizeof(IsContainer),
|
||||
sizeof(IsContainerTest<ConstOnlyContainerWithClassIterator>(0)));
|
||||
}
|
||||
#endif // GTEST_LANG_CXX11
|
||||
|
||||
// Tests IsHashTable.
|
||||
struct AHashTable {
|
||||
@ -7599,10 +7592,8 @@ struct NotReallyAHashTable {
|
||||
TEST(IsHashTable, Basic) {
|
||||
EXPECT_TRUE(testing::internal::IsHashTable<AHashTable>::value);
|
||||
EXPECT_FALSE(testing::internal::IsHashTable<NotReallyAHashTable>::value);
|
||||
#if GTEST_LANG_CXX11
|
||||
EXPECT_FALSE(testing::internal::IsHashTable<std::vector<int>>::value);
|
||||
EXPECT_TRUE(testing::internal::IsHashTable<std::unordered_set<int>>::value);
|
||||
#endif // GTEST_LANG_CXX11
|
||||
#if GTEST_HAS_HASH_SET_
|
||||
EXPECT_TRUE(testing::internal::IsHashTable<__gnu_cxx::hash_set<int>>::value);
|
||||
#endif // GTEST_HAS_HASH_SET_
|
||||
|
Loading…
Reference in New Issue
Block a user