Commit Graph

2759 Commits

Author SHA1 Message Date
Gennadiy Civil
e285f915fb Update README.md 2019-04-18 15:58:27 -04:00
misterg
0193f050cf Googletest export
Fixes https://github.com/google/googletest/issues/2232

PiperOrigin-RevId: 244237560
2019-04-18 15:46:04 -04:00
Abseil Team
710ff86592 Googletest export
Remove GMock Doctor.
It has not been actively supported for a while.
We also now have better techniques to improve compiler errors where needed
instead of requiring a separate tool to diagnose them.

PiperOrigin-RevId: 244196068
2019-04-18 15:45:56 -04:00
misterg
ce3a168419 Googletest export
Expose more information in SuiteApiResolver diagnostic output

PiperOrigin-RevId: 244179347
2019-04-18 15:45:49 -04:00
Gennadiy Civil
7e27fc4c95 Merge pull request #2170 from ngie-eign:issue-2146-ver2
PiperOrigin-RevId: 244069956
2019-04-18 09:44:24 -04:00
Abseil Team
7e0f8d157c Googletest export
[googletest] Fix death test condition.

PiperOrigin-RevId: 243742424
2019-04-16 16:17:41 -04:00
Abseil Team
ddf1e47291 Googletest export
Migrate ZX_WAIT_ASYNC_REPEATING to ZX_WAIT_ASYNC_ONCE

ZX_WAIT_ASYNC_REPEATING is deprecated so convert code to use
ZX_WAIT_ASYNC_ONCE instead.

PiperOrigin-RevId: 243707147
2019-04-16 16:17:34 -04:00
Gennadiy Civil
826e292985 Merge pull request #2230 from return:style-issue
PiperOrigin-RevId: 243313653
2019-04-12 16:36:56 -04:00
Calvin Hill
731664bff0 Sort Haiku platform definition alphabetically.
Fixes a minor ordering issue when defining the platform macro.
Also fixes a minor typo: 'Max OS X' -> 'Mac OS X'.
2019-04-12 19:26:07 +01:00
Gennadiy Civil
ce1dc32bca Merge pull request #2226 from davidben:msvc-5046
PiperOrigin-RevId: 243121568
2019-04-11 15:59:46 -04:00
Gennadiy Civil
018295a390 Merge pull request #2229 from return:haiku-support
PiperOrigin-RevId: 243104604
2019-04-11 14:31:18 -04:00
Gennadiy Civil
13437c3d29 Merge pull request #2228 from rongou/patch-2
replace test case with test suite in the primer
2019-04-11 13:53:21 -04:00
Calvin Hill
a79e6a52a6 Add Haiku platform support.
This allows googletest to recognize the Haiku operating system when
running tests in other projects.
2019-04-11 17:28:06 +01:00
Rong Ou
28284827a8 replace test case with test suite in the primer 2019-04-11 09:13:44 -07:00
Gennadiy Civil
988750324a Merge pull request #2225 from rongou/patch-1
add missing period
2019-04-11 09:43:03 -04:00
David Benjamin
7cfddeea9c MSVC C5046 warning is unavailable in MSVC 2015.
Per the MSVC documentation the warning is new as of Visual Studio 2017,
version 15.8.
https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/c5046?view=vs-2019

GTest users building on MSVC 2015 or older versions of 2017 will, when
C4616 is enabled, see a warning like:

[...]gtest-matchers.h(53): error C2220: warning treated as error - no 'object' file generated
[...]gtest-matchers.h(53): warning C4619: #pragma warning: there is no warning number '5046'

Guard the mention of 5046 by an _MSC_VER check. VS2017 15.8 corresponds
to an _MSC_VER of 1915.
https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
2019-04-09 18:13:32 -05:00
Rong Ou
f7239f88a4 add missing period 2019-04-09 10:04:58 -07:00
Gennadiy Civil
2a7ec1d1de Update README.md 2019-04-07 23:04:31 -04:00
Gennadiy Civil
cb754c1d34 Merge pull request #2222 from Ivaylo-Kirov/patch-1
Update ForDummies.md
2019-04-07 23:01:52 -04:00
Ivaylo Kirov
5b7cc8aca9 Update ForDummies.md 2019-04-06 22:06:17 -04:00
Enji Cooper
36018b429c clang: fix -Wsign-conversion errors
Cast some values as their unsigned equivalents or `size_t` to match the
parameter type used for the template object under test. Also, provide
UInt32 equivalent delegate methods for some callers (with
int-equivalents for backwards compatibility).

