1aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Copyright 2006, Google Inc. 2aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// All rights reserved. 3aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// 4aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Redistribution and use in source and binary forms, with or without 5aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// modification, are permitted provided that the following conditions are 6aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// met: 7aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// 8aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// * Redistributions of source code must retain the above copyright 9aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// notice, this list of conditions and the following disclaimer. 10aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// * Redistributions in binary form must reproduce the above 11aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// copyright notice, this list of conditions and the following disclaimer 12aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// in the documentation and/or other materials provided with the 13aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// distribution. 14aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// * Neither the name of Google Inc. nor the names of its 15aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// contributors may be used to endorse or promote products derived from 16aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// this software without specific prior written permission. 17aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// 18aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 30aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// This file is AUTOMATICALLY GENERATED on 10/31/2011 by command 31aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// 'gen_gtest_pred_impl.py 5'. DO NOT EDIT BY HAND! 32aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 33aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Regression test for gtest_pred_impl.h 34aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// 35aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// This file is generated by a script and quite long. If you intend to 36aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// learn how Google Test works by reading its unit tests, read 37aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// gtest_unittest.cc instead. 38aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// 39aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// This is intended as a regression test for the Google Test predicate 40aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// assertions. We compile it as part of the gtest_unittest target 41aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// only to keep the implementation tidy and compact, as it is quite 42aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// involved to set up the stage for testing Google Test using Google 43aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Test itself. 44aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// 45aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Currently, gtest_unittest takes ~11 seconds to run in the testing 46aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// daemon. In the future, if it grows too large and needs much more 47aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// time to finish, we should consider separating this file into a 48aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// stand-alone regression test. 49aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 50aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter#include <iostream> 51aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 52aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter#include "gtest/gtest.h" 53aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter#include "gtest/gtest-spi.h" 54aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 55aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A user-defined data type. 56aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstruct Bool { 57aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter explicit Bool(int val) : value(val != 0) {} 58aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 59aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter bool operator>(int n) const { return value > Bool(n).value; } 60aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 61aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool operator+(const Bool& rhs) const { return Bool(value + rhs.value); } 62aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 63aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter bool operator==(const Bool& rhs) const { return value == rhs.value; } 64aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 65aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter bool value; 66aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 67aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 68aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Enables Bool to be used in assertions. 69aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstd::ostream& operator<<(std::ostream& os, const Bool& x) { 70aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return os << (x.value ? "true" : "false"); 71aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 72aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 73aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Sample functions/functors for testing unary predicate assertions. 74aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 75aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A unary predicate function. 76aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertemplate <typename T1> 77aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction1(T1 v1) { 78aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 > 0; 79aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 80aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 81aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// The following two functions are needed to circumvent a bug in 82aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// gcc 2.95.3, which sometimes has problem with the above template 83aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// function. 84aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction1Int(int v1) { 85aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 > 0; 86aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 87aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction1Bool(Bool v1) { 88aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 > 0; 89aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 90aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 91aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A unary predicate functor. 92aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstruct PredFunctor1 { 93aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter template <typename T1> 94aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter bool operator()(const T1& v1) { 95aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 > 0; 96aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 97aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 98aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 99aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A unary predicate-formatter function. 100aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertemplate <typename T1> 101aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertesting::AssertionResult PredFormatFunction1(const char* e1, 102aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T1& v1) { 103aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter if (PredFunction1(v1)) 104aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return testing::AssertionSuccess(); 105aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 106aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return testing::AssertionFailure() 107aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << e1 108aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << " is expected to be positive, but evaluates to " 109aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << v1 << "."; 110aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 111aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 112aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A unary predicate-formatter functor. 113aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstruct PredFormatFunctor1 { 114aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter template <typename T1> 115aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter testing::AssertionResult operator()(const char* e1, 116aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T1& v1) const { 117aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return PredFormatFunction1(e1, v1); 118aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 119aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 120aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 121aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests for {EXPECT|ASSERT}_PRED_FORMAT1. 122aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 123aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterclass Predicate1Test : public testing::Test { 124aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter protected: 125aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter virtual void SetUp() { 126aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = true; 127aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = false; 128aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_ = 0; 129aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 130aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 131aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter virtual void TearDown() { 132aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // Verifies that each of the predicate's arguments was evaluated 133aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // exactly once. 134aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n1_) << 135aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 2 " 136aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 137aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 138aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // Verifies that the control flow in the test function is expected. 139aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter if (expected_to_finish_ && !finished_) { 140aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter FAIL() << "The predicate assertion unexpactedly aborted the test."; 141aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } else if (!expected_to_finish_ && finished_) { 142aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter FAIL() << "The failed predicate assertion didn't abort the test " 143aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "as expected."; 144aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 145aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 146aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 147aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // true iff the test function is expected to run to finish. 148aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static bool expected_to_finish_; 149aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 150aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // true iff the test function did run to finish. 151aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static bool finished_; 152aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 153aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n1_; 154aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 155aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 156aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool Predicate1Test::expected_to_finish_; 157aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool Predicate1Test::finished_; 158aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate1Test::n1_; 159aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 160aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate1Test EXPECT_PRED_FORMAT1Test; 161aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate1Test ASSERT_PRED_FORMAT1Test; 162aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate1Test EXPECT_PRED1Test; 163aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate1Test ASSERT_PRED1Test; 164aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 165aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED1 where the 166aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 167aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED1Test, FunctionOnBuiltInTypeSuccess) { 168aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED1(PredFunction1Int, 169aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_); 170aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 171aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 172aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 173aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED1 where the 174aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 175aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED1Test, FunctionOnUserTypeSuccess) { 176aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED1(PredFunction1Bool, 177aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_)); 178aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 179aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 180aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 181aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED1 where the 182aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 183aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED1Test, FunctorOnBuiltInTypeSuccess) { 184aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED1(PredFunctor1(), 185aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_); 186aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 187aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 188aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 189aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED1 where the 190aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 191aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED1Test, FunctorOnUserTypeSuccess) { 192aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED1(PredFunctor1(), 193aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_)); 194aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 195aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 196aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 197aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED1 where the 198aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 199aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED1Test, FunctionOnBuiltInTypeFailure) { 200aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 201aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED1(PredFunction1Int, 202aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++); 203aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 204aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 205aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 206aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 207aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED1 where the 208aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 209aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED1Test, FunctionOnUserTypeFailure) { 210aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 211aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED1(PredFunction1Bool, 212aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++)); 213aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 214aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 215aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 216aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 217aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED1 where the 218aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 219aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED1Test, FunctorOnBuiltInTypeFailure) { 220aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 221aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED1(PredFunctor1(), 222aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++); 223aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 224aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 225aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 226aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 227aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED1 where the 228aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 229aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED1Test, FunctorOnUserTypeFailure) { 230aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 231aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED1(PredFunctor1(), 232aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++)); 233aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 234aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 235aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 236aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 237aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED1 where the 238aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 239aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED1Test, FunctionOnBuiltInTypeSuccess) { 240aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED1(PredFunction1Int, 241aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_); 242aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 243aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 244aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 245aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED1 where the 246aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 247aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED1Test, FunctionOnUserTypeSuccess) { 248aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED1(PredFunction1Bool, 249aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_)); 250aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 251aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 252aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 253aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED1 where the 254aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 255aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED1Test, FunctorOnBuiltInTypeSuccess) { 256aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED1(PredFunctor1(), 257aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_); 258aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 259aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 260aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 261aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED1 where the 262aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 263aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED1Test, FunctorOnUserTypeSuccess) { 264aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED1(PredFunctor1(), 265aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_)); 266aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 267aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 268aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 269aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED1 where the 270aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 271aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED1Test, FunctionOnBuiltInTypeFailure) { 272aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 273aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 274aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED1(PredFunction1Int, 275aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++); 276aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 277aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 278aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 279aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 280aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED1 where the 281aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 282aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED1Test, FunctionOnUserTypeFailure) { 283aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 284aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 285aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED1(PredFunction1Bool, 286aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++)); 287aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 288aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 289aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 290aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 291aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED1 where the 292aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 293aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED1Test, FunctorOnBuiltInTypeFailure) { 294aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 295aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 296aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED1(PredFunctor1(), 297aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++); 298aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 299aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 300aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 301aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 302aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED1 where the 303aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 304aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED1Test, FunctorOnUserTypeFailure) { 305aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 306aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 307aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED1(PredFunctor1(), 308aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++)); 309aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 310aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 311aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 312aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 313aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT1 where the 314aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 315aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnBuiltInTypeSuccess) { 316aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT1(PredFormatFunction1, 317aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_); 318aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 319aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 320aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 321aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT1 where the 322aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 323aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnUserTypeSuccess) { 324aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT1(PredFormatFunction1, 325aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_)); 326aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 327aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 328aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 329aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT1 where the 330aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 331aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnBuiltInTypeSuccess) { 332aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT1(PredFormatFunctor1(), 333aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_); 334aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 335aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 336aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 337aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT1 where the 338aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 339aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnUserTypeSuccess) { 340aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT1(PredFormatFunctor1(), 341aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_)); 342aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 343aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 344aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 345aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT1 where the 346aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 347aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnBuiltInTypeFailure) { 348aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 349aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT1(PredFormatFunction1, 350aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++); 351aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 352aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 353aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 354aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 355aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT1 where the 356aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 357aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT1Test, FunctionOnUserTypeFailure) { 358aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 359aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT1(PredFormatFunction1, 360aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++)); 361aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 362aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 363aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 364aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 365aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT1 where the 366aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 367aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnBuiltInTypeFailure) { 368aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 369aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT1(PredFormatFunctor1(), 370aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++); 371aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 372aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 373aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 374aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 375aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT1 where the 376aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 377aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT1Test, FunctorOnUserTypeFailure) { 378aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 379aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT1(PredFormatFunctor1(), 380aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++)); 381aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 382aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 383aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 384aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 385aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT1 where the 386aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 387aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnBuiltInTypeSuccess) { 388aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT1(PredFormatFunction1, 389aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_); 390aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 391aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 392aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 393aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT1 where the 394aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 395aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnUserTypeSuccess) { 396aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT1(PredFormatFunction1, 397aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_)); 398aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 399aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 400aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 401aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT1 where the 402aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 403aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnBuiltInTypeSuccess) { 404aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT1(PredFormatFunctor1(), 405aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_); 406aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 407aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 408aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 409aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT1 where the 410aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 411aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnUserTypeSuccess) { 412aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT1(PredFormatFunctor1(), 413aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_)); 414aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 415aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 416aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 417aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT1 where the 418aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 419aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnBuiltInTypeFailure) { 420aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 421aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 422aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT1(PredFormatFunction1, 423aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++); 424aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 425aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 426aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 427aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 428aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT1 where the 429aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 430aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT1Test, FunctionOnUserTypeFailure) { 431aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 432aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 433aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT1(PredFormatFunction1, 434aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++)); 435aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 436aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 437aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 438aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 439aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT1 where the 440aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 441aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnBuiltInTypeFailure) { 442aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 443aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 444aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT1(PredFormatFunctor1(), 445aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++); 446aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 447aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 448aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 449aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 450aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT1 where the 451aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 452aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT1Test, FunctorOnUserTypeFailure) { 453aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 454aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 455aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT1(PredFormatFunctor1(), 456aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++)); 457aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 458aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 459aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 460aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Sample functions/functors for testing binary predicate assertions. 461aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 462aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A binary predicate function. 463aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertemplate <typename T1, typename T2> 464aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction2(T1 v1, T2 v2) { 465aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 > 0; 466aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 467aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 468aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// The following two functions are needed to circumvent a bug in 469aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// gcc 2.95.3, which sometimes has problem with the above template 470aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// function. 471aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction2Int(int v1, int v2) { 472aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 > 0; 473aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 474aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction2Bool(Bool v1, Bool v2) { 475aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 > 0; 476aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 477aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 478aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A binary predicate functor. 479aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstruct PredFunctor2 { 480aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter template <typename T1, typename T2> 481aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter bool operator()(const T1& v1, 482aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2) { 483aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 > 0; 484aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 485aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 486aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 487aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A binary predicate-formatter function. 488aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertemplate <typename T1, typename T2> 489aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertesting::AssertionResult PredFormatFunction2(const char* e1, 490aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e2, 491aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T1& v1, 492aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2) { 493aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter if (PredFunction2(v1, v2)) 494aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return testing::AssertionSuccess(); 495aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 496aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return testing::AssertionFailure() 497aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << e1 << " + " << e2 498aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << " is expected to be positive, but evaluates to " 499aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << v1 + v2 << "."; 500aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 501aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 502aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A binary predicate-formatter functor. 503aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstruct PredFormatFunctor2 { 504aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter template <typename T1, typename T2> 505aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter testing::AssertionResult operator()(const char* e1, 506aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e2, 507aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T1& v1, 508aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2) const { 509aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return PredFormatFunction2(e1, e2, v1, v2); 510aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 511aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 512aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 513aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests for {EXPECT|ASSERT}_PRED_FORMAT2. 514aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 515aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterclass Predicate2Test : public testing::Test { 516aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter protected: 517aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter virtual void SetUp() { 518aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = true; 519aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = false; 520aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_ = n2_ = 0; 521aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 522aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 523aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter virtual void TearDown() { 524aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // Verifies that each of the predicate's arguments was evaluated 525aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // exactly once. 526aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n1_) << 527aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 2 " 528aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 529aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n2_) << 530aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 3 " 531aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 532aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 533aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // Verifies that the control flow in the test function is expected. 534aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter if (expected_to_finish_ && !finished_) { 535aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter FAIL() << "The predicate assertion unexpactedly aborted the test."; 536aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } else if (!expected_to_finish_ && finished_) { 537aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter FAIL() << "The failed predicate assertion didn't abort the test " 538aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "as expected."; 539aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 540aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 541aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 542aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // true iff the test function is expected to run to finish. 543aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static bool expected_to_finish_; 544aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 545aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // true iff the test function did run to finish. 546aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static bool finished_; 547aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 548aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n1_; 549aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n2_; 550aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 551aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 552aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool Predicate2Test::expected_to_finish_; 553aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool Predicate2Test::finished_; 554aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate2Test::n1_; 555aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate2Test::n2_; 556aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 557aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate2Test EXPECT_PRED_FORMAT2Test; 558aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate2Test ASSERT_PRED_FORMAT2Test; 559aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate2Test EXPECT_PRED2Test; 560aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate2Test ASSERT_PRED2Test; 561aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 562aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED2 where the 563aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 564aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED2Test, FunctionOnBuiltInTypeSuccess) { 565aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED2(PredFunction2Int, 566aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 567aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_); 568aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 569aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 570aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 571aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED2 where the 572aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 573aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED2Test, FunctionOnUserTypeSuccess) { 574aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED2(PredFunction2Bool, 575aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 576aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_)); 577aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 578aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 579aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 580aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED2 where the 581aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 582aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED2Test, FunctorOnBuiltInTypeSuccess) { 583aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED2(PredFunctor2(), 584aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 585aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_); 586aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 587aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 588aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 589aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED2 where the 590aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 591aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED2Test, FunctorOnUserTypeSuccess) { 592aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED2(PredFunctor2(), 593aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 594aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_)); 595aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 596aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 597aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 598aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED2 where the 599aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 600aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED2Test, FunctionOnBuiltInTypeFailure) { 601aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 602aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED2(PredFunction2Int, 603aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 604aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++); 605aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 606aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 607aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 608aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 609aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED2 where the 610aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 611aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED2Test, FunctionOnUserTypeFailure) { 612aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 613aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED2(PredFunction2Bool, 614aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 615aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++)); 616aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 617aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 618aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 619aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 620aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED2 where the 621aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 622aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED2Test, FunctorOnBuiltInTypeFailure) { 623aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 624aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED2(PredFunctor2(), 625aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 626aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++); 627aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 628aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 629aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 630aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 631aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED2 where the 632aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 633aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED2Test, FunctorOnUserTypeFailure) { 634aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 635aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED2(PredFunctor2(), 636aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 637aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++)); 638aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 639aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 640aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 641aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 642aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED2 where the 643aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 644aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED2Test, FunctionOnBuiltInTypeSuccess) { 645aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED2(PredFunction2Int, 646aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 647aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_); 648aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 649aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 650aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 651aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED2 where the 652aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 653aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED2Test, FunctionOnUserTypeSuccess) { 654aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED2(PredFunction2Bool, 655aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 656aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_)); 657aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 658aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 659aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 660aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED2 where the 661aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 662aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED2Test, FunctorOnBuiltInTypeSuccess) { 663aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED2(PredFunctor2(), 664aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 665aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_); 666aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 667aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 668aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 669aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED2 where the 670aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 671aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED2Test, FunctorOnUserTypeSuccess) { 672aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED2(PredFunctor2(), 673aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 674aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_)); 675aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 676aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 677aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 678aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED2 where the 679aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 680aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED2Test, FunctionOnBuiltInTypeFailure) { 681aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 682aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 683aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED2(PredFunction2Int, 684aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 685aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++); 686aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 687aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 688aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 689aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 690aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED2 where the 691aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 692aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED2Test, FunctionOnUserTypeFailure) { 693aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 694aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 695aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED2(PredFunction2Bool, 696aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 697aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++)); 698aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 699aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 700aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 701aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 702aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED2 where the 703aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 704aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED2Test, FunctorOnBuiltInTypeFailure) { 705aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 706aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 707aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED2(PredFunctor2(), 708aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 709aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++); 710aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 711aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 712aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 713aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 714aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED2 where the 715aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 716aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED2Test, FunctorOnUserTypeFailure) { 717aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 718aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 719aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED2(PredFunctor2(), 720aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 721aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++)); 722aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 723aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 724aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 725aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 726aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT2 where the 727aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 728aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnBuiltInTypeSuccess) { 729aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT2(PredFormatFunction2, 730aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 731aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_); 732aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 733aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 734aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 735aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT2 where the 736aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 737aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnUserTypeSuccess) { 738aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT2(PredFormatFunction2, 739aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 740aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_)); 741aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 742aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 743aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 744aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT2 where the 745aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 746aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnBuiltInTypeSuccess) { 747aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT2(PredFormatFunctor2(), 748aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 749aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_); 750aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 751aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 752aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 753aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT2 where the 754aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 755aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) { 756aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT2(PredFormatFunctor2(), 757aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 758aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_)); 759aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 760aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 761aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 762aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT2 where the 763aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 764aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnBuiltInTypeFailure) { 765aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 766aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT2(PredFormatFunction2, 767aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 768aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++); 769aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 770aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 771aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 772aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 773aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT2 where the 774aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 775aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnUserTypeFailure) { 776aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 777aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT2(PredFormatFunction2, 778aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 779aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++)); 780aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 781aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 782aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 783aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 784aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT2 where the 785aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 786aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnBuiltInTypeFailure) { 787aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 788aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT2(PredFormatFunctor2(), 789aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 790aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++); 791aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 792aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 793aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 794aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 795aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT2 where the 796aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 797aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnUserTypeFailure) { 798aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 799aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT2(PredFormatFunctor2(), 800aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 801aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++)); 802aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 803aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 804aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 805aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 806aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT2 where the 807aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 808aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnBuiltInTypeSuccess) { 809aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT2(PredFormatFunction2, 810aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 811aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_); 812aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 813aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 814aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 815aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT2 where the 816aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 817aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnUserTypeSuccess) { 818aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT2(PredFormatFunction2, 819aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 820aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_)); 821aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 822aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 823aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 824aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT2 where the 825aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 826aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnBuiltInTypeSuccess) { 827aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT2(PredFormatFunctor2(), 828aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 829aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_); 830aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 831aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 832aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 833aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT2 where the 834aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 835aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) { 836aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT2(PredFormatFunctor2(), 837aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 838aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_)); 839aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 840aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 841aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 842aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT2 where the 843aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 844aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnBuiltInTypeFailure) { 845aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 846aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 847aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT2(PredFormatFunction2, 848aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 849aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++); 850aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 851aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 852aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 853aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 854aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT2 where the 855aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 856aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnUserTypeFailure) { 857aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 858aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 859aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT2(PredFormatFunction2, 860aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 861aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++)); 862aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 863aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 864aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 865aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 866aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT2 where the 867aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 868aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnBuiltInTypeFailure) { 869aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 870aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 871aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT2(PredFormatFunctor2(), 872aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 873aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++); 874aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 875aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 876aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 877aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 878aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT2 where the 879aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 880aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeFailure) { 881aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 882aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 883aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT2(PredFormatFunctor2(), 884aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 885aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++)); 886aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 887aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 888aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 889aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Sample functions/functors for testing ternary predicate assertions. 890aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 891aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A ternary predicate function. 892aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertemplate <typename T1, typename T2, typename T3> 893aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction3(T1 v1, T2 v2, T3 v3) { 894aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 > 0; 895aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 896aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 897aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// The following two functions are needed to circumvent a bug in 898aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// gcc 2.95.3, which sometimes has problem with the above template 899aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// function. 900aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction3Int(int v1, int v2, int v3) { 901aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 > 0; 902aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 903aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction3Bool(Bool v1, Bool v2, Bool v3) { 904aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 > 0; 905aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 906aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 907aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A ternary predicate functor. 908aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstruct PredFunctor3 { 909aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter template <typename T1, typename T2, typename T3> 910aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter bool operator()(const T1& v1, 911aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2, 912aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T3& v3) { 913aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 > 0; 914aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 915aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 916aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 917aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A ternary predicate-formatter function. 918aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertemplate <typename T1, typename T2, typename T3> 919aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertesting::AssertionResult PredFormatFunction3(const char* e1, 920aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e2, 921aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e3, 922aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T1& v1, 923aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2, 924aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T3& v3) { 925aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter if (PredFunction3(v1, v2, v3)) 926aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return testing::AssertionSuccess(); 927aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 928aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return testing::AssertionFailure() 929aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << e1 << " + " << e2 << " + " << e3 930aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << " is expected to be positive, but evaluates to " 931aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << v1 + v2 + v3 << "."; 932aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 933aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 934aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A ternary predicate-formatter functor. 935aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstruct PredFormatFunctor3 { 936aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter template <typename T1, typename T2, typename T3> 937aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter testing::AssertionResult operator()(const char* e1, 938aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e2, 939aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e3, 940aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T1& v1, 941aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2, 942aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T3& v3) const { 943aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return PredFormatFunction3(e1, e2, e3, v1, v2, v3); 944aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 945aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 946aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 947aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests for {EXPECT|ASSERT}_PRED_FORMAT3. 948aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 949aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterclass Predicate3Test : public testing::Test { 950aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter protected: 951aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter virtual void SetUp() { 952aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = true; 953aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = false; 954aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_ = n2_ = n3_ = 0; 955aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 956aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 957aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter virtual void TearDown() { 958aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // Verifies that each of the predicate's arguments was evaluated 959aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // exactly once. 960aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n1_) << 961aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 2 " 962aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 963aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n2_) << 964aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 3 " 965aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 966aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n3_) << 967aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 4 " 968aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 969aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 970aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // Verifies that the control flow in the test function is expected. 971aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter if (expected_to_finish_ && !finished_) { 972aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter FAIL() << "The predicate assertion unexpactedly aborted the test."; 973aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } else if (!expected_to_finish_ && finished_) { 974aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter FAIL() << "The failed predicate assertion didn't abort the test " 975aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "as expected."; 976aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 977aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 978aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 979aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // true iff the test function is expected to run to finish. 980aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static bool expected_to_finish_; 981aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 982aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // true iff the test function did run to finish. 983aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static bool finished_; 984aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 985aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n1_; 986aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n2_; 987aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n3_; 988aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 989aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 990aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool Predicate3Test::expected_to_finish_; 991aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool Predicate3Test::finished_; 992aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate3Test::n1_; 993aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate3Test::n2_; 994aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate3Test::n3_; 995aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 996aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate3Test EXPECT_PRED_FORMAT3Test; 997aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate3Test ASSERT_PRED_FORMAT3Test; 998aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate3Test EXPECT_PRED3Test; 999aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate3Test ASSERT_PRED3Test; 1000aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1001aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED3 where the 1002aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1003aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED3Test, FunctionOnBuiltInTypeSuccess) { 1004aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED3(PredFunction3Int, 1005aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1006aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1007aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_); 1008aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1009aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1010aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1011aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED3 where the 1012aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1013aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED3Test, FunctionOnUserTypeSuccess) { 1014aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED3(PredFunction3Bool, 1015aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1016aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1017aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_)); 1018aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1019aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1020aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1021aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED3 where the 1022aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1023aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED3Test, FunctorOnBuiltInTypeSuccess) { 1024aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED3(PredFunctor3(), 1025aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1026aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1027aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_); 1028aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1029aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1030aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1031aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED3 where the 1032aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1033aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED3Test, FunctorOnUserTypeSuccess) { 1034aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED3(PredFunctor3(), 1035aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1036aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1037aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_)); 1038aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1039aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1040aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1041aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED3 where the 1042aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1043aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED3Test, FunctionOnBuiltInTypeFailure) { 1044aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1045aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED3(PredFunction3Int, 1046aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1047aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1048aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++); 1049aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1050aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1051aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1052aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1053aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED3 where the 1054aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1055aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED3Test, FunctionOnUserTypeFailure) { 1056aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1057aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED3(PredFunction3Bool, 1058aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1059aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1060aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++)); 1061aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1062aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1063aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1064aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1065aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED3 where the 1066aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1067aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED3Test, FunctorOnBuiltInTypeFailure) { 1068aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1069aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED3(PredFunctor3(), 1070aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1071aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1072aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++); 1073aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1074aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1075aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1076aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1077aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED3 where the 1078aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1079aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED3Test, FunctorOnUserTypeFailure) { 1080aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1081aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED3(PredFunctor3(), 1082aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1083aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1084aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++)); 1085aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1086aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1087aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1088aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1089aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED3 where the 1090aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1091aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED3Test, FunctionOnBuiltInTypeSuccess) { 1092aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED3(PredFunction3Int, 1093aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1094aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1095aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_); 1096aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1097aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1098aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1099aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED3 where the 1100aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1101aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED3Test, FunctionOnUserTypeSuccess) { 1102aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED3(PredFunction3Bool, 1103aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1104aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1105aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_)); 1106aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1107aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1108aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1109aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED3 where the 1110aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1111aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED3Test, FunctorOnBuiltInTypeSuccess) { 1112aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED3(PredFunctor3(), 1113aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1114aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1115aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_); 1116aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1117aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1118aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1119aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED3 where the 1120aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1121aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED3Test, FunctorOnUserTypeSuccess) { 1122aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED3(PredFunctor3(), 1123aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1124aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1125aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_)); 1126aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1127aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1128aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1129aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED3 where the 1130aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1131aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED3Test, FunctionOnBuiltInTypeFailure) { 1132aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1133aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1134aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED3(PredFunction3Int, 1135aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1136aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1137aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++); 1138aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1139aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1140aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1141aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1142aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED3 where the 1143aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1144aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED3Test, FunctionOnUserTypeFailure) { 1145aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1146aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1147aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED3(PredFunction3Bool, 1148aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1149aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1150aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++)); 1151aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1152aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1153aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1154aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1155aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED3 where the 1156aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1157aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED3Test, FunctorOnBuiltInTypeFailure) { 1158aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1159aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1160aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED3(PredFunctor3(), 1161aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1162aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1163aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++); 1164aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1165aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1166aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1167aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1168aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED3 where the 1169aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1170aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED3Test, FunctorOnUserTypeFailure) { 1171aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1172aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1173aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED3(PredFunctor3(), 1174aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1175aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1176aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++)); 1177aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1178aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1179aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1180aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1181aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT3 where the 1182aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1183aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnBuiltInTypeSuccess) { 1184aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT3(PredFormatFunction3, 1185aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1186aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1187aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_); 1188aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1189aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1190aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1191aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT3 where the 1192aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1193aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) { 1194aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT3(PredFormatFunction3, 1195aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1196aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1197aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_)); 1198aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1199aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1200aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1201aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT3 where the 1202aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1203aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnBuiltInTypeSuccess) { 1204aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT3(PredFormatFunctor3(), 1205aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1206aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1207aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_); 1208aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1209aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1210aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1211aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT3 where the 1212aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1213aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) { 1214aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT3(PredFormatFunctor3(), 1215aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1216aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1217aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_)); 1218aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1219aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1220aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1221aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT3 where the 1222aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1223aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnBuiltInTypeFailure) { 1224aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1225aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT3(PredFormatFunction3, 1226aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1227aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1228aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++); 1229aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1230aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1231aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1232aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1233aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT3 where the 1234aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1235aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeFailure) { 1236aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1237aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT3(PredFormatFunction3, 1238aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1239aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1240aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++)); 1241aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1242aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1243aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1244aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1245aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT3 where the 1246aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1247aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnBuiltInTypeFailure) { 1248aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1249aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT3(PredFormatFunctor3(), 1250aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1251aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1252aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++); 1253aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1254aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1255aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1256aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1257aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT3 where the 1258aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1259aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeFailure) { 1260aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1261aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT3(PredFormatFunctor3(), 1262aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1263aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1264aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++)); 1265aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1266aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1267aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1268aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1269aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT3 where the 1270aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1271aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnBuiltInTypeSuccess) { 1272aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT3(PredFormatFunction3, 1273aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1274aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1275aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_); 1276aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1277aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1278aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1279aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT3 where the 1280aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1281aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) { 1282aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT3(PredFormatFunction3, 1283aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1284aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1285aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_)); 1286aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1287aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1288aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1289aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT3 where the 1290aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1291aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnBuiltInTypeSuccess) { 1292aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT3(PredFormatFunctor3(), 1293aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1294aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1295aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_); 1296aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1297aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1298aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1299aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT3 where the 1300aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1301aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) { 1302aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT3(PredFormatFunctor3(), 1303aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1304aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1305aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_)); 1306aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1307aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1308aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1309aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT3 where the 1310aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1311aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnBuiltInTypeFailure) { 1312aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1313aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1314aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT3(PredFormatFunction3, 1315aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1316aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1317aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++); 1318aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1319aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1320aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1321aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1322aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT3 where the 1323aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1324aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeFailure) { 1325aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1326aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1327aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT3(PredFormatFunction3, 1328aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1329aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1330aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++)); 1331aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1332aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1333aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1334aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1335aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT3 where the 1336aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1337aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnBuiltInTypeFailure) { 1338aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1339aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1340aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT3(PredFormatFunctor3(), 1341aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1342aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1343aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++); 1344aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1345aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1346aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1347aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1348aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT3 where the 1349aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1350aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeFailure) { 1351aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1352aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1353aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT3(PredFormatFunctor3(), 1354aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1355aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1356aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++)); 1357aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1358aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1359aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1360aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Sample functions/functors for testing 4-ary predicate assertions. 1361aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1362aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A 4-ary predicate function. 1363aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertemplate <typename T1, typename T2, typename T3, typename T4> 1364aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction4(T1 v1, T2 v2, T3 v3, T4 v4) { 1365aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 + v4 > 0; 1366aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1367aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1368aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// The following two functions are needed to circumvent a bug in 1369aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// gcc 2.95.3, which sometimes has problem with the above template 1370aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// function. 1371aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction4Int(int v1, int v2, int v3, int v4) { 1372aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 + v4 > 0; 1373aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1374aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction4Bool(Bool v1, Bool v2, Bool v3, Bool v4) { 1375aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 + v4 > 0; 1376aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1377aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1378aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A 4-ary predicate functor. 1379aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstruct PredFunctor4 { 1380aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter template <typename T1, typename T2, typename T3, typename T4> 1381aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter bool operator()(const T1& v1, 1382aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2, 1383aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T3& v3, 1384aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T4& v4) { 1385aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 + v4 > 0; 1386aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 1387aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 1388aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1389aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A 4-ary predicate-formatter function. 1390aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertemplate <typename T1, typename T2, typename T3, typename T4> 1391aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertesting::AssertionResult PredFormatFunction4(const char* e1, 1392aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e2, 1393aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e3, 1394aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e4, 1395aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T1& v1, 1396aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2, 1397aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T3& v3, 1398aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T4& v4) { 1399aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter if (PredFunction4(v1, v2, v3, v4)) 1400aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return testing::AssertionSuccess(); 1401aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1402aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return testing::AssertionFailure() 1403aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << e1 << " + " << e2 << " + " << e3 << " + " << e4 1404aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << " is expected to be positive, but evaluates to " 1405aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << v1 + v2 + v3 + v4 << "."; 1406aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1407aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1408aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A 4-ary predicate-formatter functor. 1409aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstruct PredFormatFunctor4 { 1410aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter template <typename T1, typename T2, typename T3, typename T4> 1411aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter testing::AssertionResult operator()(const char* e1, 1412aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e2, 1413aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e3, 1414aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e4, 1415aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T1& v1, 1416aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2, 1417aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T3& v3, 1418aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T4& v4) const { 1419aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return PredFormatFunction4(e1, e2, e3, e4, v1, v2, v3, v4); 1420aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 1421aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 1422aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1423aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests for {EXPECT|ASSERT}_PRED_FORMAT4. 1424aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1425aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterclass Predicate4Test : public testing::Test { 1426aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter protected: 1427aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter virtual void SetUp() { 1428aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = true; 1429aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = false; 1430aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_ = n2_ = n3_ = n4_ = 0; 1431aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 1432aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1433aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter virtual void TearDown() { 1434aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // Verifies that each of the predicate's arguments was evaluated 1435aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // exactly once. 1436aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n1_) << 1437aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 2 " 1438aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 1439aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n2_) << 1440aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 3 " 1441aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 1442aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n3_) << 1443aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 4 " 1444aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 1445aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n4_) << 1446aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 5 " 1447aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 1448aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1449aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // Verifies that the control flow in the test function is expected. 1450aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter if (expected_to_finish_ && !finished_) { 1451aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter FAIL() << "The predicate assertion unexpactedly aborted the test."; 1452aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } else if (!expected_to_finish_ && finished_) { 1453aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter FAIL() << "The failed predicate assertion didn't abort the test " 1454aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "as expected."; 1455aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 1456aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 1457aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1458aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // true iff the test function is expected to run to finish. 1459aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static bool expected_to_finish_; 1460aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1461aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // true iff the test function did run to finish. 1462aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static bool finished_; 1463aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1464aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n1_; 1465aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n2_; 1466aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n3_; 1467aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n4_; 1468aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 1469aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1470aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool Predicate4Test::expected_to_finish_; 1471aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool Predicate4Test::finished_; 1472aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate4Test::n1_; 1473aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate4Test::n2_; 1474aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate4Test::n3_; 1475aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate4Test::n4_; 1476aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1477aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate4Test EXPECT_PRED_FORMAT4Test; 1478aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate4Test ASSERT_PRED_FORMAT4Test; 1479aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate4Test EXPECT_PRED4Test; 1480aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate4Test ASSERT_PRED4Test; 1481aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1482aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED4 where the 1483aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1484aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED4Test, FunctionOnBuiltInTypeSuccess) { 1485aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED4(PredFunction4Int, 1486aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1487aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1488aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 1489aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_); 1490aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1491aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1492aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1493aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED4 where the 1494aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1495aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED4Test, FunctionOnUserTypeSuccess) { 1496aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED4(PredFunction4Bool, 1497aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1498aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1499aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 1500aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_)); 1501aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1502aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1503aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1504aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED4 where the 1505aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1506aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED4Test, FunctorOnBuiltInTypeSuccess) { 1507aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED4(PredFunctor4(), 1508aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1509aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1510aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 1511aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_); 1512aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1513aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1514aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1515aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED4 where the 1516aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1517aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED4Test, FunctorOnUserTypeSuccess) { 1518aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED4(PredFunctor4(), 1519aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1520aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1521aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 1522aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_)); 1523aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1524aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1525aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1526aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED4 where the 1527aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1528aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED4Test, FunctionOnBuiltInTypeFailure) { 1529aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1530aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED4(PredFunction4Int, 1531aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1532aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1533aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 1534aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++); 1535aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1536aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1537aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1538aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1539aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED4 where the 1540aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1541aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED4Test, FunctionOnUserTypeFailure) { 1542aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1543aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED4(PredFunction4Bool, 1544aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1545aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1546aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 1547aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++)); 1548aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1549aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1550aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1551aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1552aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED4 where the 1553aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1554aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED4Test, FunctorOnBuiltInTypeFailure) { 1555aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1556aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED4(PredFunctor4(), 1557aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1558aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1559aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 1560aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++); 1561aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1562aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1563aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1564aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1565aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED4 where the 1566aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1567aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED4Test, FunctorOnUserTypeFailure) { 1568aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1569aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED4(PredFunctor4(), 1570aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1571aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1572aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 1573aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++)); 1574aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1575aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1576aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1577aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1578aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED4 where the 1579aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1580aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED4Test, FunctionOnBuiltInTypeSuccess) { 1581aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED4(PredFunction4Int, 1582aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1583aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1584aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 1585aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_); 1586aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1587aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1588aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1589aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED4 where the 1590aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1591aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED4Test, FunctionOnUserTypeSuccess) { 1592aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED4(PredFunction4Bool, 1593aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1594aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1595aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 1596aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_)); 1597aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1598aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1599aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1600aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED4 where the 1601aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1602aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED4Test, FunctorOnBuiltInTypeSuccess) { 1603aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED4(PredFunctor4(), 1604aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1605aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1606aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 1607aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_); 1608aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1609aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1610aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1611aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED4 where the 1612aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1613aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED4Test, FunctorOnUserTypeSuccess) { 1614aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED4(PredFunctor4(), 1615aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1616aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1617aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 1618aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_)); 1619aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1620aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1621aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1622aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED4 where the 1623aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1624aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED4Test, FunctionOnBuiltInTypeFailure) { 1625aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1626aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1627aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED4(PredFunction4Int, 1628aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1629aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1630aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 1631aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++); 1632aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1633aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1634aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1635aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1636aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED4 where the 1637aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1638aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED4Test, FunctionOnUserTypeFailure) { 1639aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1640aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1641aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED4(PredFunction4Bool, 1642aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1643aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1644aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 1645aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++)); 1646aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1647aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1648aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1649aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1650aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED4 where the 1651aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1652aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED4Test, FunctorOnBuiltInTypeFailure) { 1653aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1654aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1655aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED4(PredFunctor4(), 1656aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1657aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1658aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 1659aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++); 1660aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1661aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1662aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1663aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1664aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED4 where the 1665aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1666aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED4Test, FunctorOnUserTypeFailure) { 1667aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1668aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1669aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED4(PredFunctor4(), 1670aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1671aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1672aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 1673aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++)); 1674aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1675aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1676aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1677aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1678aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT4 where the 1679aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1680aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnBuiltInTypeSuccess) { 1681aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT4(PredFormatFunction4, 1682aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1683aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1684aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 1685aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_); 1686aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1687aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1688aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1689aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT4 where the 1690aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1691aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnUserTypeSuccess) { 1692aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT4(PredFormatFunction4, 1693aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1694aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1695aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 1696aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_)); 1697aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1698aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1699aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1700aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT4 where the 1701aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1702aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnBuiltInTypeSuccess) { 1703aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT4(PredFormatFunctor4(), 1704aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1705aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1706aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 1707aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_); 1708aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1709aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1710aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1711aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT4 where the 1712aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1713aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) { 1714aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT4(PredFormatFunctor4(), 1715aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1716aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1717aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 1718aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_)); 1719aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1720aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1721aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1722aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT4 where the 1723aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1724aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnBuiltInTypeFailure) { 1725aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1726aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT4(PredFormatFunction4, 1727aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1728aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1729aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 1730aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++); 1731aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1732aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1733aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1734aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1735aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT4 where the 1736aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1737aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnUserTypeFailure) { 1738aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1739aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT4(PredFormatFunction4, 1740aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1741aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1742aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 1743aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++)); 1744aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1745aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1746aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1747aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1748aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT4 where the 1749aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1750aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnBuiltInTypeFailure) { 1751aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1752aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT4(PredFormatFunctor4(), 1753aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1754aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1755aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 1756aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++); 1757aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1758aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1759aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1760aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1761aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT4 where the 1762aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1763aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnUserTypeFailure) { 1764aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 1765aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT4(PredFormatFunctor4(), 1766aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1767aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1768aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 1769aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++)); 1770aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1771aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1772aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1773aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1774aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT4 where the 1775aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1776aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnBuiltInTypeSuccess) { 1777aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT4(PredFormatFunction4, 1778aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1779aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1780aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 1781aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_); 1782aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1783aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1784aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1785aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT4 where the 1786aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1787aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnUserTypeSuccess) { 1788aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT4(PredFormatFunction4, 1789aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1790aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1791aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 1792aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_)); 1793aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1794aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1795aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1796aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT4 where the 1797aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1798aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnBuiltInTypeSuccess) { 1799aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT4(PredFormatFunctor4(), 1800aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 1801aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 1802aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 1803aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_); 1804aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1805aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1806aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1807aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT4 where the 1808aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1809aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) { 1810aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT4(PredFormatFunctor4(), 1811aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 1812aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 1813aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 1814aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_)); 1815aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1816aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1817aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1818aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT4 where the 1819aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 1820aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnBuiltInTypeFailure) { 1821aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1822aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1823aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT4(PredFormatFunction4, 1824aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1825aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1826aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 1827aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++); 1828aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1829aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1830aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1831aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1832aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT4 where the 1833aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 1834aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnUserTypeFailure) { 1835aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1836aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1837aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT4(PredFormatFunction4, 1838aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1839aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1840aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 1841aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++)); 1842aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1843aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1844aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1845aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1846aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT4 where the 1847aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 1848aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnBuiltInTypeFailure) { 1849aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1850aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1851aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT4(PredFormatFunctor4(), 1852aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 1853aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 1854aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 1855aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++); 1856aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1857aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1858aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1859aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1860aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT4 where the 1861aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 1862aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeFailure) { 1863aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 1864aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 1865aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT4(PredFormatFunctor4(), 1866aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 1867aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 1868aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 1869aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++)); 1870aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 1871aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 1872aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1873aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Sample functions/functors for testing 5-ary predicate assertions. 1874aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1875aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A 5-ary predicate function. 1876aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertemplate <typename T1, typename T2, typename T3, typename T4, typename T5> 1877aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5) { 1878aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 + v4 + v5 > 0; 1879aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1880aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1881aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// The following two functions are needed to circumvent a bug in 1882aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// gcc 2.95.3, which sometimes has problem with the above template 1883aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// function. 1884aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction5Int(int v1, int v2, int v3, int v4, int v5) { 1885aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 + v4 + v5 > 0; 1886aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1887aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool PredFunction5Bool(Bool v1, Bool v2, Bool v3, Bool v4, Bool v5) { 1888aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 + v4 + v5 > 0; 1889aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1890aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1891aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A 5-ary predicate functor. 1892aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstruct PredFunctor5 { 1893aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter template <typename T1, typename T2, typename T3, typename T4, typename T5> 1894aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter bool operator()(const T1& v1, 1895aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2, 1896aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T3& v3, 1897aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T4& v4, 1898aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T5& v5) { 1899aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return v1 + v2 + v3 + v4 + v5 > 0; 1900aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 1901aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 1902aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1903aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A 5-ary predicate-formatter function. 1904aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertemplate <typename T1, typename T2, typename T3, typename T4, typename T5> 1905aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertesting::AssertionResult PredFormatFunction5(const char* e1, 1906aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e2, 1907aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e3, 1908aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e4, 1909aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e5, 1910aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T1& v1, 1911aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2, 1912aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T3& v3, 1913aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T4& v4, 1914aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T5& v5) { 1915aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter if (PredFunction5(v1, v2, v3, v4, v5)) 1916aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return testing::AssertionSuccess(); 1917aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1918aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return testing::AssertionFailure() 1919aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << e1 << " + " << e2 << " + " << e3 << " + " << e4 << " + " << e5 1920aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << " is expected to be positive, but evaluates to " 1921aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter << v1 + v2 + v3 + v4 + v5 << "."; 1922aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 1923aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1924aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// A 5-ary predicate-formatter functor. 1925aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterstruct PredFormatFunctor5 { 1926aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter template <typename T1, typename T2, typename T3, typename T4, typename T5> 1927aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter testing::AssertionResult operator()(const char* e1, 1928aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e2, 1929aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e3, 1930aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e4, 1931aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const char* e5, 1932aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T1& v1, 1933aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T2& v2, 1934aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T3& v3, 1935aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T4& v4, 1936aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter const T5& v5) const { 1937aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter return PredFormatFunction5(e1, e2, e3, e4, e5, v1, v2, v3, v4, v5); 1938aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 1939aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 1940aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1941aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests for {EXPECT|ASSERT}_PRED_FORMAT5. 1942aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1943aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterclass Predicate5Test : public testing::Test { 1944aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter protected: 1945aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter virtual void SetUp() { 1946aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = true; 1947aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = false; 1948aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_ = n2_ = n3_ = n4_ = n5_ = 0; 1949aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 1950aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1951aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter virtual void TearDown() { 1952aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // Verifies that each of the predicate's arguments was evaluated 1953aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // exactly once. 1954aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n1_) << 1955aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 2 " 1956aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 1957aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n2_) << 1958aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 3 " 1959aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 1960aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n3_) << 1961aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 4 " 1962aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 1963aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n4_) << 1964aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 5 " 1965aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 1966aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_EQ(1, n5_) << 1967aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "The predicate assertion didn't evaluate argument 6 " 1968aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "exactly once."; 1969aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1970aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // Verifies that the control flow in the test function is expected. 1971aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter if (expected_to_finish_ && !finished_) { 1972aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter FAIL() << "The predicate assertion unexpactedly aborted the test."; 1973aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } else if (!expected_to_finish_ && finished_) { 1974aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter FAIL() << "The failed predicate assertion didn't abort the test " 1975aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter "as expected."; 1976aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 1977aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter } 1978aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1979aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // true iff the test function is expected to run to finish. 1980aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static bool expected_to_finish_; 1981aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1982aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter // true iff the test function did run to finish. 1983aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static bool finished_; 1984aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1985aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n1_; 1986aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n2_; 1987aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n3_; 1988aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n4_; 1989aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter static int n5_; 1990aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter}; 1991aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 1992aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool Predicate5Test::expected_to_finish_; 1993aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterbool Predicate5Test::finished_; 1994aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate5Test::n1_; 1995aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate5Test::n2_; 1996aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate5Test::n3_; 1997aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate5Test::n4_; 1998aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchterint Predicate5Test::n5_; 1999aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2000aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate5Test EXPECT_PRED_FORMAT5Test; 2001aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate5Test ASSERT_PRED_FORMAT5Test; 2002aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate5Test EXPECT_PRED5Test; 2003aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchtertypedef Predicate5Test ASSERT_PRED5Test; 2004aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2005aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED5 where the 2006aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 2007aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED5Test, FunctionOnBuiltInTypeSuccess) { 2008aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED5(PredFunction5Int, 2009aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 2010aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 2011aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 2012aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_, 2013aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n5_); 2014aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2015aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2016aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2017aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED5 where the 2018aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 2019aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED5Test, FunctionOnUserTypeSuccess) { 2020aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED5(PredFunction5Bool, 2021aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 2022aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 2023aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 2024aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_), 2025aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n5_)); 2026aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2027aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2028aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2029aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED5 where the 2030aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 2031aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED5Test, FunctorOnBuiltInTypeSuccess) { 2032aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED5(PredFunctor5(), 2033aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 2034aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 2035aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 2036aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_, 2037aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n5_); 2038aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2039aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2040aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2041aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED5 where the 2042aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 2043aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED5Test, FunctorOnUserTypeSuccess) { 2044aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED5(PredFunctor5(), 2045aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 2046aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 2047aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 2048aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_), 2049aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n5_)); 2050aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2051aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2052aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2053aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED5 where the 2054aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 2055aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED5Test, FunctionOnBuiltInTypeFailure) { 2056aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 2057aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED5(PredFunction5Int, 2058aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 2059aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 2060aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 2061aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++, 2062aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n5_++); 2063aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2064aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2065aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2066aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2067aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED5 where the 2068aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 2069aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED5Test, FunctionOnUserTypeFailure) { 2070aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 2071aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED5(PredFunction5Bool, 2072aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 2073aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 2074aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 2075aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++), 2076aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n5_++)); 2077aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2078aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2079aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2080aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2081aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED5 where the 2082aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 2083aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED5Test, FunctorOnBuiltInTypeFailure) { 2084aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 2085aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED5(PredFunctor5(), 2086aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 2087aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 2088aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 2089aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++, 2090aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n5_++); 2091aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2092aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2093aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2094aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2095aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED5 where the 2096aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 2097aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED5Test, FunctorOnUserTypeFailure) { 2098aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 2099aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED5(PredFunctor5(), 2100aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 2101aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 2102aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 2103aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++), 2104aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n5_++)); 2105aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2106aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2107aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2108aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2109aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED5 where the 2110aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 2111aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED5Test, FunctionOnBuiltInTypeSuccess) { 2112aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED5(PredFunction5Int, 2113aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 2114aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 2115aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 2116aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_, 2117aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n5_); 2118aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2119aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2120aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2121aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED5 where the 2122aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 2123aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED5Test, FunctionOnUserTypeSuccess) { 2124aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED5(PredFunction5Bool, 2125aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 2126aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 2127aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 2128aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_), 2129aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n5_)); 2130aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2131aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2132aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2133aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED5 where the 2134aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 2135aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED5Test, FunctorOnBuiltInTypeSuccess) { 2136aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED5(PredFunctor5(), 2137aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 2138aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 2139aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 2140aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_, 2141aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n5_); 2142aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2143aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2144aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2145aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED5 where the 2146aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 2147aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED5Test, FunctorOnUserTypeSuccess) { 2148aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED5(PredFunctor5(), 2149aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 2150aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 2151aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 2152aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_), 2153aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n5_)); 2154aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2155aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2156aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2157aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED5 where the 2158aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 2159aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED5Test, FunctionOnBuiltInTypeFailure) { 2160aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 2161aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 2162aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED5(PredFunction5Int, 2163aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 2164aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 2165aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 2166aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++, 2167aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n5_++); 2168aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2169aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2170aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2171aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2172aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED5 where the 2173aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 2174aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED5Test, FunctionOnUserTypeFailure) { 2175aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 2176aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 2177aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED5(PredFunction5Bool, 2178aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 2179aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 2180aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 2181aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++), 2182aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n5_++)); 2183aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2184aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2185aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2186aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2187aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED5 where the 2188aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 2189aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED5Test, FunctorOnBuiltInTypeFailure) { 2190aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 2191aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 2192aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED5(PredFunctor5(), 2193aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 2194aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 2195aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 2196aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++, 2197aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n5_++); 2198aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2199aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2200aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2201aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2202aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED5 where the 2203aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 2204aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED5Test, FunctorOnUserTypeFailure) { 2205aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 2206aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 2207aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED5(PredFunctor5(), 2208aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 2209aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 2210aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 2211aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++), 2212aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n5_++)); 2213aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2214aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2215aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2216aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2217aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT5 where the 2218aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 2219aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnBuiltInTypeSuccess) { 2220aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT5(PredFormatFunction5, 2221aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 2222aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 2223aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 2224aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_, 2225aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n5_); 2226aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2227aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2228aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2229aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT5 where the 2230aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 2231aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnUserTypeSuccess) { 2232aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT5(PredFormatFunction5, 2233aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 2234aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 2235aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 2236aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_), 2237aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n5_)); 2238aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2239aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2240aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2241aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT5 where the 2242aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 2243aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnBuiltInTypeSuccess) { 2244aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT5(PredFormatFunctor5(), 2245aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 2246aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 2247aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 2248aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_, 2249aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n5_); 2250aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2251aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2252aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2253aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful EXPECT_PRED_FORMAT5 where the 2254aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 2255aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) { 2256aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT5(PredFormatFunctor5(), 2257aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 2258aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 2259aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 2260aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_), 2261aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n5_)); 2262aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2263aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2264aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2265aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT5 where the 2266aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 2267aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnBuiltInTypeFailure) { 2268aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 2269aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT5(PredFormatFunction5, 2270aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 2271aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 2272aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 2273aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++, 2274aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n5_++); 2275aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2276aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2277aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2278aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2279aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT5 where the 2280aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 2281aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnUserTypeFailure) { 2282aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 2283aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT5(PredFormatFunction5, 2284aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 2285aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 2286aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 2287aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++), 2288aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n5_++)); 2289aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2290aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2291aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2292aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2293aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT5 where the 2294aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 2295aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnBuiltInTypeFailure) { 2296aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 2297aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT5(PredFormatFunctor5(), 2298aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 2299aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 2300aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 2301aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++, 2302aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n5_++); 2303aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2304aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2305aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2306aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2307aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed EXPECT_PRED_FORMAT5 where the 2308aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 2309aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnUserTypeFailure) { 2310aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_NONFATAL_FAILURE({ // NOLINT 2311aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_PRED_FORMAT5(PredFormatFunctor5(), 2312aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 2313aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 2314aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 2315aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++), 2316aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n5_++)); 2317aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2318aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2319aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2320aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2321aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT5 where the 2322aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 2323aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnBuiltInTypeSuccess) { 2324aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT5(PredFormatFunction5, 2325aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 2326aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 2327aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 2328aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_, 2329aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n5_); 2330aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2331aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2332aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2333aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT5 where the 2334aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 2335aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnUserTypeSuccess) { 2336aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT5(PredFormatFunction5, 2337aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 2338aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 2339aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 2340aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_), 2341aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n5_)); 2342aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2343aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2344aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2345aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT5 where the 2346aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 2347aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnBuiltInTypeSuccess) { 2348aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT5(PredFormatFunctor5(), 2349aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n1_, 2350aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n2_, 2351aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n3_, 2352aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n4_, 2353aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ++n5_); 2354aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2355aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2356aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2357aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a successful ASSERT_PRED_FORMAT5 where the 2358aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 2359aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) { 2360aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT5(PredFormatFunctor5(), 2361aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n1_), 2362aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n2_), 2363aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n3_), 2364aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n4_), 2365aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(++n5_)); 2366aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2367aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2368aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2369aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT5 where the 2370aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a built-in type (int). 2371aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnBuiltInTypeFailure) { 2372aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 2373aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 2374aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT5(PredFormatFunction5, 2375aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 2376aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 2377aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 2378aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++, 2379aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n5_++); 2380aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2381aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2382aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2383aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2384aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT5 where the 2385aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a function on a user-defined type (Bool). 2386aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnUserTypeFailure) { 2387aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 2388aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 2389aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT5(PredFormatFunction5, 2390aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 2391aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 2392aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 2393aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++), 2394aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n5_++)); 2395aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2396aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2397aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2398aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2399aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT5 where the 2400aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a built-in type (int). 2401aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnBuiltInTypeFailure) { 2402aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 2403aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 2404aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT5(PredFormatFunctor5(), 2405aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n1_++, 2406aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n2_++, 2407aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n3_++, 2408aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n4_++, 2409aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter n5_++); 2410aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2411aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2412aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2413aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter 2414aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// Tests a failed ASSERT_PRED_FORMAT5 where the 2415aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter// predicate-formatter is a functor on a user-defined type (Bool). 2416aa46da279e2426caf1e103eb079dfec8124c5feeCourtney GoeltzenleuchterTEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeFailure) { 2417aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter expected_to_finish_ = false; 2418aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter EXPECT_FATAL_FAILURE({ // NOLINT 2419aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter ASSERT_PRED_FORMAT5(PredFormatFunctor5(), 2420aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n1_++), 2421aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n2_++), 2422aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n3_++), 2423aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n4_++), 2424aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter Bool(n5_++)); 2425aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter finished_ = true; 2426aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter }, ""); 2427aa46da279e2426caf1e103eb079dfec8124c5feeCourtney Goeltzenleuchter} 2428