xref: /aosp_15_r20/external/executorch/test/utils/DeathTest.h (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
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