This closes #2146.

Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
2019-04-05 21:30:19 -07:00
Gennadiy Civil
d452f29ef6 Merge pull request #2148 from ngie-eign:clang-add-explicit-c++11-rtti-flag
PiperOrigin-RevId: 242038269
2019-04-05 11:46:13 -04:00
Abseil Team
30f0b021ff Googletest export
[fdio] Improve fdio_pipe_half signature, step 3.

The return value on fdio_pipe_half conflated two things: the error code
on failure (as a zx_status_t) or a file descriptor on success. This
technically worked, because they're both ints, the error code was always
negative, and the file descriptor always positive. However, the stated
return type of zx_status_t was misleading. This changes the signature
such that it always returns an actual zx_status_t, and the file
descriptor is returned through a pointer argument.

Also remove the last argument, since it was always given the same value.

This needs to be done as a soft transition because it's called from the
Dart runtime, from googletest, and from Crashpad, and Crashpad and
Chromium both depend on googletest on Fuchsia. The steps are as follows:
1) Add fdio_pipe_half2.
2) Update Dart to use fdio_pipe_half2.
3) Update googletest to use fdio_pipe_half2.
4) Roll updated googletest into Chronium.
5) Update Crashpad to use fdio_pipe_half2 and roll updated googletest into it.
6) Update fdio_pipe_half to match fdio_pipe_half2.
7) Update Dart to use fdio_pipe_half again.
8) Update googletest to use fdio_pipe_half again.
9) Roll updated googletest into Chronium.
10) Update Crashpad to use fdio_pipe_half again and roll updated googletest into it.
11) Remove fdio_pipe_half2.

This is step 3.

PiperOrigin-RevId: 241957137
2019-04-05 11:46:06 -04:00
Enji Cooper
ef8aff6e2c clang: explicitly enable/disable RTTI support with the compiler
Add `-frtti` to the compiler with the base flags case so that RTTI is
enabled by default with clang. Add its inverse analog,
`cxx_no_rtti_flags` in order to test the case with RTTI off, similar to
gcc.

This reduces the amount of testing/support overhead needed in the
non-RTTI case with clang, as the tests currently fail when these two
features are off with version 1.8.1. This something I used in when
investigating test failures on FreeBSD, as the tests that rely on
RTTI were failing with googletest 1.8.1 on the OS platform.

More investigation is being done to determine how this should be fixed
on FreeBSD 11.2-RELEASE with ports, as the package doesn't currently
compile the tests, and when enabled (based on my WIP diff), the tests
fail in similar ways.

Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
2019-04-03 21:09:20 -07:00
Gennadiy Civil
b6b2d690d6 Merge pull request #2203 from ngie-eign:issue-2189
PiperOrigin-RevId: 241803437
2019-04-03 17:15:16 -04:00
Abseil Team
537a29e24b Googletest export
Typos: "more then" -> "more than".
PiperOrigin-RevId: 241483698
2019-04-03 15:14:17 -04:00
Abseil Team
407592f6a7 Googletest export
Add HWASan annotations.

These mirror existing ASan annotations.

HWASan uses memory (address) tagging to detect memory errors:
https://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html

It inserts a random tag in the MSB of heap and stack allocation addresses. This tag dominates pointer comparison in StackGrowsDown(), making the result non-deterministic, and entirely unrelated to the actual stack growth direction. The function attribute disables this behavior.

The annotations in gtest-printers are there because the printers are used to basically dump memory. The sanitizers may have ideas why this memory should not be accessed, and that is counter productive. In particular, the test may access only part of an array, but in case of a test failure gtest will dump the entire array which may contain uninitialized bytes - that's what SANITIZE_MEMORY annotation is for. There are similar reasons for ADDRESS and THREAD annotations. HWADDRESS in its current implementation can not cause issues there, I believe, but it falls under the same umbrella of tools whose checking should not apply to test printers because it is not the code under test.

