4345 Commits

Author SHA1 Message Date
Andy Getz
a0cbbba131 Merge pull request #3024 from Thomas-Barbier-1A:fix_warning_maybe_unintialized
PiperOrigin-RevId: 334391149
2020-09-29 20:47:54 -04:00
Andy Getz
f278076efe Merge pull request #3027 from keshavgbpecdelhi:patch-2
PiperOrigin-RevId: 334384310
2020-09-29 20:47:44 -04:00
Abseil Team
705b9c1af2 Googletest export
Fix typo

PiperOrigin-RevId: 333745750
2020-09-28 23:48:26 -04:00
keshavgbpecdelhi
1f3484a2b7
Update cook_book.md
Please note that changing the default value for a type can make [you]* test.....
Here "you" word doesn't make sense.. rather "your" seems to make it understandable.
2020-09-27 15:27:14 +05:30
Abseil Team
fe4d5f1084 Googletest export
Revision of recent DoubleNearPredFormat change to support more toolchains.

isnan() is a macro in C99, and std::isnan() is a function in C++11.  The previous change used `isnan` directly, and broke some tests in open source.

This CL changes it to follow the practice in gmock-matchers.h, and spell uses of isnan as
  (std::isnan)(f)
.  The parens around `std::isnan` prevent it from being recognized as a macro in the preprocessor.

PiperOrigin-RevId: 333374377
2020-09-24 12:06:42 -04:00
Abseil Team
df94fc5f7e Googletest export
Address OSS Issue #2463 https://github.com/google/googletest/issues/2463

PiperOrigin-RevId: 333289989
2020-09-24 12:06:34 -04:00
vslashg
634c52d99c Merge pull request #3014 from JethroSama:patch-1
PiperOrigin-RevId: 333288626
2020-09-24 12:06:25 -04:00
Abseil Team
b5687db554 Googletest export
Improve DoubleNearPredFormat output on bad epsilons

DoubleNearPredFormat will happily accept epsilon values (abs_error) that
are so small that they are meaningless. This turns EXPECT_NEAR into a
complicated and non-obvious version of EXPECT_EQ.

This change modifies DoubleNearPredFormat) so that when there is a
failure it calculates the smallest meaningful epsilon value, given the
input values, and then prints a message which explains what happened.

If a true equality test is wanted either pass a literal 0.0 as abs_error
or use EXPECT_EQ. If a check for being almost equal is wanted consider
using EXPECT_DOUBLE_EQ which, contrary to its name, verifies that the
two numbers are *almost* equal (within four ULPs).

With this change the flaky test mentioned in crbug.com/786046 gives this
output:

The difference between 4.2934311416234112e+18 and 4.2934311416234107e+18 is 512, where
4.2934311416234112e+18 evaluates to 4.2934311416234112e+18,
4.2934311416234107e+18 evaluates to 4.2934311416234107e+18.
The abs_error parameter 1.0 evaluates to 1 which is smaller than the minimum distance between doubles for numbers of this magnitude which is 512, thus making this EXPECT_NEAR check equivalent to EXPECT_EQUAL. Consider using EXPECT_DOUBLE_EQ instead.

Tested:
I confirmed that this change detects the bad epsilon value that caused
crbug.com/786046 in Chromium and added a test for the desired output.
PiperOrigin-RevId: 332946880
2020-09-24 12:06:16 -04:00
tbarbier
4679637f1c Fix warning maybe-uninitialized 2020-09-24 16:51:06 +02:00
Abseil Team
7aca84427f Googletest export
Simplify FooConcrete static calls in googlemock cookbook.

PiperOrigin-RevId: 332437041
2020-09-20 18:48:41 -04:00
Abseil Team
bb2725346d Googletest export
Reduce the demangled name bloat of the Action constructor.

