void AllocatorTest::bad_alloc_test() { typedef allocator<BigStruct> BigStructAllocType; BigStructAllocType bigStructAlloc; try { //Lets try to allocate almost 4096 Go (on most of the platforms) of memory: BigStructAllocType::pointer pbigStruct = bigStructAlloc.allocate(1024 * 1024 * 1024); CPPUNIT_ASSERT( pbigStruct != 0 && "Allocation failed but no exception thrown" ); } catch (bad_alloc const&) { } catch (...) { //We shouldn't be there: CPPUNIT_ASSERT( false && "Not bad_alloc exception thrown." ); } }
void AllocatorTest::bad_alloc_test() { typedef allocator<BigStruct> BigStructAllocType; BigStructAllocType bigStructAlloc; try { //Lets try to allocate almost 4096 Go (on most of the platforms) of memory: BigStructAllocType::pointer pbigStruct = bigStructAlloc.allocate(1024 * 1024 * 1024); //Allocation failed but no exception thrown CPPUNIT_ASSERT( pbigStruct != 0 ); // Just it case it succeeds: bigStructAlloc.deallocate(pbigStruct, 1024 * 1024 * 1024); } catch (bad_alloc const&) { } catch (...) { //We shouldn't be there: //Not bad_alloc exception thrown. CPPUNIT_FAIL; } }