1*ccdc9c3eSSadaf Ebrahimi // Copyright 2009 The RE2 Authors. All Rights Reserved. 2*ccdc9c3eSSadaf Ebrahimi // Use of this source code is governed by a BSD-style 3*ccdc9c3eSSadaf Ebrahimi // license that can be found in the LICENSE file. 4*ccdc9c3eSSadaf Ebrahimi 5*ccdc9c3eSSadaf Ebrahimi #ifndef UTIL_TEST_H_ 6*ccdc9c3eSSadaf Ebrahimi #define UTIL_TEST_H_ 7*ccdc9c3eSSadaf Ebrahimi 8*ccdc9c3eSSadaf Ebrahimi #include "util/util.h" 9*ccdc9c3eSSadaf Ebrahimi #include "util/flags.h" 10*ccdc9c3eSSadaf Ebrahimi #include "util/logging.h" 11*ccdc9c3eSSadaf Ebrahimi 12*ccdc9c3eSSadaf Ebrahimi #define TEST(x, y) \ 13*ccdc9c3eSSadaf Ebrahimi void x##y(void); \ 14*ccdc9c3eSSadaf Ebrahimi TestRegisterer r##x##y(x##y, # x "." # y); \ 15*ccdc9c3eSSadaf Ebrahimi void x##y(void) 16*ccdc9c3eSSadaf Ebrahimi 17*ccdc9c3eSSadaf Ebrahimi void RegisterTest(void (*)(void), const char*); 18*ccdc9c3eSSadaf Ebrahimi 19*ccdc9c3eSSadaf Ebrahimi class TestRegisterer { 20*ccdc9c3eSSadaf Ebrahimi public: TestRegisterer(void (* fn)(void),const char * s)21*ccdc9c3eSSadaf Ebrahimi TestRegisterer(void (*fn)(void), const char *s) { 22*ccdc9c3eSSadaf Ebrahimi RegisterTest(fn, s); 23*ccdc9c3eSSadaf Ebrahimi } 24*ccdc9c3eSSadaf Ebrahimi }; 25*ccdc9c3eSSadaf Ebrahimi 26*ccdc9c3eSSadaf Ebrahimi // fatal assertions 27*ccdc9c3eSSadaf Ebrahimi #define ASSERT_TRUE CHECK 28*ccdc9c3eSSadaf Ebrahimi #define ASSERT_FALSE(x) CHECK(!(x)) 29*ccdc9c3eSSadaf Ebrahimi #define ASSERT_EQ CHECK_EQ 30*ccdc9c3eSSadaf Ebrahimi #define ASSERT_NE CHECK_NE 31*ccdc9c3eSSadaf Ebrahimi #define ASSERT_LT CHECK_LT 32*ccdc9c3eSSadaf Ebrahimi #define ASSERT_LE CHECK_LE 33*ccdc9c3eSSadaf Ebrahimi #define ASSERT_GT CHECK_GT 34*ccdc9c3eSSadaf Ebrahimi #define ASSERT_GE CHECK_GE 35*ccdc9c3eSSadaf Ebrahimi 36*ccdc9c3eSSadaf Ebrahimi // nonfatal assertions 37*ccdc9c3eSSadaf Ebrahimi // TODO(rsc): Do a better job? 38*ccdc9c3eSSadaf Ebrahimi #define EXPECT_TRUE CHECK 39*ccdc9c3eSSadaf Ebrahimi #define EXPECT_FALSE(x) CHECK(!(x)) 40*ccdc9c3eSSadaf Ebrahimi #define EXPECT_EQ CHECK_EQ 41*ccdc9c3eSSadaf Ebrahimi #define EXPECT_NE CHECK_NE 42*ccdc9c3eSSadaf Ebrahimi #define EXPECT_LT CHECK_LT 43*ccdc9c3eSSadaf Ebrahimi #define EXPECT_LE CHECK_LE 44*ccdc9c3eSSadaf Ebrahimi #define EXPECT_GT CHECK_GT 45*ccdc9c3eSSadaf Ebrahimi #define EXPECT_GE CHECK_GE 46*ccdc9c3eSSadaf Ebrahimi 47*ccdc9c3eSSadaf Ebrahimi namespace testing { 48*ccdc9c3eSSadaf Ebrahimi class MallocCounter { 49*ccdc9c3eSSadaf Ebrahimi public: MallocCounter(int x)50*ccdc9c3eSSadaf Ebrahimi MallocCounter(int x) {} 51*ccdc9c3eSSadaf Ebrahimi static const int THIS_THREAD_ONLY = 0; HeapGrowth()52*ccdc9c3eSSadaf Ebrahimi long long HeapGrowth() { return 0; } PeakHeapGrowth()53*ccdc9c3eSSadaf Ebrahimi long long PeakHeapGrowth() { return 0; } Reset()54*ccdc9c3eSSadaf Ebrahimi void Reset() {} 55*ccdc9c3eSSadaf Ebrahimi }; 56*ccdc9c3eSSadaf Ebrahimi } // namespace testing 57*ccdc9c3eSSadaf Ebrahimi 58*ccdc9c3eSSadaf Ebrahimi #endif // UTIL_TEST_H_ 59