Commit Graph

1329 Commits

Author SHA1 Message Date
dmauro
fb4b3b6b9a Googletest export
Fix a missing Bazel build dependency

PiperOrigin-RevId: 346783462
2020-12-10 17:56:26 -05:00
malcops
4fac06b455 Fix typo in CLI help message 2020-12-05 12:37:44 -05:00
Peter Hill
2292b6d856 CMake: Add namespaced ALIAS library
Fixes #3125
2020-12-04 17:21:19 +00:00
Abseil Team
141e959496 Googletest export
Remove `status` from our internal Subprocess utility.

This facility is unused, so better to just remove it than figure out what its cross-OS semantics should be.

PiperOrigin-RevId: 345279290
2020-12-02 18:23:54 -05:00
Abseil Team
73979ee1b9 Googletest export
Check for a high bit to see if a return value is a signal or an error code in googletest/test.

This is needed because for subprocess under python3 windows, a return value representing a C signal (such as 0x80000003) is represented as a large positive integer rather than a negative one.

PiperOrigin-RevId: 345270460
2020-12-02 18:23:46 -05:00
Abseil Team
b8c4edf95b Googletest export
Include TargetConditionals.h before checking TARGET_OS_IPHONE

New versions of Clang require that you include TargetConditionals.h before checking the TARGET_OS_* macros. Include it where appropriate to keep the compiler happy.

PiperOrigin-RevId: 345106443
2020-12-02 18:23:38 -05:00
Abseil Team
b1fbd33c06 Googletest export
Internal change: Add self-shortlink

PiperOrigin-RevId: 343960442
2020-11-24 03:46:27 -05:00
Abseil Team
efe703618c Googletest export
Update note on static const data members for C++17.

Using `constexpr` provides a tidier solution, where applicable.

PiperOrigin-RevId: 343276402
2020-11-24 03:46:19 -05:00
Gennadiy Rozental
60b8906d14 Merge pull request #3114 from marbre:FindPython
PiperOrigin-RevId: 342977338
2020-11-24 03:46:09 -05:00
Vinson Lee
341429be36 Initialize TestInfo member is_in_another_shard_ in constructor.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
2020-11-13 17:23:11 -08:00
Abseil Team
0e202cdbe3 Googletest export
Use environment variable TEST_TMPDIR in Linux environments
for temporary directory if available otherwise use /tmp/.

Bazel sets the environment variable TEST_TMPDIR when launching tests.

PiperOrigin-RevId: 342058921
2020-11-12 13:32:42 -05:00
Abseil Team
a1adec799a Googletest export
Use a tagged constructor for FlatTuple instead.
Some versions of MSVC are getting confused with that constructor and generating invalid code.

PiperOrigin-RevId: 342050957
2020-11-12 13:32:33 -05:00
dmauro
e7ed50fd13 Googletest export
Disable the wide character printing tests that were discovered to fail
under MSVC. Created a bug to debug this.

PiperOrigin-RevId: 341886318
2020-11-12 13:32:23 -05:00
dmauro
d385a77297 Googletest export
Fix *_THROW tests under MSVC, which produce slightly different type
names from std::type_info (e.g. "class std::runtime_error" instead of
"std::runtime_error")

PiperOrigin-RevId: 341874178
2020-11-12 13:32:13 -05:00
dmauro
336fd36fee Googletest export
Rollback change from
https://github.com/google/googletest/pull/1836. This change generates
a script on Windows to actually run each test, but the script itself
doesn't correctly report if the test passed.

This change will "break tests" that were already broken on Windows,
but weren't being reported as such.

PiperOrigin-RevId: 341850671
2020-11-12 13:32:03 -05:00
Abseil Team
b4999a1e2b Googletest export
Remove unreachable code when GTEST_CUSTOM_TEMPDIR_FUNCTION_ is defined.

PiperOrigin-RevId: 341810264
2020-11-11 11:11:04 -05:00
Marius Brehler
826e9f25a1 Refactor finding python
Use `find_package(Python ..)` if available, instead of the deprecated
`find_package(PythonInterp)` CMake module.
2020-11-11 16:12:11 +01:00
Mark Barolak
035de8c7fd Merge pull request #3109 from hyukmyeong:typo
PiperOrigin-RevId: 341604515
2020-11-10 15:22:27 -05:00
Mark Barolak
cda3906456 Merge pull request #3090 from knutpett:working_dir_on_diskless
PiperOrigin-RevId: 341604408
2020-11-10 15:22:17 -05:00
Knut Petter Svendsen
e5686bb18b Only save original working directory if death tests are enabled
On a diskless system you cannot get the current directory. So if
death tests are disabled anyway, there is no point trying to
get current directory.

Without this fix, running tests on diskless systems will fail,
even when death tests are disabled.
2020-11-09 10:04:43 +01:00
Hyuk Myeong
87347d5455 fix typos 2020-11-08 16:36:57 +09:00
Andy Getz
fb98f7447e Merge pull request #3008 from hyukmyeong:update_tutorial
PiperOrigin-RevId: 340286884
2020-11-02 22:26:39 -05:00
Andy Getz
9fd2843866 Merge pull request #2714 from kuzkry:remove-repeated-include
PiperOrigin-RevId: 340266002
2020-11-02 22:26:31 -05:00
Chuck Atkins
32f4f52d95 Bump CMake minimum to 2.8.12 2020-10-30 11:31:54 -04:00
Elliott Brossard
bd619dee05 Add instructions for sanitizer integration 2020-10-27 15:31:34 +00:00
vslashg
3005672db1 Merge pull request #3044 from manavrion:improve_file_path_normalize
PiperOrigin-RevId: 339242159
2020-10-27 10:17:25 -04:00
Abseil Team
1845b85a0e Googletest export
I'm not sure how this relates to the GitHub repo. Could you please advise?

