Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
googletest
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
googletest
Commits
1d6df4be
Commit
1d6df4be
authored
Dec 29, 2009
by
zhanyong.wan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adds an experimental CMake build script; makes the samples compile without warnings on Windows.
parent
4d004650
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
282 additions
and
4 deletions
+282
-4
CMakeLists.txt
CMakeLists.txt
+275
-0
prime_tables.h
samples/prime_tables.h
+3
-0
sample10_unittest.cc
samples/sample10_unittest.cc
+3
-3
sample9_unittest.cc
samples/sample9_unittest.cc
+1
-1
No files found.
CMakeLists.txt
0 → 100644
View file @
1d6df4be
########################################################################
# Experimental CMake build script for Google Test.
#
# Consider this a prototype. It will change drastically. For now,
# this is only for people on the cutting edge.
#
# To run the tests for Google Test itself on Linux, use 'make test' or
# ctest. You can select which tests to run using 'ctest -R regex'.
# For more options, run 'ctest --help'.
########################################################################
#
# Project-wide settings
# Name of the project.
#
# CMake files in this project can refer to the root source directory
# as ${gtest_SOURCE_DIR} and to the root binary directory as
# ${gtest_BINARY_DIR}.
project
(
gtest CXX
)
cmake_minimum_required
(
VERSION 2.8
)
# Where gtest's .h files can be found.
include_directories
(
${
gtest_SOURCE_DIR
}
/include
${
gtest_SOURCE_DIR
}
)
# Where the gtest libraries can be found.
link_directories
(
${
gtest_BINARY_DIR
}
/src
)
# Defines the compiler/linker flags used to build gtest. You can
# tweak these definitions to suit your need.
if
(
MSVC
)
set
(
cxx_base
"
${
CMAKE_CXX_FLAGS
}
-GS -W4 -WX -wd4275 -RTCs -RTCu -nologo -J
-Zi -D_UNICODE -DUNICODE -DWIN32 -D_WIN32 -DSTRICT
-DWIN32_LEAN_AND_MEAN"
)
set
(
cxx_default
"
${
cxx_base
}
-EHsc -D_HAS_EXCEPTIONS=1"
)
else
()
set
(
cxx_base
"
${
CMAKE_CXX_FLAGS
}
"
)
set
(
cxx_default
"
${
cxx_base
}
-fexceptions"
)
endif
()
########################################################################
#
# Defines the gtest & gtest_main libraries. User tests should link
# with one of them.
function
(
cxx_library name cxx_flags
)
# ARGN refers to additional arguments after 'cxx_flags'.
add_library
(
${
name
}
STATIC
${
ARGN
}
)
set_target_properties
(
${
name
}
PROPERTIES
COMPILE_FLAGS
"
${
cxx_flags
}
"
)
endfunction
()
cxx_library
(
gtest
"
${
cxx_default
}
"
src/gtest-all.cc
)
cxx_library
(
gtest_main
"
${
cxx_default
}
"
src/gtest_main.cc
)
target_link_libraries
(
gtest_main gtest
)
########################################################################
#
# Samples on how to link user tests with gtest or gtest_main.
#
# They are not built by default. To build them, set the
# build_gtest_samples option to ON. You can do it by running ccmake
# or specifying the -Dbuild_gtest_samples=ON flag when running cmake.
option
(
build_gtest_samples
"Build gtest's sample programs."
OFF
)
# cxx_executable(name dir lib srcs...)
#
# creates a named target that depends on the given lib and is built
# from the given source files. dir/name.cc is implicitly included in
# the source file list.
function
(
cxx_executable name dir lib
)
add_executable
(
${
name
}
${
dir
}
/
${
name
}
.cc
${
ARGN
}
)
set_target_properties
(
${
name
}
PROPERTIES
COMPILE_FLAGS
"
${
cxx_default
}
"
)
target_link_libraries
(
${
name
}
${
lib
}
)
endfunction
()
if
(
${
build_gtest_samples
}
)
cxx_executable
(
sample1_unittest samples gtest_main samples/sample1.cc
)
cxx_executable
(
sample2_unittest samples gtest_main samples/sample2.cc
)
cxx_executable
(
sample3_unittest samples gtest_main
)
cxx_executable
(
sample4_unittest samples gtest_main samples/sample4.cc
)
cxx_executable
(
sample5_unittest samples gtest_main samples/sample1.cc
)
cxx_executable
(
sample6_unittest samples gtest_main
)
cxx_executable
(
sample7_unittest samples gtest_main
)
cxx_executable
(
sample8_unittest samples gtest_main
)
cxx_executable
(
sample9_unittest samples gtest
)
cxx_executable
(
sample10_unittest samples gtest
)
endif
()
########################################################################
#
# Google Test's own tests.
#
# You can skip this section if you aren't interested in testing
# Google Test itself.
#
# Most of the tests are not built by default. To build them, set the
# build_all_gtest_tests option to ON. You can do it by running ccmake
# or specifying the -Dbuild_all_gtest_tests=ON flag when running cmake.
option
(
build_all_gtest_tests
"Build all of gtest's own tests."
OFF
)
# This must be set in the root directory for the tests to be run by
# 'make test' or ctest.
enable_testing
()
# Sets PYTHONINTERP_FOUND and PYTHON_EXECUTABLE.
include
(
FindPythonInterp
)
############################################################
# C++ tests built with standard compiler flags.
# cxx_test(name lib srcs...)
#
# creates a named test target that depends on the given lib and is
# built from the given source files. test/name.cc is implicitly
# included in the source file list.
function
(
cxx_test name lib
)
add_executable
(
${
name
}
test/
${
name
}
.cc
${
ARGN
}
)
set_target_properties
(
${
name
}
PROPERTIES
COMPILE_FLAGS
"
${
cxx_default
}
"
)
target_link_libraries
(
${
name
}
${
lib
}
)
add_test
(
${
name
}
${
name
}
)
endfunction
()
cxx_test
(
gtest_unittest gtest_main
)
if
(
${
build_all_gtest_tests
}
)
cxx_test
(
gtest_environment_test gtest
)
cxx_test
(
gtest-filepath_test gtest_main
)
cxx_test
(
gtest-linked_ptr_test gtest_main
)
cxx_test
(
gtest-listener_test gtest_main
)
cxx_test
(
gtest_main_unittest gtest_main
)
cxx_test
(
gtest-message_test gtest_main
)
cxx_test
(
gtest_no_test_unittest gtest
)
cxx_test
(
gtest-options_test gtest_main
)
cxx_test
(
gtest-param-test_test gtest
test/gtest-param-test2_test.cc
)
cxx_test
(
gtest-port_test gtest_main
)
cxx_test
(
gtest_pred_impl_unittest gtest_main
)
cxx_test
(
gtest_prod_test gtest_main
test/production.cc
)
cxx_test
(
gtest_repeat_test gtest
)
cxx_test
(
gtest_sole_header_test gtest_main
)
cxx_test
(
gtest_stress_test gtest
)
cxx_test
(
gtest-test-part_test gtest_main
)
cxx_test
(
gtest_throw_on_failure_ex_test gtest
)
cxx_test
(
gtest-typed-test_test gtest_main
test/gtest-typed-test2_test.cc
)
cxx_test
(
gtest-unittest-api_test gtest
)
endif
()
############################################################
# C++ tests built with non-standard compiler flags.
# TODO(wan@google.com): use FindThreads to set the flags for using threads.
if
(
MSVC
)
set
(
cxx_no_exception
"
${
cxx_base
}
-D_HAS_EXCEPTIONS=0"
)
set
(
cxx_no_rtti
"
${
cxx_default
}
-GR-"
)
set
(
cxx_use_threads
"
${
cxx_default
}
"
)
set
(
link_use_threads
""
)
else
()
set
(
cxx_no_exception
"
${
cxx_base
}
-fno-exceptions"
)
set
(
cxx_no_rtti
"
${
cxx_default
}
-fno-rtti -DGTEST_HAS_RTTI=0"
)
set
(
cxx_use_threads
"
${
cxx_default
}
-pthread"
)
set
(
link_use_threads
"-pthread"
)
endif
()
set
(
cxx_use_own_tuple
"
${
cxx_default
}
-DGTEST_USE_OWN_TR1_TUPLE=1"
)
# cxx_test_with_flags(name cxx_flags lib srcs...)
#
# creates a named C++ test that depends on the given lib and is built
# from the given source files with the given compiler flags. Unlike
# cxx_test(), test/name.cc is NOT implicitly included in the source
# file list.
function
(
cxx_test_with_flags name cxx_flags lib
)
add_executable
(
${
name
}
${
ARGN
}
)
set_target_properties
(
${
name
}
PROPERTIES
COMPILE_FLAGS
"
${
cxx_flags
}
"
)
target_link_libraries
(
${
name
}
${
lib
}
)
add_test
(
${
name
}
${
name
}
)
endfunction
()
if
(
${
build_all_gtest_tests
}
)
cxx_library
(
gtest_no_exception
"
${
cxx_no_exception
}
"
src/gtest-all.cc
)
cxx_library
(
gtest_main_no_rtti
"
${
cxx_no_rtti
}
"
src/gtest-all.cc src/gtest_main.cc
)
cxx_library
(
gtest_main_use_own_tuple
"
${
cxx_use_own_tuple
}
"
src/gtest-all.cc src/gtest_main.cc
)
cxx_test_with_flags
(
gtest-death-test_test
"
${
cxx_use_threads
}
"
gtest_main test/gtest-death-test_test.cc
)
set_target_properties
(
gtest-death-test_test
PROPERTIES
LINK_FLAGS
"
${
link_use_threads
}
"
)
cxx_test_with_flags
(
gtest_no_rtti_unittest
"
${
cxx_no_rtti
}
"
gtest_main_no_rtti test/gtest_unittest.cc
)
cxx_test_with_flags
(
gtest-tuple_test
"
${
cxx_use_own_tuple
}
"
gtest_main_use_own_tuple test/gtest-tuple_test.cc
)
cxx_test_with_flags
(
gtest_use_own_tuple_test
"
${
cxx_use_own_tuple
}
"
gtest_main_use_own_tuple
test/gtest-param-test_test.cc test/gtest-param-test2_test.cc
)
endif
()
############################################################
# Python tests.
# py_test(name)
#
# creates a Python test with the given name whose main module is in
# test/name.py. It does nothing if Python is not installed.
function
(
py_test name
)
if
(
PYTHONINTERP_FOUND
)
add_test
(
NAME
${
name
}
COMMAND
${
PYTHON_EXECUTABLE
}
${
gtest_SOURCE_DIR
}
/test/
${
name
}
.py
--gtest_build_dir=
${
EXECUTABLE_OUTPUT_PATH
}
)
endif
()
endfunction
()
if
(
${
build_all_gtest_tests
}
)
cxx_executable
(
gtest_break_on_failure_unittest_ test gtest
)
py_test
(
gtest_break_on_failure_unittest
)
cxx_executable
(
gtest_color_test_ test gtest
)
py_test
(
gtest_color_test
)
cxx_executable
(
gtest_env_var_test_ test gtest
)
py_test
(
gtest_env_var_test
)
cxx_executable
(
gtest_filter_unittest_ test gtest
)
py_test
(
gtest_filter_unittest
)
cxx_executable
(
gtest_help_test_ test gtest_main
)
py_test
(
gtest_help_test
)
cxx_executable
(
gtest_list_tests_unittest_ test gtest
)
py_test
(
gtest_list_tests_unittest
)
cxx_executable
(
gtest_output_test_ test gtest
)
py_test
(
gtest_output_test
)
cxx_executable
(
gtest_shuffle_test_ test gtest
)
py_test
(
gtest_shuffle_test
)
cxx_executable
(
gtest_throw_on_failure_test_ test gtest_no_exception
)
set_target_properties
(
gtest_throw_on_failure_test_
PROPERTIES
COMPILE_FLAGS
"
${
cxx_no_exception
}
"
)
py_test
(
gtest_throw_on_failure_test
)
cxx_executable
(
gtest_uninitialized_test_ test gtest
)
py_test
(
gtest_uninitialized_test
)
cxx_executable
(
gtest_xml_outfile1_test_ test gtest_main
)
cxx_executable
(
gtest_xml_outfile2_test_ test gtest_main
)
py_test
(
gtest_xml_outfiles_test
)
cxx_executable
(
gtest_xml_output_unittest_ test gtest
)
py_test
(
gtest_xml_output_unittest
)
endif
()
samples/prime_tables.h
View file @
1d6df4be
...
@@ -115,6 +115,9 @@ class PreCalculatedPrimeTable : public PrimeTable {
...
@@ -115,6 +115,9 @@ class PreCalculatedPrimeTable : public PrimeTable {
const
int
is_prime_size_
;
const
int
is_prime_size_
;
bool
*
const
is_prime_
;
bool
*
const
is_prime_
;
// Disables compiler wqarning "assignment operator could ot be generated."
void
operator
=
(
const
PreCalculatedPrimeTable
&
rhs
);
};
};
#endif // GTEST_SAMPLES_PRIME_TABLES_H_
#endif // GTEST_SAMPLES_PRIME_TABLES_H_
samples/sample10_unittest.cc
View file @
1d6df4be
...
@@ -58,7 +58,7 @@ class Water {
...
@@ -58,7 +58,7 @@ class Water {
return
malloc
(
allocation_size
);
return
malloc
(
allocation_size
);
}
}
void
operator
delete
(
void
*
block
,
size_t
allocation_size
)
{
void
operator
delete
(
void
*
block
,
size_t
/* allocation_size */
)
{
allocated_
--
;
allocated_
--
;
free
(
block
);
free
(
block
);
}
}
...
@@ -78,12 +78,12 @@ int Water::allocated_ = 0;
...
@@ -78,12 +78,12 @@ int Water::allocated_ = 0;
class
LeakChecker
:
public
EmptyTestEventListener
{
class
LeakChecker
:
public
EmptyTestEventListener
{
private
:
private
:
// Called before a test starts.
// Called before a test starts.
virtual
void
OnTestStart
(
const
TestInfo
&
test_info
)
{
virtual
void
OnTestStart
(
const
TestInfo
&
/* test_info */
)
{
initially_allocated_
=
Water
::
allocated
();
initially_allocated_
=
Water
::
allocated
();
}
}
// Called after a test ends.
// Called after a test ends.
virtual
void
OnTestEnd
(
const
TestInfo
&
test_info
)
{
virtual
void
OnTestEnd
(
const
TestInfo
&
/* test_info */
)
{
int
difference
=
Water
::
allocated
()
-
initially_allocated_
;
int
difference
=
Water
::
allocated
()
-
initially_allocated_
;
// You can generate a failure in any event handler except
// You can generate a failure in any event handler except
...
...
samples/sample9_unittest.cc
View file @
1d6df4be
...
@@ -52,7 +52,7 @@ namespace {
...
@@ -52,7 +52,7 @@ namespace {
class
TersePrinter
:
public
EmptyTestEventListener
{
class
TersePrinter
:
public
EmptyTestEventListener
{
private
:
private
:
// Called before any test activity starts.
// Called before any test activity starts.
virtual
void
OnTestProgramStart
(
const
UnitTest
&
unit_test
)
{}
virtual
void
OnTestProgramStart
(
const
UnitTest
&
/* unit_test */
)
{}
// Called after all test activities have ended.
// Called after all test activities have ended.
virtual
void
OnTestProgramEnd
(
const
UnitTest
&
unit_test
)
{
virtual
void
OnTestProgramEnd
(
const
UnitTest
&
unit_test
)
{
...
...
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