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