94 Commits

Author SHA1 Message Date
Abseil Team
572e261b60 Googletest export
Fix use of reserved names.
Minimize code duplication needed for explict-vs-nonexplicit constructor.

PiperOrigin-RevId: 292555014
2020-02-07 13:34:42 -05:00
Xiaoyi Zhang
9417fb401a Merge pull request #2665 from bysreg:fix_noshortcircuitfailure_detectsflakyshortcircuit_test
PiperOrigin-RevId: 290256504
2020-01-21 16:26:24 -05:00
Muhammad Hilman Beyri
c7137f0b84 Use IsReadableTypeName IsReadableTypeName in OfType function in gmock-matchers_test.cc 2020-01-12 21:29:54 -05:00
Muhammad Hilman Beyri
3aa538cbfc fix unit test failure on NoShortCircuitOnFailure and DetectsFlakyShortCircuit when GTEST_HAS_RTTI is 1 2020-01-12 16:53:09 -05:00
Gennadiy Rozental
39803f3c51 Merge pull request #2593 from kuzkry:remove-workaround_msvc-namespace-scope-from-nested-class
PiperOrigin-RevId: 282593823
2019-11-26 15:47:38 -05:00
Abseil Team
717ce7feb8 Googletest export
Use standard C++11 integer types in gtest-port.h.

Remove testing::internal::{Int,Uint}{32,64} in favor of types
guaranteed to be in <cstdint> since C++11.

Tests for built-in integer type coverage are switched from
{Int,Uint}64 to [unsigned] long long, which is guaranteed by
C++11 to exist and be at least 64-bit wide.

PiperOrigin-RevId: 281565263
2019-11-22 16:33:15 -05:00
Krystian Kuzniarek
21d276b5c4 remove MSVC workaround: accessing namespace scope from within nested classes 2019-11-22 17:10:39 +01:00
Gennadiy Civil
de11283554 Merge pull request #2444 from kuzkry:remove-GTEST_ARRAY_SIZE_
PiperOrigin-RevId: 275842505
2019-10-22 09:38:21 -04:00
Abseil Team
011c4e23d5 Googletest export
Rolling forward IsNan() matcher with fixes in test for -Wconversion issues. Use
std::nanf and std::nanl where appropriate.
PiperOrigin-RevId: 275523003
2019-10-22 09:37:46 -04:00
misterg
f966ed1581 Googletest export
Added IsNan matcher

PiperOrigin-RevId: 275473218
2019-10-18 11:34:08 -04:00
Abseil Team
bbe4b7363b Googletest export
Added IsNan matcher

PiperOrigin-RevId: 275278634
2019-10-17 13:08:00 -04:00
Abseil Team
cb3f7ce1de Googletest export
Makes testing::ResultOf() work with non-copyable arguments.

PiperOrigin-RevId: 271222632
2019-09-27 16:48:33 -04:00
Krystian Kuzniarek
e0d16aa336 remove GTEST_ARRAY_SIZE_
This macro didn't work when an array was passed to a function by pointer,
in which case the information about its size was lost.
Better alternatives are:
* std::extent<T>::value (compile-time)
* std::array<T, N>::size() (compile-time)
* std::distance(std::begin(array), std::end(array)) (run-time)
2019-09-23 19:31:06 +02:00
Krystian Kuzniarek
7bd4a7f3e9 restore mistakenly removed iffs in their explicit form
Due to confusion arisen from "iff" standing for "if and only if",
this commit uses the latter.
2019-08-20 12:14:22 +02:00
Krystian Kuzniarek
ec49fbca4c remove custom implementations of std::is_same 2019-08-14 14:00:44 +02:00
Krystian Kuzniarek
bf6df7eaee fix typos 2019-07-30 12:52:27 +02:00
Tom Lachecki
d515158d9c Fixed issue #2284 (Incompatibility with C++17) 2019-06-13 17:37:33 +01:00
Gennadiy Civil
a0d60bed4d Merge pull request #2170 from ngie-eign:issue-2146-ver2
PiperOrigin-RevId: 244069956
2019-04-18 09:44:24 -04:00
Enji Cooper
3829b84e99 clang: fix -Wsign-conversion errors
Cast some values as their unsigned equivalents or `size_t` to match the
parameter type used for the template object under test. Also, provide
UInt32 equivalent delegate methods for some callers (with
int-equivalents for backwards compatibility).

