Commit Graph

1407 Commits

Author SHA1 Message Date
Abseil Team
d114398800 Googletest export
Remove uses of GTEST_HAS_TYPED_TEST_P and GTEST_HAS_TYPED_TEST.

PiperOrigin-RevId: 353935996
2021-02-05 10:39:30 -08:00
Abseil Team
3351eba0aa Googletest export
Delete obsolete comment, gtest-param-test.h isn't generated by pump anymore

PiperOrigin-RevId: 353680589
2021-01-26 15:43:38 -05:00
Abseil Team
997c36c188 Googletest export
Stop using pump for generating internal/custom/gmock-generated-actions.h

PiperOrigin-RevId: 352660735
2021-01-26 15:42:55 -05:00
CJ Johnson
4898cdacfe Merge pull request #3204 from kuzkry:CmpHelperXX-overloads-removal
PiperOrigin-RevId: 352626267
2021-01-26 15:42:45 -05:00
krzysio
17922f344c Googletest export
Remove obsolete argument limit documentation.

Combine uses variadic templates now, so there is no inherent limit on the number of arguments.

PiperOrigin-RevId: 352580160
2021-01-26 15:42:21 -05:00
Abseil Team
14098f2015 Googletest export
Merge CONTRIBUTORS, delete LICENSEs in googletest/ and googlemock/

PiperOrigin-RevId: 352558822
2021-01-26 15:42:13 -05:00
Abseil Team
41ecb10253 Googletest export
Internal change

PiperOrigin-RevId: 352002166
2021-01-15 15:53:47 -05:00
Derek Mauro
a3c9bb99f1 Merge pull request #3206 from davidben:format-attr-2
PiperOrigin-RevId: 351812507
2021-01-15 15:53:30 -05:00
Abseil Team
a2f906be69 Googletest export
Add "using is_gtest_matcher = void" to the DivisibleBy7Matcher example.

PiperOrigin-RevId: 351797821
2021-01-15 15:53:22 -05:00
dmauro
0186caf753 Googletest export
Fix build under GCC 5

PiperOrigin-RevId: 351607537
2021-01-13 20:59:44 -05:00
Abseil Team
6b2e74905e Googletest export
Print unique_ptr/shared_ptr recursively.
Given that they are smart pointers, it is unlikely that the inner object is
invalid.

PiperOrigin-RevId: 351586888
2021-01-13 20:59:36 -05:00
Abseil Team
50ce520161 Googletest export
Launder buffer before reference

In GCC, directly casting the Buffer reference to another type results in
strict-aliasing violation errors. This launders the reference using an
intermediate pointer prior to creating the new reference.

PiperOrigin-RevId: 350809323
2021-01-13 20:59:28 -05:00
Abseil Team
c13c27a513 Googletest export
Change Matcher<T> to allow binding an implementation by value directly:
 - Drop the requirement of MatcherInterface. Doing manual type erasure avoid
   extra layers in many cases.
 - Avoid the adaptor for `MatcherInterface<T>` and `MatcherInterface<const T&>` mismatch.
 - Use a small object optimization when possible. This makes things like
   `_` and `Eq(1)` really cheap and do not require memory allocations.
 - Migrate some matchers to the new model to speed them up and to test the new framework. More matchers to come in future changes.

PiperOrigin-RevId: 350580998
2021-01-13 20:59:20 -05:00
Abseil Team
489283524e Googletest export
Move all docs into top-level docs/ directory

PiperOrigin-RevId: 350211277
2021-01-13 20:59:12 -05:00
Abseil Team
996b65e64e Googletest export
Fix Objective-C++ compatibility

PiperOrigin-RevId: 350192165
2021-01-13 20:59:05 -05:00
Abseil Team
f8304d762e Googletest export
Add support for printing incomplete types in the universal printer.