PiperOrigin-RevId: 241379822
2019-04-01 15:45:51 -04:00
Gennadiy Civil
e9ad026098 Merge pull request #2163 from ngie-eign:cmake-fix-gtest-binary-prefixing-when-gmock-enabled
PiperOrigin-RevId: 241376090
2019-04-01 15:27:49 -04:00
Abseil Team
4d7c867857 Googletest export
Remove support for "global" ::string and ::wstring types.
This support existed for legacy codebases that existed from before namespaces
where a thing. It is no longer necessary.

PiperOrigin-RevId: 241335738
2019-04-01 15:05:10 -04:00
Enji Cooper
7e94c663ca Handle GTEST_SKIP() when calling Environment::SetUp()
gtest prior to this change would completely ignore `GTEST_SKIP()` if
called in `Environment::SetUp()`, instead of bailing out early, unlike
`Test::SetUp()`, which would cause the tests themselves to be skipped.
The only way (prior to this change) to skip the tests would be to
trigger a fatal error via `GTEST_FAIL()`.

Desirable behavior, in this case, when dealing with
`Environment::SetUp()` is to check for prerequisites on a system
(example, kernel supports a particular featureset, e.g., capsicum), and
skip the tests. The alternatives prior to this change would be
undesirable:

- Failing sends the wrong message to the test user, as the result of the
  tests is indeterminate, not failed.
- Having to add per-test class abstractions that override `SetUp()` to
  test for the capsicum feature set, then skip all of the tests in their
  respective SetUp fixtures, would be a lot of human and computational
  work; checking for the feature would need to be done for all of the
  tests, instead of once for all of the tests.

For those reasons, making `Environment::SetUp()` handle `GTEST_SKIP()`,
by not executing the testcases, is the most desirable solution.

In order to properly diagnose what happened when running the tests if
they are skipped, print out the diagnostics in an ad hoc manner.

Update the documentation to note this change and integrate a new test,
gtest_skip_in_environment_setup_test, into the test suite.

This change addresses #2189.

Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
2019-03-30 11:38:03 -07:00
Enji Cooper
e2588aac1a Prefix googletest binaries under its own subtree instead of gtest
Building all test binaries under their respective subtrees makes
building the project via cmake easier to grok without additional hacks.
In particular, when dealing with the conversion I proposed in
https://reviews.freebsd.org/D19430 (switching from autotools to cmake),
I ran into unexpected gtest prefixing under the googlemock directory, as
opposed to the googletest directory. Example:

Before: `googlemock/gtest/googletest-break-on-failure-unittest_`
After:  `googletest/googletest-break-on-failure-unittest_`

The latter form is easier to translate to packaging manifests when
building googlemock is disabled, as well as enabled, as the path remains
consistent when the feature flag is disabled.

Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
2019-03-29 15:00:05 -07:00
Abseil Team
3fb5ece743 Googletest export
Update XML and JSON output to be consistent with the standard.

PiperOrigin-RevId: 239833242
2019-03-28 17:56:02 -04:00
Gennadiy Civil
1d24fce884 Update CONTRIBUTING.md 2019-03-28 17:21:41 -04:00
Gennadiy Civil
5a1f53c0d1 Update CONTRIBUTING.md 2019-03-28 17:21:14 -04:00
Gennadiy Civil
4ec63fc0d7 Merge pull request #2199 from syohex/update-xcode-project-file-again
Update Xcode project file
2019-03-26 10:28:23 -04:00
Syohei YOSHIDA
456f3b385e Update Xcode project file
- Remove files which no longer exists
- Add newer file
2019-03-26 16:39:34 +09:00
Gennadiy Civil
d468889d88 Merge pull request #2193 from antismap/patch-1
Note about INSTANTIATE_TEST_SUITE_P / INSTANTIATE_TEST_CASE_P
2019-03-21 15:43:59 -04:00
Gennadiy Civil
a8a90c741e Update googletest/docs/advanced.md
Co-Authored-By: antismap <michael.thenault@gmail.com>
2019-03-21 16:20:07 +01:00
Gennadiy Civil
21a841ade9 Merge pull request #2180 from twam:master
PiperOrigin-RevId: 239404016
2019-03-21 10:43:14 -04:00
Abseil Team
fdfac36c0f Googletest export
Remove mention of unused type ProtocolMessage.