This closes #2146.

Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
2019-04-05 21:30:19 -07:00
Abseil Team
d982543131 Googletest export
Remove support for "global" ::string and ::wstring types.
This support existed for legacy codebases that existed from before namespaces
where a thing. It is no longer necessary.

PiperOrigin-RevId: 241335738
2019-04-01 15:05:10 -04:00
Enji Cooper
1c22797cd3 Fix clang -Wunused-parameter warnings
Comment out unused method parameters in their relevant definitions.

Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
2019-02-13 14:38:51 -08:00
Enji Cooper
5388473acf Fix clang -Winconsistent-missing-override warnings
`DescribeTo(..)` and `MatchAndExplain(..)` in `gmock-matchers_test` both
override virtual methods. Remove the `virtual` keyword and apply `override` to
them instead.

Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
2019-02-13 14:38:51 -08:00
Enji Cooper
ed2fe122f8 Fix -Wunused-private-field issues with clang
Provide dummy accessors for private values that are set in initializers,
but not actually used.

Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
2019-02-12 16:40:01 -08:00
Abseil Team
28a96d1834 Googletest export
Fix matcher comparisons for std::reference_wrapper.

The googletest docs indicate that std::reference_wrapper should be used to for
objects that should not be copied by the matcher (in fact, the ByRef() function
is basically the same as a call to std::cref).

However, for many types (such as std::string), the overloaded operator== will
not resolve correctly. Specifically, this is problematic if operator== depends
on template argument deduction, where the same type is named on LHS and RHS.

Because template argument deduction happens before any implict conversions for
purposes of overload resolution, attempting to compare T with
std::reference_wrapper<T> simply looks like a comparison of unlike types.

For exapmle, std::reference_wrapper<std::string> is implicitly convertible to
'const std::string&', which would be able to choose an overload specialization
of operator==. However, the implicit conversion can only happen after template
argument deduction for operator==, so a specialization that would other be an
applicable overload is never considered.

Note also that this change only affects matchers. There are good reasons that
matchers may need to transparently hold a std::reference_wrapper. Other
comparisons (like EXPECT_EQ, et. al.) don't need to capture a reference: they
don't need to defer evaluation (as in googlemock), and they don't need to avoid
copies (as the call chain of matchers does).

PiperOrigin-RevId: 232499175
2019-02-12 13:20:14 -05:00
misterg
52ea4f7bea Googletest export
Mark legacy _TEST_CASE_ macros as deprecated

PiperOrigin-RevId: 232303251
2019-02-04 14:19:50 -05:00
Abseil Team
9acd065a90 Googletest export
Add move-only argument support to almost all remaining matchers.

PiperOrigin-RevId: 229030728
2019-01-14 17:02:03 -05:00
Abseil Team
097407fd3c Googletest export
Deduplicate testing::ReferenceWrapper with std::reference_wrapper.
Minor cleanups in matchers_test.

PiperOrigin-RevId: 229022872
2019-01-14 17:01:56 -05:00
Abseil Team
f8b1c1af17 Googletest export
Remove the #ifs for old, unsupported and buggy compilers:
* old versions of GCC & MSVC
* Symbian

PiperOrigin-RevId: 227116941
2019-01-02 16:51:33 -05:00
Abseil Team
e26a3fa13c Googletest export
Unifdef c++11-related macros from googletest now that it requires C++11.

PiperOrigin-RevId: 225905601
2018-12-20 14:09:31 -05:00
Abseil Team
1ec20f87e3 Googletest export
Allow container matchers to accept move-only containers.

PiperOrigin-RevId: 225667441
2018-12-17 13:53:33 -05:00
Abseil Team
6ef5913813 Googletest export
The gmock matchers have a concept of MatchAndExpain; where the details of the
matching are written to a "result listener". A matcher can avoid creating
expensive debug info by checking result_listener->IsInterested(); but,
unfortunately, the default matcher code (called from EXPECT_THAT) is always
"interested".

This change implements EXPECT_THAT matching to first run the matcher in a "not
interested" mode; and then run it a second time ("interested") only if the
match fails.

PiperOrigin-RevId: 225036073
2018-12-12 11:54:22 -05:00
misterg
6cbd3753dc Googletest export
rollback of 224929783

