LCOV - code coverage report
Current view: top level - /jenkins/workspace/boost-root/libs/capy/src - error.cpp (source / functions) Coverage Total Hit
Test: coverage_remapped.info Lines: 100.0 % 18 18
Test Date: 2026-07-22 18:54:45 Functions: 100.0 % 3 3

           TLA  Line data    Source code
       1                 : //
       2                 : // Copyright (c) 2025 Vinnie Falco (vinnie.falco@gmail.com)
       3                 : // Copyright (c) 2026 Michael Vandeberg
       4                 : //
       5                 : // Distributed under the Boost Software License, Version 1.0. (See accompanying
       6                 : // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       7                 : //
       8                 : // Official repository: https://github.com/cppalliance/capy
       9                 : //
      10                 : 
      11                 : #include <boost/capy/error.hpp>
      12                 : #include <boost/capy/cond.hpp>
      13                 : 
      14                 : namespace boost {
      15                 : namespace capy {
      16                 : 
      17                 : namespace detail {
      18                 : 
      19                 : const char*
      20 HIT           2 : error_cat_type::
      21                 : name() const noexcept
      22                 : {
      23               2 :     return "boost.capy";
      24                 : }
      25                 : 
      26                 : std::string
      27             323 : error_cat_type::
      28                 : message(int code) const
      29                 : {
      30             323 :     switch(static_cast<error>(code))
      31                 :     {
      32               6 :     case error::eof: return "eof";
      33               3 :     case error::canceled: return "operation canceled";
      34             951 :     case error::test_failure: return "test failure";
      35               3 :     case error::stream_truncated: return "stream truncated";
      36               3 :     case error::timeout: return "timeout";
      37               1 :     default:
      38               2 :         return "unknown";
      39                 :     }
      40                 : }
      41                 : 
      42                 : // Map each capy error code to its canonical portable condition.
      43                 : // canceled and timeout have standard equivalents, so they map to the
      44                 : // generic conditions rather than capy's own cond enumerators; this is
      45                 : // what lets, e.g., error::canceled compare equal to
      46                 : // std::errc::operation_canceled.
      47                 : std::error_condition
      48              82 : error_cat_type::
      49                 : default_error_condition(int code) const noexcept
      50                 : {
      51              82 :     switch(static_cast<error>(code))
      52                 :     {
      53              41 :     case error::eof:              return make_error_condition(cond::eof);
      54              33 :     case error::canceled:         return std::make_error_condition(std::errc::operation_canceled);
      55               1 :     case error::stream_truncated: return make_error_condition(cond::stream_truncated);
      56               2 :     case error::timeout:          return std::make_error_condition(std::errc::timed_out);
      57               5 :     default:                      return std::error_condition(code, *this);
      58                 :     }
      59                 : }
      60                 : 
      61                 : //-----------------------------------------------
      62                 : 
      63                 : // msvc 14.0 has a bug that warns about inability
      64                 : // to use constexpr construction here, even though
      65                 : // there's no constexpr construction
      66                 : #if BOOST_CAPY_WORKAROUND(_MSC_VER, <= 1900)
      67                 : BOOST_CAPY_MSVC_WARNING_PUSH
      68                 : BOOST_CAPY_MSVC_WARNING_DISABLE(4592)
      69                 : #endif
      70                 : 
      71                 : #if defined(__cpp_constinit) && __cpp_constinit >= 201907L
      72                 : constinit error_cat_type error_cat;
      73                 : #else
      74                 : error_cat_type error_cat;
      75                 : #endif
      76                 : 
      77                 : #if BOOST_CAPY_WORKAROUND(_MSC_VER, <= 1900)
      78                 : BOOST_CAPY_MSVC_WARNING_POP
      79                 : #endif
      80                 : 
      81                 : } // detail
      82                 : 
      83                 : } // capy
      84                 : } // boost
        

Generated by: LCOV version 2.3