Update of /cvsroot/boost/boost/libs/system/test
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv29860/test

Modified Files:
      Tag: c++0x
        error_code_test.cpp error_code_user_test.cpp 
        system_error_test.cpp 
Log Message:
Move posix_errno into sub-namespace, expand test cases, test system_error

Index: error_code_test.cpp
===================================================================
RCS file: /cvsroot/boost/boost/libs/system/test/error_code_test.cpp,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -u -d -r1.1.2.5 -r1.1.2.6
--- error_code_test.cpp 24 Jul 2007 00:51:51 -0000      1.1.2.5
+++ error_code_test.cpp 26 Jul 2007 20:22:20 -0000      1.1.2.6
@@ -31,6 +31,13 @@
 # if defined( BOOST_WINDOWS_API )
 #   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
 
 namespace
@@ -52,92 +59,81 @@
 
 int test_main( int, char ** )
 {
-  error_code ec;
-  error_code ec_0_system( 0, system_category );
-  error_code ec_1_system( 1, system_category );
+  // 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" );
 
+  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.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() );
 
-  //BOOST_CHECK( !ec_0_posix );
-  //BOOST_CHECK( ec_0_posix.value() == 0 );
-  //BOOST_CHECK( ec_0_posix.posix() == 0 );
-  //BOOST_CHECK( ec == ec_0_posix );
-  //BOOST_CHECK( ec_0_system != ec_0_posix );
-
+  error_code ec_1_system( 1, system_category );
   BOOST_CHECK( ec_1_system );
   BOOST_CHECK( ec_1_system.value() == 1 );
   BOOST_CHECK( ec_1_system.value() != 0 );
-  //BOOST_CHECK( ec_1_system.posix() != 0 );
   BOOST_CHECK( ec != ec_1_system );
   BOOST_CHECK( ec_0_system != ec_1_system );
-  //BOOST_CHECK( ec_0_posix != ec_1_system );
-
-  //BOOST_CHECK( ec_1_posix );
-  //BOOST_CHECK( ec_1_posix.value() == 1 );
-  //BOOST_CHECK( ec_1_posix.posix() == 1 );
-  //BOOST_CHECK( ec_1_posix.posix() != 0 );
-  //BOOST_CHECK( ec != ec_1_posix );
-  //BOOST_CHECK( ec_0_system != ec_1_posix );
-  //BOOST_CHECK( ec_0_posix != ec_1_posix );
-
-  //BOOST_CHECK( ec_0_posix.category() == posix_category );
-  //BOOST_CHECK( ec_0_posix.category() == ec_1_posix.category() );
-  //BOOST_CHECK( ec_0_posix.category() != system_category );
-  //BOOST_CHECK( ec_0_posix.category() != ec_0_system.category() );
-
-  //BOOST_CHECK( ec_0_posix.category().name() == "POSIX" );
-  BOOST_CHECK( ec_0_system.category().name() == "system" );
-
-  //BOOST_CHECK( ec_0_posix.category() < ec_0_system.category() );
-  //BOOST_CHECK( ec_0_posix < ec_0_system );
-
-  check_ostream( ec_0_system, "system:0" );
   check_ostream( ec_1_system, "system:1" );
 
-  //error_code ec_2_posix( no_such_file_or_directory );
-  //error_code ec_3_posix( no_such_file_or_directory, posix_category );
-
-  //BOOST_CHECK( ec_2_posix == ec_3_posix );
-  //BOOST_CHECK( ec_2_posix == no_such_file_or_directory );
-  //BOOST_CHECK( no_such_file_or_directory == ec_2_posix );
-
+  // 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 );
+  BOOST_CHECK( ec.posix() == posix::permission_denied );
+  BOOST_CHECK( ec2.posix() == posix::permission_denied );
 
 #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.posix() == no_such_file_or_directory );
