xref: /aosp_15_r20/external/libaom/third_party/googletest/src/README.md (revision 77c1e3ccc04c968bd2bc212e87364f250e820521)
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