• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===-- scudo_unit_test.h ---------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "platform.h"
10 
11 #if SCUDO_FUCHSIA
12 #include <zxtest/zxtest.h>
13 using Test = ::zxtest::Test;
14 #define TEST_SKIP(message) ZXTEST_SKIP(message)
15 #define TEST_HAS_FAILURE true
16 #else
17 #include "gtest/gtest.h"
18 using Test = ::testing::Test;
19 #define TEST_SKIP(message)                                                     \
20   do {                                                                         \
21     GTEST_SKIP() << message;                                                   \
22   } while (0)
23 #define TEST_HAS_FAILURE Test::HasFailure()
24 #endif
25 
26 // If EXPECT_DEATH isn't defined, make it a no-op.
27 #ifndef EXPECT_DEATH
28 // If ASSERT_DEATH is defined, make EXPECT_DEATH a wrapper to it.
29 #ifdef ASSERT_DEATH
30 #define EXPECT_DEATH(X, Y) ASSERT_DEATH(([&] { X; }), "")
31 #else
32 #define EXPECT_DEATH(X, Y)                                                     \
33   do {                                                                         \
34   } while (0)
35 #endif // ASSERT_DEATH
36 #endif // EXPECT_DEATH
37 
38 // If EXPECT_STREQ isn't defined, define our own simple one.
39 #ifndef EXPECT_STREQ
40 #define EXPECT_STREQ(X, Y) EXPECT_EQ(strcmp(X, Y), 0)
41 #endif
42 
43 #if SCUDO_FUCHSIA
44 #define SKIP_ON_FUCHSIA(T) DISABLED_##T
45 #else
46 #define SKIP_ON_FUCHSIA(T) T
47 #endif
48 
49 #if SCUDO_DEBUG
50 #define SKIP_NO_DEBUG(T) T
51 #else
52 #define SKIP_NO_DEBUG(T) DISABLED_##T
53 #endif
54 
55 #if SCUDO_FUCHSIA
56 // The zxtest library provides a default main function that does the same thing
57 // for Fuchsia builds.
58 #define SCUDO_NO_TEST_MAIN
59 #endif
60 
61 extern bool UseQuarantine;
62