+  BOOST_CHECK( ec.value() == sys::file_not_found );
+  BOOST_CHECK( ec == sys::file_not_found );
+  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.posix() == no_such_file_or_directory );
+  BOOST_CHECK( ec.value() == sys::path_not_found );
+  BOOST_CHECK( ec == sys::path_not_found );
+  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
   // TODO: write some POSIX tests

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.2
retrieving revision 1.1.2.3
diff -u -d -r1.1.2.2 -r1.1.2.3
--- error_code_user_test.cpp    24 Jul 2007 15:24:03 -0000      1.1.2.2
+++ error_code_user_test.cpp    26 Jul 2007 20:22:20 -0000      1.1.2.3
@@ -59,11 +59,11 @@
         return s;
       }
 
-      boost::system::posix_errno  posix( int ev ) const
+      boost::system::posix::posix_errno  posix( int ev ) const
       {
         return ev == BOO_BOO
-          ? boost::system::io_error
-          : boost::system::no_posix_equivalent;
+          ? boost::system::posix::io_error
+          : boost::system::posix::no_posix_equivalent;
       }
     };
 
@@ -91,10 +91,10 @@
   BOOST_CHECK( ec.value() == boost::asio::boo_boo );
   BOOST_CHECK( ec.category() == boost::asio::asio_error_category );
 
-  BOOST_CHECK( ec.posix() == boost::system::io_error );
+  BOOST_CHECK( ec.posix() == 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::no_posix_equivalent );
+  BOOST_CHECK( ec2.posix() == boost::system::posix::no_posix_equivalent );
   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.1
retrieving revision 1.2.2.2
diff -u -d -r1.2.2.1 -r1.2.2.2
--- system_error_test.cpp       17 Jun 2007 15:55:56 -0000      1.2.2.1
+++ system_error_test.cpp       26 Jul 2007 20:22:20 -0000      1.2.2.2
@@ -28,7 +28,7 @@
 
 using boost::system::system_error;
 using boost::system::error_code;
-using boost::system::posix_category;
+using boost::system::system_category;
 
 #define TEST(x,v,w) test(#x,x,v,w)
 
@@ -39,13 +39,13 @@
   {
     std::cout << "test " << desc << "\n what() returns \"" << ex.what() << 
"\"\n";
     BOOST_CHECK( ex.code().value() == v );
-    BOOST_CHECK( ex.code().category() == posix_category );
-# ifdef BOOST_WINDOWS_API
-    BOOST_CHECK( std::string( ex.what() ) == str );
-    if ( std::string( ex.what() ) != str )
-      std::cout << "expected \"" << str << "\", but what() returned \""
-        << ex.what() << "\"\n";
-# endif
+//    BOOST_CHECK( ex.code().category() == posix_category );
+//# ifdef BOOST_WINDOWS_API
+//    BOOST_CHECK( std::string( ex.what() ) == str );
+//    if ( std::string( ex.what() ) != str )
+//      std::cout << "expected \"" << str << "\", but what() returned \""
+//        << ex.what() << "\"\n";
+//# endif
   }
 
   const boost::uint_least32_t uvalue = 1u;
@@ -55,11 +55,21 @@
 {
   // all combinations of constructors:
 
-  system_error se_0_m( error_code(0, posix_category), "se_0_m" ); 
-  system_error se_1_m( 1, posix_category, "se_1_m" ); 
-  system_error se_0_nm( error_code(0, posix_category), "" ); 
-  system_error se_1_nm( 1, posix_category, "" ); 
-  system_error se_1u_m( uvalue, posix_category, "se_1u_m" ); 
+  system_error se_0_m( error_code(0, system_category), "se_0_m" ); 
+  system_error se_1_m( 1, system_category, "se_1_m" ); 
+  system_error se_0_nm( error_code(0, system_category), "" ); 
+  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" );
@@ -67,6 +77,7 @@
   TEST( se_1_nm, 1, "Operation not permitted" );
   TEST( se_1u_m, 1, "se_1u_m: Operation not permitted" );
 
+
   return 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

Reply via email to