diff options
author | Gennadiy Civil <gennadiycivil@users.noreply.github.com> | 2018-08-16 10:39:40 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-16 10:39:40 -0400 |
commit | f3a9fa6a62a29746eba6c7092a2fada2fc1a5e90 (patch) | |
tree | 7d4dad554bf23bb5783b7aacf4dd0c8704c7754b /googlemock/include/gmock/gmock-more-matchers.h | |
parent | 6c093a2391eb66a42bd4146443265eddad06be0c (diff) | |
parent | 490554aa0f3618e1e5dd217f11fe0c3f188ed615 (diff) | |
download | googletest-f3a9fa6a62a29746eba6c7092a2fada2fc1a5e90.tar.gz googletest-f3a9fa6a62a29746eba6c7092a2fada2fc1a5e90.tar.bz2 googletest-f3a9fa6a62a29746eba6c7092a2fada2fc1a5e90.zip |
Merge branch 'master' into master
Diffstat (limited to 'googlemock/include/gmock/gmock-more-matchers.h')
-rw-r--r-- | googlemock/include/gmock/gmock-more-matchers.h | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/googlemock/include/gmock/gmock-more-matchers.h b/googlemock/include/gmock/gmock-more-matchers.h index 3db899f4..1c9a399a 100644 --- a/googlemock/include/gmock/gmock-more-matchers.h +++ b/googlemock/include/gmock/gmock-more-matchers.h @@ -26,8 +26,7 @@ // 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: marcus.boerger@google.com (Marcus Boerger) + // Google Mock - a framework for writing C++ mock classes. // @@ -36,13 +35,27 @@ // Note that tests are implemented in gmock-matchers_test.cc rather than // gmock-more-matchers-test.cc. -#ifndef GMOCK_GMOCK_MORE_MATCHERS_H_ -#define GMOCK_GMOCK_MORE_MATCHERS_H_ +// GOOGLETEST_CM0002 DO NOT DELETE + +#ifndef GMOCK_INCLUDE_GMOCK_MORE_MATCHERS_H_ +#define GMOCK_INCLUDE_GMOCK_MORE_MATCHERS_H_ #include "gmock/gmock-generated-matchers.h" namespace testing { +// Silence C4100 (unreferenced formal +// parameter) for MSVC +#ifdef _MSC_VER +# pragma warning(push) +# pragma warning(disable:4100) +#if (_MSC_VER == 1900) +// and silence C4800 (C4800: 'int *const ': forcing value +// to bool 'true' or 'false') for MSVC 14 +# pragma warning(disable:4800) + #endif +#endif + // Defines a matcher that matches an empty container. The container must // support both size() and empty(), which all STL-like containers provide. MATCHER(IsEmpty, negation ? "isn't empty" : "is empty") { @@ -53,6 +66,27 @@ MATCHER(IsEmpty, negation ? "isn't empty" : "is empty") { return false; } +// Define a matcher that matches a value that evaluates in boolean +// context to true. Useful for types that define "explicit operator +// bool" operators and so can't be compared for equality with true +// and false. +MATCHER(IsTrue, negation ? "is false" : "is true") { + return static_cast<bool>(arg); +} + +// Define a matcher that matches a value that evaluates in boolean +// context to false. Useful for types that define "explicit operator +// bool" operators and so can't be compared for equality with true +// and false. +MATCHER(IsFalse, negation ? "is true" : "is false") { + return !static_cast<bool>(arg); +} + +#ifdef _MSC_VER +# pragma warning(pop) +#endif + + } // namespace testing -#endif // GMOCK_GMOCK_MORE_MATCHERS_H_ +#endif // GMOCK_INCLUDE_GMOCK_MORE_MATCHERS_H_ |