12d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// Copyright 2009 The RE2 Authors. All Rights Reserved. 22d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// Use of this source code is governed by a BSD-style 32d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// license that can be found in the LICENSE file. 42d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines 52d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#ifndef RE2_UTIL_TEST_H__ 62d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#define RE2_UTIL_TEST_H__ 72d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines 82d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#include "util/util.h" 92d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#include "util/flags.h" 102d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines 112d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#define TEST(x, y) \ 122d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines void x##y(void); \ 132d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines TestRegisterer r##x##y(x##y, # x "." # y); \ 142d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines void x##y(void) 152d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines 162d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesvoid RegisterTest(void (*)(void), const char*); 172d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines 182d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesclass TestRegisterer { 192d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines public: 202d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines TestRegisterer(void (*fn)(void), const char *s) { 212d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines RegisterTest(fn, s); 222d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines } 232d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines}; 242d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines 252d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines// TODO(rsc): Do a better job. 262d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#define EXPECT_EQ CHECK_EQ 272d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#define EXPECT_TRUE CHECK 282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#define EXPECT_LT CHECK_LT 292d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#define EXPECT_GT CHECK_GT 302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#define EXPECT_LE CHECK_LE 312d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#define EXPECT_GE CHECK_GE 322d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#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 41const bool UsingMallocCounter = false; 42namespace testing { 43class MallocCounter { 44 public: 45 MallocCounter(int x) { } 46 static const int THIS_THREAD_ONLY = 0; 47 long long HeapGrowth() { return 0; } 48 long long PeakHeapGrowth() { return 0; } 49 void Reset() { } 50}; 51} // namespace testing 52 53namespace re2 { 54int64 VirtualProcessSize(); 55} // namespace re2 56 57#endif // RE2_UTIL_TEST_H__ 58