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>
13using Test = ::zxtest::Test;
14#define TEST_SKIP(message) ZXTEST_SKIP(message)
15#define TEST_HAS_FAILURE true
16#else
17#include "gtest/gtest.h"
18using 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
61extern bool UseQuarantine;
62

Provided by KDAB

Privacy Policy
Improve your Profiling and Debugging skills
Find out more

source code of compiler-rt/lib/scudo/standalone/tests/scudo_unit_test.h