Protect test for dynarray under libcpp-no-exceptions

This test expects an exception be thrown.

Differential Revision: https://reviews.llvm.org/D26611

llvm-svn: 288155
This commit is contained in:
Roger Ferrer Ibanez 2016-11-29 16:27:45 +00:00
parent cf93b5ba9e
commit 21ad28cfb4
1 changed files with 6 additions and 1 deletions

View File

@ -7,7 +7,6 @@
//
//===----------------------------------------------------------------------===//
// XFAIL: libcpp-no-exceptions
// UNSUPPORTED: c++98, c++03, c++11
// dynarray.cons
@ -29,6 +28,8 @@
#include <new>
#include <string>
#include "test_macros.h"
using std::experimental::dynarray;
@ -61,12 +62,14 @@ void test ( const T &val, bool DefaultValueIsIndeterminate = false) {
assert ( std::all_of ( d3.begin (), d3.end (), [&val]( const T &item ){ return item == val; } ));
}
#ifndef TEST_HAS_NO_EXCEPTIONS
void test_bad_length () {
try { dynarray<int> ( std::numeric_limits<size_t>::max() / sizeof ( int ) + 1 ); }
catch ( std::bad_array_length & ) { return ; }
catch (...) { assert(false); }
assert ( false );
}
#endif
int main()
@ -87,5 +90,7 @@ int main()
assert ( d1.size() == 20 );
assert ( std::all_of ( d1.begin (), d1.end (), []( long item ){ return item == 3L; } ));
#ifndef TEST_HAS_NO_EXCEPTIONS
test_bad_length ();
#endif
}