Add an implmenetation of Notification for MinGW Add an alternative implementation of the Notification class for MinGW using a Windows manual-reset event object. GCC version < 13 in MinGW, if configured with the win32 thread model (with the --enable-threads=win32 configure option), does not implement std::mutex and std::condition_variable in the <mutex> and <condition_variable> headers. So the current implementation of the Notification class, which uses std::mutex and std::condition_variable, has compilation errors. Windows has a synchronization object called a manual-reset event object that behaves just like the Notification class. So we can easily implement the Notification class using a Windows manual-reset event object. This GCC issue is fixed in GCC 13. See https://gcc.gnu.org/gcc-13/changes.html#windows. This alternative implementation of Notification should be removed when GoogleTest requires GCC version >= 13 in MinGW. Fixes https://github.com/google/googletest/issues/4031 and https://github.com/google/googletest/issues/4464. PiperOrigin-RevId: 888752598 Change-Id: I69e01b2e7953e1fe72d87b6d0804c7a8a8d0e740
Our documentation is now live on GitHub Pages at https://google.github.io/googletest/. We recommend browsing the documentation on GitHub Pages rather than directly in the repository.
Release 1.17.0 is now available.
The 1.17.x branch requires at least C++17.
We use Google's internal systems for continuous integration.
This repository is a merger of the formerly separate GoogleTest and GoogleMock projects. These were so closely related that it makes sense to maintain and release them together.
See the GoogleTest User's Guide for documentation. We recommend starting with the GoogleTest Primer.
More information about building GoogleTest can be found at googletest/README.md.
GoogleTest follows Google's Foundational C++ Support Policy. See this table for a list of currently supported versions of compilers, platforms, and build tools.
In addition to many internal projects at Google, GoogleTest is also used by the following notable projects:
GTest Runner is a Qt5 based automated test-runner and Graphical User Interface with powerful features for Windows and Linux platforms.
GoogleTest UI is a test runner that runs your test binary, allows you to track its progress via a progress bar, and displays a list of test failures. Clicking on one shows failure text. GoogleTest UI is written in C#.
GTest TAP Listener is an event listener for GoogleTest that implements the TAP protocol for test result output. If your test runner understands TAP, you may find it useful.
gtest-parallel is a test runner that runs tests from your binary in parallel to provide significant speed-up.
GoogleTest Adapter is a VS Code extension allowing to view GoogleTest in a tree view and run/debug your tests.
C++ TestMate is a VS Code extension allowing to view GoogleTest in a tree view and run/debug your tests.
Cornichon is a small Gherkin DSL parser that generates stub code for GoogleTest.
Please read CONTRIBUTING.md for details on how to contribute to this project.
Happy testing!