257 Commits

Author SHA1 Message Date
Derek Mauro
0934b7e112 Use an internal symbol for deprecate-and-inline that allows
the use of a deprecation message

PiperOrigin-RevId: 807753856
Change-Id: I34b0c7c6faf34cad11ea2aca5ccd16bca16acdec
2025-09-16 10:39:10 -07:00
Derek Mauro
9df216cc9d Update spelling of Mutex::lock and Mutex::unlock for compatibility
with the standard and the latest Abseil

PiperOrigin-RevId: 806260850
Change-Id: Ie973be4a3aaf7e174cd692ce6df7a82c8f261bf7
2025-09-12 06:17:43 -07:00
Derek Mauro
16d4f8eff6 Delete the absl polyfill support for std::any, std::optional
and std::variant now that the absl types are aliases of the
std types

PiperOrigin-RevId: 761136061
Change-Id: I702c3e1e8c58d003b8f4da99e7c84c9e5dbe1863
2025-05-20 10:25:35 -07:00
Derek Mauro
00b2154e8e Fix GCC15 warning that <ciso646> is deprecated in C++17
PiperOrigin-RevId: 752706554
Change-Id: I83d35b693efdaabcc63d15169dbf19d63163a563
2025-04-29 06:13:25 -07:00
Derek Mauro
3fbe4db9a3 GoogleTest C++17 cleanups
* Use `[[nodiscard]]` instead of GTEST_MUST_USE_RESULT_
  * Use `[[maybe_unused]]` instead of  GTEST_INTERNAL_ATTRIBUTE_MAYBE_UNUSED
  * Use `[[deprecated]]` instead of `GTEST_INTERNAL_DEPRECATED`
  * Remove `GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL`

PiperOrigin-RevId: 729523519
Change-Id: Ia1b901cf9c0a0e148eec419ada0e0b56aba2dd3d
2025-02-21 07:33:55 -08:00
Derek Mauro
c00fd25b71 Require C++17
Policy information:
https://opensource.google/documentation/policies/cplusplus-support#c_language_standard
https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md

Some small fixes are included for C++17 compatibility.

We had no tests for MSVC C++17 or C++20, so those tests that failed
and had no obvious fix are disabled and a tracking bug has been filed.

PiperOrigin-RevId: 726090558
Change-Id: I4d37d47e87c11f85bfd572deb10f67ca3eb2a9b5
2025-02-12 09:44:07 -08:00
Abseil Team
d122c0d435 Add support for printing C++20 std::*_ordering types to gtest.
Adds feature test macro for C++20 <compare> header, a pretty-printer, and tests.
Inexplicably, these types aren't enums, so can't be handled with a switch.

PiperOrigin-RevId: 704783038
Change-Id: I29688989d18f43520fe610c12a447a20d2f98c95
2024-12-10 11:23:04 -08:00
Copybara-Service
fa6de7f438 Merge pull request #4527 from abhina-sree:abhina/add_zos
PiperOrigin-RevId: 631167807
Change-Id: I563883341972bbb82c7407ebf3755d64317b84fc
2024-05-06 13:31:42 -07:00
Abhina Sreeskantharajan
5035ef3473 add zos for death test support 2024-05-02 09:54:31 -04:00
Paul Groke
fbc93e61c4
Merge branch 'main' into default-enable-thread-support-for-Solaris-AIX-zOS 2024-05-02 13:27:54 +02:00
Derek Mauro
5a37b517ad Use [[maybe_unused]] when it is available to avoid
-Wused-but-marked-unused warnings

PiperOrigin-RevId: 625430612
Change-Id: Ia9d2e47984e1e6f91966afae8a6750119ae69446
2024-04-16 13:16:40 -07:00
Copybara-Service
61db1e1740 Merge pull request #4505 from to01z:add-winapi-partition-games-support
PiperOrigin-RevId: 621631167
Change-Id: I0790f7082ce3c20fef92958c820d40ec854fe91d
2024-04-03 13:59:49 -07:00
Troels Gram
f1269cc220 Add support for compiling GoogleTest for Xbox
Support for Xbox platforms, requires the code to support compilation with the
WINAPI_FAMILY_GAMES subset of the Win32 API.

- Add support for WINAPI_FAMILY_GAMES to enable GTEST_OS_WINDOWS_GAMES platform.
- Disable stream redirection (GTEST_HAS_STREAM_REDIRECTION = 0) and colored TTY
  printing for GTEST_OS_WINDOWS_GAMES platform. Both features currently require
  Win32 functions that don't exist in the WINAPI_FAMILY_GAMES subset.

Misc fixes:
- gtest-port.cc: Move GTEST_DISABLE_MSC_DEPRECATED_PUSH_ into
  GTEST_HAS_STREAM_REDIRECTION conditional section where the corresponding
  GTEST_DISABLE_MSC_DEPRECATED_POP_ is located.
- googletest-port-test.cc: Switch stream redirection tests to be conditional on
  GTEST_HAS_STREAM_REDIRECTION instead of !defined(GTEST_OS_WINDOWS_MOBILE).
