Blame README.md

Packit bd1cd8
Packit bd1cd8
# Google Test #
Packit bd1cd8
Packit bd1cd8
[![Build Status](https://travis-ci.org/google/googletest.svg?branch=master)](https://travis-ci.org/google/googletest)
Packit bd1cd8
[![Build status](https://ci.appveyor.com/api/projects/status/4o38plt0xbo1ubc8/branch/master?svg=true)](https://ci.appveyor.com/project/BillyDonahue/googletest/branch/master)
Packit bd1cd8
Packit bd1cd8
Welcome to **Google Test**, Google's C++ test framework!
Packit bd1cd8
Packit bd1cd8
This repository is a merger of the formerly separate GoogleTest and
Packit bd1cd8
GoogleMock projects. These were so closely related that it makes sense to
Packit bd1cd8
maintain and release them together.
Packit bd1cd8
Packit bd1cd8
Please see the project page above for more information as well as the
Packit bd1cd8
mailing list for questions, discussions, and development.  There is
Packit bd1cd8
also an IRC channel on OFTC (irc.oftc.net) #gtest available.  Please
Packit bd1cd8
join us!
Packit bd1cd8
Packit bd1cd8
Getting started information for **Google Test** is available in the 
Packit bd1cd8
[Google Test Primer](googletest/docs/Primer.md) documentation.
Packit bd1cd8
Packit bd1cd8
**Google Mock** is an extension to Google Test for writing and using C++ mock
Packit bd1cd8
classes.  See the separate [Google Mock documentation](googlemock/README.md).
Packit bd1cd8
Packit bd1cd8
More detailed documentation for googletest (including build instructions) are
Packit bd1cd8
in its interior [googletest/README.md](googletest/README.md) file.
Packit bd1cd8
Packit bd1cd8
## Features ##
Packit bd1cd8
Packit bd1cd8
  * An [XUnit](https://en.wikipedia.org/wiki/XUnit) test framework.
Packit bd1cd8
  * Test discovery.
Packit bd1cd8
  * A rich set of assertions.
Packit bd1cd8
  * User-defined assertions.
Packit bd1cd8
  * Death tests.
Packit bd1cd8
  * Fatal and non-fatal failures.
Packit bd1cd8
  * Value-parameterized tests.
Packit bd1cd8
  * Type-parameterized tests.
Packit bd1cd8
  * Various options for running the tests.
Packit bd1cd8
  * XML test report generation.
Packit bd1cd8
Packit bd1cd8
## Platforms ##
Packit bd1cd8
Packit bd1cd8
Google test has been used on a variety of platforms:
Packit bd1cd8
Packit bd1cd8
  * Linux
Packit bd1cd8
  * Mac OS X
Packit bd1cd8
  * Windows
Packit bd1cd8
  * Cygwin
Packit bd1cd8
  * MinGW
Packit bd1cd8
  * Windows Mobile
Packit bd1cd8
  * Symbian
Packit bd1cd8
Packit bd1cd8
## Who Is Using Google Test? ##
Packit bd1cd8
Packit bd1cd8
In addition to many internal projects at Google, Google Test is also used by
Packit bd1cd8
the following notable projects:
Packit bd1cd8
Packit bd1cd8
  * The [Chromium projects](http://www.chromium.org/) (behind the Chrome
Packit bd1cd8
    browser and Chrome OS).
Packit bd1cd8
  * The [LLVM](http://llvm.org/) compiler.
Packit bd1cd8
  * [Protocol Buffers](https://github.com/google/protobuf), Google's data
Packit bd1cd8
    interchange format.
Packit bd1cd8
  * The [OpenCV](http://opencv.org/) computer vision library.
Packit bd1cd8
Packit bd1cd8
## Related Open Source Projects ##
Packit bd1cd8
Packit bd1cd8
[Google Test UI](https://github.com/ospector/gtest-gbar) is test runner that runs
Packit bd1cd8
your test binary, allows you to track its progress via a progress bar, and
Packit bd1cd8
displays a list of test failures. Clicking on one shows failure text. Google
Packit bd1cd8
Test UI is written in C#.
Packit bd1cd8
Packit bd1cd8
[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event
Packit bd1cd8
listener for Google Test that implements the
Packit bd1cd8
[TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test
Packit bd1cd8
result output. If your test runner understands TAP, you may find it useful.
Packit bd1cd8
Packit bd1cd8
## Requirements ##
Packit bd1cd8
Packit bd1cd8
Google Test is designed to have fairly minimal requirements to build
Packit bd1cd8
and use with your projects, but there are some.  Currently, we support
Packit bd1cd8
Linux, Windows, Mac OS X, and Cygwin.  We will also make our best
Packit bd1cd8
effort to support other platforms (e.g. Solaris, AIX, and z/OS).
Packit bd1cd8
However, since core members of the Google Test project have no access
Packit bd1cd8
to these platforms, Google Test may have outstanding issues there.  If
Packit bd1cd8
you notice any problems on your platform, please notify
Packit bd1cd8
<googletestframework@googlegroups.com>. Patches for fixing them are
Packit bd1cd8
even more welcome!
Packit bd1cd8
Packit bd1cd8
### Linux Requirements ###
Packit bd1cd8
Packit bd1cd8
These are the base requirements to build and use Google Test from a source
Packit bd1cd8
package (as described below):
Packit bd1cd8
Packit bd1cd8
  * GNU-compatible Make or gmake
Packit bd1cd8
  * POSIX-standard shell
Packit bd1cd8
  * POSIX(-2) Regular Expressions (regex.h)
Packit bd1cd8
  * A C++98-standard-compliant compiler
Packit bd1cd8
Packit bd1cd8
### Windows Requirements ###
Packit bd1cd8
Packit bd1cd8
  * Microsoft Visual C++ v7.1 or newer
Packit bd1cd8
Packit bd1cd8
### Cygwin Requirements ###
Packit bd1cd8
Packit bd1cd8
  * Cygwin v1.5.25-14 or newer
Packit bd1cd8
Packit bd1cd8
### Mac OS X Requirements ###
Packit bd1cd8
Packit bd1cd8
  * Mac OS X v10.4 Tiger or newer
Packit bd1cd8
  * Xcode Developer Tools
Packit bd1cd8
Packit bd1cd8
### Requirements for Contributors ###
Packit bd1cd8
Packit bd1cd8
We welcome patches.  If you plan to contribute a patch, you need to
Packit bd1cd8
build Google Test and its own tests from a git checkout (described
Packit bd1cd8
below), which has further requirements:
Packit bd1cd8
Packit bd1cd8
  * [Python](https://www.python.org/) v2.3 or newer (for running some of
Packit bd1cd8
    the tests and re-generating certain source files from templates)
Packit bd1cd8
  * [CMake](https://cmake.org/) v2.6.4 or newer
Packit bd1cd8
Packit bd1cd8
## Regenerating Source Files ##
Packit bd1cd8
Packit bd1cd8
Some of Google Test's source files are generated from templates (not
Packit bd1cd8
in the C++ sense) using a script.
Packit bd1cd8
For example, the
Packit bd1cd8
file include/gtest/internal/gtest-type-util.h.pump is used to generate
Packit bd1cd8
gtest-type-util.h in the same directory.
Packit bd1cd8
Packit bd1cd8
You don't need to worry about regenerating the source files
Packit bd1cd8
unless you need to modify them.  You would then modify the
Packit bd1cd8
corresponding `.pump` files and run the '[pump.py](googletest/scripts/pump.py)'
Packit bd1cd8
generator script.  See the [Pump Manual](googletest/docs/PumpManual.md).
Packit bd1cd8
Packit bd1cd8
### Contributing Code ###
Packit bd1cd8
Packit bd1cd8
We welcome patches.  Please read the
Packit bd1cd8
[Developer's Guide](googletest/docs/DevGuide.md)
Packit bd1cd8
for how you can contribute. In particular, make sure you have signed
Packit bd1cd8
the Contributor License Agreement, or we won't be able to accept the
Packit bd1cd8
patch.
Packit bd1cd8
Packit bd1cd8
Happy testing!