]> git.proxmox.com Git - ceph.git/blame - ceph/src/rapidjson/thirdparty/gtest/README.md
buildsys: change download over to reef release
[ceph.git] / ceph / src / rapidjson / thirdparty / gtest / README.md
CommitLineData
31f18b77
FG
1
2# Google Test #
3
4[![Build Status](https://travis-ci.org/google/googletest.svg?branch=master)](https://travis-ci.org/google/googletest)
5
6Welcome to **Google Test**, Google's C++ test framework!
7
8This repository is a merger of the formerly separate GoogleTest and
9GoogleMock projects. These were so closely related that it makes sense to
10maintain and release them together.
11
12Please see the project page above for more information as well as the
13mailing list for questions, discussions, and development. There is
14also an IRC channel on OFTC (irc.oftc.net) #gtest available. Please
15join us!
16
17Getting started information for **Google Test** is available in the
18[Google Test Primer](googletest/docs/Primer.md) documentation.
19
20**Google Mock** is an extension to Google Test for writing and using C++ mock
21classes. See the separate [Google Mock documentation](googlemock/README.md).
22
23More detailed documentation for googletest (including build instructions) are
24in its interior [googletest/README.md](googletest/README.md) file.
25
26## Features ##
27
28 * An [XUnit](https://en.wikipedia.org/wiki/XUnit) test framework.
29 * Test discovery.
30 * A rich set of assertions.
31 * User-defined assertions.
32 * Death tests.
33 * Fatal and non-fatal failures.
34 * Value-parameterized tests.
35 * Type-parameterized tests.
36 * Various options for running the tests.
37 * XML test report generation.
38
39## Platforms ##
40
41Google test has been used on a variety of platforms:
42
43 * Linux
44 * Mac OS X
45 * Windows
46 * Cygwin
47 * MinGW
48 * Windows Mobile
49 * Symbian
50
51## Who Is Using Google Test? ##
52
53In addition to many internal projects at Google, Google Test is also used by
54the following notable projects:
55
56 * The [Chromium projects](http://www.chromium.org/) (behind the Chrome
57 browser and Chrome OS).
58 * The [LLVM](http://llvm.org/) compiler.
59 * [Protocol Buffers](https://github.com/google/protobuf), Google's data
60 interchange format.
61 * The [OpenCV](http://opencv.org/) computer vision library.
62
63## Related Open Source Projects ##
64
65[Google Test UI](https://github.com/ospector/gtest-gbar) is test runner that runs
66your test binary, allows you to track its progress via a progress bar, and
67displays a list of test failures. Clicking on one shows failure text. Google
68Test UI is written in C#.
69
70[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event
71listener for Google Test that implements the
72[TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test
73result output. If your test runner understands TAP, you may find it useful.
74
75## Requirements ##
76
77Google Test is designed to have fairly minimal requirements to build
78and use with your projects, but there are some. Currently, we support
79Linux, Windows, Mac OS X, and Cygwin. We will also make our best
80effort to support other platforms (e.g. Solaris, AIX, and z/OS).
81However, since core members of the Google Test project have no access
82to these platforms, Google Test may have outstanding issues there. If
83you notice any problems on your platform, please notify
84<googletestframework@googlegroups.com>. Patches for fixing them are
85even more welcome!
86
87### Linux Requirements ###
88
89These are the base requirements to build and use Google Test from a source
90package (as described below):
91
92 * GNU-compatible Make or gmake
93 * POSIX-standard shell
94 * POSIX(-2) Regular Expressions (regex.h)
95 * A C++98-standard-compliant compiler
96
97### Windows Requirements ###
98
99 * Microsoft Visual C++ v7.1 or newer
100
101### Cygwin Requirements ###
102
103 * Cygwin v1.5.25-14 or newer
104
105### Mac OS X Requirements ###
106
107 * Mac OS X v10.4 Tiger or newer
108 * Xcode Developer Tools
109
110### Requirements for Contributors ###
111
112We welcome patches. If you plan to contribute a patch, you need to
113build Google Test and its own tests from a git checkout (described
114below), which has further requirements:
115
116 * [Python](https://www.python.org/) v2.3 or newer (for running some of
117 the tests and re-generating certain source files from templates)
118 * [CMake](https://cmake.org/) v2.6.4 or newer
119
120## Regenerating Source Files ##
121
122Some of Google Test's source files are generated from templates (not
123in the C++ sense) using a script.
124For example, the
125file include/gtest/internal/gtest-type-util.h.pump is used to generate
126gtest-type-util.h in the same directory.
127
128You don't need to worry about regenerating the source files
129unless you need to modify them. You would then modify the
130corresponding `.pump` files and run the '[pump.py](googletest/scripts/pump.py)'
131generator script. See the [Pump Manual](googletest/docs/PumpManual.md).
132
133### Contributing Code ###
134
135We welcome patches. Please read the
136[Developer's Guide](googletest/docs/DevGuide.md)
137for how you can contribute. In particular, make sure you have signed
138the Contributor License Agreement, or we won't be able to accept the
139patch.
140
141Happy testing!