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