Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
yangql
googletest
Commits
97c45282
Commit
97c45282
authored
Apr 14, 2010
by
zhanyong.wan
Browse files
Over-hauls README, and fixes Makefile.
parent
1b71f0b2
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
336 additions
and
203 deletions
+336
-203
README
README
+330
-199
make/Makefile
make/Makefile
+6
-4
No files found.
README
View file @
97c45282
Google
C
++
Testing
Framework
============================
http
://
code
.
google
.
com
/
p
/
googletest
/
Overview
--------
Google
's framework for writing C++ tests on a variety of platforms (Linux, Mac
OS X, Windows, Windows CE, Symbian, and etc). Based on the xUnit architecture.
Supports automatic test discovery, a rich set of assertions, user-defined
assertions, death tests, fatal and non-fatal failures, various options for
running the tests, and XML test report generation.
Please see the project page above for more information as well as mailing lists
for questions, discussions, and development. There is also an IRC channel on
OFTC (irc.oftc.net) #gtest available. Please join us!
Requirements
------------
Google
's framework for writing C++ tests on a variety of platforms
(Linux, Mac OS X, Windows, Windows CE, Symbian, etc). Based on the
xUnit architecture. Supports automatic test discovery, a rich set of
assertions, user-defined assertions, death tests, fatal and non-fatal
failures, various options for running the tests, and XML test report
generation.
Please see the project page above for more information as well as the
mailing list for questions, discussions, and development. There is
also an IRC channel on OFTC (irc.oftc.net) #gtest available. Please
join us!
Requirements for End Users
--------------------------
Google Test is designed to have fairly minimal requirements to build
and use with your projects, but there are some. Currently, we support
building Google Test on
Linux, Windows, Mac OS X, and Cygwin. We will
also make our best
effort to support other platforms (e.g. Solaris
and
IBM z/OS).
However, since core members of the Google Test project
have no access to them
, Google Test may have outstanding issues
on
these platforms. If
you notice any problems on your platform, please
notify
googletestframework@googlegroups.com
(p
atches for fixing them
are
even more welcome!
).
Linux, Windows, Mac OS X, and Cygwin. We will
also make our best
effort to support other platforms (e.g. Solaris
, AIX, and z/OS).
However, since core members of the Google Test project
have no access
to these platforms
, Google Test may have outstanding issues
there. If
you notice any problems on your platform, please
notify
googletestframework@googlegroups.com
. P
atches for fixing them
are
even more welcome!
### Linux Requirements ###
These are the base requirements to build and use Google Test from a source
package (as described below):
* GNU-compatible Make or
"
gmake
"
* GNU-compatible Make or gmake
* POSIX-standard shell
* POSIX(-2) Regular Expressions (regex.h)
* A C++98 standards compliant compiler
Furthermore, if you are building Google Test from a VCS Checkout (also
described below), there are further requirements:
* Automake version 1.9 or newer
* Autoconf version 2.59 or newer
* Libtool / Libtoolize
* Python version 2.4 or newer
* A C++98-standard-compliant compiler
### Windows Requirements ###
* Microsoft Visual Studio 7.1 or newer
* Microsoft Visual C++ 7.1 or newer
### Cygwin Requirements ###
* Cygwin 1.5.25-14 or newer
### Mac OS X Requirements ###
* Mac OS X 10.4 Tiger or newer
* Developer Tools Installed
* Optional: Xcode 2.5 or later for univeral-binary framework; see note below.
Also, you'
ll
need
CMake
2.6.4
or
higher
if
you
want
to
build
the
samples
using
the
provided
CMake
script
,
regardless
of
the
platform
.
Requirements
for
Contributors
-----------------------------
We
welcome
patches
.
If
you
plan
to
contribute
a
patch
,
you
need
to
build
Google
Test
and
its
own
tests
from
an
SVN
checkout
(
described
below
),
which
has
further
requirements
:
*
Python
version
2.3
or
newer
(
for
running
some
of
the
tests
and
re
-
generating
certain
source
files
from
templates
)
*
CMake
2.6.4
or
newer
Getting
the
Source
------------------
There are two primary ways of getting Google Test'
s
source
code
:
you
can
download
a
source
release
in
your
preferred
archive
format
,
or
directly
check
out
the
source
from
a
Version
Control
System
(
VCS
,
we
use
Google
Code
's
Subversion hosting). The VCS checkout requires a few extra steps and some extra
software packages on your system, but lets you track development, and make
patches to contribute much more easily, so we highly encourage it.
### VCS Checkout: ###
The first step is to select whether you want to check out the main line of
development on Google Test, or one of the released branches. The former will be
much more active and have the latest features, but the latter provides much
more stability and predictability. Choose whichever fits your needs best, and
proceed with the following Subversion commands:
There
are
two
primary
ways
of
getting
Google
Test
's source code: you
can download a stable source release in your preferred archive format,
or directly check out the source from our Subversion (SVN) repositary.
The SVN checkout requires a few extra steps and some extra software
packages on your system, but lets you track the latest development and
make patches much more easily, so we highly encourage it.
### Source Package ###
Google Test is released in versioned source packages which can be
downloaded from the download page [1]. Several different archive
formats are provided, but the only difference is the tools used to
manipulate them, and the size of the resulting file. Download
whichever you are most comfortable with.
[1] http://code.google.com/p/googletest/downloads/list
Once the package is downloaded, expand it using whichever tools you
prefer for that type. This will result in a new directory with the
name "gtest-X.Y.Z" which contains all of the source code. Here are
some examples on Linux:
tar -xvzf gtest-X.Y.Z.tar.gz
tar -xvjf gtest-X.Y.Z.tar.bz2
unzip gtest-X.Y.Z.zip
### SVN Checkout ###
To check out the main branch (also known as the "trunk") of Google
Test, run the following Subversion command:
svn checkout http://googletest.googlecode.com/svn/trunk/ gtest-svn
or for a release version X.Y.*'
s
branch
:
Setting up the Build
--------------------
svn
checkout
http
://
googletest
.
googlecode
.
com
/
svn
/
branches
/
release
-
X
.
Y
/
\
gtest
-
X
.
Y
-
svn
To build Google Test and your tests that use it, you need to tell your
build system where to find its headers and source files. The exact
way to do it depends on which build system you use, and is usually
straightforward.
Next
you
will
need
to
prepare
the
GNU
Autotools
build
system
,
if
you
are
using
Linux
,
Mac
OS
X
,
or
Cygwin
.
Enter
the
target
directory
of
the
checkout
command
you
used
(
'gtest-svn'
or
'gtest-X.Y-svn'
above
)
and
proceed
with
the
following
command
:
### Generic Build Instructions ###
autoreconf
-
fvi
Suppose you put Google Test in directory ${GTEST_DIR}. To build it,
create a library build target (or a project as called by Visual Studio
and Xcode) to compile
Once
you
have
completed
this
step
,
you
are
ready
to
build
the
library
.
Note
that
you
should
only
need
to
complete
this
step
once
.
The
subsequent
`
make
'
invocations will automatically re-generate the bits of the build system that
need to be changed.
${GTEST_DIR}/src/gtest-all.cc
If your system uses older versions of the autotools, the above command will
fail. You may need to explicitly specify a version to use. For instance, if you
have both GNU Automake 1.4 and 1.9 installed and `automake'
would
invoke
the
1.4
,
use
instead
:
with
AUTOMAKE
=
automake
-
1.9
ACLOCAL
=
aclocal
-
1.9
autoreconf
-
fvi
${GTEST_DIR}/include and ${GTEST_DIR}
Make
sure
you
're using the same version of automake and aclocal.
in the header search path. Assuming a Linux-like system and gcc,
something like the following will do:
### Source Package: ###
Google Test is also released in source packages which can be downloaded from
its Google Code download page[1]. Several different archive formats are
provided, but the only difference is the tools used to manipulate them, and the
size of the resulting file. Download whichever you are most comfortable with.
g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest-all.cc
ar -rv libgtest.a gtest-all.o
[1] Google Test Downloads: http://code.google.com/p/googletest/downloads/list
Next, you should compile your test source file with
${GTEST_DIR}/include in the header search path, and link it with gtest
and any other necessary libraries:
Once downloaded expand the archive using whichever tools you prefer for that
type. This will always result in a new directory with the name "gtest-X.Y.Z"
which contains all of the source code. Here are some examples in Linux:
g++ -I${GTEST_DIR}/include path/to/your_test.cc libgtest.a -o your_test
tar -xvzf gtest-X.Y.Z.tar.gz
tar -xvjf gtest-X.Y.Z.tar.bz2
unzip gtest-X.Y.Z.zip
As an example, the make/ directory contains a Makefile that you can
use to build Google Test on systems where GNU make is available
(e.g. Linux, Mac OS X, and Cygwin). It doesn'
t
try
to
build
Google
Test
's own tests. Instead, it just builds the Google Test library and
a sample test. You can use it as a starting point for your own build
script.
If the default settings are correct for your environment, the
following commands should succeed:
cd ${GTEST_DIR}/make
make
./sample1_unittest
If you see errors, try to tweak the contents of make/Makefile to make
them go away. There are instructions in make/Makefile on how to do
it.
### Using CMake ###
Google Test comes with a CMake build script (CMakeLists.txt) that can
be used on a wide range of platforms ("C" stands for cross-platofrm.).
If you don'
t
have
CMake
installed
already
,
you
can
download
it
for
free
from
http
://
www
.
cmake
.
org
/.
CMake
works
by
generating
native
makefiles
or
build
projects
that
can
be
used
in
the
compiler
environment
of
your
choice
.
The
typical
workflow
starts
with
:
mkdir
mybuild
#
Create
a
directory
to
hold
the
build
output
.
cd
mybuild
cmake
${
GTEST_DIR
}
#
Generate
native
build
scripts
.
If
you
want
to
build
Google
Test
's samples, you should replace the
last command with
cmake -Dbuild_gtest_samples=ON ${GTEST_DIR}
If you are on a *nix system, you should now see a Makefile in the
current directory. Just type '
make
' to build gtest.
If you use Windows and have Vistual Studio installed, a gtest.sln file
and several .vcproj files will be created. You can then build them
using Visual Studio.
On Mac OS X with Xcode installed, a .xcodeproj file will be generated.
### Legacy Build Scripts ###
Before settling on CMake, we have been providing hand-maintained build
projects/scripts for Visual Studio, Xcode, and Autotools. While we
continue to provide them for convenience, they are not actively
maintained any more. We highly recommend that you follow the
instructions in the previous two sections to integrate Google Test
with your existing build system.
If you still need to use the legacy build scripts, here'
s
how
:
The
msvc
\
folder
contains
two
solutions
with
Visual
C
++
projects
.
Open
the
gtest
.
sln
or
gtest
-
md
.
sln
file
using
Visual
Studio
,
and
you
are
ready
to
build
Google
Test
the
same
way
you
build
any
Visual
Studio
project
.
Files
that
have
names
ending
with
-
md
use
DLL
versions
of
Microsoft
runtime
libraries
(
the
/
MD
or
the
/
MDd
compiler
option
).
Files
without
that
suffix
use
static
versions
of
the
runtime
libraries
(
the
/
MT
or
the
/
MTd
option
).
Please
note
that
one
must
use
the
same
option
to
compile
both
gtest
and
the
test
code
.
If
you
use
Visual
Studio
2005
or
above
,
we
recommend
the
-
md
version
as
/
MD
is
the
default
for
new
projects
in
these
versions
of
Visual
Studio
.
On
Mac
OS
X
,
open
the
gtest
.
xcodeproj
in
the
xcode
/
folder
using
Xcode
.
Build
the
"gtest"
target
.
The
universal
binary
framework
will
end
up
in
your
selected
build
directory
(
selected
in
the
Xcode
"Preferences..."
->
"Building"
pane
and
defaults
to
xcode
/
build
).
Alternatively
,
at
the
command
line
,
enter
:
xcodebuild
This
will
build
the
"Release"
configuration
of
gtest
.
framework
in
your
default
build
location
.
See
the
"xcodebuild"
man
page
for
more
information
about
building
different
configurations
and
building
in
different
locations
.
Tweaking
Google
Test
--------------------
Google
Test
can
be
used
in
diverse
environments
.
The
default
configuration
may
not
work
(
or
may
not
work
well
)
out
of
the
box
in
some
environments
.
However
,
you
can
easily
tweak
Google
Test
by
defining
control
macros
on
the
compiler
command
line
.
Generally
,
these
macros
are
named
like
GTEST_XYZ
and
you
define
them
to
either
1
or
0
to
enable
or
disable
a
certain
feature
.
We
list
the
most
frequently
used
macros
below
.
For
a
complete
list
,
see
file
include
/
gtest
/
internal
/
gtest
-
port
.
h
.
###
Choosing
a
TR1
Tuple
Library
###
Choosing a TR1 Tuple Library
----------------------------
Some
Google
Test
features
require
the
C
++
Technical
Report
1
(
TR1
)
tuple library, which is not yet
widely
available with all compilers.
The
good news is that Google Test implements a subset of TR1 tuple
that'
s
enough
for
its
own
need
,
and
will
automatically
use
this
when
the
compiler
doesn
't provide TR1 tuple.
tuple
library
,
which
is
not
yet
available
with
all
compilers
.
The
good
news
is
that
Google
Test
implements
a
subset
of
TR1
tuple
that
's
enough for its own need, and will automatically use this when
the
compiler doesn'
t
provide
TR1
tuple
.
Usually
you
don
't need to care about which tuple library Google Test
uses. However, if your project already uses TR1 tuple, you need to
tell Google Test to use the same TR1 tuple library the rest of your
project
uses
(
this
requirement
is
new
in
Google
Test
1.4.0
,
so
you
may
need
to
take
care
of
it
when
upgrading
from
an
earlier
version
),
or
the
two
tuple
implementations
will
clash
.
To
do
that
,
add
project uses, or the two tuple implementations will clash. To do
that, add
-DGTEST_USE_OWN_TR1_TUPLE=0
to
the
compiler
flags
while
compiling
Google
Test
and
your
tests
.
to the compiler flags while compiling Google Test and your tests. If
you want to force Google Test to use its own tuple library, just add
-DGTEST_USE_OWN_TR1_TUPLE=1
to the compiler flags instead.
If you don'
t
want
Google
Test
to
use
tuple
at
all
,
add
-
DGTEST_HAS_TR1_TUPLE
=
0
to the compiler flags. All features using tuple will be disabled in
this mode.
Building the Source
-------------------
### Linux, Mac OS X (without Xcode), and Cygwin ###
There are two primary options for building the source at this point: build it
inside the source code tree, or in a separate directory. We recommend building
in a separate directory as that tends to produce both more consistent results
and be easier to clean up should anything go wrong, but both patterns are
supported. The only hard restriction is that while the build directory can be
a subdirectory of the source directory, the opposite is not possible and will
result in errors. Once you have selected where you wish to build Google Test,
create the directory if necessary, and enter it. The following steps apply for
either approach by simply substituting the shell variable SRCDIR with "." for
building inside the source directory, and the relative path to the source
directory otherwise.
${SRCDIR}/configure # Standard GNU configure script, --help for more info
make # Standard makefile following GNU conventions
make check # Builds and runs all tests - all should pass
### Windows ###
The msvc\ folder contains two solutions with Visual C++ projects. Open the
gtest.sln or gtest-md.sln file using Visual Studio, and you are ready to
build Google Test the same way you build any Visual Studio project. Files
that have names ending with -md use DLL versions of Microsoft runtime
libraries (the /MD or the /MDd compiler option). Files without that suffix
use static versions of the runtime libraries (the /MT or the /MTd option).
Please note that one must use the same option to compile both gtest and his
test code. If you use Visual Studio 2005 or above, we recommend the -md
version as /MD is the default for new projects in these versions of Visual
Studio.
### Mac OS X (universal-binary framework) ###
Open the gtest.xcodeproj in the xcode/ folder using Xcode. Build the "gtest"
target. The universal binary framework will end up in your selected build
directory (selected in the Xcode "Preferences..." -> "Building" pane and
defaults to xcode/build). Alternatively, at the command line, enter:
and
all
features
using
tuple
will
be
disabled
.
xcodebuild
###
Multi
-
threaded
Tests
###
This will build the "Release" configuration of gtest.framework in your
default build location. See the "xcodebuild" man page for more information about
building different configurations and building in different locations.
Google
Test
is
thread
-
safe
where
the
pthread
library
is
available
.
After
#
include
<
gtest
/
gtest
.
h
>,
you
can
check
the
GTEST_IS_THREADSAFE
macro
to
see
whether
this
is
the
case
(
yes
if
the
macro
is
#
defined
to
1
,
no
if
it
's undefined.).
To test the gtest.framework in Xcode, change the active target to "Check" and
then build. This target builds all of the tests and then runs them. Don'
t
worry
if
you
see
some
errors
.
Xcode
reports
all
test
failures
(
even
the
intentional
ones
)
as
errors
.
However
,
you
should
see
a
"Build succeeded"
message
at
the
end
of
the
build
log
.
To
run
all
of
the
tests
from
the
command
line
,
enter
:
If Google Test doesn'
t
correctly
detect
whether
pthread
is
available
in
your
environment
,
you
can
force
it
with
xcodebuild
-
target
Check
-
DGTEST_HAS_PTHREAD
=
1
Installation
with
xcodebuild
requires
specifying
an
installation
desitination
directory
,
known
as
the
DSTROOT
.
Three
items
will
be
installed
when
using
xcodebuild
:
or
$
DSTROOT
/
Library
/
Frameworks
/
gtest
.
framework
$
DSTROOT
/
usr
/
local
/
lib
/
libgtest
.
a
$
DSTROOT
/
usr
/
local
/
lib
/
libgtest_main
.
a
-
DGTEST_HAS_PTHREAD
=
0
You
specify
the
installation
directory
on
the
command
line
with
the
other
xcodebuild
options
.
Here
's how you would install in a user-visible location:
When
Google
Test
uses
pthread
,
you
may
need
to
add
flags
to
your
compiler
and
/
or
linker
to
select
the
pthread
library
,
or
you
'll get
link errors. If you use the CMake script or the deprecated Autotools
script, this is taken care of for you. If you use your own build
script, you'
ll
need
to
read
your
compiler
and
linker
's manual to
figure out what flags to add.
xcodebuild install DSTROOT=~
### As a Shared Library (DLL) ###
To perform a system-wide inistall, escalate to an administrator and specify
the file system root as the DSTROOT:
Google Test is compact, so most users can build and link it as a
static library for the simplicity. You can choose to use Google Test
as a shared library (known as a DLL on Windows) if you prefer.
sud
o
x
co
debuild install DSTROOT=/
T
o co
mpile gtest as a shared library, add
To uninstall gtest.framework via the command line, you need to delete the three
items listed above. Remember to escalate to an administrator if deleting these
from the system-wide location using the commands listed below:
-DGTEST_CREATE_SHARED_LIBRARY=1
sudo rm -r /Library/Frameworks/gtest.framework
s
udo rm /usr/local/lib/libgtest.a
sudo rm /usr/local/lib/libgtest_main.a
to the compiler flags. You'
ll
also
need
to
tell
the
linker
to
produce
a
s
hared
library
instead
-
consult
your
linker
's manual for how to do
it.
It is also possible to build and execute individual tests within Xcode. Each
test has its own Xcode "Target" and Xcode "Executable". To build any of the
tests, change the active target and the active executable to the test of
interest and then build and run.
To compile your tests that use the gtest shared library, add
Individual tests can be built from the command line using:
-DGTEST_LINKED_AS_SHARED_LIBRARY=1
xcodebuild -target <test_name>
to the compiler flags.
These tests can be executed from the command line by moving to the build
directory and then (in bash)
### Avoiding Macro Name Clashes ###
export DYLD_FRAMEWORK_PATH=`pwd`
./<test_name> # (e.g. ./gtest_unittest)
In C++, macros don'
t
obey
namespaces
.
Therefore
two
libraries
that
both
define
a
macro
of
the
same
name
will
clash
if
you
#
include
both
definitions
.
In
case
a
Google
Test
macro
clashes
with
another
library
,
you
can
force
Google
Test
to
rename
its
macro
to
avoid
the
conflict
.
To use gtest.framework for your own tests, first, install the framework using
the steps described above. Then add it to your Xcode project by selecting
Project->Add to Project... from the main menu. Next, add libgtest_main.a from
gtest.framework/Resources directory using the same menu command. Finally,
create a new executable target and add gtest.framework and libgtest_main.a to
the "Link Binary With Libraries" build phase.
Specifically
,
if
both
Google
Test
and
some
other
code
define
macro
FOO
,
you
can
add
### Using GNU Make ###
The make/ directory contains a Makefile that you can use to build
Google Test on systems where GNU make is available (e.g. Linux, Mac OS
X, and Cygwin). It doesn'
t
try
to
build
Google
Test
's own tests.
Instead, it just builds the Google Test library and a sample test.
You can use it as a starting point for your own Makefile.
-
DGTEST_DONT_DEFINE_FOO
=
1
If the default settings are correct for your environment, the
following commands should succeed:
to
the
compiler
flags
to
tell
Google
Test
to
change
the
macro
's name
from FOO to GTEST_FOO. Currently FOO can be FAIL, SUCCEED, or TEST.
For example, with -DGTEST_DONT_DEFINE_TEST=1, you'
ll
need
to
write
cd ${SRCDIR}/make
make
./sample1_unittest
GTEST_TEST
(
SomeTest
,
DoesThis
)
{
...
}
If you see errors, try to tweak the contents of make/Makefile to make
them go away. There are instructions in make/Makefile on how to do
it.
instead
of
### Using Your Own Build System ###
If none of the build solutions we provide works for you, or if you
prefer your own build system, you just need to compile
src/gtest-all.cc into a library and link your tests with it. Assuming
a Linux-like system and gcc, something like the following will do:
TEST
(
SomeTest
,
DoesThis
)
{
...
}
cd ${SRCDIR}
g++ -I. -I./include -c src/gtest-all.cc
ar -rv libgtest.a gtest-all.o
g++ -I. -I./include path/to/your_test.cc libgtest.a -o your_test
in
order
to
define
a
test
.
Upgrating
from
an
Earlier
Version
---------------------------------
We
strive
to
keep
Google
Test
releases
backward
compatible
.
Sometimes
,
though
,
we
have
to
make
some
breaking
changes
for
the
users
' long-term benefits. This section describes what you'
ll
need
to
do
if
you
are
upgrading
from
an
earlier
version
of
Google
Test
.
###
Upgrading
from
1.3.0
or
Earlier
###
You
may
need
to
explicitly
enable
or
disable
Google
Test
's own TR1
tuple library. See the instructions in section "Choosing a TR1 Tuple
Library".
### Upgrading from 1.4.0 or Earlier ###
The Autotools build script (configure + make) is no longer officially
supportted. You are encouraged to migrate to your own build system or
use CMake. If you still need to use Autotools, you can find
instructions in the README file from Google Test 1.4.0.
On platforms where the pthread library is available, Google Test uses
it in order to be thread-safe. See the "Multi-threaded Tests" section
for what this means to your build script.
If you use Microsoft Visual C++ 7.1 with exceptions disabled, Google
Test will no longer compile. This should affect very few people, as a
large portion of STL (including <string>) doesn'
t
compile
in
this
mode
anyway
.
We
decided
to
stop
supporting
it
in
order
to
greatly
simplify
Google
Test
's implementation.
Developing Google Test
----------------------
This section discusses how to make your own changes to Google Test.
### Testing Google Test Itself ###
To make sure your changes work as intended and don'
t
break
existing
functionality
,
you
'll want to compile and run Google Test'
s
own
tests
.
For
that
you
can
use
CMake
:
mkdir
mybuild
cd
mybuild
cmake
-
Dbuild_all_gtest_tests
=
ON
${
GTEST_DIR
}
Make
sure
you
have
Python
installed
,
as
some
of
Google
Test
's tests
are written in Python. If the cmake command complains about not being
able to find Python ("Could NOT find PythonInterp (missing:
PYTHON_EXECUTABLE)"), try telling it explicitly where your Python
executable can be found:
cmake -DPYTHON_EXECUTABLE=path/to/python -Dbuild_all_gtest_tests=ON \
${GTEST_DIR}
Next, you can build Google Test and all of its own tests. On *nix,
this is usually done by '
make
'. To run the tests, do
make test
All tests should pass.
### Regenerating Source Files ###
Regenerating Source Files
-------------------------
Some of Google Test'
s
source
files
are
generated
from
templates
(
not
in
the
C
++
sense
)
using
a
script
.
A
template
file
is
named
FOO
.
pump
,
where
FOO
is
the
name
of
the
file
it
will
generate
.
For
example
,
the
...
...
@@ -275,12 +398,20 @@ file include/gtest/internal/gtest-type-util.h.pump is used to generate
gtest
-
type
-
util
.
h
in
the
same
directory
.
Normally
you
don
't need to worry about regenerating the source files,
unless you need to modify them (e.g. if you are working on a patch for
Google Test). In that case, you should modify the corresponding .pump
files instead and run the '
pump
' script (for Pump is Useful for Meta
Programming) to regenerate them. We are still working on releasing
the script and its documentation. If you need it now, please email
googletestframework@googlegroups.com such that we know to make it
happen sooner.
unless you need to modify them. In that case, you should modify the
corresponding .pump files instead and run the pump.py Python script to
regenerate them. You can find pump.py in the scripts/ directory.
Read the Pump manual [2] for how to use it.
[2] http://code.google.com/p/googletest/wiki/PumpManual
### Contributing a Patch ###
We welcome patches. Please read the Google Test developer'
s
guide
[
3
]
for
how
you
can
contribute
.
In
particular
,
make
sure
you
have
signed
the
Contributor
License
Agreement
,
or
we
won
't be able to accept the
patch.
[3] http://code.google.com/p/googletest/wiki/GoogleTestDevGuide
Happy testing!
make/Makefile
View file @
97c45282
...
...
@@ -20,7 +20,7 @@ GTEST_DIR = ..
USER_DIR
=
../samples
# Flags passed to the preprocessor.
CPPFLAGS
+=
-I
$(GTEST_DIR)
-I
$(GTEST_DIR)
/include
CPPFLAGS
+=
-I
$(GTEST_DIR)
/include
# Flags passed to the C++ compiler.
CXXFLAGS
+=
-g
-Wall
-Wextra
...
...
@@ -52,10 +52,12 @@ GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
# conservative and not optimized. This is fine as Google Test
# compiles fast and for ordinary users its source rarely changes.
gtest-all.o
:
$(GTEST_SRCS_)
$(CXX)
$(CPPFLAGS)
$(CXXFLAGS)
-c
$(GTEST_DIR)
/src/gtest-all.cc
$(CXX)
$(CPPFLAGS)
-I
$(GTEST_DIR)
$(CXXFLAGS)
-c
\
$(GTEST_DIR)
/src/gtest-all.cc
gtest_main.o
:
$(GTEST_SRCS_)
$(CXX)
$(CPPFLAGS)
$(CXXFLAGS)
-c
$(GTEST_DIR)
/src/gtest_main.cc
$(CXX)
$(CPPFLAGS)
-I
$(GTEST_DIR)
$(CXXFLAGS)
-c
\
$(GTEST_DIR)
/src/gtest_main.cc
gtest.a
:
gtest-all.o
$(AR)
$(ARFLAGS)
$@
$^
...
...
@@ -75,4 +77,4 @@ sample1_unittest.o : $(USER_DIR)/sample1_unittest.cc \
$(CXX)
$(CPPFLAGS)
$(CXXFLAGS)
-c
$(USER_DIR)
/sample1_unittest.cc
sample1_unittest
:
sample1.o sample1_unittest.o gtest_main.a
$(CXX)
$(CPPFLAGS)
$(CXXFLAGS)
$^
-o
$@
$(CXX)
$(CPPFLAGS)
$(CXXFLAGS)
-lpthread
$^
-o
$@
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment