Commit Graph

507 Commits

Author SHA1 Message Date
Christian Clauss
a070f33c19 Fix typo discovered by codespell
https://pypi.org/project/codespell/
2021-09-16 20:40:35 +02:00
dmauro
eb7e38dfb4 Googletest export
Fix a Python 2 to 3 issue

PiperOrigin-RevId: 389720056
2021-08-10 12:30:49 -04:00
slowy07
2f3e2e39cc fix: typo codespelling comment 2021-07-24 17:38:47 +07:00
Abseil Team
ce4895aae8 Googletest export
Fix include guards in gen_pred_test.py

PiperOrigin-RevId: 386052814
2021-07-22 14:53:50 -04:00
Abseil Team
977cffc442 Googletest export
Introduce GTEST_FLAG_GET and GTEST_FLAG_SET macros.

PiperOrigin-RevId: 382808313
2021-07-07 14:34:19 -04:00
Abseil Team
4cfd14984f Googletest export
gtest: Add a flag to only set up/tear down test environments once when repeating

Currently when running a test multiple times using `--gtest_repeat` the global
test environment(s) are set up and torn down for each iteration of the test.
When checking for flakes in tests that have expensive dependencies that are set
up in the test environment (subprocesses, external dependencies, etc) this can
become expensive.

To support finding flakes in tests that fit into this category, where the setup
phase is expensive but each test case is fast, allow callers to specify via
`--gtest_recreate_environments_when_repeating=false` that the test environments
should only be set up once, for the first iteration, and only torn down once, on
the last iteration. This makes running a test with `--gtest_repeat=1000` a much
faster and more pleasant experience.

PiperOrigin-RevId: 382748942
2021-07-07 14:34:08 -04:00
Andy Soffer
5f97ce4c70 Merge pull request #3465 from mbinna:bazel_qnx
PiperOrigin-RevId: 382189077
2021-06-30 13:33:48 -04:00
Abseil Team
22e6055c75 Googletest export
Make multiple attempts to verify GetThreadCount()

Testing GetThreadCount() is inheritently noisy, as other threads can be started
or destroyed between two calls to GetThreadCount(). This is especially true
under certain analyzer configurations, such as TSAN.

PiperOrigin-RevId: 381951799
2021-06-30 13:33:29 -04:00
Manuel Binna
4281d2149c Don't link pthread on QNX
On QNX, pthread is part of libc [1]. There's no separate pthread library
to link.

