summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2014-08-04 18:44:48 +0000
committerDan Albert <danalbert@google.com>2014-08-04 18:44:48 +0000
commita85b27f6f7fa2b68646e547daef82dd6b2d3189d (patch)
treee38f086a949449ac6a5020b7dac088a5adcb37cf
parentee02499a8fb64f9710b4543f2f46c5305dcb11fc (diff)
downloadbcm5719-llvm-a85b27f6f7fa2b68646e547daef82dd6b2d3189d.tar.gz
bcm5719-llvm-a85b27f6f7fa2b68646e547daef82dd6b2d3189d.zip
Add locales to available_features for tests.
Linux has a lot of failures caused by not having support for certain locales. Since these come out as a lot of noise in the test results, have lit.cfg detect the presence of the various locales used in the tests and add them to config.available_features as locale.LOCALE_NAME. This patch also adds REQUIRES: locale.REQUIRED_LOCALE to every test that I saw failing in this manner. We probably need to add more for all the tests requiring en_US.UTF-8, but we can do that on an as-needed basis. One thing that concerns me is how many tests get skipped because of missing locales (especially in regex/). We should make a point of splitting up any tests that test default behavior _and_ behavior under a given locale so that we aren't losing coverage for default behavior. llvm-svn: 214753
-rw-r--r--libcxx/test/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp3
-rw-r--r--libcxx/test/input.output/iostreams.base/ios/basic.ios.members/move.pass.cpp2
-rw-r--r--libcxx/test/input.output/iostreams.base/ios/basic.ios.members/swap.pass.cpp3
-rw-r--r--libcxx/test/input.output/stream.buffers/streambuf/streambuf.members/streambuf.locales/locales.pass.cpp3
-rw-r--r--libcxx/test/lit.cfg37
-rw-r--r--libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_1.pass.cpp3
-rw-r--r--libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_many.pass.cpp3
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp2
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp2
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp2
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp2
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp2
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp2
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/frac_digits.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/grouping.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/negative_sign.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/positive_sign.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/date_order.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/date_order_wide.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_time.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_time_wide.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_year.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_year_wide.pass.cpp5
-rw-r--r--libcxx/test/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp3
-rw-r--r--libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/decimal_point.pass.cpp3
-rw-r--r--libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp3
-rw-r--r--libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp3
-rw-r--r--libcxx/test/localization/locales/locale/locale.cons/assign.pass.cpp2
-rw-r--r--libcxx/test/localization/locales/locale/locale.cons/char_pointer.pass.cpp3
-rw-r--r--libcxx/test/localization/locales/locale/locale.cons/copy.pass.cpp2
-rw-r--r--libcxx/test/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp3
-rw-r--r--libcxx/test/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp2
-rw-r--r--libcxx/test/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp3
-rw-r--r--libcxx/test/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp2
-rw-r--r--libcxx/test/localization/locales/locale/locale.cons/string.pass.cpp3
-rw-r--r--libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp2
-rw-r--r--libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp2
-rw-r--r--libcxx/test/re/re.traits/lookup_collatename.pass.cpp2
-rw-r--r--libcxx/test/re/re.traits/transform.pass.cpp2
-rw-r--r--libcxx/test/re/re.traits/transform_primary.pass.cpp2
58 files changed, 233 insertions, 0 deletions
diff --git a/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp b/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp
index 80f6e2672de..c46e2c054e8 100644
--- a/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp
+++ b/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+
// <ios>
// template <class charT, class traits> class basic_ios
diff --git a/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/move.pass.cpp b/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/move.pass.cpp
index eb9262c9d81..509b836686c 100644
--- a/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/move.pass.cpp
+++ b/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/move.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.fr_FR.UTF-8
+
// <ios>
// template <class charT, class traits> class basic_ios
diff --git a/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/swap.pass.cpp b/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/swap.pass.cpp
index 08b8ec4a9b6..e44f4b32512 100644
--- a/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/swap.pass.cpp
+++ b/libcxx/test/input.output/iostreams.base/ios/basic.ios.members/swap.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+
// <ios>
// template <class charT, class traits> class basic_ios
diff --git a/libcxx/test/input.output/stream.buffers/streambuf/streambuf.members/streambuf.locales/locales.pass.cpp b/libcxx/test/input.output/stream.buffers/streambuf/streambuf.members/streambuf.locales/locales.pass.cpp
index 2c4f22b1cf0..deb2dc7c139 100644
--- a/libcxx/test/input.output/stream.buffers/streambuf/streambuf.members/streambuf.locales/locales.pass.cpp
+++ b/libcxx/test/input.output/stream.buffers/streambuf/streambuf.members/streambuf.locales/locales.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+
// <streambuf>
// template <class charT, class traits = char_traits<charT> >
diff --git a/libcxx/test/lit.cfg b/libcxx/test/lit.cfg
index 4b7b4705978..51c1ff56305 100644
--- a/libcxx/test/lit.cfg
+++ b/libcxx/test/lit.cfg
@@ -3,6 +3,7 @@
# Configuration file for the 'lit' test runner.
import errno
+import locale
import os
import platform
import re
@@ -175,6 +176,42 @@ config.suffixes = ['.cpp']
# test_source_root: The root path where tests are located.
config.test_source_root = os.path.dirname(__file__)
+# Figure out which of the required locales we support
+locales = {
+ 'Darwin': {
+ 'en_US.UTF-8': 'en_US.UTF-8',
+ 'cs_CZ.ISO8859-2': 'cs_CZ.ISO8859-2',
+ 'fr_FR.UTF-8': 'fr_FR.UTF-8',
+ 'fr_CA.ISO8859-1': 'cs_CZ.ISO8859-1',
+ 'ru_RU.UTF-8': 'ru_RU.UTF-8',
+ 'zh_CN.UTF-8': 'zh_CN.UTF-8',
+ },
+ 'Linux': {
+ 'en_US.UTF-8': 'en_US.UTF-8',
+ 'cs_CZ.ISO8859-2': 'cs_CZ.ISO-8859-2',
+ 'fr_FR.UTF-8': 'fr_FR.UTF-8',
+ 'fr_CA.ISO8859-1': 'fr_CA.ISO-8859-1',
+ 'ru_RU.UTF-8': 'ru_RU.UTF-8',
+ 'zh_CN.UTF-8': 'zh_CN.UTF-8',
+ },
+ 'Windows': {
+ 'en_US.UTF-8': 'English_United States.1252',
+ 'cs_CZ.ISO8859-2': 'Czech_Czech Republic.1250',
+ 'fr_FR.UTF-8': 'French_France.1252',
+ 'fr_CA.ISO8859-1': 'French_Canada.1252',
+ 'ru_RU.UTF-8': 'Russian_Russia.1251',
+ 'zh_CN.UTF-8': 'Chinese_China.936',
+ },
+}
+
+for feature, loc in locales[platform.system()].items():
+ try:
+ locale.setlocale(locale.LC_ALL, loc)
+ config.available_features.add('locale.{}'.format(feature))
+ except:
+ lit_config.warning('The locale {} is not supported by your platoform. '
+ 'Some tests will be unsupported.'.format(loc))
+
# Gather various compiler parameters.
cxx_under_test = lit_config.params.get('cxx_under_test', None)
if cxx_under_test is None:
diff --git a/libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_1.pass.cpp b/libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_1.pass.cpp
index 04d061bcf63..98bd6dc3af6 100644
--- a/libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_1.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_1.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_CA.UTF-8
+
// <locale>
// template <class charT> class ctype_byname;
diff --git a/libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_many.pass.cpp b/libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_many.pass.cpp
index 7165dc93545..0162a6f2fae 100644
--- a/libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_many.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.ctype/locale.ctype.byname/narrow_many.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_CA.UTF-8
+
// <locale>
// template <class charT> class ctype_byname;
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
index 489068c1be3..d7ce1033a8d 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp
@@ -9,6 +9,8 @@
//
// XFAIL: apple-darwin
+// REQUIRES: locale.fr_FR.UTF-8
+
// <locale>
// class money_get<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp
index 737299a2a63..44cec765d74 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp
@@ -9,6 +9,8 @@
//
// XFAIL: apple-darwin
+// REQUIRES: locale.ru_RU.UTF-8
+
// <locale>
// class money_get<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp
index cc5d825e1b5..374443a2a9e 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class money_get<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp
index 73b8f01fb4f..8b620bca376 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp
@@ -9,6 +9,8 @@
//
// XFAIL: apple-darwin
+// REQUIRES: locale.fr_FR.UTF-8
+
// <locale>
// class money_put<charT, OutputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp
index 705ed549d39..1f335e46f94 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp
@@ -9,6 +9,8 @@
//
// XFAIL: apple-darwin
+// REQUIRES: locale.ru_RU.UTF-8
+
// <locale>
// class money_put<charT, OutputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp
index 8dc68c1a004..242701e26d7 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class money_put<charT, OutputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp
index a197a189ca6..6d23d6361f8 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp
@@ -9,6 +9,11 @@
//
// XFAIL: apple-darwin
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class moneypunct_byname<charT, International>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp
index b0fa38f5de0..16d403d3e16 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/decimal_point.pass.cpp
@@ -9,6 +9,11 @@
// <locale>
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// class moneypunct_byname<charT, International>
// charT decimal_point() const;
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/frac_digits.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/frac_digits.pass.cpp
index 6bfb097525b..724dc1e5c9e 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/frac_digits.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/frac_digits.pass.cpp
@@ -9,6 +9,11 @@
// <locale>
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// class moneypunct_byname<charT, International>
// int frac_digits() const;
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/grouping.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/grouping.pass.cpp
index 5c0bd3d5f6c..b0b9da0b694 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/grouping.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/grouping.pass.cpp
@@ -9,6 +9,11 @@
//
// XFAIL: apple-darwin
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class moneypunct_byname<charT, International>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp
index e6703548c55..3fe9faf847f 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp
@@ -9,6 +9,11 @@
//
// XFAIL: apple-darwin
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class moneypunct_byname<charT, International>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/negative_sign.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/negative_sign.pass.cpp
index 97fcdaa1ac0..66c8c64243e 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/negative_sign.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/negative_sign.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class moneypunct_byname<charT, International>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp
index 3027737ce2c..7038ab16e10 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp
@@ -9,6 +9,11 @@
//
// XFAIL: apple-darwin
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class moneypunct_byname<charT, International>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/positive_sign.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/positive_sign.pass.cpp
index 3196d480432..04cd173dd1b 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/positive_sign.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/positive_sign.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class moneypunct_byname<charT, International>
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp
index b681874decb..b7e16c6af8e 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class moneypunct_byname<charT, International>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/date_order.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/date_order.pass.cpp
index f9b8ef24b02..963974d118b 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/date_order.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/date_order.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/date_order_wide.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/date_order_wide.pass.cpp
index f9fc39ffe90..c44debf35ab 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/date_order_wide.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/date_order_wide.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp
index a5935bf08d7..77ee5b36a60 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
index 4c569ca7f05..7d0034ddb2f 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp
index b9c64d792e1..a924cef8c85 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
index 17ddaceb359..009dc490e40 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
index 473bc277636..536859e933b 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
index 973d3749ab5..36c8a8e54ce 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_time.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_time.pass.cpp
index 094a52c071a..8cea95de80e 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_time.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_time.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_time_wide.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_time_wide.pass.cpp
index 451e87f8f9d..452a3544033 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_time_wide.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_time_wide.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp
index 39a6fe928c1..db070be90ab 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp
index 951aee5f30c..ac607bacce2 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_weekday_wide.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_year.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_year.pass.cpp
index b558f43c639..676e7fff87f 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_year.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_year.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_year_wide.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_year_wide.pass.cpp
index 088849d9ae1..1bdb8de601d 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_year_wide.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.get.byname/get_year_wide.pass.cpp
@@ -7,6 +7,11 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// class time_get_byname<charT, InputIterator>
diff --git a/libcxx/test/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp b/libcxx/test/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
index b6a4ed33693..ff3bb823a30 100644
--- a/libcxx/test/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+
// <locale>
// template <class CharT, class OutputIterator = ostreambuf_iterator<CharT> >
diff --git a/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/decimal_point.pass.cpp b/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/decimal_point.pass.cpp
index 7becb8c1de9..0617cdc52ca 100644
--- a/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/decimal_point.pass.cpp
+++ b/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/decimal_point.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+
// <locale>
// template <class charT> class numpunct_byname;
diff --git a/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp b/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp
index 78bd944bf44..b49eca487fa 100644
--- a/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp
+++ b/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+
// <locale>
// template <class charT> class numpunct_byname;
diff --git a/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp b/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
index 9fdca1d41c0..80b440ac930 100644
--- a/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
+++ b/libcxx/test/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.fr_FR.UTF-8
+
// <locale>
// template <class charT> class numpunct_byname;
diff --git a/libcxx/test/localization/locales/locale/locale.cons/assign.pass.cpp b/libcxx/test/localization/locales/locale/locale.cons/assign.pass.cpp
index c894b628180..4aca35440e0 100644
--- a/libcxx/test/localization/locales/locale/locale.cons/assign.pass.cpp
+++ b/libcxx/test/localization/locales/locale/locale.cons/assign.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.ru_RU.UTF-8
+
// <locale>
// const locale& operator=(const locale& other) throw();
diff --git a/libcxx/test/localization/locales/locale/locale.cons/char_pointer.pass.cpp b/libcxx/test/localization/locales/locale/locale.cons/char_pointer.pass.cpp
index d279bf09233..8b4509bad69 100644
--- a/libcxx/test/localization/locales/locale/locale.cons/char_pointer.pass.cpp
+++ b/libcxx/test/localization/locales/locale/locale.cons/char_pointer.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// explicit locale(const char* std_name);
diff --git a/libcxx/test/localization/locales/locale/locale.cons/copy.pass.cpp b/libcxx/test/localization/locales/locale/locale.cons/copy.pass.cpp
index 73ef24bca73..7dd7cf4c0b8 100644
--- a/libcxx/test/localization/locales/locale/locale.cons/copy.pass.cpp
+++ b/libcxx/test/localization/locales/locale/locale.cons/copy.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.fr_FR.UTF-8
+
// <locale>
// locale(const locale& other) throw();
diff --git a/libcxx/test/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp b/libcxx/test/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp
index f5b959aca80..6bd1f632555 100644
--- a/libcxx/test/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp
+++ b/libcxx/test/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+
// <locale>
// locale(const locale& other, const char* std_name, category);
diff --git a/libcxx/test/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp b/libcxx/test/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp
index cbf6185990c..f7349aad8a6 100644
--- a/libcxx/test/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp
+++ b/libcxx/test/localization/locales/locale/locale.cons/locale_facetptr.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.ru_RU.UTF-8
+
// <locale>
// template <class Facet> locale(const locale& other, Facet* f);
diff --git a/libcxx/test/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp b/libcxx/test/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp
index 87041a290ec..05d87a48139 100644
--- a/libcxx/test/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp
+++ b/libcxx/test/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.en_US.UTF-8
+// REQUIRES: locale.ru_RU.UTF-8
+
// <locale>
// locale(const locale& other, const locale& one, category cats);
diff --git a/libcxx/test/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp b/libcxx/test/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp
index 5774097fb5a..34718c8fb7f 100644
--- a/libcxx/test/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp
+++ b/libcxx/test/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.ru_RU.UTF-8
+
// <locale>
// locale(const locale& other, const string& std_name, category cat);
diff --git a/libcxx/test/localization/locales/locale/locale.cons/string.pass.cpp b/libcxx/test/localization/locales/locale/locale.cons/string.pass.cpp
index 55694be2068..6c80df0de11 100644
--- a/libcxx/test/localization/locales/locale/locale.cons/string.pass.cpp
+++ b/libcxx/test/localization/locales/locale/locale.cons/string.pass.cpp
@@ -7,6 +7,9 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.ru_RU.UTF-8
+// REQUIRES: locale.zh_CN.UTF-8
+
// <locale>
// explicit locale(const string& std_name);
diff --git a/libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp b/libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp
index 55c73618fbd..d63817d03e6 100644
--- a/libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.match/basic.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.cs_CZ.ISO8859-2
+
// <regex>
// template <class BidirectionalIterator, class Allocator, class charT, class traits>
diff --git a/libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp b/libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp
index 162a6a712b9..67df410282a 100644
--- a/libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.match/ecma.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.cs_CZ.ISO8859-2
+
// <regex>
// template <class BidirectionalIterator, class Allocator, class charT, class traits>
diff --git a/libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp b/libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp
index 683f65bb12b..733c16ec432 100644
--- a/libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.match/extended.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.cs_CZ.ISO8859-2
+
// <regex>
// template <class BidirectionalIterator, class Allocator, class charT, class traits>
diff --git a/libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp b/libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp
index 57606c1bb8a..74c25c1a53d 100644
--- a/libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.search/awk.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.cs_CZ.ISO8859-2
+
// <regex>
// template <class BidirectionalIterator, class Allocator, class charT, class traits>
diff --git a/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp b/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp
index 56396f31dd2..c8a5051d585 100644
--- a/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.search/basic.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.cs_CZ.ISO8859-2
+
// <regex>
// template <class BidirectionalIterator, class Allocator, class charT, class traits>
diff --git a/libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp b/libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp
index 8149157f28e..965c29d6cf6 100644
--- a/libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.search/ecma.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.cs_CZ.ISO8859-2
+
// <regex>
// template <class BidirectionalIterator, class Allocator, class charT, class traits>
diff --git a/libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp b/libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp
index 8240872d116..c181cff4728 100644
--- a/libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp
+++ b/libcxx/test/re/re.alg/re.alg.search/extended.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.cs_CZ.ISO8859-2
+
// <regex>
// template <class BidirectionalIterator, class Allocator, class charT, class traits>
diff --git a/libcxx/test/re/re.traits/lookup_collatename.pass.cpp b/libcxx/test/re/re.traits/lookup_collatename.pass.cpp
index 055b5548a70..049246ed1b1 100644
--- a/libcxx/test/re/re.traits/lookup_collatename.pass.cpp
+++ b/libcxx/test/re/re.traits/lookup_collatename.pass.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.cs_CZ.ISO8859-2
+
// <regex>
// template <class charT> struct regex_traits;
diff --git a/libcxx/test/re/re.traits/transform.pass.cpp b/libcxx/test/re/re.traits/transform.pass.cpp
index 9b9feb130b3..c3bce7939fe 100644
--- a/libcxx/test/re/re.traits/transform.pass.cpp
+++ b/libcxx/test/re/re.traits/transform.pass.cpp
@@ -8,6 +8,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.cs_CZ.ISO8859-2
+
// <regex>
// template <class charT> struct regex_traits;
diff --git a/libcxx/test/re/re.traits/transform_primary.pass.cpp b/libcxx/test/re/re.traits/transform_primary.pass.cpp
index 1e2aca67710..28734d621ad 100644
--- a/libcxx/test/re/re.traits/transform_primary.pass.cpp
+++ b/libcxx/test/re/re.traits/transform_primary.pass.cpp
@@ -8,6 +8,8 @@
//
//===----------------------------------------------------------------------===//
+// REQUIRES: locale.cs_CZ.ISO8859-2
+
// <regex>
// template <class charT> struct regex_traits;
OpenPOWER on IntegriCloud