Index: testing/gmock/include/gmock/gmock-generated-function-mockers.h.pump |
diff --git a/testing/gmock/include/gmock/gmock-generated-function-mockers.h.pump b/testing/gmock/include/gmock/gmock-generated-function-mockers.h.pump |
deleted file mode 100644 |
index 20a445413fe00de58a85b7baafd08f2ea4775e45..0000000000000000000000000000000000000000 |
--- a/testing/gmock/include/gmock/gmock-generated-function-mockers.h.pump |
+++ /dev/null |
@@ -1,257 +0,0 @@ |
-$$ -*- mode: c++; -*- |
-$$ This is a Pump source file. Please use Pump to convert it to |
-$$ gmock-generated-function-mockers.h. |
-$$ |
-$var n = 10 $$ The maximum arity we support. |
-// Copyright 2007, Google Inc. |
-// All rights reserved. |
-// |
-// Redistribution and use in source and binary forms, with or without |
-// modification, are permitted provided that the following conditions are |
-// met: |
-// |
-// * Redistributions of source code must retain the above copyright |
-// notice, this list of conditions and the following disclaimer. |
-// * Redistributions in binary form must reproduce the above |
-// copyright notice, this list of conditions and the following disclaimer |
-// in the documentation and/or other materials provided with the |
-// distribution. |
-// * Neither the name of Google Inc. nor the names of its |
-// contributors may be used to endorse or promote products derived from |
-// this software without specific prior written permission. |
-// |
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
-// |
-// Author: wan@google.com (Zhanyong Wan) |
- |
-// Google Mock - a framework for writing C++ mock classes. |
-// |
-// This file implements function mockers of various arities. |
- |
-#ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_ |
-#define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_ |
- |
-#include <gmock/gmock-spec-builders.h> |
-#include <gmock/internal/gmock-internal-utils.h> |
- |
-namespace testing { |
-namespace internal { |
- |
-template <typename F> |
-class FunctionMockerBase; |
- |
-// Note: class FunctionMocker really belongs to the ::testing |
-// namespace. However if we define it in ::testing, MSVC will |
-// complain when classes in ::testing::internal declare it as a |
-// friend class template. To workaround this compiler bug, we define |
-// FunctionMocker in ::testing::internal and import it into ::testing. |
-template <typename F> |
-class FunctionMocker; |
- |
- |
-$range i 0..n |
-$for i [[ |
-$range j 1..i |
-$var typename_As = [[$for j [[, typename A$j]]]] |
-$var As = [[$for j, [[A$j]]]] |
-$var as = [[$for j, [[a$j]]]] |
-$var Aas = [[$for j, [[A$j a$j]]]] |
-$var ms = [[$for j, [[m$j]]]] |
-$var matchers = [[$for j, [[const Matcher<A$j>& m$j]]]] |
-template <typename R$typename_As> |
-class FunctionMocker<R($As)> : public |
- internal::FunctionMockerBase<R($As)> { |
- public: |
- typedef R F($As); |
- typedef typename internal::Function<F>::ArgumentTuple ArgumentTuple; |
- |
- MockSpec<F>& With($matchers) { |
- |
-$if i >= 1 [[ |
- this->current_spec().SetMatchers(::std::tr1::make_tuple($ms)); |
- |
-]] |
- return this->current_spec(); |
- } |
- |
- R Invoke($Aas) { |
- // Even though gcc and MSVC don't enforce it, 'this->' is required |
- // by the C++ standard [14.6.4] here, as the base class type is |
- // dependent on the template argument (and thus shouldn't be |
- // looked into when resolving InvokeWith). |
- return this->InvokeWith(ArgumentTuple($as)); |
- } |
-}; |
- |
- |
-]] |
-} // namespace internal |
- |
-// The style guide prohibits "using" statements in a namespace scope |
-// inside a header file. However, the FunctionMocker class template |
-// is meant to be defined in the ::testing namespace. The following |
-// line is just a trick for working around a bug in MSVC 8.0, which |
-// cannot handle it if we define FunctionMocker in ::testing. |
-using internal::FunctionMocker; |
- |
-// The result type of function type F. |
-// INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!! |
-#define GMOCK_RESULT_(tn, F) tn ::testing::internal::Function<F>::Result |
- |
-// The type of argument N of function type F. |
-// INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!! |
-#define GMOCK_ARG_(tn, F, N) tn ::testing::internal::Function<F>::Argument##N |
- |
-// The matcher type for argument N of function type F. |
-// INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!! |
-#define GMOCK_MATCHER_(tn, F, N) const ::testing::Matcher<GMOCK_ARG_(tn, F, N)>& |
- |
-// The variable for mocking the given method. |
-// INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!! |
-#define GMOCK_MOCKER_(arity, constness, Method) \ |
- GMOCK_CONCAT_TOKEN_(gmock##constness##arity##_##Method##_, __LINE__) |
- |
- |
-$for i [[ |
-$range j 1..i |
-$var arg_as = [[$for j, \ |
- [[GMOCK_ARG_(tn, F, $j) gmock_a$j]]]] |
-$var as = [[$for j, [[gmock_a$j]]]] |
-$var matcher_as = [[$for j, \ |
- [[GMOCK_MATCHER_(tn, F, $j) gmock_a$j]]]] |
-// INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!! |
-#define GMOCK_METHOD$i[[]]_(tn, constness, ct, Method, F) \ |
- GMOCK_RESULT_(tn, F) ct Method($arg_as) constness { \ |
- GTEST_COMPILE_ASSERT_(::std::tr1::tuple_size< \ |
- tn ::testing::internal::Function<F>::ArgumentTuple>::value == $i, \ |
- this_method_does_not_take_$i[[]]_argument[[$if i != 1 [[s]]]]); \ |
- GMOCK_MOCKER_($i, constness, Method).SetOwnerAndName(this, #Method); \ |
- return GMOCK_MOCKER_($i, constness, Method).Invoke($as); \ |
- } \ |
- ::testing::MockSpec<F>& \ |
- gmock_##Method($matcher_as) constness { \ |
- return GMOCK_MOCKER_($i, constness, Method).RegisterOwner(this).With($as); \ |
- } \ |
- mutable ::testing::FunctionMocker<F> GMOCK_MOCKER_($i, constness, Method) |
- |
- |
-]] |
-$for i [[ |
-#define MOCK_METHOD$i(m, F) GMOCK_METHOD$i[[]]_(, , , m, F) |
- |
-]] |
- |
- |
-$for i [[ |
-#define MOCK_CONST_METHOD$i(m, F) GMOCK_METHOD$i[[]]_(, const, , m, F) |
- |
-]] |
- |
- |
-$for i [[ |
-#define MOCK_METHOD$i[[]]_T(m, F) GMOCK_METHOD$i[[]]_(typename, , , m, F) |
- |
-]] |
- |
- |
-$for i [[ |
-#define MOCK_CONST_METHOD$i[[]]_T(m, F) [[]] |
-GMOCK_METHOD$i[[]]_(typename, const, , m, F) |
- |
-]] |
- |
- |
-$for i [[ |
-#define MOCK_METHOD$i[[]]_WITH_CALLTYPE(ct, m, F) [[]] |
-GMOCK_METHOD$i[[]]_(, , ct, m, F) |
- |
-]] |
- |
- |
-$for i [[ |
-#define MOCK_CONST_METHOD$i[[]]_WITH_CALLTYPE(ct, m, F) \ |
- GMOCK_METHOD$i[[]]_(, const, ct, m, F) |
- |
-]] |
- |
- |
-$for i [[ |
-#define MOCK_METHOD$i[[]]_T_WITH_CALLTYPE(ct, m, F) \ |
- GMOCK_METHOD$i[[]]_(typename, , ct, m, F) |
- |
-]] |
- |
- |
-$for i [[ |
-#define MOCK_CONST_METHOD$i[[]]_T_WITH_CALLTYPE(ct, m, F) \ |
- GMOCK_METHOD$i[[]]_(typename, const, ct, m, F) |
- |
-]] |
- |
-// A MockFunction<F> class has one mock method whose type is F. It is |
-// useful when you just want your test code to emit some messages and |
-// have Google Mock verify the right messages are sent (and perhaps at |
-// the right times). For example, if you are exercising code: |
-// |
-// Foo(1); |
-// Foo(2); |
-// Foo(3); |
-// |
-// and want to verify that Foo(1) and Foo(3) both invoke |
-// mock.Bar("a"), but Foo(2) doesn't invoke anything, you can write: |
-// |
-// TEST(FooTest, InvokesBarCorrectly) { |
-// MyMock mock; |
-// MockFunction<void(string check_point_name)> check; |
-// { |
-// InSequence s; |
-// |
-// EXPECT_CALL(mock, Bar("a")); |
-// EXPECT_CALL(check, Call("1")); |
-// EXPECT_CALL(check, Call("2")); |
-// EXPECT_CALL(mock, Bar("a")); |
-// } |
-// Foo(1); |
-// check.Call("1"); |
-// Foo(2); |
-// check.Call("2"); |
-// Foo(3); |
-// } |
-// |
-// The expectation spec says that the first Bar("a") must happen |
-// before check point "1", the second Bar("a") must happen after check |
-// point "2", and nothing should happen between the two check |
-// points. The explicit check points make it easy to tell which |
-// Bar("a") is called by which call to Foo(). |
-template <typename F> |
-class MockFunction; |
- |
- |
-$for i [[ |
-$range j 0..i-1 |
-template <typename R$for j [[, typename A$j]]> |
-class MockFunction<R($for j, [[A$j]])> { |
- public: |
- MockFunction() {} |
- |
- MOCK_METHOD$i[[]]_T(Call, R($for j, [[A$j]])); |
- |
- private: |
- GTEST_DISALLOW_COPY_AND_ASSIGN_(MockFunction); |
-}; |
- |
- |
-]] |
-} // namespace testing |
- |
-#endif // GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_ |