PiperOrigin-RevId: 332234887
2020-09-20 18:48:32 -04:00
JethroSama
4181d7a161
Update README.md, added missing 'a' 2020-09-18 09:56:59 +08:00
Hyuk Myeong
242ee2720c Remove spaces between Google Test and Google Mock 2020-09-16 01:33:41 +09:00
Hyuk Myeong
5afcb3ca4d Add follow-up patch for more natural reading 2020-09-15 21:31:07 +09:00
Hyuk Myeong
2d1a18ff3a Apply the reviewed comment 2020-09-15 21:15:43 +09:00
Hyuk Myeong
32437f41ec Remove a space 2020-09-15 02:30:34 +09:00
Hyuk Myeong
7aae2ac34c Improve the tutorial that may be confusing 2020-09-15 02:18:53 +09:00
Abseil Team
a4ab0abb93 Googletest export
Mark ACTION_Pn()-generated functions as must-use-result.

This catches when a client creates an action and discards it, thinking that the action has actually been applied to something.

This will help people who make the mistake of defining, for example, both `void Use(Foo*)` and `ACTION(Use) { Use(arg); }` for later application to a Foo.  With such an overload, a client may then write `Use();`, forgetting the param and being confused why nothing happens.

This also catches when a client defines their own action in terms of an ACTION()-generated one, invokes the ACTION's builder, and then fails to invoke the resulting action, thinking it's operating on the outer action's parameters.

PiperOrigin-RevId: 330614454
2020-09-10 19:09:30 -04:00
Derek Mauro
646603961b Merge pull request #2994 from xerus2000:gmock-docs
PiperOrigin-RevId: 330545489
2020-09-10 19:09:21 -04:00
dmauro
5f8fcf4aa8 Googletest export
Implements GetTimeInMillis() using std::chrono for portability
Fixes #2995

PiperOrigin-RevId: 329709958
2020-09-08 12:41:46 -04:00
Abseil Team
7b1cf6dd5f Googletest export
gtest.cc: make ColoredPrintf static

the prototype was removed from gtest.h in cl/301446904; quiets a
-Wmissing-declarations warning

PiperOrigin-RevId: 329569020
2020-09-01 16:53:45 -04:00
Abseil Team
af1e75ce0b Googletest export
Add millisecond precision to start timestamp in XML/JSON output

- Previous timestamp had format YYYY-MM-DDThh:mm:ss, now YYYY-MM-DDThh:mm:ss.sss
- This conforms to the ISO 8601 standard

PiperOrigin-RevId: 329503623
2020-09-01 16:53:36 -04:00
Abseil Team
df6b75949b Googletest export
Replace uses of ACTION_TEMPLATE and ACTION_P with manually written functors.
The latter provide better error diagnostics.
This fixes https://github.com/google/googletest/issues/2729.

PiperOrigin-RevId: 328573022
2020-08-26 21:23:05 -04:00
xerus2000
296c9d29b1 Add timestamp to in old method mock macro guide 2020-08-25 10:07:30 +02:00
vslashg
1e315c5b1a Merge pull request #2895 from lantw44:wip/lantw/Avoid-using-environ-on-FreeBSD
PiperOrigin-RevId: 327799934
2020-08-23 23:51:30 -04:00
Abseil Team
ec9be15bf8 Googletest export
Workaround static assert in early versions libc++

The error is "Attempted to construct a reference element in a tuple with an
rvalue". We can fix this by putting everything into a non temporary tuple_args
and implitly convert to the other tuple types. This avoids binding an rvalue
reference to an lvalue reference inside the tuple.

PiperOrigin-RevId: 327624990
2020-08-23 23:51:21 -04:00
vslashg
655bff5d38 Merge pull request #2984 from earhart:master
PiperOrigin-RevId: 327324992
2020-08-23 23:51:12 -04:00
vslashg
aa4cbcdcbd Merge pull request #2904 from AmatanHead:throw-matchers
PiperOrigin-RevId: 327294137
2020-08-23 23:51:02 -04:00
Abseil Team
fc1e778899 Googletest export
Fix DoAll to work with move-only sink arguments.

This changes types of the first n - 1 actions so that they only get a readonly
view of the arguments. The last action will accept move only objects.

PiperOrigin-RevId: 327031893
2020-08-23 23:50:54 -04:00
krzysio
adeef19294 Googletest export
Mention matchers as an alternative to assertions in subroutines.

Matchers are often the better choice - they can provide more informative error messages and circumvent all of the complexity described in this section.

PiperOrigin-RevId: 326332149
2020-08-14 03:16:24 -04:00
Rob Earhart
025e1a484d
Export LICENSE
This makes it easier to include the license in redistributions, as required by the license.
2020-08-12 16:10:57 -07:00
Abseil Team
10ade8473b Googletest export
internal change

