xref: /aosp_15_r20/external/fmtlib/test/assert-test.cc (revision 5c90c05cd622c0a81b57953a4d343e0e489f2e08)
1*5c90c05cSAndroid Build Coastguard Worker // Formatting library for C++ - FMT_ASSERT test
2*5c90c05cSAndroid Build Coastguard Worker //
3*5c90c05cSAndroid Build Coastguard Worker // It is a separate test to minimize the number of EXPECT_DEBUG_DEATH checks
4*5c90c05cSAndroid Build Coastguard Worker // which are slow on some platforms. In other tests FMT_ASSERT is made to throw
5*5c90c05cSAndroid Build Coastguard Worker // an exception which is much faster and easier to check.
6*5c90c05cSAndroid Build Coastguard Worker //
7*5c90c05cSAndroid Build Coastguard Worker // Copyright (c) 2012 - present, Victor Zverovich
8*5c90c05cSAndroid Build Coastguard Worker // All rights reserved.
9*5c90c05cSAndroid Build Coastguard Worker //
10*5c90c05cSAndroid Build Coastguard Worker // For the license information refer to format.h.
11*5c90c05cSAndroid Build Coastguard Worker 
12*5c90c05cSAndroid Build Coastguard Worker #include "fmt/base.h"
13*5c90c05cSAndroid Build Coastguard Worker #include "gtest/gtest.h"
14*5c90c05cSAndroid Build Coastguard Worker 
TEST(assert_test,fail)15*5c90c05cSAndroid Build Coastguard Worker TEST(assert_test, fail) {
16*5c90c05cSAndroid Build Coastguard Worker #if GTEST_HAS_DEATH_TEST
17*5c90c05cSAndroid Build Coastguard Worker   EXPECT_DEBUG_DEATH(FMT_ASSERT(false, "don't panic!"), "don't panic!");
18*5c90c05cSAndroid Build Coastguard Worker #else
19*5c90c05cSAndroid Build Coastguard Worker   fmt::print("warning: death tests are not supported\n");
20*5c90c05cSAndroid Build Coastguard Worker #endif
21*5c90c05cSAndroid Build Coastguard Worker }
22*5c90c05cSAndroid Build Coastguard Worker 
TEST(assert_test,dangling_else)23*5c90c05cSAndroid Build Coastguard Worker TEST(assert_test, dangling_else) {
24*5c90c05cSAndroid Build Coastguard Worker   bool test_condition = false;
25*5c90c05cSAndroid Build Coastguard Worker   bool executed_else = false;
26*5c90c05cSAndroid Build Coastguard Worker   if (test_condition)
27*5c90c05cSAndroid Build Coastguard Worker     FMT_ASSERT(true, "");
28*5c90c05cSAndroid Build Coastguard Worker   else
29*5c90c05cSAndroid Build Coastguard Worker     executed_else = true;
30*5c90c05cSAndroid Build Coastguard Worker   EXPECT_TRUE(executed_else);
31*5c90c05cSAndroid Build Coastguard Worker }
32