util_check_tests.cpp
1 // Copyright (c) The Bitcoin Core developers 2 // Distributed under the MIT software license, see the accompanying 3 // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 5 #include <util/check.h> 6 7 #include <boost/test/unit_test.hpp> 8 #include <test/util/common.h> 9 10 BOOST_AUTO_TEST_SUITE(util_check_tests) 11 12 BOOST_AUTO_TEST_CASE(check_pass) 13 { 14 Assume(true); 15 Assert(true); 16 CHECK_NONFATAL(true); 17 } 18 19 BOOST_AUTO_TEST_CASE(check_fail) 20 { 21 // Disable aborts for easier testing here 22 test_only_CheckFailuresAreExceptionsNotAborts mock_checks{}; 23 24 if constexpr (G_ABORT_ON_FAILED_ASSUME) { 25 BOOST_CHECK_EXCEPTION(Assume(false), NonFatalCheckError, HasReason{"Internal bug detected: false"}); 26 } else { 27 BOOST_CHECK_NO_THROW(Assume(false)); 28 } 29 BOOST_CHECK_EXCEPTION(Assert(false), NonFatalCheckError, HasReason{"Internal bug detected: false"}); 30 BOOST_CHECK_EXCEPTION(CHECK_NONFATAL(false), NonFatalCheckError, HasReason{"Internal bug detected: false"}); 31 } 32 33 BOOST_AUTO_TEST_SUITE_END()