Ticket #4246: value_init_lightweight_test.patch

File value_init_lightweight_test.patch, 8.2 KB (added by niels_dekker, 12 years ago)
  • libs/utility/value_init_test.cpp

     
    2222#pragma hdrstop
    2323#endif
    2424
    25 #include "boost/test/minimal.hpp"
     25#include <boost/detail/lightweight_test.hpp>
    2626
    2727//
    2828// Sample POD type
     
    215215void check_initialized_value ( T const& y )
    216216{
    217217  T initializedValue = boost::initialized_value ;
    218   BOOST_CHECK ( y == initializedValue ) ;
     218  BOOST_TEST ( y == initializedValue ) ;
    219219}
    220220
    221221#ifdef  __BORLANDC__
     
    245245template<class T>
    246246bool test ( T const& y, T const& z )
    247247{
    248   const boost::unit_test::counter_t counter_before_test = boost::minimal_test::errors_counter();
     248  const int errors_before_test = boost::detail::test_errors();
    249249
    250250  check_initialized_value(y);
    251251
    252252  boost::value_initialized<T> x ;
    253   BOOST_CHECK ( y == x ) ;
    254   BOOST_CHECK ( y == boost::get(x) ) ;
     253  BOOST_TEST ( y == x ) ;
     254  BOOST_TEST ( y == boost::get(x) ) ;
    255255
    256256  static_cast<T&>(x) = z ;
    257257  boost::get(x) = z ;
    258   BOOST_CHECK ( x == z ) ;
     258  BOOST_TEST ( x == z ) ;
    259259
    260260  boost::value_initialized<T> const x_c ;
    261   BOOST_CHECK ( y == x_c ) ;
    262   BOOST_CHECK ( y == boost::get(x_c) ) ;
     261  BOOST_TEST ( y == x_c ) ;
     262  BOOST_TEST ( y == boost::get(x_c) ) ;
    263263  T& x_c_ref = const_cast<T&>( boost::get(x_c) ) ;
    264264  x_c_ref = z ;
    265   BOOST_CHECK ( x_c == z ) ;
     265  BOOST_TEST ( x_c == z ) ;
    266266
    267267  boost::value_initialized<T> const copy1 = x;
    268   BOOST_CHECK ( boost::get(copy1) == boost::get(x) ) ;
     268  BOOST_TEST ( boost::get(copy1) == boost::get(x) ) ;
    269269
    270270  boost::value_initialized<T> copy2;
    271271  copy2 = x;
    272   BOOST_CHECK ( boost::get(copy2) == boost::get(x) ) ;
     272  BOOST_TEST ( boost::get(copy2) == boost::get(x) ) ;
    273273 
    274274  boost::shared_ptr<boost::value_initialized<T> > ptr( new boost::value_initialized<T> );
    275   BOOST_CHECK ( y == *ptr ) ;
     275  BOOST_TEST ( y == *ptr ) ;
    276276
    277277#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
    278278  boost::value_initialized<T const> cx ;
    279   BOOST_CHECK ( y == cx ) ;
    280   BOOST_CHECK ( y == boost::get(cx) ) ;
     279  BOOST_TEST ( y == cx ) ;
     280  BOOST_TEST ( y == boost::get(cx) ) ;
    281281
    282282  boost::value_initialized<T const> const cx_c ;
    283   BOOST_CHECK ( y == cx_c ) ;
    284   BOOST_CHECK ( y == boost::get(cx_c) ) ;
     283  BOOST_TEST ( y == cx_c ) ;
     284  BOOST_TEST ( y == boost::get(cx_c) ) ;
    285285#endif
    286286
    287   return boost::minimal_test::errors_counter() == counter_before_test ;
     287  return boost::detail::test_errors() == errors_before_test ;
    288288}
    289289
    290 int test_main(int, char **)
     290int main(int, char **)
    291291{
    292   BOOST_CHECK ( test( 0,1234 ) ) ;
    293   BOOST_CHECK ( test( 0.0,12.34 ) ) ;
    294   BOOST_CHECK ( test( POD(0,0,0.0), POD('a',1234,56.78f) ) ) ;
    295   BOOST_CHECK ( test( NonPOD( std::string() ), NonPOD( std::string("something") ) ) ) ;
     292  BOOST_TEST ( test( 0,1234 ) ) ;
     293  BOOST_TEST ( test( 0.0,12.34 ) ) ;
     294  BOOST_TEST ( test( POD(0,0,0.0), POD('a',1234,56.78f) ) ) ;
     295  BOOST_TEST ( test( NonPOD( std::string() ), NonPOD( std::string("something") ) ) ) ;
    296296
    297297  NonPOD NonPOD_object( std::string("NonPOD_object") );
    298   BOOST_CHECK ( test<NonPOD *>( 0, &NonPOD_object ) ) ;
     298  BOOST_TEST ( test<NonPOD *>( 0, &NonPOD_object ) ) ;
    299299
    300300  AggregatePODStruct zeroInitializedAggregatePODStruct = { 0.0f, '\0', 0 };
    301301  AggregatePODStruct nonZeroInitializedAggregatePODStruct = { 1.25f, 'a', -1 };
    302   BOOST_CHECK ( test(zeroInitializedAggregatePODStruct, nonZeroInitializedAggregatePODStruct) );
     302  BOOST_TEST ( test(zeroInitializedAggregatePODStruct, nonZeroInitializedAggregatePODStruct) );
    303303
    304304  StringAndInt stringAndInt0;
    305305  StringAndInt stringAndInt1;
    306306  stringAndInt0.i = 0;
    307307  stringAndInt1.i = 1;
    308308  stringAndInt1.s = std::string("1");
    309   BOOST_CHECK ( test(stringAndInt0, stringAndInt1) );
     309  BOOST_TEST ( test(stringAndInt0, stringAndInt1) );
    310310
    311311  StructWithDestructor structWithDestructor0;
    312312  StructWithDestructor structWithDestructor1;
    313313  structWithDestructor0.i = 0;
    314314  structWithDestructor1.i = 1;
    315   BOOST_CHECK ( test(structWithDestructor0, structWithDestructor1) );
     315  BOOST_TEST ( test(structWithDestructor0, structWithDestructor1) );
    316316
    317317  StructWithVirtualFunction structWithVirtualFunction0;
    318318  StructWithVirtualFunction structWithVirtualFunction1;
    319319  structWithVirtualFunction0.i = 0;
    320320  structWithVirtualFunction1.i = 1;
    321   BOOST_CHECK ( test(structWithVirtualFunction0, structWithVirtualFunction1) );
     321  BOOST_TEST ( test(structWithVirtualFunction0, structWithVirtualFunction1) );
    322322
    323323  DerivedFromAggregatePODStruct derivedFromAggregatePODStruct0;
    324324  DerivedFromAggregatePODStruct derivedFromAggregatePODStruct1;
    325325  static_cast<AggregatePODStruct &>(derivedFromAggregatePODStruct0) = zeroInitializedAggregatePODStruct;
    326326  static_cast<AggregatePODStruct &>(derivedFromAggregatePODStruct1) = nonZeroInitializedAggregatePODStruct;
    327   BOOST_CHECK ( test(derivedFromAggregatePODStruct0, derivedFromAggregatePODStruct1) );
     327  BOOST_TEST ( test(derivedFromAggregatePODStruct0, derivedFromAggregatePODStruct1) );
    328328
    329329  AggregatePODStructWrapper aggregatePODStructWrapper0;
    330330  AggregatePODStructWrapper aggregatePODStructWrapper1;
    331331  aggregatePODStructWrapper0.dataMember = zeroInitializedAggregatePODStruct;
    332332  aggregatePODStructWrapper1.dataMember = nonZeroInitializedAggregatePODStruct;
    333   BOOST_CHECK ( test(aggregatePODStructWrapper0, aggregatePODStructWrapper1) );
     333  BOOST_TEST ( test(aggregatePODStructWrapper0, aggregatePODStructWrapper1) );
    334334
    335335  ArrayOfBytes zeroInitializedArrayOfBytes = { 0 };
    336336  boost::value_initialized<ArrayOfBytes> valueInitializedArrayOfBytes;
    337   BOOST_CHECK (std::memcmp(get(valueInitializedArrayOfBytes), zeroInitializedArrayOfBytes, sizeof(ArrayOfBytes)) == 0);
     337  BOOST_TEST (std::memcmp(get(valueInitializedArrayOfBytes), zeroInitializedArrayOfBytes, sizeof(ArrayOfBytes)) == 0);
    338338
    339339  boost::value_initialized<ArrayOfBytes> valueInitializedArrayOfBytes2;
    340340  valueInitializedArrayOfBytes2 = valueInitializedArrayOfBytes;
    341   BOOST_CHECK (std::memcmp(get(valueInitializedArrayOfBytes), get(valueInitializedArrayOfBytes2), sizeof(ArrayOfBytes)) == 0);
     341  BOOST_TEST (std::memcmp(get(valueInitializedArrayOfBytes), get(valueInitializedArrayOfBytes2), sizeof(ArrayOfBytes)) == 0);
    342342
    343343  boost::value_initialized<CopyFunctionCallTester> copyFunctionCallTester1;
    344   BOOST_CHECK ( ! get(copyFunctionCallTester1).is_copy_constructed);
    345   BOOST_CHECK ( ! get(copyFunctionCallTester1).is_assignment_called);
     344  BOOST_TEST ( ! get(copyFunctionCallTester1).is_copy_constructed);
     345  BOOST_TEST ( ! get(copyFunctionCallTester1).is_assignment_called);
    346346
    347347  boost::value_initialized<CopyFunctionCallTester> copyFunctionCallTester2 = boost::value_initialized<CopyFunctionCallTester>(copyFunctionCallTester1);
    348   BOOST_CHECK ( get(copyFunctionCallTester2).is_copy_constructed);
    349   BOOST_CHECK ( ! get(copyFunctionCallTester2).is_assignment_called);
     348  BOOST_TEST ( get(copyFunctionCallTester2).is_copy_constructed);
     349  BOOST_TEST ( ! get(copyFunctionCallTester2).is_assignment_called);
    350350
    351351  boost::value_initialized<CopyFunctionCallTester> copyFunctionCallTester3;
    352352  copyFunctionCallTester3 = boost::value_initialized<CopyFunctionCallTester>(copyFunctionCallTester1);
    353   BOOST_CHECK ( ! get(copyFunctionCallTester3).is_copy_constructed);
    354   BOOST_CHECK ( get(copyFunctionCallTester3).is_assignment_called);
     353  BOOST_TEST ( ! get(copyFunctionCallTester3).is_copy_constructed);
     354  BOOST_TEST ( get(copyFunctionCallTester3).is_assignment_called);
    355355
    356356  boost::value_initialized<SwapFunctionCallTester> swapFunctionCallTester1;
    357357  boost::value_initialized<SwapFunctionCallTester> swapFunctionCallTester2;
    358358  get(swapFunctionCallTester1).data = 1;
    359359  get(swapFunctionCallTester2).data = 2;
    360360  boost::swap(swapFunctionCallTester1, swapFunctionCallTester2);
    361   BOOST_CHECK( get(swapFunctionCallTester1).data == 2 );
    362   BOOST_CHECK( get(swapFunctionCallTester2).data == 1 );
    363   BOOST_CHECK( get(swapFunctionCallTester1).is_custom_swap_called );
    364   BOOST_CHECK( get(swapFunctionCallTester2).is_custom_swap_called );
     361  BOOST_TEST( get(swapFunctionCallTester1).data == 2 );
     362  BOOST_TEST( get(swapFunctionCallTester2).data == 1 );
     363  BOOST_TEST( get(swapFunctionCallTester1).is_custom_swap_called );
     364  BOOST_TEST( get(swapFunctionCallTester2).is_custom_swap_called );
    365365
    366   return 0;
     366  return boost::report_errors();
    367367}
    368368
    369369
    370 unsigned int expected_failures = 0;
    371 
    372