2024-03-23 22:53:35 -07:00
Abseil Team
96cd50c082 If GTEST_NO_ABSL_FLAGS is #defined, then the Abseil flag library
will not be used by googletest, even if GTEST_HAS_ABSL is #defined.

PiperOrigin-RevId: 599625032
Change-Id: Ieb994a15683dec89e88578120071eca8ac9fead1
2024-01-18 14:24:26 -08:00
Abseil Team
f6f920d2ba Make posix::FileNo available under !GTEST_HAS_FILE_SYSTEM
This enables automatic color output without filesystem support, as that only requires testing to see if the output is a terminal.

Fixes: #4439
PiperOrigin-RevId: 598929397
Change-Id: Idca7490e6e090951a78cd1cdd710f41d756a68b4
2024-01-16 12:56:41 -08:00
Abseil Team
e47544ad31 Resolve -Wundef triggering on GTEST_CREATE_SHARED_LIBRARY and GTEST_LINKED_AS_SHARED_LIBRARY with shared libraries in GoogleTest
Fixes: #4372
PiperOrigin-RevId: 568327612
Change-Id: Ifc47f1a2a2648c29858a22966331557cc928cc47
2023-09-25 14:38:01 -07:00
Abseil Team
e40661d89b Update C++ feature detection in gtest-port.h to rely on feature test macros where possible.
This also avoids conflating C++ language versions with standard library versions, which don't always align.

PiperOrigin-RevId: 567662118
Change-Id: I7c023bd043c81c540c9430eaeb7b450feaadb206
2023-09-22 10:46:16 -07:00
Dino Radakovic
8a6feabf04 googletest: Add universal printer for std::span
Fixes #4318

PiperOrigin-RevId: 560089120
Change-Id: I9d0d098140033520266747a1689e953ee8307c47
2023-08-25 07:46:02 -07:00
sthd
f0eae4b399 changed http to https 2023-08-22 20:58:34 +03:00
Derek Mauro
96683ee668 Remove the GTEST_HAS_DOWNCAST_ customization point.
PiperOrigin-RevId: 553150809
Change-Id: I10d19a45a85c5f63a5e65dc322413307116e1c25
2023-08-02 08:19:45 -07:00
Derek Mauro
1ed6a8c67a Remove unused cast implementation
PiperOrigin-RevId: 549456180
Change-Id: I10862e6de981087a5c590cccf6152255e9a176a0
2023-07-19 16:21:55 -07:00
Copybara-Service
c541e7c110 Merge pull request #4302 from ciband:feat/nrf52
PiperOrigin-RevId: 549006105
Change-Id: Ifbe2bf57e10df4c71e51dbfaf1687f4f621f5106
2023-07-18 08:16:57 -07:00
Mike Kruskal
be03d00f5f Fix C++20 compatibility bug.
This was shown to work for C++14, C++17, and C++20 after patched into googletest for the protobuf repo's CI.

Closes #3659

PiperOrigin-RevId: 544795507
Change-Id: I3e0a94f675e78a6ee9aeccae86c23d940efed8eb
2023-06-30 18:50:27 -07:00
Abseil Team
f269e15c5c Resolve an issue where the resolution of operator<< overloads would attempt to instantiate the incomplete testing::internal::Secret type.
PiperOrigin-RevId: 543799815
Change-Id: Ic0a4f48d825bef26cb8cc74d8a0117b3a5ef3f14
2023-06-27 11:17:00 -07:00
Chris Johnson
091d7eb897 add support for nrf52
Added support for Nordic nRF52 series of MCUs
2023-06-27 08:29:23 -05:00
Chris Johnson
e3d405f62b add support for nxp qn9090 mcu
Added additional defines to correctly detect the NXP QN9090 MCU platform
and allow for native googletest compability.
2023-06-22 11:56:59 -05:00
Dino Radakovic
797b0ad2a3 Use GTEST_INTERNAL_CPLUSPLUS_LANG instead of __cplusplus
Some versions of MSVC provide incorrect values for the latter and rely on _MSVC_LANG instead.
Fixes #4226.

PiperOrigin-RevId: 527919195
Change-Id: Ifcca4612074f5ebc5337094426866a187f79f90a
2023-04-28 10:16:07 -07:00
Tom Hughes
783d00fd19 Use '=default' to define trivial constructor/destructors
https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-equals-default.html

PiperOrigin-RevId: 526079054
Change-Id: Ia4db21e3e5f58b90de05d52fd94b291ed06d785d
2023-04-21 10:41:25 -07:00
Abseil Team
7f6f9c12ad Support --gtest_stream_result_to on macOS
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
2023-04-11 07:41:50 -07:00
Copybara-Service
ca0d46e95d Merge pull request #4103 from gonzalobg:bugfix/nvcxx_support
PiperOrigin-RevId: 520017251
Change-Id: Ib2be28787b739344c80a5d937f875737ba44a0ec
2023-03-28 07:04:28 -07:00
gonzalobg
5d6ba6d3b0 Add doc comment 2023-03-23 10:28:12 +01:00
Sergey
2d3b36d40a Environment variables are accessible in UWP/WinRT apps
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.
2023-03-10 09:30:49 -07:00
Abseil Team
cf4f4400db Suppress std::string DLL interface warning introduced in commit f063cd25c90cbd4089a0ff96f5991df4f2721338
Fixes #4171

