Update of /cvsroot/boost/boost/libs/system/test
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv24787/test
Modified Files:
Tag: c++0x
error_code_test.cpp error_code_user_test.cpp
system_error_test.cpp
Log Message:
error_code op== and != now distinguish between portable and specific cases.
Revert some other changes as unhelpful.
Index: error_code_test.cpp
===================================================================
RCS file: /cvsroot/boost/boost/libs/system/test/error_code_test.cpp,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -d -r1.1.2.6 -r1.1.2.7
--- error_code_test.cpp 26 Jul 2007 20:22:20 -0000 1.1.2.6
+++ error_code_test.cpp 30 Jul 2007 02:03:39 -0000 1.1.2.7
@@ -32,10 +32,8 @@
# include "winerror.h"
# include <boost/cerrno.hpp>
# define BOOST_ACCESS_ERROR_MACRO ERROR_ACCESS_DENIED
-# define BOOST_ACCESS_ERROR_CONSTANT boost::system::sys::access_denied
# elif defined( BOOST_POSIX_API )
# define BOOST_ACCESS_ERROR_MACRO EACCES
-# define BOOST_ACCESS_ERROR_CONSTANT permission_denied
# else
# error "Only supported for POSIX and Windows"
# endif
@@ -59,29 +57,27 @@
int test_main( int, char ** )
{
- // reality check:
- BOOST_CHECK( BOOST_ACCESS_ERROR_MACRO == BOOST_ACCESS_ERROR_CONSTANT );
-
// unit tests:
error_code ec;
BOOST_CHECK( !ec );
BOOST_CHECK( ec.value() == 0 );
BOOST_CHECK( ec.posix() == 0 );
BOOST_CHECK( ec.posix() == posix::no_error );
- BOOST_CHECK( ec.category() == system_category );
- BOOST_CHECK( ec.category().name() == "system" );
+ BOOST_CHECK( ec == posix::no_error );
+ BOOST_CHECK( ec.category() == posix_category );
+ BOOST_CHECK( ec.category().name() == "POSIX" );
error_code ec_0_system( 0, system_category );
BOOST_CHECK( !ec_0_system );
BOOST_CHECK( ec_0_system.value() == 0 );
BOOST_CHECK( ec_0_system.posix() == 0 );
BOOST_CHECK( ec_0_system.posix() == posix::no_error );
+ BOOST_CHECK( ec_0_system == posix::no_error );
BOOST_CHECK( ec_0_system.category() == system_category );
BOOST_CHECK( ec_0_system.category().name() == "system" );
check_ostream( ec_0_system, "system:0" );
BOOST_CHECK( ec_0_system == ec );
- BOOST_CHECK( ec_0_system.category() == ec.category() );
error_code ec_1_system( 1, system_category );
BOOST_CHECK( ec_1_system );
@@ -91,48 +87,46 @@
BOOST_CHECK( ec_0_system != ec_1_system );
check_ostream( ec_1_system, "system:1" );
- // These are critical use-case tests; if these break, the library is not
- // useful in production code. Thus it is particularly important that
- // "improvements" to the library do not break these tests.
- error_code ec2( BOOST_ACCESS_ERROR_CONSTANT );
- ec = BOOST_ACCESS_ERROR_CONSTANT;
- BOOST_CHECK( ec == ec2 );
- BOOST_CHECK( ec == BOOST_ACCESS_ERROR_CONSTANT );
- BOOST_CHECK( ec2 == BOOST_ACCESS_ERROR_CONSTANT );
- BOOST_CHECK( ec.value() == BOOST_ACCESS_ERROR_CONSTANT );
- BOOST_CHECK( ec2.value() == BOOST_ACCESS_ERROR_CONSTANT );
+ ec = error_code( BOOST_ACCESS_ERROR_MACRO, system_category );
+ BOOST_CHECK( ec );
+ BOOST_CHECK( ec.value() == BOOST_ACCESS_ERROR_MACRO );
+ BOOST_CHECK( ec.posix() == static_cast<int>(posix::permission_denied) );
BOOST_CHECK( ec.posix() == posix::permission_denied );
- BOOST_CHECK( ec2.posix() == posix::permission_denied );
+ BOOST_CHECK( posix::permission_denied == ec.posix() );
+ BOOST_CHECK( ec == posix::permission_denied );
+ BOOST_CHECK( ec.category() == system_category );
+ BOOST_CHECK( ec.category().name() == "system" );
#ifdef BOOST_WINDOWS_API
// these tests probe the Windows posix decoder
// test the first entry in the decoder table:
ec = error_code( ERROR_FILE_NOT_FOUND, system_category );
BOOST_CHECK( ec.value() == ERROR_FILE_NOT_FOUND );
- BOOST_CHECK( ec.value() == sys::file_not_found );
- BOOST_CHECK( ec == sys::file_not_found );
+ BOOST_CHECK( ec == posix::no_such_file_or_directory );
BOOST_CHECK( ec.posix() == posix::no_such_file_or_directory );
// test the second entry in the decoder table:
ec = error_code( ERROR_PATH_NOT_FOUND, system_category );
BOOST_CHECK( ec.value() == ERROR_PATH_NOT_FOUND );
- BOOST_CHECK( ec.value() == sys::path_not_found );
- BOOST_CHECK( ec == sys::path_not_found );
+ BOOST_CHECK( ec == posix::no_such_file_or_directory );
BOOST_CHECK( ec.posix() == posix::no_such_file_or_directory );
// test the third entry in the decoder table:
ec = error_code( ERROR_ACCESS_DENIED, system_category );
BOOST_CHECK( ec.value() == ERROR_ACCESS_DENIED );
+ BOOST_CHECK( ec == posix::permission_denied );
BOOST_CHECK( ec.posix() == posix::permission_denied );
// test the last regular entry in the decoder table:
ec = error_code( ERROR_WRITE_PROTECT, system_category );
BOOST_CHECK( ec.value() == ERROR_WRITE_PROTECT );
+ BOOST_CHECK( ec == posix::permission_denied );
BOOST_CHECK( ec.posix() == posix::permission_denied );
// test not-in-table condition:
ec = error_code( 1234567890, system_category );
BOOST_CHECK( ec.value() == 1234567890 );
+ BOOST_CHECK( ec == posix::no_posix_equivalent );
BOOST_CHECK( ec.posix() == posix::no_posix_equivalent );
#else
Index: error_code_user_test.cpp
===================================================================
RCS file: /cvsroot/boost/boost/libs/system/test/error_code_user_test.cpp,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -d -r1.1.2.3 -r1.1.2.4
--- error_code_user_test.cpp 26 Jul 2007 20:22:20 -0000 1.1.2.3
+++ error_code_user_test.cpp 30 Jul 2007 02:03:39 -0000 1.1.2.4
@@ -10,12 +10,11 @@
// ------------------------------------------------------------------------
//
// This code demonstrates creation and use of a new category of error codes.
-// The motivation was a Boost posting by Christopher Kohlhoff on June 28,
2006.
+// Motivation was a Boost posting by Christopher Kohlhoff on June 28, 2006.
#include <boost/system/error_code.hpp>
#include <boost/cerrno.hpp>
-
// ------------------------------------------------------------------------
//
// header asio.hpp
@@ -65,9 +64,15 @@
? boost::system::posix::io_error
: boost::system::posix::no_posix_equivalent;
}
+
+ std::string message( int ev ) const
+ {
+ return std::string("boo hoo");
+ }
};
const asio_error_category_imp asio_error_category_const;
+
const boost::system::error_category & asio_error_category
= asio_error_category_const;
}
@@ -75,6 +80,17 @@
// ------------------------------------------------------------------------
//
+// user function that just passes through a code from the C-runtime
+
+#include <cstdio>
+
+boost::system::error_code always_fail()
+{
+ return boost::system::error_code( 1, boost::system::system_category );
+}
+
+// ------------------------------------------------------------------------
//
+
// a user program:
@@ -92,9 +108,16 @@
BOOST_CHECK( ec.category() == boost::asio::asio_error_category );
BOOST_CHECK( ec.posix() == boost::system::posix::io_error );
+ BOOST_CHECK( ec == boost::system::posix::io_error );
boost::system::error_code ec2( boost::asio::boo_boo+1,
boost::asio::asio_error_category );
BOOST_CHECK( ec2.posix() == boost::system::posix::no_posix_equivalent );
+
+ ec = always_fail();
+ BOOST_CHECK( ec );
+ BOOST_CHECK( ec.value() == 1 );
+ BOOST_CHECK( ec.category() == boost::system::system_category );
+
return 0;
}
Index: system_error_test.cpp
===================================================================
RCS file: /cvsroot/boost/boost/libs/system/test/system_error_test.cpp,v
retrieving revision 1.2.2.2
retrieving revision 1.2.2.3
diff -u -d -r1.2.2.2 -r1.2.2.3
--- system_error_test.cpp 26 Jul 2007 20:22:20 -0000 1.2.2.2
+++ system_error_test.cpp 30 Jul 2007 02:03:39 -0000 1.2.2.3
@@ -61,16 +61,6 @@
system_error se_1_nm( 1, system_category, "" );
system_error se_1u_m( uvalue, system_category, "se_1u_m" );
-# ifdef BOOST_POSIX_API
- system_error se_2_m( boost::system::posix::address_in_use, "foobar" );
- BOOST_CHECK( se_2_m.code() == boost::system::posix::address_in_use );
-# else
- system_error se_2_m( boost::system::sys::lock_violation, "foobar" );
- BOOST_CHECK( se_2_m.code() == boost::system::sys::lock_violation );
-# endif
- BOOST_CHECK( std::string("foobar") == se_2_m.what() );
- std::cout << "*" << se_2_m.what() << "*\n";
-
TEST( se_0_m, 0, "se_0_m" );
TEST( se_1_m, 1, "se_1_m: Operation not permitted" );
TEST( se_0_nm, 0, "" );
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs