1*77c1e3ccSAndroid Build Coastguard Worker# GoogleTest 2*77c1e3ccSAndroid Build Coastguard Worker 3*77c1e3ccSAndroid Build Coastguard Worker### Announcements 4*77c1e3ccSAndroid Build Coastguard Worker 5*77c1e3ccSAndroid Build Coastguard Worker#### Live at Head 6*77c1e3ccSAndroid Build Coastguard Worker 7*77c1e3ccSAndroid Build Coastguard WorkerGoogleTest now follows the 8*77c1e3ccSAndroid Build Coastguard Worker[Abseil Live at Head philosophy](https://abseil.io/about/philosophy#upgrade-support). 9*77c1e3ccSAndroid Build Coastguard WorkerWe recommend 10*77c1e3ccSAndroid Build Coastguard Worker[updating to the latest commit in the `main` branch as often as possible](https://github.com/abseil/abseil-cpp/blob/master/FAQ.md#what-is-live-at-head-and-how-do-i-do-it). 11*77c1e3ccSAndroid Build Coastguard Worker 12*77c1e3ccSAndroid Build Coastguard Worker#### Documentation Updates 13*77c1e3ccSAndroid Build Coastguard Worker 14*77c1e3ccSAndroid Build Coastguard WorkerOur documentation is now live on GitHub Pages at 15*77c1e3ccSAndroid Build Coastguard Workerhttps://google.github.io/googletest/. We recommend browsing the documentation on 16*77c1e3ccSAndroid Build Coastguard WorkerGitHub Pages rather than directly in the repository. 17*77c1e3ccSAndroid Build Coastguard Worker 18*77c1e3ccSAndroid Build Coastguard Worker#### Release 1.11.0 19*77c1e3ccSAndroid Build Coastguard Worker 20*77c1e3ccSAndroid Build Coastguard Worker[Release 1.11.0](https://github.com/google/googletest/releases/tag/release-1.11.0) 21*77c1e3ccSAndroid Build Coastguard Workeris now available. 22*77c1e3ccSAndroid Build Coastguard Worker 23*77c1e3ccSAndroid Build Coastguard Worker#### Coming Soon 24*77c1e3ccSAndroid Build Coastguard Worker 25*77c1e3ccSAndroid Build Coastguard Worker* We are planning to take a dependency on 26*77c1e3ccSAndroid Build Coastguard Worker [Abseil](https://github.com/abseil/abseil-cpp). 27*77c1e3ccSAndroid Build Coastguard Worker* More documentation improvements are planned. 28*77c1e3ccSAndroid Build Coastguard Worker 29*77c1e3ccSAndroid Build Coastguard Worker## Welcome to **GoogleTest**, Google's C++ test framework! 30*77c1e3ccSAndroid Build Coastguard Worker 31*77c1e3ccSAndroid Build Coastguard WorkerThis repository is a merger of the formerly separate GoogleTest and GoogleMock 32*77c1e3ccSAndroid Build Coastguard Workerprojects. These were so closely related that it makes sense to maintain and 33*77c1e3ccSAndroid Build Coastguard Workerrelease them together. 34*77c1e3ccSAndroid Build Coastguard Worker 35*77c1e3ccSAndroid Build Coastguard Worker### Getting Started 36*77c1e3ccSAndroid Build Coastguard Worker 37*77c1e3ccSAndroid Build Coastguard WorkerSee the [GoogleTest User's Guide](https://google.github.io/googletest/) for 38*77c1e3ccSAndroid Build Coastguard Workerdocumentation. We recommend starting with the 39*77c1e3ccSAndroid Build Coastguard Worker[GoogleTest Primer](https://google.github.io/googletest/primer.html). 40*77c1e3ccSAndroid Build Coastguard Worker 41*77c1e3ccSAndroid Build Coastguard WorkerMore information about building GoogleTest can be found at 42*77c1e3ccSAndroid Build Coastguard Worker[googletest/README.md](googletest/README.md). 43*77c1e3ccSAndroid Build Coastguard Worker 44*77c1e3ccSAndroid Build Coastguard Worker## Features 45*77c1e3ccSAndroid Build Coastguard Worker 46*77c1e3ccSAndroid Build Coastguard Worker* An [xUnit](https://en.wikipedia.org/wiki/XUnit) test framework. 47*77c1e3ccSAndroid Build Coastguard Worker* Test discovery. 48*77c1e3ccSAndroid Build Coastguard Worker* A rich set of assertions. 49*77c1e3ccSAndroid Build Coastguard Worker* User-defined assertions. 50*77c1e3ccSAndroid Build Coastguard Worker* Death tests. 51*77c1e3ccSAndroid Build Coastguard Worker* Fatal and non-fatal failures. 52*77c1e3ccSAndroid Build Coastguard Worker* Value-parameterized tests. 53*77c1e3ccSAndroid Build Coastguard Worker* Type-parameterized tests. 54*77c1e3ccSAndroid Build Coastguard Worker* Various options for running the tests. 55*77c1e3ccSAndroid Build Coastguard Worker* XML test report generation. 56*77c1e3ccSAndroid Build Coastguard Worker 57*77c1e3ccSAndroid Build Coastguard Worker## Supported Platforms 58*77c1e3ccSAndroid Build Coastguard Worker 59*77c1e3ccSAndroid Build Coastguard WorkerGoogleTest requires a codebase and compiler compliant with the C++11 standard or 60*77c1e3ccSAndroid Build Coastguard Workernewer. 61*77c1e3ccSAndroid Build Coastguard Worker 62*77c1e3ccSAndroid Build Coastguard WorkerThe GoogleTest code is officially supported on the following platforms. 63*77c1e3ccSAndroid Build Coastguard WorkerOperating systems or tools not listed below are community-supported. For 64*77c1e3ccSAndroid Build Coastguard Workercommunity-supported platforms, patches that do not complicate the code may be 65*77c1e3ccSAndroid Build Coastguard Workerconsidered. 66*77c1e3ccSAndroid Build Coastguard Worker 67*77c1e3ccSAndroid Build Coastguard WorkerIf you notice any problems on your platform, please file an issue on the 68*77c1e3ccSAndroid Build Coastguard Worker[GoogleTest GitHub Issue Tracker](https://github.com/google/googletest/issues). 69*77c1e3ccSAndroid Build Coastguard WorkerPull requests containing fixes are welcome! 70*77c1e3ccSAndroid Build Coastguard Worker 71*77c1e3ccSAndroid Build Coastguard Worker### Operating Systems 72*77c1e3ccSAndroid Build Coastguard Worker 73*77c1e3ccSAndroid Build Coastguard Worker* Linux 74*77c1e3ccSAndroid Build Coastguard Worker* macOS 75*77c1e3ccSAndroid Build Coastguard Worker* Windows 76*77c1e3ccSAndroid Build Coastguard Worker 77*77c1e3ccSAndroid Build Coastguard Worker### Compilers 78*77c1e3ccSAndroid Build Coastguard Worker 79*77c1e3ccSAndroid Build Coastguard Worker* gcc 5.0+ 80*77c1e3ccSAndroid Build Coastguard Worker* clang 5.0+ 81*77c1e3ccSAndroid Build Coastguard Worker* MSVC 2015+ 82*77c1e3ccSAndroid Build Coastguard Worker 83*77c1e3ccSAndroid Build Coastguard Worker**macOS users:** Xcode 9.3+ provides clang 5.0+. 84*77c1e3ccSAndroid Build Coastguard Worker 85*77c1e3ccSAndroid Build Coastguard Worker### Build Systems 86*77c1e3ccSAndroid Build Coastguard Worker 87*77c1e3ccSAndroid Build Coastguard Worker* [Bazel](https://bazel.build/) 88*77c1e3ccSAndroid Build Coastguard Worker* [CMake](https://cmake.org/) 89*77c1e3ccSAndroid Build Coastguard Worker 90*77c1e3ccSAndroid Build Coastguard Worker**Note:** Bazel is the build system used by the team internally and in tests. 91*77c1e3ccSAndroid Build Coastguard WorkerCMake is supported on a best-effort basis and by the community. 92*77c1e3ccSAndroid Build Coastguard Worker 93*77c1e3ccSAndroid Build Coastguard Worker## Who Is Using GoogleTest? 94*77c1e3ccSAndroid Build Coastguard Worker 95*77c1e3ccSAndroid Build Coastguard WorkerIn addition to many internal projects at Google, GoogleTest is also used by the 96*77c1e3ccSAndroid Build Coastguard Workerfollowing notable projects: 97*77c1e3ccSAndroid Build Coastguard Worker 98*77c1e3ccSAndroid Build Coastguard Worker* The [Chromium projects](http://www.chromium.org/) (behind the Chrome browser 99*77c1e3ccSAndroid Build Coastguard Worker and Chrome OS). 100*77c1e3ccSAndroid Build Coastguard Worker* The [LLVM](http://llvm.org/) compiler. 101*77c1e3ccSAndroid Build Coastguard Worker* [Protocol Buffers](https://github.com/google/protobuf), Google's data 102*77c1e3ccSAndroid Build Coastguard Worker interchange format. 103*77c1e3ccSAndroid Build Coastguard Worker* The [OpenCV](http://opencv.org/) computer vision library. 104*77c1e3ccSAndroid Build Coastguard Worker 105*77c1e3ccSAndroid Build Coastguard Worker## Related Open Source Projects 106*77c1e3ccSAndroid Build Coastguard Worker 107*77c1e3ccSAndroid Build Coastguard Worker[GTest Runner](https://github.com/nholthaus/gtest-runner) is a Qt5 based 108*77c1e3ccSAndroid Build Coastguard Workerautomated test-runner and Graphical User Interface with powerful features for 109*77c1e3ccSAndroid Build Coastguard WorkerWindows and Linux platforms. 110*77c1e3ccSAndroid Build Coastguard Worker 111*77c1e3ccSAndroid Build Coastguard Worker[GoogleTest UI](https://github.com/ospector/gtest-gbar) is a test runner that 112*77c1e3ccSAndroid Build Coastguard Workerruns your test binary, allows you to track its progress via a progress bar, and 113*77c1e3ccSAndroid Build Coastguard Workerdisplays a list of test failures. Clicking on one shows failure text. GoogleTest 114*77c1e3ccSAndroid Build Coastguard WorkerUI is written in C#. 115*77c1e3ccSAndroid Build Coastguard Worker 116*77c1e3ccSAndroid Build Coastguard Worker[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event 117*77c1e3ccSAndroid Build Coastguard Workerlistener for GoogleTest that implements the 118*77c1e3ccSAndroid Build Coastguard Worker[TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test 119*77c1e3ccSAndroid Build Coastguard Workerresult output. If your test runner understands TAP, you may find it useful. 120*77c1e3ccSAndroid Build Coastguard Worker 121*77c1e3ccSAndroid Build Coastguard Worker[gtest-parallel](https://github.com/google/gtest-parallel) is a test runner that 122*77c1e3ccSAndroid Build Coastguard Workerruns tests from your binary in parallel to provide significant speed-up. 123*77c1e3ccSAndroid Build Coastguard Worker 124*77c1e3ccSAndroid Build Coastguard Worker[GoogleTest Adapter](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter) 125*77c1e3ccSAndroid Build Coastguard Workeris a VS Code extension allowing to view GoogleTest in a tree view and run/debug 126*77c1e3ccSAndroid Build Coastguard Workeryour tests. 127*77c1e3ccSAndroid Build Coastguard Worker 128*77c1e3ccSAndroid Build Coastguard Worker[C++ TestMate](https://github.com/matepek/vscode-catch2-test-adapter) is a VS 129*77c1e3ccSAndroid Build Coastguard WorkerCode extension allowing to view GoogleTest in a tree view and run/debug your 130*77c1e3ccSAndroid Build Coastguard Workertests. 131*77c1e3ccSAndroid Build Coastguard Worker 132*77c1e3ccSAndroid Build Coastguard Worker[Cornichon](https://pypi.org/project/cornichon/) is a small Gherkin DSL parser 133*77c1e3ccSAndroid Build Coastguard Workerthat generates stub code for GoogleTest. 134*77c1e3ccSAndroid Build Coastguard Worker 135*77c1e3ccSAndroid Build Coastguard Worker## Contributing Changes 136*77c1e3ccSAndroid Build Coastguard Worker 137*77c1e3ccSAndroid Build Coastguard WorkerPlease read 138*77c1e3ccSAndroid Build Coastguard Worker[`CONTRIBUTING.md`](https://github.com/google/googletest/blob/master/CONTRIBUTING.md) 139*77c1e3ccSAndroid Build Coastguard Workerfor details on how to contribute to this project. 140*77c1e3ccSAndroid Build Coastguard Worker 141*77c1e3ccSAndroid Build Coastguard WorkerHappy testing! 142