Skip to content

Commit

Permalink
Protect locale tests under noexceptions
Browse files Browse the repository at this point in the history
Skip tests that expect exceptions be thrown.

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

llvm-svn: 288156
  • Loading branch information
Roger Ferrer Ibanez committed Nov 29, 2016
1 parent 21ad28c commit d7306fb
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 4 deletions.
Expand Up @@ -7,7 +7,6 @@
//
//===----------------------------------------------------------------------===//

// XFAIL: libcpp-no-exceptions
// <locale>

// wstring_convert<Codecvt, Elem, Wide_alloc, Byte_alloc>
Expand All @@ -29,6 +28,7 @@ int main()
static_assert(!std::is_convertible<std::string, Myconv>::value, "");
static_assert( std::is_constructible<Myconv, std::string>::value, "");
#endif
#ifndef TEST_HAS_NO_EXCEPTIONS
{
Myconv myconv;
try
Expand All @@ -48,10 +48,12 @@ int main()
{
}
}
#endif
{
Myconv myconv("byte error");
std::string bs = myconv.to_bytes(L"\xDA83");
assert(bs == "byte error");
#ifndef TEST_HAS_NO_EXCEPTIONS
try
{
myconv.from_bytes('\xA5');
Expand All @@ -60,6 +62,7 @@ int main()
catch (const std::range_error&)
{
}
#endif
}
{
Myconv myconv("byte error", L"wide error");
Expand Down
Expand Up @@ -7,14 +7,15 @@
//
//===----------------------------------------------------------------------===//

// XFAIL: libcpp-no-exceptions
// <locale>

// template <class Facet> const Facet& use_facet(const locale& loc);

#include <locale>
#include <cassert>

#include "test_macros.h"

int facet_count = 0;

struct my_facet
Expand All @@ -32,6 +33,7 @@ std::locale::id my_facet::id;

int main()
{
#ifndef TEST_HAS_NO_EXCEPTIONS
try
{
const my_facet& f = std::use_facet<my_facet>(std::locale());
Expand All @@ -41,6 +43,7 @@ int main()
catch (std::bad_cast&)
{
}
#endif
const my_facet* fp = 0;
{
std::locale loc(std::locale(), new my_facet);
Expand Down
Expand Up @@ -7,7 +7,6 @@
//
//===----------------------------------------------------------------------===//

// XFAIL: libcpp-no-exceptions
// REQUIRES: locale.ru_RU.UTF-8
// REQUIRES: locale.zh_CN.UTF-8

Expand All @@ -22,6 +21,8 @@
#include "count_new.hpp"
#include "platform_support.h" // locale name macros

#include "test_macros.h"


void check(const std::locale& loc)
{
Expand Down Expand Up @@ -70,6 +71,7 @@ int main()
check(loc3);
assert(!(loc == loc3));
assert(loc != loc3);
#ifndef TEST_HAS_NO_EXCEPTIONS
try
{
std::locale((const char*)0);
Expand All @@ -86,6 +88,7 @@ int main()
catch (std::runtime_error&)
{
}
#endif
std::locale ok("");
}
assert(globalMemCounter.checkOutstandingNewEq(0));
Expand Down
Expand Up @@ -7,7 +7,6 @@
//
//===----------------------------------------------------------------------===//

// XFAIL: libcpp-no-exceptions
// <locale>

// template <class Facet> locale combine(const locale& other) const;
Expand All @@ -18,6 +17,8 @@

#include "count_new.hpp"

#include "test_macros.h"

void check(const std::locale& loc)
{
assert(std::has_facet<std::collate<char> >(loc));
Expand Down Expand Up @@ -78,6 +79,7 @@ int main()
}
assert(globalMemCounter.checkOutstandingNewEq(0));
}
#ifndef TEST_HAS_NO_EXCEPTIONS
{
{
std::locale loc;
Expand All @@ -93,4 +95,5 @@ int main()
}
assert(globalMemCounter.checkOutstandingNewEq(0));
}
#endif
}

0 comments on commit d7306fb

Please sign in to comment.