113481Sgiacomo.travaglini@arm.com// Copyright 2007, Google Inc. 213481Sgiacomo.travaglini@arm.com// All rights reserved. 313481Sgiacomo.travaglini@arm.com// 413481Sgiacomo.travaglini@arm.com// Redistribution and use in source and binary forms, with or without 513481Sgiacomo.travaglini@arm.com// modification, are permitted provided that the following conditions are 613481Sgiacomo.travaglini@arm.com// met: 713481Sgiacomo.travaglini@arm.com// 813481Sgiacomo.travaglini@arm.com// * Redistributions of source code must retain the above copyright 913481Sgiacomo.travaglini@arm.com// notice, this list of conditions and the following disclaimer. 1013481Sgiacomo.travaglini@arm.com// * Redistributions in binary form must reproduce the above 1113481Sgiacomo.travaglini@arm.com// copyright notice, this list of conditions and the following disclaimer 1213481Sgiacomo.travaglini@arm.com// in the documentation and/or other materials provided with the 1313481Sgiacomo.travaglini@arm.com// distribution. 1413481Sgiacomo.travaglini@arm.com// * Neither the name of Google Inc. nor the names of its 1513481Sgiacomo.travaglini@arm.com// contributors may be used to endorse or promote products derived from 1613481Sgiacomo.travaglini@arm.com// this software without specific prior written permission. 1713481Sgiacomo.travaglini@arm.com// 1813481Sgiacomo.travaglini@arm.com// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1913481Sgiacomo.travaglini@arm.com// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2013481Sgiacomo.travaglini@arm.com// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2113481Sgiacomo.travaglini@arm.com// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2213481Sgiacomo.travaglini@arm.com// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2313481Sgiacomo.travaglini@arm.com// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2413481Sgiacomo.travaglini@arm.com// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2513481Sgiacomo.travaglini@arm.com// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2613481Sgiacomo.travaglini@arm.com// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2713481Sgiacomo.travaglini@arm.com// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2813481Sgiacomo.travaglini@arm.com// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2913481Sgiacomo.travaglini@arm.com// 3013481Sgiacomo.travaglini@arm.com// Author: wan@google.com (Zhanyong Wan) 3113481Sgiacomo.travaglini@arm.com 3213481Sgiacomo.travaglini@arm.com// Google Mock - a framework for writing C++ mock classes. 3313481Sgiacomo.travaglini@arm.com// 3413481Sgiacomo.travaglini@arm.com// This is the main header file a user should include. 3513481Sgiacomo.travaglini@arm.com 3613481Sgiacomo.travaglini@arm.com#ifndef GMOCK_INCLUDE_GMOCK_GMOCK_H_ 3713481Sgiacomo.travaglini@arm.com#define GMOCK_INCLUDE_GMOCK_GMOCK_H_ 3813481Sgiacomo.travaglini@arm.com 3913481Sgiacomo.travaglini@arm.com// This file implements the following syntax: 4013481Sgiacomo.travaglini@arm.com// 4113481Sgiacomo.travaglini@arm.com// ON_CALL(mock_object.Method(...)) 4213481Sgiacomo.travaglini@arm.com// .With(...) ? 4313481Sgiacomo.travaglini@arm.com// .WillByDefault(...); 4413481Sgiacomo.travaglini@arm.com// 4513481Sgiacomo.travaglini@arm.com// where With() is optional and WillByDefault() must appear exactly 4613481Sgiacomo.travaglini@arm.com// once. 4713481Sgiacomo.travaglini@arm.com// 4813481Sgiacomo.travaglini@arm.com// EXPECT_CALL(mock_object.Method(...)) 4913481Sgiacomo.travaglini@arm.com// .With(...) ? 5013481Sgiacomo.travaglini@arm.com// .Times(...) ? 5113481Sgiacomo.travaglini@arm.com// .InSequence(...) * 5213481Sgiacomo.travaglini@arm.com// .WillOnce(...) * 5313481Sgiacomo.travaglini@arm.com// .WillRepeatedly(...) ? 5413481Sgiacomo.travaglini@arm.com// .RetiresOnSaturation() ? ; 5513481Sgiacomo.travaglini@arm.com// 5613481Sgiacomo.travaglini@arm.com// where all clauses are optional and WillOnce() can be repeated. 5713481Sgiacomo.travaglini@arm.com 5813481Sgiacomo.travaglini@arm.com#include "gmock/gmock-actions.h" 5913481Sgiacomo.travaglini@arm.com#include "gmock/gmock-cardinalities.h" 6013481Sgiacomo.travaglini@arm.com#include "gmock/gmock-generated-actions.h" 6113481Sgiacomo.travaglini@arm.com#include "gmock/gmock-generated-function-mockers.h" 6213481Sgiacomo.travaglini@arm.com#include "gmock/gmock-generated-nice-strict.h" 6313481Sgiacomo.travaglini@arm.com#include "gmock/gmock-generated-matchers.h" 6413481Sgiacomo.travaglini@arm.com#include "gmock/gmock-matchers.h" 6513481Sgiacomo.travaglini@arm.com#include "gmock/gmock-more-actions.h" 6613481Sgiacomo.travaglini@arm.com#include "gmock/gmock-more-matchers.h" 6713481Sgiacomo.travaglini@arm.com#include "gmock/internal/gmock-internal-utils.h" 6813481Sgiacomo.travaglini@arm.com 6913481Sgiacomo.travaglini@arm.comnamespace testing { 7013481Sgiacomo.travaglini@arm.com 7113481Sgiacomo.travaglini@arm.com// Declares Google Mock flags that we want a user to use programmatically. 7213481Sgiacomo.travaglini@arm.comGMOCK_DECLARE_bool_(catch_leaked_mocks); 7313481Sgiacomo.travaglini@arm.comGMOCK_DECLARE_string_(verbose); 7413481Sgiacomo.travaglini@arm.com 7513481Sgiacomo.travaglini@arm.com// Initializes Google Mock. This must be called before running the 7613481Sgiacomo.travaglini@arm.com// tests. In particular, it parses the command line for the flags 7713481Sgiacomo.travaglini@arm.com// that Google Mock recognizes. Whenever a Google Mock flag is seen, 7813481Sgiacomo.travaglini@arm.com// it is removed from argv, and *argc is decremented. 7913481Sgiacomo.travaglini@arm.com// 8013481Sgiacomo.travaglini@arm.com// No value is returned. Instead, the Google Mock flag variables are 8113481Sgiacomo.travaglini@arm.com// updated. 8213481Sgiacomo.travaglini@arm.com// 8313481Sgiacomo.travaglini@arm.com// Since Google Test is needed for Google Mock to work, this function 8413481Sgiacomo.travaglini@arm.com// also initializes Google Test and parses its flags, if that hasn't 8513481Sgiacomo.travaglini@arm.com// been done. 8613481Sgiacomo.travaglini@arm.comGTEST_API_ void InitGoogleMock(int* argc, char** argv); 8713481Sgiacomo.travaglini@arm.com 8813481Sgiacomo.travaglini@arm.com// This overloaded version can be used in Windows programs compiled in 8913481Sgiacomo.travaglini@arm.com// UNICODE mode. 9013481Sgiacomo.travaglini@arm.comGTEST_API_ void InitGoogleMock(int* argc, wchar_t** argv); 9113481Sgiacomo.travaglini@arm.com 9213481Sgiacomo.travaglini@arm.com} // namespace testing 9313481Sgiacomo.travaglini@arm.com 9413481Sgiacomo.travaglini@arm.com#endif // GMOCK_INCLUDE_GMOCK_GMOCK_H_ 95