[1] https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.lib_ref/topic/p/pthread_create.html
2021-06-26 13:26:20 +02:00
CJ Johnson
22a2e019c4 Merge pull request #3200 from ellert:port-to-GNU/Hurd
PiperOrigin-RevId: 379383941
2021-06-17 12:52:18 -04:00
Abseil Team
f5e592d8ee Googletest export
Revert ac3c2a8d04 -- it seems to break some gcc users (#3384)

PiperOrigin-RevId: 370834917
2021-04-29 10:40:44 -04:00
John Bampton
050b517518 chore: fix spelling 2021-04-15 11:53:53 +10:00
Abseil Team
4400d68de4 Googletest export
Add support to run gtest on Xtensa platform.

This add support to run GTest base test suits on Xtensa
(https://ip.cadence.com/ipportfolio/tensilica-ip) base simulator.
Xtensa only provides libc and some basic operations and does not run an
operating system by default.

PiperOrigin-RevId: 368162205
2021-04-13 17:58:07 -07:00
Abseil Team
d0303e40c5 Googletest export
Migrate away from deprecated --heap_check=strict

PiperOrigin-RevId: 367226846
2021-04-07 23:39:25 -07:00
Abseil Team
df7fee587d Googletest export
Delete extra whitespace in gtest_xml_test_utils.py

PiperOrigin-RevId: 365140844
2021-03-25 16:04:59 -07:00
Abseil Team
1a8ecf1813 Googletest export
Print std::u8string, std::u16string, and std::u32string as string literals

Previously, these types were printed as "{ U+123, U+456, U+789 }". However,
printed output in that form is difficult to compare against any literals that
might be defined in code. Instead, just treat these types like std::string
and std::wstring, escaping non-ASCII characters with a hexadecimal escape
sequence.

The tests have also been updated to cover the new functionality: as a bonus,
the tests now also pass with the MSVC toolchain.

Internally, the code has been reorganized to primarily operate in terms of
char32_t, under the assumption that char32_t will always be at least as big
as wchar_t. While that assumption is currently true, perhaps it won't be in
the future...

PiperOrigin-RevId: 364033132
2021-03-22 15:18:50 -04:00
Abseil Team
ac1d60c2b5 Googletest export
gtest: Output a canned test suite for environment failures in XML/JSON

This surfaces useful information about the environment failure in a structured form.

As we can see from the updated test, previously unsurfaced information is now present.

PiperOrigin-RevId: 362292322
2021-03-16 09:51:18 -04:00
Dino Radaković
bcfcf75ef6 Merge pull request #3184 from N-Dekker:PrintTo-type_index-overload
PiperOrigin-RevId: 361175466
2021-03-09 10:59:10 -08:00
Niels Dekker
ac3c2a8d04 overload PrintTo for std::type_info and std::type_index
Included the string returned by their `name()` member function with the output of `PrintTo`.

Typical use case:

    std::unique_ptr<AbstractProduct> product = FactoryMethod();
    // Assert that the product is of type X:
    ASSERT_EQ(std::type_index{typeid(*product)},
              std::type_index{typeid(ProductX)});

Possible output in case of a test assert failure, now including the names of the compared type indices:

> error: Expected equality of these values:
>  std::type_index(typeid(*product))
>    Which is: 8-byte object <D0-65 54-8C F6-7F 00-00> ("class ProductY")
>  std::type_index(typeid(ProductX))
>    Which is: 8-byte object <40-64 54-8C F6-7F 00-00> ("class ProductX")

With help from Krystian Kuzniarek.
2021-02-25 13:23:52 +01:00
Abseil Team
daa0df7b41 Googletest export
Explicitly skip tests after fatal global environment setup errors

Previously the tests were all skipped, but the resulting output claimed all
tests passed.

Before:
```
[----------] Global test environment set-up.
<failure message>
[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (83 ms total)
[  PASSED  ] 1 test.
[  FAILED  ] 0 tests, listed below:
```

After:
```
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
<failure message>
[----------] 1 test from SomeTest
[ RUN      ] SomeTest.DoesFoo
<...>: Skipped
[  SKIPPED ] SomeTest.DoesFoo (0 ms)
[----------] 1 test from SomeTest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (68 ms total)
[  PASSED  ] 0 tests.
[  SKIPPED ] 1 test, listed below:
[  SKIPPED ] SomeTest.DoesFoo
[  FAILED  ] 0 tests, listed below:
```

PiperOrigin-RevId: 358026389
2021-02-18 13:27:15 -05:00
Abseil Team
0a3a3a845e Googletest export
Make include guards conform with https://google.github.io/styleguide/cppguide.html#The__define_Guard, attempt #2

PiperOrigin-RevId: 357056902
2021-02-18 13:26:24 -05:00
Abseil Team
d4144d4ee2 Googletest export
Revert include guard fix

PiperOrigin-RevId: 356588893
2021-02-11 12:49:24 -05:00
Abseil Team
af058521ad Googletest export
Fix #2987
Removing const before passing any types through UniversalPrinter.

PiperOrigin-RevId: 356508875
2021-02-11 12:49:00 -05:00
Abseil Team
36b7792047 Googletest export
Make include guards conform with https://google.github.io/styleguide/cppguide.html#The__define_Guard

PiperOrigin-RevId: 355882793
2021-02-11 12:48:43 -05:00
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
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
f8304d762e Googletest export
Add support for printing incomplete types in the universal printer.

PiperOrigin-RevId: 350154637
2021-01-13 20:58:57 -05:00
Mattias Ellert
05e9fa23f7 Port to GNU/Hurd 2020-12-30 13:50:04 +01:00
Mattias Ellert
ed1bf86846 Fix gtest-help-test failure on GNU/kFreeBSD 2020-12-25 14:58:19 +01:00
dmauro
4f6fa70870 Googletest export
Internal Change

PiperOrigin-RevId: 347631521
2020-12-22 12:15:22 -05:00
dmauro
fb4b3b6b9a Googletest export
Fix a missing Bazel build dependency

PiperOrigin-RevId: 346783462
2020-12-10 17:56:26 -05: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
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
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
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
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
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
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
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
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
e61125f053 Merge pull request #2920 from ongjunjie:fix-death-test-regex
PiperOrigin-RevId: 324014547
2020-07-31 14:51:35 -04:00
vslashg
af287b4ffd Merge pull request #2903 from AmatanHead:informative-exception-asserts
PiperOrigin-RevId: 320425648
2020-07-15 14:09:20 -04: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