PiperOrigin-RevId: 350154637
2021-01-13 20:58:57 -05:00
Derek Mauro
d72813110c Merge pull request #3189 from ellert:gtest-help-test-GNU/kFreeBSD
PiperOrigin-RevId: 349349288
2021-01-13 20:58:40 -05:00
Corentin Musard
e6e2f3f455
Simplify cmake install file 2021-01-11 19:05:45 +01:00
David Benjamin
28041f6428 Restore GTEST_ATTRIBUTE_PRINTF_ on ColoredPrintf
This fixes build issues with GoogleTest when built with
-Wformat-nonliteral and unblocks updating GoogleTest in BoringSSL.

It was added in 53c478d639, which caught
some bugs. Then it was moved to the header and accidentally dropped in
482ac6ee63.
2021-01-06 12:01:34 -05:00
Krystian Kuzniarek
100ffc33f5 remove explicit function overloads of CmpHelper?? for BiggestInt arguments
Affects macros {ASSERT|EXPECT}_{EQ|NE|LE|LT|GE|GT}.

According to removed comments, these overloads were supposed to reduce
code bloat and allow anonymous enums on GCC 4.

However, the way it works on GCC 4 and the latest GCC (10.2 by now) is
that having:

template <typename T1, typename T2>
void foo(T1, T2);

using BiggestInt = long long;
void foo(BiggestInt, BiggestInt);

the template version takes precedence for almost every combination of
integral types except for two long long integers - i.e. implicit
promotion to long long is a worse match than generating a specific
template function.

Tested on GCC 4.8.1 (as GoogleTest requires C++11 and this was
the first C++11 feature-complete release of GCC),
GCC 4.8.5 (last of 4.8.x series) and the latest GCC (10.2.0).
2021-01-03 15:04:52 +01:00
Mattias Ellert
05e9fa23f7 Port to GNU/Hurd 2020-12-30 13:50:04 +01:00
Julien JEMINE
9614d8c1d6 Using auto instead of container::const_iterator 2020-12-29 16:46:55 +01:00
Derek Mauro
389cb68b87 Merge pull request #3094 from chuckatkins:update-deprecated-cmake-version
PiperOrigin-RevId: 349296827
2020-12-28 13:32:06 -05:00
Mattias Ellert
ed1bf86846 Fix gtest-help-test failure on GNU/kFreeBSD 2020-12-25 14:58:19 +01:00
Yuriy Chernyshov
263220d2c1
Use proper feature test macro to test if library supports char8_t
Reference is here: https://en.cppreference.com/w/cpp/feature_test

This PR fixes the weird case of compiling with `clang++ -std=c++17 -fchar8_t`
2020-12-24 12:20:38 +03:00
dmauro
4f6fa70870 Googletest export
Internal Change

PiperOrigin-RevId: 347631521
2020-12-22 12:15:22 -05:00
Abseil Team
5a509dbd2e Googletest export
Remove ZX_WAIT_ASYNC_ONCE flag

It is deprecated and will soon be removed in fuchsia source.
It's currently defined as 0 and references should be changed to 0.

PiperOrigin-RevId: 346787585
2020-12-10 17:56:33 -05:00
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
Gautham B A
626ce00bef
Fix typo 2020-12-05 16:11:09 +05:30
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
Derek Mauro
731d908c09 Merge pull request #2677 from IYP-Programer-Yeah:fix-file-path-normalize-function
PiperOrigin-RevId: 312486861
2020-05-28 19:54:29 -04:00
Derek Mauro
99ea9ca3fe Merge pull request #2698 from aribibek:patch-1
PiperOrigin-RevId: 312342956
2020-05-28 19:54:19 -04:00
Abseil Team
f3a59610fd Googletest export
Addresses https://github.com/google/googletest/issues/2848 by using `_wfopen(...)` on Windows

PiperOrigin-RevId: 312198825
2020-05-28 19:53:52 -04:00
ppenguin
80d5177ddf
Use count function instead of handwritten loop 2020-05-25 14:25:16 +08:00
Abseil Team
011959aafd Googletest export
Remove broken URL.

