Commit Graph

2675 Commits

Author SHA1 Message Date
misterg
a4c9af804f Googletest export
Internal Change

PiperOrigin-RevId: 233614147
2019-02-12 13:20:40 -05:00
Gennadiy Civil
1d9d94a97b Merge pull request #2107 from ciband:feat/finish_platformio_support
PiperOrigin-RevId: 233108234
2019-02-12 13:20:34 -05:00
Gennadiy Civil
26512b795c Merge pull request #2101 from MaEtUgR:fix-cmake-cygwin
PiperOrigin-RevId: 233096223
2019-02-12 13:20:27 -05:00
Abseil Team
23ba19ccce Googletest export
Internal changes.

PiperOrigin-RevId: 232953166
2019-02-12 13:20:20 -05:00
Abseil Team
06fe4fc0b0 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
Abseil Team
464761ffb0 Googletest export
Internal change

PiperOrigin-RevId: 232362580
2019-02-12 13:20:05 -05:00
Chris Johnson
5852ab6da6 fix: Correct *-all.cc file paths 2019-02-05 16:16:43 -06:00
Gennadiy Civil
45a2134b09 Merge pull request #2100 from ngie-eign/test-clang-osx-every-travis-run
Test out changes with clang/OSX each PR using Travis CI
2019-02-05 12:12:38 -05:00
Gennadiy Civil
48f6e6c344 Merge pull request #2103 from kw-udon/fix-json-in-advanced-md
Fix an invalid example of JSON report in advanced.md
2019-02-05 12:10:51 -05:00
Keiichi Watanabe
f87f054960 Fix an invalid example of JSON report in advanced.md
This is just a mistake in the document. Google Test doesn't output
such an invalid JSON report.

Signed-off-by: Keiichi Watanabe <keiichiw@chromium.org>
2019-02-05 21:05:16 +09:00
Gennadiy Civil
79973ed4d9 Update .travis.yml 2019-02-04 15:30:37 -05:00
Gennadiy Civil
182a583533 Update .travis.yml 2019-02-04 15:29:18 -05:00
Enji Cooper
01c736e8a7 Test out changes with clang/OSX each PR using Travis CI
This will help ensure that test coverage isn't missed when changes that
can impact OSX with clang are submitted. Although not perfect, testing
changes on OSX with clang is an ok proxy [for now] for testing changes on
FreeBSD with clang (testing on FreeBSD is non-trivial, as Travis CI doesn't
support operating systems other than Linux and OSX).

