Use /fp:precise to override IntelLLVM's default of /fp:fast.
This makes IsInf and IsNan work as expected by googletest.
```
[build]...\googletest\googlemock\test\gmock-function-mocker_test.cc(143,21): error: 'VoidReturning' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
[build] MOCK_METHOD(void, VoidReturning, (int n)); // NOLINT
```
```
[build] ...\googletest\googlemock\test\gmock-function-mocker_test.cc(182,20): error: exception specification of overriding function is more lax than base version [-Werror,-Wmicrosoft-exception-spec]
[build] MOCK_METHOD(int, CTNullary, (), (Calltype(STDMETHODCALLTYPE)));
```
```
[build] ...\googletest\googletest\test\googletest-death-test-test.cc(209,5): error: unused function 'DieInCRTDebugElse12' [-Werror,-Wunused-function]
[build] int DieInCRTDebugElse12(int* sideeffect) {
[build] ^
```
```
[build] ...\googletest\googletest\test\gtest_unittest.cc(4096,7): error: variable 'n' set but not used [-Werror,-Wunused-but-set-variable]
[build] int n = 0;
```
Use the same flags as Clang if the compiler id is IntelLLVM.
IntelLLVM warns if a double constant is assigned to a float.
```
[build] .../googletest/googletest/include/gtest/gtest-printers.h:516:17: warning: implicit conversion between floating point types of different sizes [-Wimplicit-float-size-conversion]
[build] mulfor6 = 1e1;
```
IntelLLVM uses fp-model=fast by default, breaking IsNan and IsInf tests.
Use -ffp-model=precise to fix this.
IntelLLVM does not support -Wchar-subscripts
Fixes#4255
Some versions of MSVC provide incorrect values for the latter and rely on _MSVC_LANG instead.
Fixes#4226.
PiperOrigin-RevId: 527919195
Change-Id: Ifcca4612074f5ebc5337094426866a187f79f90a
This change brings InitGoogleTest semantic in accordance with the official documentation: only GoogleTest flags are removed from argc/argv. The rest of the flags remains in place. We do nothing special for flags with unrecognized gunit_/gtest_ prefix and we do not report them.
PiperOrigin-RevId: 527257221
Change-Id: Ibb29a1bda1a44251a4ee579c0fb5bbdfd9965c21
This seems to just have been an oversight. POSIX socket APIs work just
fine on macOS.
Fixes https://github.com/google/googletest/issues/4214.
PiperOrigin-RevId: 523398386
Change-Id: I9d56cd9c6933318c1f0b0024f7fef44122fd0c83
Ensure that tests are run in the order specified in the source code, even if
they are registered manually using RegisterTest. There should be no behavior
change for the common case.
PiperOrigin-RevId: 522136303
Change-Id: If155e2666780af0e514fbbf5ff2b157d5fe2fef1
Ensure that tests are run in the order specified in the source code, even if
they are registered manually using RegisterTest. There should be no behavior
change for the common case.
PiperOrigin-RevId: 520729483
Change-Id: I400c78400c6929fccae0676214d993251f31888f
This makes the behavior consistent when GTEST_STACK_TRACE_DEPTH is set to zero
and not: there is always vertical whitespace separating failure messages.
PiperOrigin-RevId: 518744611
Change-Id: I5b4af40633849850660504c3f497a76601d4311d
Environment variables, for example `GTEST_FILTER`, `GTEST_OUTPUT` can be set
before getting WinRT app run. GoogleTest can read environment variables and use
them. It's easier than setting and passing command line parameters to WinRT app.
These macros should only be used within googletest, so changing them will not
affect external users.
This allows compiling with -Wundef (#3267).
PiperOrigin-RevId: 513946162
Change-Id: I2f2b7df9123adeba4147593b2b55fde349ccce4f
The "more details" warning message printed by this macro is no longer
needed.
PiperOrigin-RevId: 513945729
Change-Id: I644910216dbef2fe92eee3a648f2078e705cc7a1
According to the comments, "Feature-indicating macros",
such as GTEST_IS_THREADSAFE should be defined to 1 when supported
and otherwise undefined (never 0).
PiperOrigin-RevId: 513944266
Change-Id: I0f5c8bed107a5f20e957ec7c70339540ca2fe831
These macros should only be used within googletest, so changing them will not
affect external users.
This allows compiling with -Wundef (#3267).
PiperOrigin-RevId: 513943800
Change-Id: I697b1005c29b0d5af06f583f202d86db48b567b9
For MSVC, gmock_output_test.py output struct std::pair<int,bool>, for GCC, it's output
std::pair<int, bool>, it's not the same, my intention is getting these to be same by removing
struct for MSVC's outptu, and strip redundant space for GCC.
As a by-product,
```
#ifdef _MSC_VER
#define ERROR_DESC "class std::runtime_error"
#else
#define ERROR_DESC "std::runtime_error"
#endif
```
can be simplified to
```
#define ERROR_DESC "std::runtime_error"
```
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Keep declarations in c++ < 17 using new macro, GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL.
Fixes#4148.
PiperOrigin-RevId: 511510401
Change-Id: I76c3f2fccf07a0978adcbe5f8f0203b9d0c33872
Historically, calls to RecordProperty with values that are convertible to
int64_t have been casted to int64_t. The result was that types like float or
double would be truncated when printed (e.g., 4.75 -> 4). This change removes
the cast so that the types are printed in a more appropriate manner.
PiperOrigin-RevId: 511238685
Change-Id: I80de5db14462da2a3e1f476086025ae514383a17
When googletest and googlemock are included as a git submodule and referenced
as part of an existing CMake project, multiple warnings are printed out due to
not setting a value for the CMP0069 policy.
Use "#if defined(_MSC_VER)" instead of "#if _MSC_VER" to be consistent
with other usages in googletest and to work with the "-Wundef" warning.
PiperOrigin-RevId: 508087630
Change-Id: I29c16fd2fa51a9dfecd55e10362a020318318956
Nothing defines GTEST_USES_PCRE anymore. It was only meant for
internal use, so nothing public should be relying on it:
https://github.com/google/googletest/issues/2735#issuecomment-644849438.
Found when compiling with "-Wundef".
Fixes#2735.
PiperOrigin-RevId: 507823660
Change-Id: Ie19e576ff01dc3b16381338578ece92adccfc09b
The GTEST_DISABLE_MSC_WARNINGS macros already have an _MSC_VER check.
This change also adds a missing GTEST_DISABLE_MSC_WARNINGS_POP_ in
gtest-typed-test_test.cc.
PiperOrigin-RevId: 506636248
Change-Id: Ifdc044528f5448fbf0175887d1671f1e1f3040b9
Prior to this change we had a mixture of pragmas and
GTEST_DISABLE_MSC_WARNINGS; this change consolidates all instances
to use the macros.
PiperOrigin-RevId: 505786926
Change-Id: I2be8f6304387393995081af42ed32c2ad1bba5a7
Possible unbalanced tuple unpacking with sequence defined at line N:
left side has 1 label(s), right side has 0 value(s)
[unbalanced-tuple-unpacking]
PiperOrigin-RevId: 504640001
Change-Id: If8d6038a9acf74a409cb6b6ee30cea7745b4b303
These files were formatted with automated tools. The remaining Python
files require some manual fix ups, so they will be fixed separately.
PiperOrigin-RevId: 504579820
Change-Id: I3923bd414bffe3ded6163ec496cd09ace3951928
In #4113 a user says Max clashes with a macro. Since it is only used in
a test, use std::numeric_limits::max() instead.
Note that in headers, the macro issue can be mitigated with
parenthesis like this: `(std::numeric_limits<T>::max)()`
PiperOrigin-RevId: 504284906
Change-Id: Ibf430caec1a6afdf6b303534fec6a4fd00a6373f
Everywhere else in the code, we check the value of GTEST_OS_ESP8266, not just
whether it is defined.
PiperOrigin-RevId: 499946909
Change-Id: I86f7e8947abb4e928fc24d1416d8237987b27845
Use "#if defined(_MSC_VER)" instead of "#if _MSC_VER" to be consistent with other usages in the file and to work with the "-Wundef" warning.
PiperOrigin-RevId: 499471290
Change-Id: I34a9442eecf266afd74d4332cab7d39766df4ed9
To make debug output readable, we still use the faster 6-digit precision
sometimes, but only if it will round-trip.
This way, when a test fails due to a very small difference in floating-point
numbers, users will have enough digits to see the difference.
PiperOrigin-RevId: 488958311
Change-Id: Ibcac43f48a97006d89217530c69386cc4fa2735c