Line data Source code
1 : // Copyright (c) 2022-2023 Made to Order Software Corp. All Rights Reserved 2 : // 3 : // https://snapwebsites.org/project/snapdev 4 : // contact@m2osw.com 5 : // 6 : // This program is free software: you can redistribute it and/or modify 7 : // it under the terms of the GNU General Public License as published by 8 : // the Free Software Foundation, either version 3 of the License, or 9 : // (at your option) any later version. 10 : // 11 : // This program is distributed in the hope that it will be useful, 12 : // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 : // GNU General Public License for more details. 15 : // 16 : // You should have received a copy of the GNU General Public License 17 : // along with this program. If not, see <https://www.gnu.org/licenses/>. 18 : 19 : /** \file 20 : * \brief Verify that the SAFE_ASSERT function works. 21 : * 22 : * This file verifies we can use the SAFE_ASSERT function as expected. 23 : */ 24 : 25 : // self 26 : // 27 : #include <snapdev/safe_assert.h> 28 : 29 : #include "catch_main.h" 30 : 31 : 32 : // last include 33 : // 34 : #include <snapdev/poison.h> 35 : 36 : 37 : 38 : 39 1 : CATCH_TEST_CASE("safe_assert", "[foo]") 40 : { 41 1 : CATCH_START_SECTION("safe_assert: make sure assert can pass") 42 : { 43 1 : constexpr bool valid(true); 44 1 : snapdev::SAFE_ASSERT(valid, "this works"); 45 1 : CATCH_REQUIRE(valid); 46 : } 47 1 : CATCH_END_SECTION() 48 : 49 : #ifdef NDEBUG 50 : CATCH_START_SECTION("safe_assert: test invalid assert in Release mode") 51 : { 52 : constexpr bool invalid(false); 53 : snapdev::SAFE_ASSERT(invalid, "this \"passes\"", ", but really it's not compiled in in Release mode"); 54 : CATCH_REQUIRE_FALSE(invalid); 55 : } 56 : CATCH_END_SECTION() 57 : #endif 58 1 : } 59 : 60 : 61 : 62 : // vim: ts=4 sw=4 et