LCOV - code coverage report
Current view: top level - tests - catch_safe_stream.cpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 17 17
Test Date: 2025-07-03 19:05:49 Functions: 100.0 % 1 1
Legend: Lines: hit not hit

            Line data    Source code
       1              : // Copyright (c) 2018-2025  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_stream class works.
      21              :  *
      22              :  * This file implements tests for the safe_stream class to make sure that
      23              :  * the flags are indeed safe.
      24              :  */
      25              : 
      26              : // self
      27              : //
      28              : #include    <snapdev/safe_stream.h>
      29              : 
      30              : #include    "catch_main.h"
      31              : 
      32              : 
      33              : // C++
      34              : //
      35              : #include    <sstream>
      36              : 
      37              : 
      38              : // last include
      39              : //
      40              : #include    <snapdev/poison.h>
      41              : 
      42              : 
      43              : 
      44              : 
      45            1 : CATCH_TEST_CASE("safe_stream", "[stream][raii][os]")
      46              : {
      47            1 :     CATCH_START_SECTION("safe_stream: hex/oct")
      48              :     {
      49              :         {
      50            1 :             std::stringstream ss;
      51              : 
      52            1 :             std::ios_base::fmtflags const flags(ss.flags());
      53              : 
      54              :             {
      55            1 :                 snapdev::safe_stream safe(ss);
      56            1 :                 ss << std::hex << 123 << '\n';
      57            1 :                 CATCH_REQUIRE("7b\n" == ss.str());
      58            1 :             }
      59            1 :             CATCH_REQUIRE(flags == ss.flags());
      60              : 
      61              :             {
      62            1 :                 snapdev::safe_stream safe(ss);
      63            1 :                 ss << std::oct << 123 << '\n';
      64            1 :                 CATCH_REQUIRE("7b\n173\n" == ss.str());
      65            1 :             }
      66            1 :             CATCH_REQUIRE(flags == ss.flags());
      67            1 :         }
      68              :     }
      69            1 :     CATCH_END_SECTION()
      70              : 
      71              :     // TODO: test precision, width, user defined flags...
      72            1 : }
      73              : 
      74              : 
      75              : 
      76              : // vim: ts=4 sw=4 et
      77              : 
        

Generated by: LCOV version 2.0-1

Snap C++ | List of projects | List of versions