In order to support this, install the packages via homebrew using a
`addons::homebrew::packages` block (similar to `addons::apt::packages`
for Ubuntu), as documented in the Travis CI docs
( https://docs.travis-ci.com/user/installing-dependencies/ ). While
here, try pushing apt* calls into the Travis config for Ubuntu, instead
of delaying the equivalent calls in the `ci/*.sh` scripts. Keep the
`ci/*.sh` scripts for ease of testing locally (and extend the OSX one to
install gcc 4.9 and llvm 3.9, like the travis config does).

In order to accomodate this change (and because the homebrew package for
llvm@3.9 doesn't automatically add clang*-3.9 to `$PATH`), `$PATH` needs
to be adjusted to find the llvm@3.9 toolchain.

Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
2019-02-04 12:19:27 -08:00
misterg
88d9e949af Googletest export
Address -Wgnu-zero-variadic-macro-arguments
Originally in OSS PR #2063 https://github.com/google/googletest/pull/2063
Fix regression in INSTANTIATE_TEST_SUITE_P macro to accept function pointers properly.

PiperOrigin-RevId: 232316698
2019-02-04 14:19:58 -05:00
misterg
0ff4c74a41 Googletest export
Mark legacy _TEST_CASE_ macros as deprecated

PiperOrigin-RevId: 232303251
2019-02-04 14:19:50 -05:00
Abseil Team
3c5f5ccf61 Googletest export
Update example code in gtest.h to prefer override over virtual now
that it is widely available in C++11.

PiperOrigin-RevId: 232057792
2019-02-04 14:19:41 -05:00
Gennadiy Civil
fb14dae5ef Merge pull request #2098 from ciband:feat/finish_platformio_support
PiperOrigin-RevId: 232028696
2019-02-04 14:19:31 -05:00
Matthias Grob
9f459bac90 cmake: detect Cygwin which needs extensions to build 2019-02-04 20:03:46 +01:00
Matthias Grob
d006ed7bf3 cmake: move global project definition to beginning
such that necessary cmake variables to detect Cygwin are defined
when setting the C++ standard and we can distinguish.
2019-02-04 20:03:46 +01:00
Abseil Team
e66e0715cf Googletest export
Fix stack overflow in AnyOfArray tests.

PiperOrigin-RevId: 231881125
2019-02-01 12:52:31 -05:00
Chris Johnson
35b227a921 chore: Add PlatformIO supported platforms list 2019-02-01 10:05:31 -06:00
Chris
2036304cf1 fix: Add Arduino to embedded platform list
Added Arduino to the embedded platform list to allow for a stubbed out version
of GetCurrentDir.
2019-01-31 21:56:34 -06:00
Chris
11e994319b fix: Add *_all.cc files to ignore list
Added [gmock|gtest]_all.cc to PIO ignore list to avoid getting duplicate
symbols since PIO will compile the individual files.
2019-01-31 21:56:30 -06:00
Gennadiy Civil
21f89df6d6 Merge pull request #2092 from Billy4195/Update_README
Fix README.md broken link
2019-01-31 17:15:49 -05:00
Billy SU
6c540f5a4e Fix README.md broken link
Fix the **include/gtest/internal/gtest-port.h** link in the `Tweaking Google Test` title
2019-01-31 08:23:15 +08:00
Gennadiy Civil
1fa15fd6c6 Merge pull request #2091 from google/gennadiycivil-patch-1
Repeat #2090
2019-01-30 15:36:27 -05:00
Gennadiy Civil
9ece74a3f5 Repeat #2090
Testing
2019-01-30 14:44:27 -05:00
Ashley Hedberg
658ce0249a Merge pull request #2063 from mathbunnyru:master
PiperOrigin-RevId: 231456275
2019-01-30 14:26:14 -05:00
Gennadiy Civil
dd104525db Merge pull request #2090 from KellyWalker/patch-1
Update advanced.md casing in example
2019-01-30 13:19:14 -05:00
Kelly Walker
1df0bda868 Update advanced.md casing in example
Updated the example that says not to use SetupTestSuite with a small 'u' to actually use a small 'u'
2019-01-30 09:01:58 -06:00
Gennadiy Civil
f80efbc277 Added -Wgnu-zero-variadic-macro-arguments" clang
This is inspired by work in http://go/gh/google/googletest/pull/2063 but in a separate commit
2019-01-29 14:38:50 -05:00
Gennadiy Civil
b911be4d84 Merge pull request #2063 from mathbunnyru:master
PiperOrigin-RevId: 231434457
2019-01-29 14:32:06 -05:00
Gennadiy Civil
1b2960d744 Merge pull request #2086 from hugolm84:fix-dynamic/static-runtime-link
PiperOrigin-RevId: 231286700
2019-01-28 17:31:42 -05:00
Hugo Lindström
5a2dbef4f5 Avoid dynamic/static runtime linking (LNK4098) by properly replacing MD(d)->MT(d) in both C and CXX flags, resolves 2074 2019-01-28 21:07:41 +01:00
Gennadiy Civil
0b43d6dc35 Merge pull request #2079 from acozzette:fix-dist
PiperOrigin-RevId: 230902623
2019-01-25 11:01:36 -05:00
Adam Cozzette
b69cb84b9a Fixed "make dist"
I made a few updates to the Makefile.am files so that "make dist"
succeeds and produces a usable tarball. We need this for protobuf
because the protobuf tarballs include a bundled copy of googletest.
2019-01-24 14:51:40 -08:00
Gennadiy Civil
961e2e91d2 Merge pull request #2041 from ciband:chore/fix_library_json
PiperOrigin-RevId: 230554814
2019-01-23 13:27:16 -05:00
Abseil Team
9fece7d47b Googletest export
Add AllOfArray matcher that verifies a value matches all member of some array/container/list/set/..., e.g:
EXPECT_THAT(1, AnyOfArray({1, 2, 3}))
In the simplest form this is identical to AnyOf(1, 2, 3). But unlike that one it works on containers.

Add AnyOfArray matcher that verifies a value matches any member of some
array/container/list/set/...

PiperOrigin-RevId: 230403653
2019-01-23 13:27:08 -05:00
Abseil Team
2770958199 Googletest export
Make internal FunctionMocker class final

PiperOrigin-RevId: 230332778
2019-01-22 13:12:13 -05:00
Abseil Team
04fc7c2def Googletest export
Fix mocking method arguments with templated copy constructors.

A previous change removed workarounds for old compilers from googletest and googlemock. Unfortunately, a bit of code that started as a workaround for Symbian's C++ compiler is still needed to avoid copy/move constructor ambiguity when mocking functions with certain argument types.

The test case added by this CL is extracted from Chrome's codebase, and was discovered while attempting to roll googletest.

PiperOrigin-RevId: 229801765
2019-01-18 14:06:03 -05:00
Ayaz Salikhov
2caf28e9c2 Fix INSTANTIATE_TEST_CASE_P with zero variadic arguments 2019-01-18 14:53:56 +03:00
Abseil Team
30a8ce53d8 Googletest export
Refactor the `Invoke` and `InvokeWithoutArgs` actions:
 - Replace pump'd classes and functions with templates.
 - Make the polymorphic actions be polymorphic functors instead.
 - Fix Invoke(Callback*) to work with subclasses of the callbacks, instead of trying to diagnose that in gmock_doctor.

PiperOrigin-RevId: 229604112
2019-01-17 14:41:08 -05:00
misterg
c0d3d9bdf6 Googletest export
Change remaining samples to use new Test Suite API

PiperOrigin-RevId: 229231566
2019-01-14 17:02:11 -05:00
Abseil Team
d3bcc36a0b 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
e09cb4a368 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
misterg
b22872e0c6 Googletest export
Change tests to use new Test Suite API

PiperOrigin-RevId: 228908894
2019-01-11 13:59:22 -05:00
Gennadiy Civil
00f6cb423f Workaround homebrew issue 2019-01-10 18:20:44 -05:00
Gennadiy Civil
a89722a6b7 Merge branch 'master' of github.com:google/googletest 2019-01-10 16:33:42 -05:00
Abseil Team
107087b81e Googletest export
Fix warning about deprecation of implicit operations such as copy constructors or assignment operators.

Specifically:

MatcherBase's default copy constructor, assignment operator, move operator, and move assignment operator are now declared explicitly rather than depending on the compiler implicit generation (which is disallowed/warned against due to MatcherBase's declaration of the destructor).

PiperOrigin-RevId: 228573333
2019-01-10 16:32:37 -05:00
Abseil Team
3c46167352 Googletest export
...text exposed to GitHub repo https://www.github.com/google/googletest

PiperOrigin-RevId: 228573333
2019-01-10 16:18:48 -05:00