PiperOrigin-RevId: 225008559
2018-12-11 11:36:30 -05:00
Abseil Team
06bb8d4d6d Googletest export
The gmock matchers have a concept of MatchAndExpain; where the details of the
matching are written to a "result listener". A matcher can avoid creating
expensive debug info by checking result_listener->IsInterested(); but,
unfortunately, the default matcher code (called from EXPECT_THAT) is always
"interested".

This change implements EXPECT_THAT matching to first run the matcher in a "not
interested" mode; and then run it a second time ("interested") only if the
match fails.

PiperOrigin-RevId: 224929783
2018-12-11 10:11:01 -05:00
Abseil Team
3d71ab4c37 Googletest export
Deduce SizeType for SizeIs() from the return value of the size() member function

PiperOrigin-RevId: 223835674
2018-12-04 09:45:03 -05:00
Abseil Team
26743363be Googletest export
Applied fixes for ClangTidy modernize-use-override and modernize-use-using.

PiperOrigin-RevId: 223800219
2018-12-03 12:54:11 -05:00
Abseil Team
a42cdf2abd Googletest export
Replace pump'd Args() matcher with variadic templates.

PiperOrigin-RevId: 223794430
2018-12-03 12:54:02 -05:00
misterg
e857f9cdd9 Googletest export
Remove scoped_ptr replace with std::unique_ptr

PiperOrigin-RevId: 219291284
2018-10-30 21:20:43 -04:00
Gennadiy Civil
e9085769d4 Merge pull request #1941 from barkovv:master
PiperOrigin-RevId: 219134349
2018-10-29 13:46:24 -04:00
misterg
80b43d900b Googletest export
Remove linked_ptr and use std::shared_ptr instead

PiperOrigin-RevId: 219129336
2018-10-29 13:46:16 -04:00
Vadim Barkov
3feffddd1e Replaced all NULLs with nullptr in googlemock 2018-10-28 03:27:51 +03:00
Abseil Team
b57c703963 Googletest export
Remove linked_ptr and use std::shared_ptr instead

PiperOrigin-RevId: 218618184
2018-10-26 14:19:59 -04:00
misterg
a50e4f05b3 Googletest export
Remove linked_ptr and use std::shared_ptr instead

PiperOrigin-RevId: 218571466
2018-10-26 14:19:51 -04:00
misterg
78761b58fc Remove non-variadic pre C++11 AnyOf
PiperOrigin-RevId: 216411381
2018-10-09 16:30:37 -04:00
Abseil Team
7d3b73c85a Unconditionally use std::tuple.
Remove all mention of TR1 tuple and our own implementation of tuple.

PiperOrigin-RevId: 216395043
2018-10-09 16:25:58 -04:00
misterg
4ac07de8de Fixing AllOfMatches test, where it properly belongs
PiperOrigin-RevId: 216193701
2018-10-08 17:07:05 -04:00
misterg
fab35920ad Remove non-variadic pre C++11 AllOf
PiperOrigin-RevId: 216183352
2018-10-08 10:51:03 -04:00
Abseil Team
4bb49ed640 Apply clang-tidy modernize-use-nullptr to googletest.
Now that googletest has moved to C++11, it should no longer
use NULL or 0 for the null pointer. This patch converts all
such usages to nullptr using clang-tidy.

This prevents LLVM from issuing -Wzero-as-null-pointer-constant
warnings.

PiperOrigin-RevId: 215814400
2018-10-05 12:54:14 -04:00
Abseil Team
ffc9baeb4c Googletest export
Treat default-constructed string_view same as constructed from "".
In the context of string comparison (e.g. HasSubstr, StartsWith, EndsWith,
etc.), a default-constructed string_view (nullptr) should be semantically same
as a empty string "".

PiperOrigin-RevId: 212816839
2018-09-14 11:13:48 -04:00
Abseil Team
a0e62d9f1a No longer require a functor passed to ResultOf matcher to define result_of type.
This makes ResultOf more convenient to use. In particular, the matcher now accepts
lambdas.

