1*523fa7a6SAndroid Build Coastguard Worker /* 2*523fa7a6SAndroid Build Coastguard Worker * Copyright (c) Meta Platforms, Inc. and affiliates. 3*523fa7a6SAndroid Build Coastguard Worker * All rights reserved. 4*523fa7a6SAndroid Build Coastguard Worker * 5*523fa7a6SAndroid Build Coastguard Worker * This source code is licensed under the BSD-style license found in the 6*523fa7a6SAndroid Build Coastguard Worker * LICENSE file in the root directory of this source tree. 7*523fa7a6SAndroid Build Coastguard Worker */ 8*523fa7a6SAndroid Build Coastguard Worker 9*523fa7a6SAndroid Build Coastguard Worker /** 10*523fa7a6SAndroid Build Coastguard Worker * @file 11*523fa7a6SAndroid Build Coastguard Worker * Death test utility macros. 12*523fa7a6SAndroid Build Coastguard Worker */ 13*523fa7a6SAndroid Build Coastguard Worker 14*523fa7a6SAndroid Build Coastguard Worker #pragma once 15*523fa7a6SAndroid Build Coastguard Worker 16*523fa7a6SAndroid Build Coastguard Worker #include <gtest/gtest.h> 17*523fa7a6SAndroid Build Coastguard Worker 18*523fa7a6SAndroid Build Coastguard Worker #if ET_BUILD_MODE_COV 19*523fa7a6SAndroid Build Coastguard Worker 20*523fa7a6SAndroid Build Coastguard Worker /** 21*523fa7a6SAndroid Build Coastguard Worker * TODO(T124640221): Work around a seg fault when running death tests in 22*523fa7a6SAndroid Build Coastguard Worker * @mode/dbgo-cov. If the root cause of that bug is fixed, remove this 23*523fa7a6SAndroid Build Coastguard Worker * ET_EXPECT_DEATH wrapper and go back to calling EXPECT_DEATH directly from 24*523fa7a6SAndroid Build Coastguard Worker * tests. 25*523fa7a6SAndroid Build Coastguard Worker */ 26*523fa7a6SAndroid Build Coastguard Worker #define ET_EXPECT_DEATH(_statement, _matcher) ((void)0) 27*523fa7a6SAndroid Build Coastguard Worker 28*523fa7a6SAndroid Build Coastguard Worker #else // ET_BUILD_MODE_COV 29*523fa7a6SAndroid Build Coastguard Worker 30*523fa7a6SAndroid Build Coastguard Worker /** 31*523fa7a6SAndroid Build Coastguard Worker * Ensure the executable will abort when `_statement` is executed. 32*523fa7a6SAndroid Build Coastguard Worker * 33*523fa7a6SAndroid Build Coastguard Worker * @param _statement Statement to execute. 34*523fa7a6SAndroid Build Coastguard Worker * @param _matcher Regex or matcher to match against the stderr output of 35*523fa7a6SAndroid Build Coastguard Worker * the dying process. If this does not match, the test will fail. 36*523fa7a6SAndroid Build Coastguard Worker */ 37*523fa7a6SAndroid Build Coastguard Worker #define ET_EXPECT_DEATH(_statement, _matcher) \ 38*523fa7a6SAndroid Build Coastguard Worker EXPECT_DEATH_IF_SUPPORTED(_statement, _matcher) 39*523fa7a6SAndroid Build Coastguard Worker 40*523fa7a6SAndroid Build Coastguard Worker #endif // ET_BUILD_MODE_COV 41