1*71db0c75SAndroid Build Coastguard Worker //===-- Unittests for assert ----------------------------------------------===// 2*71db0c75SAndroid Build Coastguard Worker // 3*71db0c75SAndroid Build Coastguard Worker // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*71db0c75SAndroid Build Coastguard Worker // See https://llvm.org/LICENSE.txt for license information. 5*71db0c75SAndroid Build Coastguard Worker // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*71db0c75SAndroid Build Coastguard Worker // 7*71db0c75SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 8*71db0c75SAndroid Build Coastguard Worker 9*71db0c75SAndroid Build Coastguard Worker #undef NDEBUG 10*71db0c75SAndroid Build Coastguard Worker #include "src/assert/assert.h" 11*71db0c75SAndroid Build Coastguard Worker #include "test/UnitTest/Test.h" 12*71db0c75SAndroid Build Coastguard Worker 13*71db0c75SAndroid Build Coastguard Worker extern "C" int close(int); 14*71db0c75SAndroid Build Coastguard Worker TEST(LlvmLibcAssert,Enabled)15*71db0c75SAndroid Build Coastguard WorkerTEST(LlvmLibcAssert, Enabled) { 16*71db0c75SAndroid Build Coastguard Worker // -1 matches against any signal, which is necessary for now until 17*71db0c75SAndroid Build Coastguard Worker // LIBC_NAMESPACE::abort() unblocks SIGABRT. Close standard error for the 18*71db0c75SAndroid Build Coastguard Worker // child process so we don't print the assertion failure message. 19*71db0c75SAndroid Build Coastguard Worker EXPECT_DEATH( 20*71db0c75SAndroid Build Coastguard Worker [] { 21*71db0c75SAndroid Build Coastguard Worker close(2); 22*71db0c75SAndroid Build Coastguard Worker assert(0); 23*71db0c75SAndroid Build Coastguard Worker }, 24*71db0c75SAndroid Build Coastguard Worker WITH_SIGNAL(-1)); 25*71db0c75SAndroid Build Coastguard Worker } 26*71db0c75SAndroid Build Coastguard Worker 27*71db0c75SAndroid Build Coastguard Worker #define NDEBUG 28*71db0c75SAndroid Build Coastguard Worker #include "src/assert/assert.h" 29*71db0c75SAndroid Build Coastguard Worker TEST(LlvmLibcAssert,Disabled)30*71db0c75SAndroid Build Coastguard WorkerTEST(LlvmLibcAssert, Disabled) { 31*71db0c75SAndroid Build Coastguard Worker EXPECT_EXITS([] { assert(0); }, 0); 32*71db0c75SAndroid Build Coastguard Worker } 33