PiperOrigin-RevId: 326080000
2020-08-12 02:41:20 -04:00
dmauro
6c655699c4 Googletest export
Remove references to the GoogleTest mailing list
Fixes #2966

PiperOrigin-RevId: 326065972
2020-08-12 02:41:11 -04:00
Abseil Team
3d93f88081 Googletest export
internal change

PiperOrigin-RevId: 325799949
2020-08-12 02:41:02 -04:00
Derek Mauro
3af06fe166 Merge pull request #2961 from FranciscoThiesen:patch-1
PiperOrigin-RevId: 325429245
2020-08-07 13:08:27 -04:00
Derek Mauro
ce654c2ff5 Merge pull request #2972 from srz-zumix:fix/remove_legacy_testcase_api_
PiperOrigin-RevId: 325220934
2020-08-07 13:08:18 -04:00
Abseil Team
d0de618a58 Googletest export
Fixing exception-safety bug in googletest. Previously, if an exception was
thrown during a call to a mock that would have triggered an error, the error
was discarded.

Fixes #2890

PiperOrigin-RevId: 325017806
2020-08-07 13:08:09 -04:00
Abseil Team
5a5caab358 Googletest export
Fix DoAll to work with move-only sink arguments.

This changes types of the first n - 1 actions so that they only get a readonly
view of the arguments. The last action will accept move only objects.

PiperOrigin-RevId: 324619666
2020-08-07 13:08:00 -04:00
Abseil Team
48ec64092a Googletest export
Fix DoAll to work with move-only sink arguments.

This changes types of the first n - 1 actions so that they only get a readonly
view of the arguments. The last action will accept move only objects.

PiperOrigin-RevId: 324600664
2020-08-07 13:07:51 -04:00
srz_zumix
b612003c38 fix endif comment 2020-08-05 22:54:50 +09:00
Vladimir Goncharov
7f1c8bb447 Remove ThrowsMessageHasSubstr and fix some nits after review 2020-08-03 23:47:57 +03:00
Vladimir Goncharov
a899cecb11 Cleanup a bulky expression, document implementation details 2020-08-03 23:47:57 +03:00
Vladimir Goncharov
4ebbfea623 Fix build under msvc 2020-08-03 23:47:57 +03:00
Vladimir Goncharov
c46bdea43a Update tests after changing an error message 2020-08-03 23:47:57 +03:00
Vladimir Goncharov
0a80845e73 Fix build under msvc 2020-08-03 23:47:57 +03:00
Vladimir Goncharov
92d0a6f7e2 Add a test to ensure that the Throws matcher only invokes its argument once. 2020-08-03 23:47:57 +03:00
Vladimir Goncharov
69c510fb51 Add a test for duplicate catch clauses in throw matchers, fix a couple of nitpicks. 2020-08-03 23:47:57 +03:00
Vladimir Goncharov
49d1201a7e Add missing documentation piece 2020-08-03 23:47:57 +03:00
Vladimir Goncharov
46734d9a66 Small improvements: code style and property name 2020-08-03 23:47:57 +03:00
Vladimir Goncharov
9ac4cd0f49 Add matchers for testing exception properties
This PR adds matchers that accept a callable and verify that when invoked, it throws an exception with the given type and properties.

Fixes #952
2020-08-03 23:47:57 +03:00
srz_zumix
7d47077245 fix tests 2020-08-02 09:18:13 +09:00
Mark Barolak
e6e2d3b761 Merge pull request #2952 from jasjuang:master
PiperOrigin-RevId: 324016198
2020-07-31 14:51:45 -04:00
Mark Barolak
e61125f053 Merge pull request #2920 from ongjunjie:fix-death-test-regex
PiperOrigin-RevId: 324014547
2020-07-31 14:51:35 -04:00
Francisco Geiman Thiesen
7b2f00d9df
Removing tiny-dnn from "Who is using.."
The tiny-dnn project has changed the test framework (d0d35ca2f4) and removed the googletest usage.