PiperOrigin-RevId: 339060470
2020-10-27 10:17:15 -04:00
Arthur Sonzogni
fe0ee53feb Fix typo "definedin in" => "defined in"
Replace "definedin in" by "defined in" in files:
- googletest/src/gtest.cc
- googletest/test/googletest-output-test-golden-lin.txt
2020-10-20 15:45:52 +02:00
Abseil Team
620659ed92 Googletest export
Fix typo in the "Assertion Placement" section

PiperOrigin-RevId: 337435223
2020-10-19 14:01:36 -04:00
dmauro
3c95bf5524 Googletest export
Fixes build warnings from previous CL
Add CMake to internal presubmit to prevent these

PiperOrigin-RevId: 337325504
2020-10-15 13:32:43 -04:00
Abseil Team
a462188865 Googletest export
Add ::testing::FieldsAre matcher for objects that support get<> and structured bindings.
PiperOrigin-RevId: 337165285
2020-10-14 18:27:07 -04:00
dmauro
f3dbe3ec44 Googletest export
Disable warnings on code that intentionally tests a suboptimal syntax

PiperOrigin-RevId: 337138442
2020-10-14 18:26:58 -04:00
dmauro
79dc0f231a Googletest export
Disable -Wmismatched-tags warning for struct/class tuple_size

PiperOrigin-RevId: 337087493
2020-10-14 18:26:32 -04:00
Abseil Team
b2cb220eb7 Googletest export
Prefer using over typedef.

PiperOrigin-RevId: 337080404
2020-10-14 18:26:24 -04:00
dmauro
fb239f0e4c Googletest export
Fix -Wmismatched-tags error with struct tuple_size vs class tuple_size

PiperOrigin-RevId: 336930166
2020-10-14 18:26:15 -04:00
ofats
2cf1f99b97 Googletest export
Add helper methos to internal FlatTuple. Refactor constructors.

PiperOrigin-RevId: 336306681
2020-10-14 18:25:32 -04:00
Abseil Team
0555b0eacb Googletest export
Improve lookup of operator<< for user types

Without this fix, trying to use this class with googletest

  struct Foo {};

  template <typename OutputStream>
  OutputStream& operator<<(OutputStream& os, const Foo&) {
    os << "TemplatedStreamableInFoo";
    return os;
  }

results in an ambiguity error between the class' operator<< and the
operator<< in gtest-printers.h removed in this CL.

This fix also enables implicit conversions to happen, so that e.g.
we will find the base class operator<< if a subclass has no
operator<< of its own.

PiperOrigin-RevId: 336261221
2020-10-14 18:25:23 -04:00
Derek Mauro
4abb012c70 Merge pull request #2837 from inazarenko:duck_type_protos
PiperOrigin-RevId: 336087297
2020-10-14 18:25:04 -04:00
Ruslan Manaev
113ca75c30 Improve FilePath::Normalize method 2020-10-07 23:39:50 +05:00
Abseil Team
1fb1bb23bb Googletest export
Update faq.md on underscore to mention `DISABLED_` prefix.

PiperOrigin-RevId: 334507963
2020-09-30 20:52:45 -04:00
dmauro
477998eefa Googletest export
Fix undefined pointer comparison

PiperOrigin-RevId: 334436975
2020-09-29 20:48:11 -04:00
Abseil Team
2ff8d94d0e Googletest export
Update comment to suggest using SetUpTestSuite and TearDownTestSuite.

PiperOrigin-RevId: 334430329
2020-09-29 20:48:03 -04:00
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
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
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
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
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
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
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
Abseil Team
3d93f88081 Googletest export
internal change

PiperOrigin-RevId: 325799949
2020-08-12 02:41:02 -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
srz_zumix
b612003c38 fix endif comment 2020-08-05 22:54:50 +09: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
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
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
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
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
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
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
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
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
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
Krystian Kuzniarek
843267f0f1 specialize UniversalPrinter<> for std::any (without support for RTTI) 2020-05-29 13:59:42 +02:00
Krystian Kuzniarek
95b0ea2cf5 specialize UniversalPrinter<> for std::optional 2020-05-29 13:59:42 +02:00
Krystian Kuzniarek
33b44c4b35 specialize UniversalPrinter<> for std::variant 2020-05-29 13:59:42 +02:00
dmauro
fd32ba66e2 Googletest export
Fix compile error from protected destructor of std::codecvt

PiperOrigin-RevId: 313584603
2020-05-28 19:55:23 -04:00
Abseil Team
85a4631946 Googletest export
Change 'suite' to 'case' in comments.

PiperOrigin-RevId: 313429487
2020-05-28 19:55:14 -04:00
Derek Mauro
07beabd614 Merge pull request #2767 from mvoorsluys:OutputXmlSkipped
PiperOrigin-RevId: 313386267
2020-05-28 19:55:06 -04:00
Derek Mauro
130ae78b99 Merge pull request #2862 from prehistoric-penguin:prehistoric-penguin-patch-1
PiperOrigin-RevId: 313289519
2020-05-28 19:54:47 -04:00