45#include "gtest/gtest.h"
46#include "gtest/gtest-spi.h"
53#define GTEST_IMPLEMENTATION_ 1
54#include "src/gtest-internal-inl.h"
55#undef GTEST_IMPLEMENTATION_
58# include <sys/types.h>
72TEST(ConvertIdentifierNameToWordsTest, WorksWhenNameContainsNoWord) {
78TEST(ConvertIdentifierNameToWordsTest, WorksWhenNameContainsDigits) {
85TEST(ConvertIdentifierNameToWordsTest, WorksWhenNameContainsCamelCaseWords) {
93TEST(ConvertIdentifierNameToWordsTest, WorksWhenNameContains_SeparatedWords) {
100TEST(ConvertIdentifierNameToWordsTest, WorksWhenNameIsMixture) {
106TEST(PointeeOfTest, WorksForSmartPointers) {
109#if GTEST_HAS_STD_UNIQUE_PTR_
112#if GTEST_HAS_STD_SHARED_PTR_
118TEST(PointeeOfTest, WorksForRawPointers) {
124TEST(GetRawPointerTest, WorksForSmartPointers) {
125#if GTEST_HAS_STD_UNIQUE_PTR_
126 const char*
const raw_p1 =
new const char(
'a');
127 const std::unique_ptr<const char> p1(raw_p1);
130#if GTEST_HAS_STD_SHARED_PTR_
131 double*
const raw_p2 =
new double(2.5);
132 const std::shared_ptr<double> p2(raw_p2);
136 const char*
const raw_p4 =
new const char(
'a');
137 const internal::linked_ptr<const char> p4(raw_p4);
141TEST(GetRawPointerTest, WorksForRawPointers) {
152class Derived :
public Base {};
154TEST(KindOfTest, Bool) {
158TEST(KindOfTest, Integer) {
172#if GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_CYGWIN
184TEST(KindOfTest, Other) {
192TEST(LosslessArithmeticConvertibleTest, BoolToBool) {
193 EXPECT_TRUE((LosslessArithmeticConvertible<bool, bool>::value));
196TEST(LosslessArithmeticConvertibleTest, BoolToInteger) {
197 EXPECT_TRUE((LosslessArithmeticConvertible<bool, char>::value));
198 EXPECT_TRUE((LosslessArithmeticConvertible<bool, int>::value));
200 (LosslessArithmeticConvertible<bool, unsigned long>::value));
203TEST(LosslessArithmeticConvertibleTest, BoolToFloatingPoint) {
204 EXPECT_TRUE((LosslessArithmeticConvertible<bool, float>::value));
205 EXPECT_TRUE((LosslessArithmeticConvertible<bool, double>::value));
208TEST(LosslessArithmeticConvertibleTest, IntegerToBool) {
209 EXPECT_FALSE((LosslessArithmeticConvertible<unsigned char, bool>::value));
210 EXPECT_FALSE((LosslessArithmeticConvertible<int, bool>::value));
213TEST(LosslessArithmeticConvertibleTest, IntegerToInteger) {
215 EXPECT_TRUE((LosslessArithmeticConvertible<unsigned char, int>::value));
219 (LosslessArithmeticConvertible<unsigned short, UInt64>::value));
222 EXPECT_FALSE((LosslessArithmeticConvertible<short, UInt64>::value));
224 signed char,
unsigned int>
::value));
228 unsigned char,
unsigned char>
::value));
229 EXPECT_TRUE((LosslessArithmeticConvertible<int, int>::value));
230 EXPECT_TRUE((LosslessArithmeticConvertible<wchar_t, wchar_t>::value));
232 unsigned long,
unsigned long>
::value));
236 unsigned char,
signed char>
::value));
237 EXPECT_FALSE((LosslessArithmeticConvertible<int, unsigned int>::value));
238 EXPECT_FALSE((LosslessArithmeticConvertible<UInt64, Int64>::value));
241 EXPECT_FALSE((LosslessArithmeticConvertible<long, char>::value));
242 EXPECT_FALSE((LosslessArithmeticConvertible<int, signed char>::value));
243 EXPECT_FALSE((LosslessArithmeticConvertible<Int64, unsigned int>::value));
246TEST(LosslessArithmeticConvertibleTest, IntegerToFloatingPoint) {
249 EXPECT_FALSE((LosslessArithmeticConvertible<char, float>::value));
250 EXPECT_FALSE((LosslessArithmeticConvertible<int, double>::value));
255TEST(LosslessArithmeticConvertibleTest, FloatingPointToBool) {
256 EXPECT_FALSE((LosslessArithmeticConvertible<float, bool>::value));
257 EXPECT_FALSE((LosslessArithmeticConvertible<double, bool>::value));
260TEST(LosslessArithmeticConvertibleTest, FloatingPointToInteger) {
261 EXPECT_FALSE((LosslessArithmeticConvertible<float, long>::value));
262 EXPECT_FALSE((LosslessArithmeticConvertible<double, Int64>::value));
263 EXPECT_FALSE((LosslessArithmeticConvertible<long double, int>::value));
266TEST(LosslessArithmeticConvertibleTest, FloatingPointToFloatingPoint) {
268 EXPECT_TRUE((LosslessArithmeticConvertible<float, double>::value));
269 EXPECT_TRUE((LosslessArithmeticConvertible<float, long double>::value));
270 EXPECT_TRUE((LosslessArithmeticConvertible<double, long double>::value));
273 EXPECT_TRUE((LosslessArithmeticConvertible<float, float>::value));
274 EXPECT_TRUE((LosslessArithmeticConvertible<double, double>::value));
277 EXPECT_FALSE((LosslessArithmeticConvertible<double, float>::value));
279 if (sizeof(
double) == sizeof(
long double)) {
285 EXPECT_FALSE((LosslessArithmeticConvertible<long double, double>::value));
291TEST(TupleMatchesTest, WorksForSize0) {
298TEST(TupleMatchesTest, WorksForSize1) {
299 tuple<Matcher<int> > matchers(
Eq(1));
300 tuple<int> values1(1),
307TEST(TupleMatchesTest, WorksForSize2) {
308 tuple<Matcher<int>, Matcher<char> > matchers(
Eq(1),
Eq(
'a'));
309 tuple<int, char> values1(1,
'a'),
320TEST(TupleMatchesTest, WorksForSize5) {
321 tuple<Matcher<int>, Matcher<char>, Matcher<bool>, Matcher<long>,
323 matchers(
Eq(1),
Eq(
'a'),
Eq(
true),
Eq(2L),
Eq(
"hi"));
324 tuple<int, char, bool, long, string>
325 values1(1,
'a',
true, 2L,
"hi"),
326 values2(1,
'a',
true, 2L,
"hello"),
327 values3(2,
'a',
true, 2L,
"hi");
335TEST(AssertTest, SucceedsOnTrue) {
336 Assert(
true, __FILE__, __LINE__,
"This should succeed.");
337 Assert(
true, __FILE__, __LINE__);
341TEST(AssertTest, FailsFatallyOnFalse) {
343 Assert(
false, __FILE__, __LINE__,
"This should fail.");
347 Assert(
false, __FILE__, __LINE__);
352TEST(ExpectTest, SucceedsOnTrue) {
353 Expect(
true, __FILE__, __LINE__,
"This should succeed.");
354 Expect(
true, __FILE__, __LINE__);
358TEST(ExpectTest, FailsNonfatallyOnFalse) {
360 Expect(
false, __FILE__, __LINE__,
"This should fail.");
361 },
"This should fail");
364 Expect(
false, __FILE__, __LINE__);
365 },
"Expectation failed");
370class LogIsVisibleTest :
public ::testing::Test {
372 virtual void SetUp() {
376 virtual void TearDown() {
GMOCK_FLAG(verbose) = original_verbose_; }
378 string original_verbose_;
381TEST_F(LogIsVisibleTest, AlwaysReturnsTrueIfVerbosityIsInfo) {
387TEST_F(LogIsVisibleTest, AlwaysReturnsFalseIfVerbosityIsError) {
393TEST_F(LogIsVisibleTest, WorksWhenVerbosityIsWarning) {
399#if GTEST_HAS_STREAM_REDIRECTION
405void TestLogWithSeverity(
const string& verbosity,
LogSeverity severity,
410 Log(severity,
"Test log.\n", 0);
415 "^\nGMOCK WARNING:\nTest log\\.\nStack trace:\n" :
416 "^\nTest log\\.\nStack trace:\n"));
425TEST(LogTest, NoStackTraceWhenStackFramesToSkipIsNegative) {
426 const string saved_flag =
GMOCK_FLAG(verbose);
430 EXPECT_STREQ(
"\nTest log.\n", GetCapturedStdout().c_str());
434struct MockStackTraceGetter : testing::internal::OsStackTraceGetterInterface {
435 virtual string CurrentStackTrace(
int max_depth,
int skip_count) {
436 return (testing::Message() << max_depth <<
"::" << skip_count <<
"\n")
439 virtual void UponLeavingGTest() {}
444TEST(LogTest, NoSkippingStackFrameInOptMode) {
445 MockStackTraceGetter* mock_os_stack_trace_getter =
new MockStackTraceGetter;
450 const string log = GetCapturedStdout();
452 string expected_trace =
453 (testing::Message() <<
GTEST_FLAG(stack_trace_depth) <<
"::").GetString();
454 string expected_message =
460 int skip_count = atoi(
log.substr(expected_message.size()).c_str());
464 const int expected_skip_count = 0;
467 const int expected_skip_count = 100;
474 AllOf(
Ge(expected_skip_count),
Le(expected_skip_count + 10)));
482TEST(LogTest, AllLogsArePrintedWhenVerbosityIsInfo) {
489TEST(LogTest, OnlyWarningsArePrintedWhenVerbosityIsWarning) {
496TEST(LogTest, NoLogsArePrintedWhenVerbosityIsError) {
503TEST(LogTest, OnlyWarningsArePrintedWhenVerbosityIsInvalid) {
504 TestLogWithSeverity(
"invalid",
kInfo,
false);
505 TestLogWithSeverity(
"invalid",
kWarning,
true);
545#if GTEST_HAS_STREAM_REDIRECTION
549std::string GrabOutput(
void(*logger)(),
const char* verbosity) {
550 const string saved_flag =
GMOCK_FLAG(verbose);
555 return GetCapturedStdout();
564void ExpectCallLogger() {
571TEST(ExpectCallTest, LogsWhenVerbosityIsInfo) {
573 HasSubstr(
"EXPECT_CALL(mock, TestMethod())"));
578TEST(ExpectCallTest, DoesNotLogWhenVerbosityIsWarning) {
584TEST(ExpectCallTest, DoesNotLogWhenVerbosityIsError) {
594TEST(OnCallTest, LogsWhenVerbosityIsInfo) {
596 HasSubstr(
"ON_CALL(mock, TestMethod())"));
601TEST(OnCallTest, DoesNotLogWhenVerbosityIsWarning) {
607TEST(OnCallTest, DoesNotLogWhenVerbosityIsError) {
611void OnCallAnyArgumentLogger() {
617TEST(OnCallTest, LogsAnythingArgument) {
619 HasSubstr(
"ON_CALL(mock, TestMethodArg(_)"));
626TEST(StlContainerViewTest, WorksForStlContainer) {
632 typedef std::vector<char> Chars;
642TEST(StlContainerViewTest, WorksForStaticNativeArray) {
653 int a1[3] = { 0, 1, 2 };
669TEST(StlContainerViewTest, WorksForDynamicNativeArray) {
678 int a1[3] = { 0, 1, 2 };
679 const int*
const p1 = a1;
#define v3(p)
Definition aesb.c:119
#define v1(p)
Definition aesb.c:117
#define v2(p)
Definition aesb.c:118
Definition gtest-message.h:85
const_iterator begin() const
Definition gtest-internal.h:1063
size_t size() const
Definition gtest-internal.h:1062
Definition gtest-internal.h:262
Definition gtest-internal.h:1034
Definition gmock-internal-utils.h:406
RawContainer type
Definition gmock-internal-utils.h:408
static const_reference ConstReference(const RawContainer &container)
Definition gmock-internal-utils.h:411
static type Copy(const RawContainer &container)
Definition gmock-internal-utils.h:417
const type & const_reference
Definition gmock-internal-utils.h:409
void set_os_stack_trace_getter(OsStackTraceGetterInterface *getter)
Definition gtest.cc:4907
#define EXPECT_DEATH_IF_SUPPORTED(statement, regex)
Definition gtest-death-test.h:286
#define EXPECT_NONFATAL_FAILURE(statement, substr)
Definition gtest-spi.h:204
#define TEST_F(test_fixture, test_name)
Definition gtest.h:2216
#define ASSERT_EQ(val1, val2)
Definition gtest.h:1956
#define EXPECT_EQ(val1, val2)
Definition gtest.h:1922
#define EXPECT_TRUE(condition)
Definition gtest.h:1859
#define EXPECT_STREQ(s1, s2)
Definition gtest.h:1995
#define TEST(test_case_name, test_name)
Definition gtest.h:2187
#define EXPECT_FALSE(condition)
Definition gtest.h:1862
#define GTEST_INTENTIONAL_CONST_COND_PUSH_()
Definition gtest-port.h:897
#define GTEST_FLAG(name)
Definition gtest-port.h:2504
#define GTEST_INTENTIONAL_CONST_COND_POP_()
Definition gtest-port.h:899
#define MOCK_METHOD0(m,...)
Definition gmock-generated-function-mockers.h:675
#define MOCK_METHOD1(m,...)
Definition gmock-generated-function-mockers.h:676
#define GMOCK_KIND_OF_(type)
Definition gmock-internal-utils.h:168
#define EXPECT_THAT(value, matcher)
Definition gmock-matchers.h:4390
#define GMOCK_FLAG(name)
Definition gmock-port.h:70
#define EXPECT_CALL(obj, call)
Definition gmock-spec-builders.h:1845
#define ON_CALL(obj, call)
Definition gmock-spec-builders.h:1841
static void log()
Definition logging.cpp:85
Definition document.h:406
Definition gmock-internal-utils_test.cc:63
p
Definition pymoduletest.py:75
tuple make_tuple()
Definition gtest-tuple.h:675
bool_constant< true > true_type
Definition gtest-port.h:2210
bool TupleMatches(const MatcherTuple &matcher_tuple, const ValueTuple &value_tuple)
Definition gmock-matchers.h:796
LogSeverity
Definition gmock-internal-utils.h:306
@ kInfo
Definition gmock-internal-utils.h:307
@ kWarning
Definition gmock-internal-utils.h:308
const char kErrorVerbosity[]
Definition gmock-internal-utils.h:318
GTEST_API_ string ConvertIdentifierNameToWords(const char *id_name)
Definition gmock-internal-utils.cc:54
GTEST_API_ bool LogIsVisible(LogSeverity severity)
Definition gmock-internal-utils.cc:110
void Assert(bool condition, const char *file, int line)
Definition gmock-internal-utils.h:288
bool_constant< false > false_type
Definition gtest-port.h:2209
const char kInfoVerbosity[]
Definition gmock-internal-utils.h:314
class UnitTestImpl * GetUnitTestImpl()
Definition gtest-internal-inl.h:927
const bool ImplicitlyConvertible< From, To >::value
Definition gtest-internal.h:897
@ kBool
Definition gmock-internal-utils.h:127
@ kInteger
Definition gmock-internal-utils.h:127
@ kFloatingPoint
Definition gmock-internal-utils.h:127
@ kOther
Definition gmock-internal-utils.h:127
void Expect(bool condition, const char *file, int line, const string &msg)
Definition gmock-internal-utils.h:294
TypeWithSize< 8 >::Int Int64
Definition gtest-port.h:2496
GTEST_API_ void Log(LogSeverity severity, const string &message, int stack_frames_to_skip)
Definition gmock-internal-utils.cc:131
TypeWithSize< 8 >::UInt UInt64
Definition gtest-port.h:2497
const Pointer::element_type * GetRawPointer(const Pointer &p)
Definition gmock-internal-utils.h:76
const char kWarningVerbosity[]
Definition gmock-internal-utils.h:316
Definition gmock-actions.h:53
internal::Le2Matcher Le()
Definition gmock-matchers.h:4094
PolymorphicMatcher< internal::HasSubstrMatcher< internal::string > > HasSubstr(const internal::string &substring)
Definition gmock-matchers.h:3984
const internal::AnythingMatcher _
Definition gmock-matchers.h:3729
internal::AllOfResult2< M1, M2 >::type AllOf(M1 m1, M2 m2)
Definition gmock-generated-matchers.h:1002
bool StaticAssertTypeEq()
Definition gtest.h:2150
internal::Ge2Matcher Ge()
Definition gmock-matchers.h:4086
PolymorphicMatcher< internal::MatchesRegexMatcher > ContainsRegex(const internal::RE *regex)
Definition gmock-matchers.h:4016
internal::Eq2Matcher Eq()
Definition gmock-matchers.h:4082
int verbosity
Definition upload.py:59
if(!cryptonote::get_account_address_from_str_or_url(info, cryptonote::TESTNET, "9uVsvEryzpN8WH2t1WWhFFCG5tS8cBNdmJYNRuckLENFimfauV5pZKeS1P2CbxGkSDTUPHXWwiYE5ZGSXDAGbaZgDxobqDN"))
Definition signature.cpp:53
Definition gtest-internal.h:772
Definition gmock-internal-utils.h:63
static const bool value
Definition gtest-port.h:2205
Definition gtest-port.h:2213
Definition gmock-internal-utils.h:340
Definition gmock-internal-utils.h:348
T type
Definition gmock-internal-utils.h:348
Definition gmock-internal-utils.h:344