mirror of
https://github.com/boostorg/system.git
synced 2026-06-16 08:52:38 +02:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9b8cb7f1f6 | |||
| 90b2356015 | |||
| 1c36a72b79 | |||
| 7947d0ed0d | |||
| 72d3e96c73 | |||
| ca882f286c | |||
| df78f08bd2 | |||
| f878f41fe7 | |||
| 0134441a6e | |||
| c705bab504 | |||
| af1dc84160 | |||
| 2d37749d00 |
@@ -126,6 +126,7 @@ inline char const * system_category_message_win32( int ev, char * buffer, std::s
|
||||
{
|
||||
r = boost::winapi::WideCharToMultiByte( code_page, 0, lpMsgBuf, -1, buffer, static_cast<int>( len ), NULL, NULL );
|
||||
boost::winapi::LocalFree( lpMsgBuf );
|
||||
if ( r != 0 ) --r; // exclude null terminator
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,8 +135,6 @@ inline char const * system_category_message_win32( int ev, char * buffer, std::s
|
||||
return unknown_message_win32( ev, buffer, len );
|
||||
}
|
||||
|
||||
--r; // exclude null terminator
|
||||
|
||||
while( r > 0 && ( buffer[ r-1 ] == '\n' || buffer[ r-1 ] == '\r' ) )
|
||||
{
|
||||
buffer[ --r ] = 0;
|
||||
|
||||
@@ -155,6 +155,10 @@ template<> struct is_error_condition_enum<errc::errc_t>
|
||||
};
|
||||
|
||||
// class error_category
|
||||
#if ( defined( BOOST_GCC ) && BOOST_GCC >= 40600 ) || defined( BOOST_CLANG )
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_MSVC
|
||||
#pragma warning( push )
|
||||
@@ -314,6 +318,10 @@ public:
|
||||
|
||||
} // namespace detail
|
||||
|
||||
#if ( defined( BOOST_GCC ) && BOOST_GCC >= 40600 ) || defined( BOOST_CLANG )
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
// generic_category(), system_category()
|
||||
|
||||
#if defined(BOOST_SYSTEM_HAS_CONSTEXPR)
|
||||
|
||||
+1
-1
@@ -61,4 +61,4 @@ system-run failed_constexpr_test.cpp ;
|
||||
# Quick (CI) test
|
||||
run quick.cpp ;
|
||||
|
||||
run quick.cpp : : : <warnings>all <warnings-as-errors>on : warnings_test ;
|
||||
run warnings_test.cpp : : : <warnings>all <warnings-as-errors>on <toolset>gcc:<cxxflags>-Wnon-virtual-dtor <toolset>clang:<cxxflags>-Wnon-virtual-dtor ;
|
||||
|
||||
@@ -197,7 +197,8 @@ int main( int, char ** )
|
||||
#if defined(BOOST_WINDOWS_API)
|
||||
// Borland appends newline, so just check text
|
||||
BOOST_TEST( ec.message().substr(0,13) == "Unknown error" );
|
||||
BOOST_TEST( ec_0_system.message().substr(0,36) == "The operation completed successfully" );
|
||||
// Fails when the language isn't US English
|
||||
// BOOST_TEST( ec_0_system.message().substr(0,36) == "The operation completed successfully" );
|
||||
#elif defined(linux) || defined(__linux) || defined(__linux__)
|
||||
// Linux appends value to message as unsigned, so it varies with # of bits
|
||||
BOOST_TEST( ec.message().substr(0,13) == "Unknown error" );
|
||||
|
||||
@@ -18,6 +18,16 @@
|
||||
|
||||
//
|
||||
|
||||
#if defined(BOOST_WINDOWS_API) && defined(BOOST_SYSTEM_USE_UTF8)
|
||||
|
||||
#include <boost/config/pragma_message.hpp>
|
||||
|
||||
BOOST_PRAGMA_MESSAGE( "Skipping test due to BOOST_WINDOWS_API && BOOST_SYSTEM_USE_UTF8" )
|
||||
|
||||
int main() {}
|
||||
|
||||
#else
|
||||
|
||||
#if defined(BOOST_WINDOWS_API)
|
||||
|
||||
#include <windows.h>
|
||||
@@ -90,7 +100,7 @@ static void test_message( sys::error_category const & cat, int ev )
|
||||
{
|
||||
BOOST_TEST_EQ( cat.message( ev ), sys_strerror( ev ) );
|
||||
|
||||
char buffer[ 2048 ]; // yes, really
|
||||
char buffer[ 4096 ]; // yes, really
|
||||
BOOST_TEST_CSTR_EQ( cat.message( ev, buffer, sizeof( buffer ) ), sys_strerror( ev ).c_str() );
|
||||
}
|
||||
|
||||
@@ -100,17 +110,12 @@ int main()
|
||||
|
||||
// message
|
||||
|
||||
for( int i = -2; i < 1024; ++i )
|
||||
{
|
||||
test_message( cat, i );
|
||||
}
|
||||
|
||||
test_message( cat, 5810 );
|
||||
|
||||
for( int i = 10000; i < 11032; ++i )
|
||||
for( int i = -2; i < 16000; ++i )
|
||||
{
|
||||
test_message( cat, i );
|
||||
}
|
||||
|
||||
return boost::report_errors();
|
||||
}
|
||||
|
||||
#endif // #if defined(BOOST_WINDOWS_API) && defined(BOOST_SYSTEM_USE_UTF8)
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace
|
||||
BOOST_TEST( ex.code().category() == system_category() );
|
||||
# ifdef BOOST_WINDOWS_API
|
||||
LANGID language_id;
|
||||
# if !defined(__MINGW32__) && !defined(__CYGWIN__) && !BOOST_PLAT_WINDOWS_RUNTIME
|
||||
# if !BOOST_PLAT_WINDOWS_RUNTIME
|
||||
language_id = ::GetUserDefaultUILanguage();
|
||||
# else
|
||||
language_id = 0x0409; // Assume US English
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
|
||||
// Copyright 2017, 2019 Peter Dimov.
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
//
|
||||
// See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
// See library home page at http://www.boost.org/libs/system
|
||||
|
||||
#include <boost/config.hpp>
|
||||
|
||||
#if defined( BOOST_GCC ) && BOOST_GCC < 40600
|
||||
#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
|
||||
#endif
|
||||
|
||||
#include <boost/system/error_code.hpp>
|
||||
#include <boost/core/lightweight_test.hpp>
|
||||
#include <cerrno>
|
||||
|
||||
int main()
|
||||
{
|
||||
boost::system::error_category const & bt = boost::system::generic_category();
|
||||
|
||||
int ev = ENOENT;
|
||||
|
||||
boost::system::error_code bc( ev, bt );
|
||||
|
||||
BOOST_TEST_EQ( bc.value(), ev );
|
||||
BOOST_TEST_EQ( &bc.category(), &bt );
|
||||
|
||||
boost::system::error_condition bn = bt.default_error_condition( ev );
|
||||
|
||||
BOOST_TEST_EQ( bn.value(), ev );
|
||||
BOOST_TEST_EQ( &bn.category(), &bt );
|
||||
|
||||
BOOST_TEST( bt.equivalent( ev, bn ) );
|
||||
|
||||
BOOST_TEST( bc == bn );
|
||||
|
||||
return boost::report_errors();
|
||||
}
|
||||
Reference in New Issue
Block a user