PiperOrigin-RevId: 239242706
2019-03-21 10:43:06 -04:00
Abseil Team
70be25fbf4 Googletest export
Action helpers need to pass by const& so that they can work with unique_ptr.

PiperOrigin-RevId: 239062671
2019-03-21 10:42:58 -04:00
antismap
c79579183d Note about INSTANTIATE_TEST_SUITE_P / INSTANTIATE_TEST_CASE_P keyword change
See https://github.com/google/googletest/issues/2065
2019-03-21 14:38:50 +01:00
Gennadiy Civil
4ee627b88e Merge pull request #2181 from sethraymond/patch-1
DesignDoc Markdown table was broken
2019-03-20 11:52:49 -04:00
Tobias Müller
2cbdeecda2 Remove old_crtdbg_flag_ member if not required 2019-03-19 09:29:48 +01:00
Seth Raymond
87a8e6954d DesignDoc Markdown table was broken
Added a missing newline
2019-03-15 09:27:08 -04:00
Gennadiy Civil
fc48878c5c Merge pull request #2158 from CarloWood:master
PiperOrigin-RevId: 236716851
2019-03-05 08:39:41 -05:00
Abseil Team
54c7cc9eac Googletest export
Fix emission of -Wzero-as-null-pointer-constant when comparing integers.

The following code fails to compile:

#pragma clang diagnostic error "-Wzero-as-null-pointer-constant"
void foo() {
  EXPECT_EQ(0, 0);
}

This happens because gtest checks the first argument to EXPECT_EQ and
ASSERT_EQ is a null pointer constant. The magic it does to do this causes the
warning to be emitted.

This patch removes that check. It replaces the explicit check with a Compare
overload that can only be selected when 0 or nullptr is passed on the LHS
with a pointer on the right.

This patch does not suppress -Wzero-as-null-pointer-constant when users
are actually using it as NULL.

PiperOrigin-RevId: 236654634
2019-03-05 08:39:34 -05:00
Abseil Team
a37ca5835f Googletest export
Build gmock cleanly with clang -Wextra-semi and -Wextra-semi-stmt

Extends 56ef07a203 to take -Wc++98-compat-extra-semi
(https://reviews.llvm.org/D43162) and -Wextra-semi-stmt
(https://reviews.llvm.org/D52695) into account.

For https://crbug.com/926235.

PiperOrigin-RevId: 236643095
2019-03-05 08:39:28 -05:00
Abseil Team
62fc088419 Googletest export
Let embedders customize GTEST_INTERNAL_DEPRECATED().

GTEST_INTERNAL_DEPRECATED is currently used to nudge googletest users to migrate off old TEST_CASE macros to the new TEST_SUITE macros. This move is non-trivial for Chromium (see https://crbug.com/925652), and might be difficult for other big projects with many dependencies.

This CL facilitates moving off of deprecated APIs by making it possible for an embedder to define GTEST_INTERNAL_DEPRECATED() in gtest/internal/custom/gtest-port.h. Example usage:

1) #define GTEST_INTERNAL_DEPRECATED() to nothing, to disable deprecation warnings while migrating off googletest's deprecated APIs. This can be preferable to having to disable all deprecation warnings (-Wno-error=deprecated or -Wno-deprecated-declarations).

2) #define GTEST_INTERNAL_DEPRECATED() for an unsupported compiler.

PiperOrigin-RevId: 236171043
2019-03-01 16:18:24 -05:00
Abseil Team
d8a7b1e343 Googletest export
Build gmock cleanly with clang -Wextra-semi

For https://crbug.com/926235.
From https://github.com/google/googletest/pull/2139.
Fixes https://github.com/google/googletest/issues/2138.

PiperOrigin-RevId: 235832527
2019-03-01 16:18:17 -05:00