PiperOrigin-RevId: 210118509
2018-08-27 12:22:26 -04:00
Gennadiy Civil
a3c0dd0f4d Comments changes, no functionality changes 2018-08-14 14:04:07 -04:00
Gennadiy Civil
a02af2f689 code merge 2018-07-20 11:28:58 -04:00
Gennadiy Civil
0c17888bcf code sync 2018-07-19 12:42:39 -04:00
Gennadiy Civil
3530ab9e43 Code sync 2018-07-18 11:51:14 -04:00
Scott Graham
a9653c401e Fix gmock not building when -fno-rtti
Fixes issue #1554. This is internal cl/195020996.
2018-05-02 11:14:39 -07:00
Gennadiy Civil
9af3793103 merged 2018-04-25 13:16:19 -04:00
Gennadiy Civil
b539167cf0 merging, 2018-04-25 13:10:41 -04:00
dnsunderland
08cb06b197
Merge branch 'master' into parameterless 2018-04-18 16:32:31 -07:00
David Sunderland
f437f8ca0d Clone of unsubmitted cr/176529515. Introduce parameterless expectations. 2018-04-18 19:28:56 -04:00
Gennadiy Civil
4707c0ffd4 193353312 2018-04-18 10:36:12 -04:00
Gennadiy Civil
80d6e26a9c cl/193060888 2018-04-17 19:32:15 -04:00
Gennadiy Civil
5dccf6b79e http://cl/193060888 2018-04-17 16:22:35 -04:00
Gennadiy Civil
dff32aff97 http://cl/193060888 2018-04-17 16:12:04 -04:00
Gennadiy Civil
c67f51b5dc msvc 2018-04-12 11:32:17 -04:00
Gennadiy Civil
9b5940e040 revert this one 2018-04-12 10:28:02 -04:00
Gennadiy Civil
b2d81b4fb2 merge, ... gmock-matchers test 2018-04-12 09:45:07 -04:00
Gennadiy Civil
e77deb29a6 small cleanup 2018-04-12 09:12:02 -04:00
Gennadiy Civil
7045138a0d Have to wait for this one 2018-04-05 11:59:59 -04:00
Gennadiy Civil
66eaf9f0eb Have to wait for this one 2018-04-05 11:55:25 -04:00
Gennadiy Civil
af93d59eb7 Merging matchers test 2018-04-05 11:35:20 -04:00
Gennadiy Civil
0cd6a4f5f5 Merging matchers test 2018-04-05 11:34:19 -04:00
Gennadiy Civil
d81b6a0c4c bad cut/paste 2018-04-04 15:46:04 -04:00
Gennadiy Civil
a608d4a362 More on MSVC warning C4503, decorated name length exceeded 2018-04-04 15:44:27 -04:00
Gennadiy Civil
6f4e93943a More on MSVC warning C4503, decorated name length exceeded 2018-04-04 15:29:05 -04:00
Gennadiy Civil
5b3d27729b Address MSVC warning C4503, decorated name length exceeded, name was truncated 2018-04-04 15:07:52 -04:00
Gennadiy Civil
aa14cc4285 Fixing build break on MSVC 2018-04-04 14:48:06 -04:00
Gennadiy Civil
e55089ec11 merging gmock matchers 1 2018-04-04 14:05:00 -04:00
Xiaoyi Zhang
190e2cdd0b Add matcher for std::variant. 2018-02-27 11:36:21 -05:00
Gennadiy Civil
225e6741ac moving JoinAsTuple to internal 2018-02-12 16:42:12 -05:00
Troy Holsapple
c8510504dd Fixed typos 2018-02-07 22:06:00 -08:00
David Benjamin
b3d9be5c1d Pass the -Wmissing-declarations warning.
This makes it easier to use GTest in projects that build with the
-Wmissing-declarations warning. This fixes the warning in headers and
source files, though not GTest's own tests as it is rather noisy there.
2018-01-03 14:50:22 -05:00
Arkady Shapkin
840c711e7b Fix gmock tests when std::unary_function unavailable 2017-10-25 16:04:01 +03:00
Arkadiy Shapkin
2641b021fc Fix tests with VS2015 and VS2017 2017-10-25 16:04:01 +03:00
Roman Perepelitsa
966b549c88 Support ref-qualified member functions in Property(). 2017-08-22 16:06:26 +02:00
Nico Weber
09fd5b3ebf Use std::string and ::string explicitly in gtest and gmock code.
This merges a Google-internal change (117235625).