PiperOrigin-RevId: 311377660
2020-05-13 20:36:05 -04:00
Abseil Team
8a32680cee Googletest export
Fixed #2823 - Make it so that a semicolon appearing after an invocation of GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_ does not trigger a redundant semicolon warning.

This works by introducing an else block with a statement that intentionally does not end with a semicolon, forcing users to place the semicolon after the expansion. The approach here is preferred as opposed to removing semicolons that appear after each invocation because complete statements that do not have a visible semicolon or braces confuse users and code formatters, since the macro invocation looks superficially like an expression.

PiperOrigin-RevId: 311327491
2020-05-13 20:35:57 -04:00
Andy Getz
48bf552cbf Merge pull request #2778 from lvjp:issue-2777
PiperOrigin-RevId: 310911989
2020-05-13 00:39:57 -04:00
Martin Storsjö
d86e9e23ce Remove an explicit include of debugapi.h
The documentation for IsDebuggerPresent says that one just should
include windows.h, as that one is an umbrella header that includes
the header that declares IsDebuggerPresent. In older Windows SDKs,
debugapi.h didn't exist and IsDebuggerPresent was declared in
winbase.h (also included by windows.h).

This should fix issue #2822 properly.
2020-05-08 10:21:16 +03:00
Martin Storsjö
09f587512a Revert "Googletest export"
This reverts commit a9f6c1ed14.

That commit cannot fix the issue it sets out to fix.

The original issue, #2822, was that building with a toolset
targeting XP compatibility is missing the debugapi.h header -
as debugapi.h didn't exist in older Windows SDKs.

Commit a9f6c1ed14 misinterpreted
the Microsoft documentation about IsDebuggerPresent. The information
about which header to use, "debugapi.h (include Windows.h)" means
that the function declaration currently lives in debugapi.h, but
for compatibility, just include the Windows.h umbrella header.
In older Windows SDKs (e.g. the v6.0a SDK), IsDebuggerPresent
is declared in winbase.h, and debugapi.h doesn't exist at all in those
versions.

Including Windows.h with a different capitalization than the existing
include won't help finding headers that don't exist.

Including Windows.h with a capital W breaks cross compilation with mingw
toolchains, where the header always has been spelled with a lower case
W. When building on native windows, the file system is case insensitive
and the capitalization doesn't matter.

This fixes issue #2840.
2020-05-08 10:13:33 +03:00
vslashg
e589a33717 Merge pull request #2751 from calumr:quiet-flag
PiperOrigin-RevId: 309958629
2020-05-05 17:07:14 -04:00
Abseil Team
a9f6c1ed14 Googletest export
Addresses Github issue (https://github.com/google/googletest/issues/2822) by following the Microsoft documention (https://docs.microsoft.com/en-us/windows/win32/api/debugapi/nf-debugapi-isdebuggerpresent) to include capital-W Windows.h before including debugapi.h.

See "Header	debugapi.h (include Windows.h)"

PiperOrigin-RevId: 309745868
2020-05-05 17:06:56 -04:00
Igor Nazarenko
4c9ad191e1 Detect proto messages based on presense of DebugString. 2020-05-05 11:06:33 -07:00
Abseil Team
0eea2e9fc6 Googletest export
Fix documentation. This address https://github.com/google/googletest/pull/2827.

PiperOrigin-RevId: 309241571
2020-05-01 17:12:28 -04:00
Gennadiy Rozental
472cd8fd8b Merge pull request #2818 from inazarenko:master
PiperOrigin-RevId: 308711492
2020-05-01 17:12:10 -04:00
Gennadiy Rozental
b99b421d8d Merge pull request #2818 from inazarenko:master
PiperOrigin-RevId: 308650221
2020-05-01 17:12:01 -04:00
Gennadiy Rozental
ef25d27d46 Merge pull request #2815 from Quuxplusone:simple
PiperOrigin-RevId: 308625388
2020-05-01 17:11:43 -04:00
Abseil Team
d7ca9af004 Googletest export
Use InitGoogleTest() instead of InitGoogle() in code example

PiperOrigin-RevId: 308070819
2020-05-01 17:11:26 -04:00
Abseil Team
1b3eb6ef34 Googletest export
Explicitly define copy constructors used in googletest tests

As of C++11, providing a user-declared copy assignment operator should
suppress the availability of an implicit default copy constructor.
Classes that provide (or delete) a copy assignment operator must provide
their own copy constructor if one is desired. This may be an explicit
default copy constructor if appropriate.

As googletest is a C++11 codebase, this change should be made without
qualification.

This addresses the -Wdeprecated-copy warnings issued by trunk clang:

While compiling googletest/test/googletest-death-test-test.cc:

In file included from .../googletest/test/googletest-death-test-test.cc:33:
.../googletest/include/gtest/gtest-death-test.h:196:8: error: definition of implicit copy constructor for 'ExitedWithCode' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy]
  void operator=(const ExitedWithCode& other);
       ^