PiperOrigin-RevId: 514777144
Change-Id: I6f4b309c407684522fc1bc94dcc980ea1fe09cd9
2023-03-07 10:40:39 -08:00
Tom Hughes
d92a270d2d Fix compilation with -Wundef.
Fixes #3267

PiperOrigin-RevId: 513946600
Change-Id: I0dd1daa04aeb735a238c4c0af6676565d64cbc21
2023-03-06 07:19:04 -08:00
Tom Hughes
2ddba26691 Always specify definitions for internal macros
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
2023-03-06 07:18:52 -08:00
Tom Hughes
16feffa8fa Replace "#if GTEST_HAS_ABSL" with "#ifdef GTEST_HAS_ABSL"
This allows compilation with "-Wundef" (#3267).

PiperOrigin-RevId: 513945230
Change-Id: I45ef19c7ff3d20e97216bd031d406a03365471da
2023-03-06 07:16:32 -08:00
Tom Hughes
dc10c3b5e5 Use "#ifdef" with public macros
This allows compilation with "-Wundef" (#3267).

PiperOrigin-RevId: 513944726
Change-Id: I1a3854bb2333d5dec6c0ff91ee1eddd9a766ab91
2023-03-06 07:15:44 -08:00
Tom Hughes
7b1ced0682 Only define GTEST_IS_THREADSAFE to 1, not 0
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
2023-03-06 07:15:32 -08:00
Tom Hughes
a08c03c5f5 Always specify definitions for internal macros
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
2023-03-06 07:15:17 -08:00
Tom Hughes
23142843f7 Use "#ifdef GTEST_OS_..." instead of "#if GTEST_OS_..."
This is compatible with compiling with "-Wundef" (#3267).

PiperOrigin-RevId: 513943378
Change-Id: I47cf5fabbb77be061c4483a0adc54511af6b191c
2023-03-06 07:14:21 -08:00
Dino Radakovic
39a26e12d6 Avoid redundant declaration of static constexpr members in c++17
Keep declarations in c++ < 17 using new macro, GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL.

Fixes #4148.

PiperOrigin-RevId: 511510401
Change-Id: I76c3f2fccf07a0978adcbe5f8f0203b9d0c33872
2023-02-22 09:02:55 -08:00
Abseil Team
f063cd25c9 Remove strdup usage
PiperOrigin-RevId: 509947007
Change-Id: I31e1274afa889776829c877c40c9af589298dcf2
2023-02-15 15:22:10 -08:00
Abseil Team
b80a07ffe6 Avoid reliance on <any> header without RTTI on MSVC
Fixes: #4144
PiperOrigin-RevId: 509322023
Change-Id: I52bdf6c25ff433327e174d3f9583b3d50b872d58
2023-02-13 13:46:03 -08:00
Tom Hughes
2491710524 Fix formatting of C++ files
PiperOrigin-RevId: 504325204
Change-Id: Iaa1d6d0ab1dccaaeef26f9cb109d530835499240
2023-01-24 11:10:09 -08:00
Derek Mauro
b5401fef68 Add an explicit #error that C++ versions less than C++14 are not supported
PiperOrigin-RevId: 501568410
Change-Id: I0f78cd96dc9204c8ec97a1cdd09a9d63a613cc5b
2023-01-12 08:10:36 -08:00
Tom Hughes
e5e46b09a1 IWYU: Add missing std includes
PiperOrigin-RevId: 499893032
Change-Id: I33304802b7c82ae2d008f3ee89df38866e5f57ba
2023-01-05 08:44:01 -08:00
Tom Hughes
3a99ab6d83 Fix _MSC_VER check
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
2023-01-04 06:40:48 -08:00
Gonzalo Brito Gadeschi
ab669cad0e Fix warnings with nvc++ as the compiler
Closes #3849.
2022-12-28 06:00:31 -08:00
Abseil Team
b0846aaf37 Introduces a new porting flag (GTEST_HAS_FILE_SYSTEM) to indicate whether a platform supports filesystem operations.
PiperOrigin-RevId: 494751986
Change-Id: I07f73bdf478a73934b8f1a69c1ab4abda1b231ae
2022-12-12 09:34:12 -08:00
Abseil Team
4408a0288b Remove incorrect usage of GTEST_ATTRIBUTE_UNUSED_ on classes.
Fixes: #4054
PiperOrigin-RevId: 488721587
Change-Id: I8742d8475376635c83edcf524796a6107042e89b
2022-11-15 12:01:35 -08:00