Original CL description:
This CL was created manually in about an hour with sed, a Python script
to find all the places unqualified 'string' was mentioned, and some help
from Emacs to add the "std::" qualifications, plus a few manual tweaks.
2017-05-15 17:53:04 -04:00
mazong1123
dc2dbf1fbf Reformatted the Unprintable operator== code style. 2016-07-14 16:49:42 +08:00
mazong1123
531bf5c410 Fixed issue #775 2016-07-14 14:09:05 +08:00
Mark Mentovai
4a8e54401e Name the helper AsBits() 2015-11-12 10:01:06 -05:00
Mark Mentovai
cfe466a0a7 Use a templated helper to wrap the cast
The helper needs to be templated because its argument type can’t be
known. FloatingPointTest is instantiated with RawType = float and
RawType = double, so Bits will be an unsigned 32-bit or 64-bit type.
size_t will be either 32 or 64 bits depending on the system’s
definition, typically based on pointer size.
2015-11-11 18:26:35 -05:00
Mark Mentovai
cbce23fb86 Leave decltype(max_ulps_) alone and cast, not sure this is better 2015-11-11 17:44:12 -05:00
Mark Mentovai
8b085f0d21 Fix warnings encountered in MSVC build of gtest/gmock tests
This fixes these warnings:

…\gtest\googletest\test\gtest-port_test.cc(78) : error C2220: warning treated as error - no 'object' file generated
…\gtest\googletest\test\gtest-port_test.cc(78) : warning C4309: 'static_cast' : truncation of constant value
…\gtest\googletest\test\gtest-port_test.cc(79) : warning C4309: 'static_cast' : truncation of constant value

…\gtest\googlemock\test\gmock-matchers_test.cc(2712) : error C2220: warning treated as error - no 'object' file generated
        …\gtest\googlemock\test\gmock-matchers_test.cc(2706) : while compiling class template member function 'testing::gmock_matchers_test::FloatingPointTest<float>::FloatingPointTest(void)'
        …\gtest\googlemock\test\gmock-matchers_test.cc(2896) : see reference to function template instantiation 'testing::gmock_matchers_test::FloatingPointTest<float>::FloatingPointTest(void)' being compiled
        …\gtest\googlemock\test\gmock-matchers_test.cc(2896) : see reference to class template instantiation 'testing::gmock_matchers_test::FloatingPointTest<float>' being compiled
…\gtest\googlemock\test\gmock-matchers_test.cc(2712) : warning C4267: 'argument' : conversion from 'size_t' to 'const unsigned int', possible loss of data
…\gtest\googlemock\test\gmock-matchers_test.cc(2714) : warning C4267: 'argument' : conversion from 'size_t' to 'const unsigned int', possible loss of data
…\gtest\googlemock\test\gmock-matchers_test.cc(2716) : warning C4267: 'argument' : conversion from 'size_t' to 'const unsigned int', possible loss of data
…\gtest\googlemock\test\gmock-matchers_test.cc(2717) : warning C4267: 'argument' : conversion from 'size_t' to 'const unsigned int', possible loss of data
…\gtest\googlemock\test\gmock-matchers_test.cc(2718) : warning C4267: 'argument' : conversion from 'size_t' to 'const unsigned int', possible loss of data
…\gtest\googlemock\test\gmock-matchers_test.cc(2721) : warning C4267: 'argument' : conversion from 'size_t' to 'const unsigned int', possible loss of data
…\gtest\googlemock\test\gmock-matchers_test.cc(2723) : warning C4267: 'argument' : conversion from 'size_t' to 'const unsigned int', possible loss of data
2015-11-11 12:28:15 -05:00
Billy Donahue
71a26ac68b Merge pull request #612 from mark-chromium/gmock_rtti
googlemock: Disable WhenDynamicCastToTest tests when RTTI is off
2015-11-10 17:48:26 -05:00
Mark Mentovai
c8a1050704 googlemock: Disable WhenDynamicCastToTest tests when RTTI is off
https://github.com/google/googletest/issues/610
2015-10-12 18:01:43 -04:00
Mark Mentovai
a0435dc687 googlemock: Support C++11 language with pre-C++11 library
This guards use of <type_traits> and its features with
GTEST_HAS_STD_TYPE_TRAITS_, and std::function with
GTEST_HAS_STD_FUNCTION_.
2015-10-12 17:59:11 -04:00
Billy Donahue
affb09edf0 move googlemock files into googlemock/ subdir 2015-08-25 17:47:18 -04:00