Removing it from the "Who is Using Google Test?" list so as to keep it accurate.
2020-07-29 21:00:25 -03:00
Abseil Team
68ca04c261 Googletest export
Updated documentation for Value-Parameterized Tests: Per-default, a TEST_P without a corresponding INSTANTIATE_TEST_SUITE_P now causes a failing test.

PiperOrigin-RevId: 323622468
2020-07-29 15:48:29 -04:00
srz_zumix
317ec2f296 fix GTEST_REMOVE_LEGACY_TEST_CASEAPI_ typo 2020-07-29 07:42:58 +09:00
Abseil Team
18a9aeda7a Googletest export
Internal documentation change.

PiperOrigin-RevId: 323612305
2020-07-28 14:22:08 -04:00
ofats
c64309924d Googletest export
Stop using ADL for InvokeArgument action.

PiperOrigin-RevId: 323234396
2020-07-28 14:21:59 -04:00
jasjuang
7bde252cb7 fix clang tidy modernize-use-equals-default warnings 2020-07-19 15:18:22 -07:00
vslashg
a781fe29bc Merge pull request #2937 from Ashikpaul:patch-1
PiperOrigin-RevId: 321178217
2020-07-15 14:09:43 -04:00
ofats
eb660507ff Googletest export
Move matchers' tests from *generated* to common files.

PiperOrigin-RevId: 320954068
2020-07-15 14:09:29 -04:00
vslashg
af287b4ffd Merge pull request #2903 from AmatanHead:informative-exception-asserts
PiperOrigin-RevId: 320425648
2020-07-15 14:09:20 -04:00
Ashik Paul
c4a5ee3ac0
Fixed some minor typos 2020-07-11 12:13:05 +05:30
Abseil Team
70b90929b1 Googletest export
Adding std:: namespace to string in the example

PiperOrigin-RevId: 320327910
2020-07-09 13:35:53 -04:00
Gennadiy Rozental
c7f05e08af Merge pull request #2872 from elindsey:master
PiperOrigin-RevId: 320224740
2020-07-09 13:35:44 -04:00
Gennadiy Rozental
592d464243 Merge pull request #2808 from OlivierLDff:cmake-cpp11-feature
PiperOrigin-RevId: 320222294
2020-07-09 13:35:36 -04:00
Gennadiy Rozental
017c8d56ba Merge pull request #2682 from mjvankampen:cmake-QNX-fix
PiperOrigin-RevId: 320191208
2020-07-09 13:35:27 -04:00
ofats
08b787796c Googletest export
Replace ByRef with std::ref everywhere in docs.

PiperOrigin-RevId: 320002303
2020-07-09 13:35:18 -04:00
Abseil Team
9aaaaf3f3d Googletest export
Cleanup: Error message grammar fix.
PiperOrigin-RevId: 319992912
2020-07-09 13:35:10 -04:00
Abseil Team
b9a8afcf2e Googletest export
Fix mismatch between `int` and `int32_t` in the parse function.
On some platforms, those are different types.

PiperOrigin-RevId: 319991862
2020-07-09 13:35:01 -04:00
Abseil Team
356f2d264a Googletest export
Improve compatibility with strict compilers targeting Windows

Remove an unnecessary ##, which could result in warnings about invalid preprocessor tokens when pasting to an initial '('

PiperOrigin-RevId: 319277617
2020-07-05 16:25:43 -04:00
Olivier Ldff
131878ce9e use target_compile_features to use c++11 if cmake > 3.8
If target_compile_features is available and cxx_std_11.
This fix compilation with clang and gcc when c++11 isn't specified by user.
2020-07-02 09:36:22 +02:00
Jun Jie
5c0ef1cb84 Fix test failing when simple regex is used
Test MatcherDeathTest.DoesNotBreakBareRegexMatching fails when
googletest uses simple regex instead of posix regex.

This partially fixes #2687
2020-07-02 13:33:56 +08:00
Abseil Team
aee0f9d9b5 Googletest export
Add Bazel build rules for gtest_list_output_unittest.py and correct some off-by-one line number expectations.

PiperOrigin-RevId: 318466071
2020-06-26 12:04:14 -04:00
Abseil Team
e5613588a1 Googletest export
Normalize headers in gMock docs

Increasing Header levels on two pages, to better match other pages in the same directory.

PiperOrigin-RevId: 318280892
2020-06-26 12:04:05 -04:00
Abseil Team
05c4a036bb Googletest export
Update auto_mock to support C++17 nested namespaces

PiperOrigin-RevId: 318192214
2020-06-26 12:03:55 -04:00
Mark Barolak
849ed6b172 Merge pull request #2902 from mshingote:master
PiperOrigin-RevId: 318147761
2020-06-26 12:03:46 -04:00
Abseil Team
a4007e944f Googletest export
Make sure sanitizers do not tamper with the stack here in StackLowerThanAddress().

PiperOrigin-RevId: 318082465
2020-06-26 12:03:36 -04:00
Mark Barolak
5e0cf72b7c Merge pull request #2718 from NINI1988:master
PiperOrigin-RevId: 317696457
2020-06-26 12:03:26 -04:00
Mark Barolak
62f388e15f Merge pull request #2891 from zoddicus:fixMinGW
PiperOrigin-RevId: 317666280
2020-06-26 12:03:15 -04:00
Vladimir Goncharov
0d2830b283 Make EXPECT_THROW and EXPECT_NO_THROW macros more informative
EXPECT_THROW and EXPECT_NO_THROW will now print exception type and message when an unexpected std::exception-derived error is thrown.

Fixes #2878
2020-06-20 11:45:45 +03:00
Mayur Shingote
93dc015a85 Updated googletest issue tracker url. 2020-06-19 22:43:55 +05:30
Abseil Team
c6e309b268 Googletest export
gtest.cc: fix a couple typos

s/paramaterized/parameterized/

PiperOrigin-RevId: 316878900
2020-06-18 16:09:35 -04:00
Abseil Team
549c5d061e Googletest export
gMock Cookbook: Fix incorrect comment about EXPECT priority order

It's actually the last matching expectation that's used, not the first.

PiperOrigin-RevId: 316490770
2020-06-15 16:56:42 -04:00
Ting-Wei Lan
2e8ebe69dc Avoid using environ on FreeBSD
WebKit passes -Wl,--no-undefined to the compiler when linking shared
libraries. This is usually a good practice, but it causes gtest to fail
to link because of the use of environ. FreeBSD puts environ symbol in
crt1.o instead of libc.so, so the linker is unable to find environ when
linking a shared library.

Fortunately, there is an easy way to fix it. Since the only use of
environ in gtest is to pass it to execve, we can simply replace execve
with execv to avoid the need of environ. execv is usually a simple
wrapper around execve, so it should be safe to use.

This problem was found and reported more than three years ago. The same
fix is already committed to WebKit and we don't see any problem reports
caused by the change.

https://bugs.webkit.org/show_bug.cgi?id=138420
https://trac.webkit.org/changeset/194501/webkit
https://bugs.webkit.org/show_bug.cgi?id=208409
https://trac.webkit.org/changeset/257691/webkit
https://groups.google.com/forum/#!topic/googletestframework/wrrMj_fmXMc
2020-06-13 14:15:32 +08:00
dmauro
8567b09290 Googletest export
Adds support for printing pointers of types char8_t, char16_t, and char32_t.

PiperOrigin-RevId: 316112767
2020-06-12 18:24:28 -04:00
Krystian Kuzniarek
82e5687373 remove a duplicated include
Detection of string_view type (whether it's std or Abseil)
is done in googletest/include/gtest/internal/gtest-port.h
with GTEST_INTERNAL_HAS_STRING_VIEW.
2020-06-12 11:38:56 +02:00
Abseil Team
13a433a94d Googletest export
Change string matchers, like HasSubstr, to accept `string_view` input if available.

PiperOrigin-RevId: 315726484
2020-06-10 17:37:39 -04:00
Abseil Team
9f287b46d1 Googletest export
Make visible ParseInt32 in case users have separate gmock/gtest libraries and hidden-by-default symbols.

This function is still considered an internal implementation detail and is subject to change without notice. It is still unsafe/unsupported to link together libraries built at different commits.

PiperOrigin-RevId: 315405429
2020-06-10 17:37:31 -04:00
Abseil Team
ec94d9f24c Googletest export
Fail TEST_Ps or TYPED_TEST_Ps that are defined but are not instantiated, as well as the opposite case, where INSTANTIATE_TEST_SUITE_P or INSTANTIATE_TYPED_TEST_SUITE_P is used but without any matching TEST_P or TYPED_TEST_P.

PiperOrigin-RevId: 315255779
2020-06-10 17:37:22 -04:00
dmauro
1b0cdaae57 Googletest export
Add missing static_cast to char32_t printer

PiperOrigin-RevId: 314925583
2020-06-10 17:37:14 -04:00
Ryan Harrison
1eda5d825a Fix build issue for MinGW
Fixes #2885
2020-06-10 11:32:08 -04:00
dmauro
4fe018038f Googletest export
Adds support for printing the types char8_t, char16_t, and char32_t

This changes prints these types as Unicode code points. It is possible
that there is a better way of printing these types, but that change is
more complex, and the format in which Googletest prints these types is
subject to change if someone implements a better way of printing them.

This fixes the C++20 build, which removed support for printing these types.
https://en.cppreference.com/w/cpp/io/basic_ostream/operator_ltlt2

Fixes #2854

PiperOrigin-RevId: 314826912
2020-06-05 03:57:06 -04:00
Gennadiy Rozental
07d4a6e93d Merge pull request #2742 from kuzkry:c++17-type-printers
PiperOrigin-RevId: 314593695
2020-06-05 03:56:58 -04:00
Abseil Team
210aab09de Googletest export
gMock Cookbook: Slight rewording

Remove "I" because documentation can have multiple authors. And remove unnecessary "guy".

PiperOrigin-RevId: 314533746
2020-06-05 03:56:49 -04:00
Gennadiy Rozental
cb44c86c1a Merge pull request #2755 from Conan-Kudo:set-version-for-libs
PiperOrigin-RevId: 314427570
2020-06-02 20:45:20 -04:00
Abseil Team
26dadc2241 Googletest export
Note that EXPECT_EQ(actual_value, expected_value) or EXPECT_THAT(actual_value, Eq(expected_value)) is preferred over EXPECT_THAT(actual_value, expected_value).

PiperOrigin-RevId: 314350852
2020-06-02 20:45:11 -04:00
Abseil Team
df6813f5e0 Googletest export
Modify NULL to nullptr in code examples

PiperOrigin-RevId: 314150792
2020-06-02 20:45:03 -04:00
Eli Lindsey
a2533417ca fix compilation on OpenBSD 6.7
Building on OpenBSD 6.7 current fails due to implicit numeric
conversions:

    OpenBSD clang version 8.0.1 (tags/RELEASE_801/final) (based on LLVM 8.0.1)
    Target: amd64-unknown-openbsd6.7
    Thread model: posix
    InstalledDir: /usr/bin

    In file included from /tmp/u/build/_deps/googletest-src/googletest/src/gtest-all.cc:45:
    /tmp/u/build/_deps/googletest-src/googletest/src/gtest-port.cc:201:19: error: implicit conversion changes signedness:
          'int' to 'unsigned long' [-Werror,-Wsign-conversion]
      mib[5] = size / mib[4];
                    ~ ^~~~~~
    /tmp/u/build/_deps/googletest-src/googletest/src/gtest-port.cc:211:33: error: implicit conversion changes signedness:
          'int' to 'unsigned long' [-Werror,-Wsign-conversion]
      for (size_t i = 0; i < size / mib[4]; i++) {
                                  ~ ^~~~~~
    /tmp/u/build/_deps/googletest-src/googletest/src/gtest-port.cc:215:10: error: implicit conversion changes signedness:
          'int' to 'size_t' (aka 'unsigned long') [-Werror,-Wsign-conversion]
      return nthreads;
      ~~~~~~ ^~~~~~~~
    /tmp/u/build/_deps/googletest-src/googletest/src/gtest-port.cc:201:17: error: implicit conversion loses integer
          precision: 'unsigned long' to 'int' [-Werror,-Wshorten-64-to-32]
      mib[5] = size / mib[4];
             ~ ~~~~~^~~~~~~~
    4 errors generated.
2020-05-30 15:41:06 -04:00
Krystian Kuzniarek
eb3953f805 make UniversalPrinter<std::any> support RTTI 2020-05-29 13:59:42 +02:00