xref: /aosp_15_r20/external/regex-re2/util/test.h (revision ccdc9c3e24c519bfa4832a66aa2e83a52c19f295)
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