mirror of
https://github.com/google/googletest.git
synced 2025-01-14 08:27:56 +08:00
Merge branch 'master' into hethi/remove-old-docs
This commit is contained in:
commit
e022dcded8
@ -1,5 +1,9 @@
|
||||
cmake_minimum_required(VERSION 2.6.4)
|
||||
|
||||
if (POLICY CMP0048)
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
endif (POLICY CMP0048)
|
||||
|
||||
project( googletest-distribution )
|
||||
|
||||
enable_testing()
|
||||
|
@ -60,6 +60,7 @@ the following notable projects:
|
||||
* [Protocol Buffers](https://github.com/google/protobuf), Google's data
|
||||
interchange format.
|
||||
* The [OpenCV](http://opencv.org/) computer vision library.
|
||||
* [tiny-dnn](https://github.com/tiny-dnn/tiny-dnn): header only, dependency-free deep learning framework in C++11
|
||||
|
||||
## Related Open Source Projects ##
|
||||
|
||||
@ -73,6 +74,9 @@ listener for Google Test that implements the
|
||||
[TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test
|
||||
result output. If your test runner understands TAP, you may find it useful.
|
||||
|
||||
[gtest-parallel](https://github.com/google/gtest-parallel) is a test runner that
|
||||
runs tests from your binary in parallel to provide significant speed-up.
|
||||
|
||||
## Requirements ##
|
||||
|
||||
Google Test is designed to have fairly minimal requirements to build
|
||||
|
@ -94,7 +94,7 @@ Google Test):
|
||||
* New feature: --gmock_catch_leaked_mocks for detecting leaked mocks.
|
||||
* New feature: ACTION_TEMPLATE for defining templatized actions.
|
||||
* New feature: the .After() clause for specifying expectation order.
|
||||
* New feature: the .With() clause for for specifying inter-argument
|
||||
* New feature: the .With() clause for specifying inter-argument
|
||||
constraints.
|
||||
* New feature: actions ReturnArg<k>(), ReturnNew<T>(...), and
|
||||
DeleteArg<k>().
|
||||
|
@ -125,13 +125,46 @@ build Google Mock and its tests, which has further requirements:
|
||||
|
||||
### Building Google Mock ###
|
||||
|
||||
#### Using CMake ####
|
||||
|
||||
If you have CMake available, it is recommended that you follow the
|
||||
[build instructions][gtest_cmakebuild]
|
||||
as described for Google Test. If are using Google Mock with an
|
||||
as described for Google Test.
|
||||
|
||||
If are using Google Mock with an
|
||||
existing CMake project, the section
|
||||
[Incorporating Into An Existing CMake Project][gtest_incorpcmake]
|
||||
may be of particular interest. Otherwise, the following sections
|
||||
detail how to build Google Mock without CMake.
|
||||
may be of particular interest.
|
||||
To make it work for Google Mock you will need to change
|
||||
|
||||
target_link_libraries(example gtest_main)
|
||||
|
||||
to
|
||||
|
||||
target_link_libraries(example gmock_main)
|
||||
|
||||
This works because `gmock_main` library is compiled with Google Test.
|
||||
However, it does not automatically add Google Test includes.
|
||||
Therefore you will also have to change
|
||||
|
||||
if (CMAKE_VERSION VERSION_LESS 2.8.11)
|
||||
include_directories("${gtest_SOURCE_DIR}/include")
|
||||
endif()
|
||||
|
||||
to
|
||||
|
||||
if (CMAKE_VERSION VERSION_LESS 2.8.11)
|
||||
include_directories(BEFORE SYSTEM
|
||||
"${gtest_SOURCE_DIR}/include" "${gmock_SOURCE_DIR}/include")
|
||||
else()
|
||||
target_include_directories(gmock_main SYSTEM BEFORE INTERFACE
|
||||
"${gtest_SOURCE_DIR}/include" "${gmock_SOURCE_DIR}/include")
|
||||
endif()
|
||||
|
||||
This will addtionally mark Google Mock includes as system, which will
|
||||
silence compiler warnings when compiling your tests using clang with
|
||||
`-Wpedantic -Wall -Wextra -Wconversion`.
|
||||
|
||||
|
||||
#### Preparing to Build (Unix only) ####
|
||||
|
||||
|
@ -130,7 +130,7 @@ AS_IF([test "x${HAVE_BUILT_GTEST}" = "xyes"],
|
||||
GTEST_LIBS=`${GTEST_CONFIG} --libs`
|
||||
GTEST_VERSION=`${GTEST_CONFIG} --version`],
|
||||
[AC_CONFIG_SUBDIRS([../googletest])
|
||||
# GTEST_CONFIG needs to be executable both in a Makefile environmont and
|
||||
# GTEST_CONFIG needs to be executable both in a Makefile environment and
|
||||
# in a shell script environment, so resolve an absolute path for it here.
|
||||
GTEST_CONFIG="`pwd -P`/../googletest/scripts/gtest-config"
|
||||
GTEST_CPPFLAGS='-I$(top_srcdir)/../googletest/include'
|
||||
|
@ -18,8 +18,9 @@ You must always put a mock method definition (`MOCK_METHOD*`) in a
|
||||
`public:` section of the mock class, regardless of the method being
|
||||
mocked being `public`, `protected`, or `private` in the base class.
|
||||
This allows `ON_CALL` and `EXPECT_CALL` to reference the mock function
|
||||
from outside of the mock class. (Yes, C++ allows a subclass to change
|
||||
the access level of a virtual function in the base class.) Example:
|
||||
from outside of the mock class. (Yes, C++ allows a subclass to specify
|
||||
a different access level than the base class on a virtual function.)
|
||||
Example:
|
||||
|
||||
```
|
||||
class Foo {
|
||||
@ -294,7 +295,7 @@ There are some caveats though (I don't like them just as much as the
|
||||
next guy, but sadly they are side effects of C++'s limitations):
|
||||
|
||||
1. `NiceMock<MockFoo>` and `StrictMock<MockFoo>` only work for mock methods defined using the `MOCK_METHOD*` family of macros **directly** in the `MockFoo` class. If a mock method is defined in a **base class** of `MockFoo`, the "nice" or "strict" modifier may not affect it, depending on the compiler. In particular, nesting `NiceMock` and `StrictMock` (e.g. `NiceMock<StrictMock<MockFoo> >`) is **not** supported.
|
||||
1. The constructors of the base mock (`MockFoo`) cannot have arguments passed by non-const reference, which happens to be banned by the [Google C++ style guide](http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml).
|
||||
1. The constructors of the base mock (`MockFoo`) cannot have arguments passed by non-const reference, which happens to be banned by the [Google C++ style guide](https://google.github.io/styleguide/cppguide.html).
|
||||
1. During the constructor or destructor of `MockFoo`, the mock object is _not_ nice or strict. This may cause surprises if the constructor or destructor calls a mock method on `this` object. (This behavior, however, is consistent with C++'s general rule: if a constructor or destructor calls a virtual method of `this` object, that method is treated as non-virtual. In other words, to the base class's constructor or destructor, `this` object behaves like an instance of the base class, not the derived class. This rule is required for safety. Otherwise a base constructor may use members of a derived class before they are initialized, or a base destructor may use members of a derived class after they have been destroyed.)
|
||||
|
||||
Finally, you should be **very cautious** about when to use naggy or strict mocks, as they tend to make tests more brittle and harder to maintain. When you refactor your code without changing its externally visible behavior, ideally you should't need to update any tests. If your code interacts with a naggy mock, however, you may start to get spammed with warnings as the result of your change. Worse, if your code interacts with a strict mock, your tests may start to fail and you'll be forced to fix them. Our general recommendation is to use nice mocks (not yet the default) most of the time, use naggy mocks (the current default) when developing or debugging tests, and use strict mocks only as the last resort.
|
||||
@ -2366,7 +2367,7 @@ Now there’s one topic we haven’t covered: how do you set expectations on `Sh
|
||||
// When one calls ShareBuzz() on the MockBuzzer like this, the call is
|
||||
// forwarded to DoShareBuzz(), which is mocked. Therefore this statement
|
||||
// will trigger the above EXPECT_CALL.
|
||||
mock_buzzer_.ShareBuzz(MakeUnique<Buzz>(AccessLevel::kInternal),
|
||||
mock_buzzer_.ShareBuzz(MakeUnique<Buzz>(AccessLevel::kInternal),
|
||||
::base::Now());
|
||||
```
|
||||
|
||||
@ -2405,7 +2406,7 @@ Now, the mock `DoShareBuzz()` method is free to save the buzz argument for later
|
||||
```
|
||||
std::unique_ptr<Buzz> intercepted_buzz;
|
||||
EXPECT_CALL(mock_buzzer_, DoShareBuzz(NotNull(), _))
|
||||
.WillOnce(Invoke([&intercepted_buzz](Buzz* buzz, Time timestamp) {
|
||||
.WillOnce(Invoke([&intercepted_buzz](Buzz* buzz, Time timestamp) {
|
||||
// Save buzz in intercepted_buzz for analysis later.
|
||||
intercepted_buzz.reset(buzz);
|
||||
return false;
|
||||
|
@ -91,7 +91,7 @@ instructions for how to sign and return it.
|
||||
|
||||
To keep the source consistent, readable, diffable and easy to merge,
|
||||
we use a fairly rigid coding style, as defined by the [google-styleguide](https://github.com/google/styleguide) project. All patches will be expected
|
||||
to conform to the style outlined [here](https://github.com/google/styleguide/blob/gh-pages/cppguide.xml).
|
||||
to conform to the style outlined [here](https://google.github.io/styleguide/cppguide.html).
|
||||
|
||||
## Submitting Patches ##
|
||||
|
||||
|
@ -1029,9 +1029,9 @@ class DoBothAction {
|
||||
// return sqrt(x*x + y*y);
|
||||
// }
|
||||
// ...
|
||||
// EXEPCT_CALL(mock, Foo("abc", _, _))
|
||||
// EXPECT_CALL(mock, Foo("abc", _, _))
|
||||
// .WillOnce(Invoke(DistanceToOriginWithLabel));
|
||||
// EXEPCT_CALL(mock, Bar(5, _, _))
|
||||
// EXPECT_CALL(mock, Bar(5, _, _))
|
||||
// .WillOnce(Invoke(DistanceToOriginWithIndex));
|
||||
//
|
||||
// you could write
|
||||
@ -1041,8 +1041,8 @@ class DoBothAction {
|
||||
// return sqrt(x*x + y*y);
|
||||
// }
|
||||
// ...
|
||||
// EXEPCT_CALL(mock, Foo("abc", _, _)).WillOnce(Invoke(DistanceToOrigin));
|
||||
// EXEPCT_CALL(mock, Bar(5, _, _)).WillOnce(Invoke(DistanceToOrigin));
|
||||
// EXPECT_CALL(mock, Foo("abc", _, _)).WillOnce(Invoke(DistanceToOrigin));
|
||||
// EXPECT_CALL(mock, Bar(5, _, _)).WillOnce(Invoke(DistanceToOrigin));
|
||||
typedef internal::IgnoredValue Unused;
|
||||
|
||||
// This constructor allows us to turn an Action<From> object into an
|
||||
|
@ -646,7 +646,7 @@ class SafeMatcherCastImpl {
|
||||
// type U.
|
||||
GTEST_COMPILE_ASSERT_(
|
||||
internal::is_reference<T>::value || !internal::is_reference<U>::value,
|
||||
cannot_convert_non_referentce_arg_to_reference);
|
||||
cannot_convert_non_reference_arg_to_reference);
|
||||
// In case both T and U are arithmetic types, enforce that the
|
||||
// conversion is not lossy.
|
||||
typedef GTEST_REMOVE_REFERENCE_AND_CONST_(T) RawT;
|
||||
|
@ -288,7 +288,7 @@ class MaxBipartiteMatchState {
|
||||
// Each element of the left_ vector represents a left hand side node
|
||||
// (i.e. an element) and each element of right_ is a right hand side
|
||||
// node (i.e. a matcher). The values in the left_ vector indicate
|
||||
// outflow from that node to a node on the the right_ side. The values
|
||||
// outflow from that node to a node on the right_ side. The values
|
||||
// in the right_ indicate inflow, and specify which left_ node is
|
||||
// feeding that right_ node, if any. For example, left_[3] == 1 means
|
||||
// there's a flow from element #3 to matcher #1. Such a flow would also
|
||||
|
@ -1120,7 +1120,7 @@ TEST(ActionTemplateTest, WorksForIntegralTemplateParams) {
|
||||
EXPECT_FALSE(b); // Verifies that resetter is deleted.
|
||||
}
|
||||
|
||||
// Tests that ACTION_TEMPLATES works for template template parameters.
|
||||
// Tests that ACTION_TEMPLATE works for a template with template parameters.
|
||||
ACTION_TEMPLATE(ReturnSmartPointer,
|
||||
HAS_1_TEMPLATE_PARAMS(template <typename Pointee> class,
|
||||
Pointer),
|
||||
|
@ -216,7 +216,7 @@ pkginclude_internal_HEADERS = \
|
||||
lib_libgtest_main_la_SOURCES = src/gtest_main.cc
|
||||
lib_libgtest_main_la_LIBADD = lib/libgtest.la
|
||||
|
||||
# Bulid rules for samples and tests. Automake's naming for some of
|
||||
# Build rules for samples and tests. Automake's naming for some of
|
||||
# these variables isn't terribly obvious, so this is a brief
|
||||
# reference:
|
||||
#
|
||||
|
@ -32,7 +32,7 @@ output in the future.
|
||||
|
||||
`FAIL()` generates a fatal failure, while `ADD_FAILURE()` and `ADD_FAILURE_AT()` generate a nonfatal
|
||||
failure. These are useful when control flow, rather than a Boolean expression,
|
||||
deteremines the test's success or failure. For example, you might want to write
|
||||
determines the test's success or failure. For example, you might want to write
|
||||
something like:
|
||||
|
||||
```
|
||||
@ -675,7 +675,7 @@ syntax only.
|
||||
## How It Works ##
|
||||
|
||||
Under the hood, `ASSERT_EXIT()` spawns a new process and executes the
|
||||
death test statement in that process. The details of of how precisely
|
||||
death test statement in that process. The details of how precisely
|
||||
that happens depend on the platform and the variable
|
||||
`::testing::GTEST_FLAG(death_test_style)` (which is initialized from the
|
||||
command-line flag `--gtest_death_test_style`).
|
||||
@ -1344,7 +1344,7 @@ TYPED_TEST(FooTest, DoesBlah) {
|
||||
TYPED_TEST(FooTest, HasPropertyA) { ... }
|
||||
```
|
||||
|
||||
You can see `samples/sample6_unittest.cc` for a complete example.
|
||||
You can see [`samples/sample6_unittest.cc`](../samples/sample6_unittest.cc) for a complete example.
|
||||
|
||||
_Availability:_ Linux, Windows (requires MSVC 8.0 or above), Mac;
|
||||
since version 1.1.0.
|
||||
@ -1551,7 +1551,7 @@ exception, you could catch the exception and assert on it. But Google
|
||||
Test doesn't use exceptions, so how do we test that a piece of code
|
||||
generates an expected failure?
|
||||
|
||||
`"gtest/gtest-spi.h"` contains some constructs to do this. After
|
||||
`"gtest/gtest-spi.h"` contains some constructs to do this. After
|
||||
`#include`ing this header, you can use
|
||||
|
||||
| `EXPECT_FATAL_FAILURE(`_statement, substring_`);` |
|
||||
|
@ -80,8 +80,8 @@ instructions for how to sign and return it.
|
||||
## Coding Style ##
|
||||
|
||||
To keep the source consistent, readable, diffable and easy to merge,
|
||||
we use a fairly rigid coding style, as defined by the [google-styleguide](http://code.google.com/p/google-styleguide/) project. All patches will be expected
|
||||
to conform to the style outlined [here](http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml).
|
||||
we use a fairly rigid coding style, as defined by the [google-styleguide](https://github.com/google/styleguide) project. All patches will be expected
|
||||
to conform to the style outlined [here](https://google.github.io/styleguide/cppguide.html).
|
||||
|
||||
## Updating Generated Code ##
|
||||
|
||||
|
@ -382,7 +382,7 @@ When invoked, the `RUN_ALL_TESTS()` macro:
|
||||
1. Restores the state of all Google Test flags.
|
||||
1. Repeats the above steps for the next test, until all tests have run.
|
||||
|
||||
In addition, if the text fixture's constructor generates a fatal failure in
|
||||
In addition, if the test fixture's constructor generates a fatal failure in
|
||||
step 2, there is no point for step 3 - 5 and they are thus skipped. Similarly,
|
||||
if step 3 generates a fatal failure, step 4 will be skipped.
|
||||
|
||||
|
@ -55,7 +55,7 @@ bool IsPrime(int n) {
|
||||
|
||||
// Try to divide n by every odd number i, starting from 3
|
||||
for (int i = 3; ; i += 2) {
|
||||
// We only have to try i up to the squre root of n
|
||||
// We only have to try i up to the square root of n
|
||||
if (i > n/i) break;
|
||||
|
||||
// Now, we have i <= n/i < n.
|
||||
|
@ -72,7 +72,7 @@ class QueueTest : public testing::Test {
|
||||
// accessed from sub-classes.
|
||||
|
||||
// virtual void SetUp() will be called before each test is run. You
|
||||
// should define it if you need to initialize the varaibles.
|
||||
// should define it if you need to initialize the variables.
|
||||
// Otherwise, this can be skipped.
|
||||
virtual void SetUp() {
|
||||
q1_.Enqueue(1);
|
||||
|
@ -732,7 +732,7 @@ class SubversionVCS(VersionControlSystem):
|
||||
else:
|
||||
self.rev_start = self.rev_end = None
|
||||
# Cache output from "svn list -r REVNO dirname".
|
||||
# Keys: dirname, Values: 2-tuple (ouput for start rev and end rev).
|
||||
# Keys: dirname, Values: 2-tuple (output for start rev and end rev).
|
||||
self.svnls_cache = {}
|
||||
# SVN base URL is required to fetch files deleted in an older revision.
|
||||
# Result is cached to not guess it over and over again in GetBaseFile().
|
||||
|
@ -1242,7 +1242,7 @@ int GetStatusFileDescriptor(unsigned int parent_process_id,
|
||||
reinterpret_cast<HANDLE>(write_handle_as_size_t);
|
||||
HANDLE dup_write_handle;
|
||||
|
||||
// The newly initialized handle is accessible only in in the parent
|
||||
// The newly initialized handle is accessible only in the parent
|
||||
// process. To obtain one accessible within the child, we need to use
|
||||
// DuplicateHandle.
|
||||
if (!::DuplicateHandle(parent_process_handle.Get(), write_handle,
|
||||
|
@ -496,7 +496,7 @@ class ThreadLocalRegistryImpl {
|
||||
FALSE,
|
||||
thread_id);
|
||||
GTEST_CHECK_(thread != NULL);
|
||||
// We need to to pass a valid thread ID pointer into CreateThread for it
|
||||
// We need to pass a valid thread ID pointer into CreateThread for it
|
||||
// to work correctly under Win98.
|
||||
DWORD watcher_thread_id;
|
||||
HANDLE watcher_thread = ::CreateThread(
|
||||
|
@ -310,7 +310,8 @@ namespace internal {
|
||||
// than kMaxRange.
|
||||
UInt32 Random::Generate(UInt32 range) {
|
||||
// These constants are the same as are used in glibc's rand(3).
|
||||
state_ = (1103515245U*state_ + 12345U) % kMaxRange;
|
||||
// Use wider types than necessary to prevent unsigned overflow diagnostics.
|
||||
state_ = static_cast<UInt32>(1103515245ULL*state_ + 12345U) % kMaxRange;
|
||||
|
||||
GTEST_CHECK_(range > 0)
|
||||
<< "Cannot generate a number in the range [0, 0).";
|
||||
@ -1168,7 +1169,7 @@ class Hunk {
|
||||
// Print a unified diff header for one hunk.
|
||||
// The format is
|
||||
// "@@ -<left_start>,<left_length> +<right_start>,<right_length> @@"
|
||||
// where the left/right parts are ommitted if unnecessary.
|
||||
// where the left/right parts are omitted if unnecessary.
|
||||
void PrintHeader(std::ostream* ss) const {
|
||||
*ss << "@@ ";
|
||||
if (removes_) {
|
||||
@ -1781,7 +1782,7 @@ std::string CodePointToUtf8(UInt32 code_point) {
|
||||
return str;
|
||||
}
|
||||
|
||||
// The following two functions only make sense if the the system
|
||||
// The following two functions only make sense if the system
|
||||
// uses UTF-16 for wide string encoding. All supported systems
|
||||
// with 16 bit wchar_t (Windows, Cygwin, Symbian OS) do use UTF-16.
|
||||
|
||||
@ -5188,7 +5189,7 @@ static const char kColorEncodedHelpMessage[] =
|
||||
" @G--" GTEST_FLAG_PREFIX_ "output=xml@Y[@G:@YDIRECTORY_PATH@G"
|
||||
GTEST_PATH_SEP_ "@Y|@G:@YFILE_PATH]@D\n"
|
||||
" Generate an XML report in the given directory or with the given file\n"
|
||||
" name. @YFILE_PATH@D defaults to @Gtest_details.xml@D.\n"
|
||||
" name. @YFILE_PATH@D defaults to @Gtest_detail.xml@D.\n"
|
||||
#if GTEST_CAN_STREAM_RESULTS_
|
||||
" @G--" GTEST_FLAG_PREFIX_ "stream_result_to=@YHOST@G:@YPORT@D\n"
|
||||
" Stream test results to the given server.\n"
|
||||
|
@ -1209,7 +1209,7 @@ class DestructorTracker {
|
||||
: index_(GetNewIndex()) {}
|
||||
~DestructorTracker() {
|
||||
// We never access DestructorCall::List() concurrently, so we don't need
|
||||
// to protect this acccess with a mutex.
|
||||
// to protect this access with a mutex.
|
||||
DestructorCall::List()[index_]->ReportDestroyed();
|
||||
}
|
||||
|
||||
|
@ -245,7 +245,7 @@ class Subprocess:
|
||||
p = subprocess.Popen(command,
|
||||
stdout=subprocess.PIPE, stderr=stderr,
|
||||
cwd=working_dir, universal_newlines=True, env=env)
|
||||
# communicate returns a tuple with the file obect for the child's
|
||||
# communicate returns a tuple with the file object for the child's
|
||||
# output.
|
||||
self.output = p.communicate()[0]
|
||||
self._return_code = p.returncode
|
||||
|
@ -1388,7 +1388,7 @@ class TestResultTest : public Test {
|
||||
delete r2;
|
||||
}
|
||||
|
||||
// Helper that compares two two TestPartResults.
|
||||
// Helper that compares two TestPartResults.
|
||||
static void CompareTestPartResult(const TestPartResult& expected,
|
||||
const TestPartResult& actual) {
|
||||
EXPECT_EQ(expected.type(), actual.type());
|
||||
@ -3689,7 +3689,7 @@ TEST(AssertionTest, ASSERT_EQ) {
|
||||
TEST(AssertionTest, ASSERT_EQ_NULL) {
|
||||
// A success.
|
||||
const char* p = NULL;
|
||||
// Some older GCC versions may issue a spurious waring in this or the next
|
||||
// Some older GCC versions may issue a spurious warning in this or the next
|
||||
// assertion statement. This warning should not be suppressed with
|
||||
// static_cast since the test verifies the ability to use bare NULL as the
|
||||
// expected parameter to the macro.
|
||||
|
@ -105,7 +105,7 @@ class GTestXMLOutFilesTest(gtest_xml_test_utils.GTestXMLTestCase):
|
||||
|
||||
# TODO(wan@google.com): libtool causes the built test binary to be
|
||||
# named lt-gtest_xml_outfiles_test_ instead of
|
||||
# gtest_xml_outfiles_test_. To account for this possibillity, we
|
||||
# gtest_xml_outfiles_test_. To account for this possibility, we
|
||||
# allow both names in the following code. We should remove this
|
||||
# hack when Chandler Carruth's libtool replacement tool is ready.
|
||||
output_file_name1 = test_name + ".xml"
|
||||
|
@ -237,7 +237,7 @@ class GTestXMLOutputUnitTest(gtest_xml_test_utils.GTestXMLTestCase):
|
||||
'--shut_down_xml']
|
||||
p = gtest_test_utils.Subprocess(command)
|
||||
if p.terminated_by_signal:
|
||||
# p.signal is avalable only if p.terminated_by_signal is True.
|
||||
# p.signal is available only if p.terminated_by_signal is True.
|
||||
self.assertFalse(
|
||||
p.terminated_by_signal,
|
||||
'%s was killed by signal %d' % (GTEST_PROGRAM_NAME, p.signal))
|
||||
|
@ -42,7 +42,7 @@
|
||||
1. The AC_INIT macro will be contained within the first 1024 characters
|
||||
of configure.ac
|
||||
2. The version string will be 3 integers separated by periods and will be
|
||||
surrounded by squre brackets, "[" and "]" (e.g. [1.0.1]). The first
|
||||
surrounded by square brackets, "[" and "]" (e.g. [1.0.1]). The first
|
||||
segment represents the major version, the second represents the minor
|
||||
version and the third represents the fix version.
|
||||
3. No ")" character exists between the opening "(" and closing ")" of
|
||||
@ -68,7 +68,7 @@ config_file.close()
|
||||
|
||||
# Extract the version string from the AC_INIT macro
|
||||
# The following init_expression means:
|
||||
# Extract three integers separated by periods and surrounded by squre
|
||||
# Extract three integers separated by periods and surrounded by square
|
||||
# brackets(e.g. "[1.0.1]") between "AC_INIT(" and ")". Do not be greedy
|
||||
# (*? is the non-greedy flag) since that would pull in everything between
|
||||
# the first "(" and the last ")" in the file.
|
||||
@ -88,7 +88,7 @@ file_data = """//
|
||||
// is executed in a "Run Script" build phase when creating gtest.framework. This
|
||||
// header file is not used during compilation of C-source. Rather, it simply
|
||||
// defines some version strings for substitution in the Info.plist. Because of
|
||||
// this, we are not not restricted to C-syntax nor are we using include guards.
|
||||
// this, we are not restricted to C-syntax nor are we using include guards.
|
||||
//
|
||||
|
||||
#define GTEST_VERSIONINFO_SHORT %s.%s
|
||||
|
Loading…
x
Reference in New Issue
Block a user