.../googletest/test/googletest-death-test-test.cc:279:16: note: in implicit copy constructor for 'testing::ExitedWithCode' first required here
  EXPECT_PRED1(pred0,  status0);
               ^

While compiling googletest/test/googletest-param-test-test.cc:

.../googletest/test/googletest-param-test-test.cc:502:8: error: definition of implicit copy constructor for 'NonDefaultConstructAssignString' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy]
  void operator=(const NonDefaultConstructAssignString&);
       ^
.../googletest/test/googletest-param-test-test.cc:507:36: note: in implicit copy constructor for 'NonDefaultConstructAssignString' first required here
      Combine(Values(0, 1), Values(NonDefaultConstructAssignString("A"),

This matches other changes made elsewhere in the googletest codebase,
such as 306f3754a7. Perhaps those previous changes did not consider
test code.

PiperOrigin-RevId: 307495126
2020-05-01 17:11:08 -04:00
Abseil Team
a677010564 Googletest export
Internal change

PiperOrigin-RevId: 307040308
2020-05-01 17:10:51 -04:00
Arthur O'Dwyer
c7d8ec72cc Fix a -Wdeprecated warning.
googletest-param-test-test.cc:502:8: error:
    definition of implicit copy constructor for
    'NonDefaultConstructAssignString' is deprecated because it has a
    user-declared copy assignment operator [-Werror,-Wdeprecated]
        void operator=(const NonDefaultConstructAssignString&);
             ^
2020-04-23 22:22:34 -04:00
Arthur O'Dwyer
01c0ff5e23 Fix a -Wdeprecated warning.
googletest-port-test.cc:97:11: error:
    definition of implicit copy constructor for 'Base' is deprecated because
    it has a user-declared destructor [-Werror,-Wdeprecated]
        virtual ~Base() {}
                ^
2020-04-23 22:22:34 -04:00
Arthur O'Dwyer
766ac2e1a4 Remove all uses of GTEST_DISALLOW_{MOVE_,}ASSIGN_.
None of these are strictly needed for correctness.
A large number of them (maybe all of them?) trigger `-Wdeprecated`
warnings on Clang trunk as soon as you try to use the implicitly
defaulted (but deprecated) copy constructor of a class that has
deleted its copy assignment operator.

By declaring a deleted copy assignment operator, the old code
also caused the move constructor and move assignment operator
to be non-declared. This means that the old code never got move
semantics -- "move-construction" would simply call the defaulted
(but deprecated) copy constructor instead. With the new code,
"move-construction" calls the defaulted move constructor, which
I believe is what we want to happen. So this is a runtime
performance optimization.

Unfortunately we can't yet physically remove the definitions
of these macros from gtest-port.h, because they are being used
by other code internally at Google (according to zhangxy988).
But no new uses should be added going forward.
2020-04-23 22:22:07 -04:00