aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/22_locale
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2019-02-19 02:55:12 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2019-02-19 02:55:12 +0000
commit102a4fe17e1b54c2de0bb7b116198f6eb1d14e2f (patch)
treec193a4c35b08f45882400bd6ee966a7bb542ac29 /libstdc++-v3/testsuite/22_locale
parent46ca1dd73c97c5bf85057d450adf4b885a427e77 (diff)
downloadgcc-102a4fe17e1b54c2de0bb7b116198f6eb1d14e2f.zip
gcc-102a4fe17e1b54c2de0bb7b116198f6eb1d14e2f.tar.gz
gcc-102a4fe17e1b54c2de0bb7b116198f6eb1d14e2f.tar.bz2
Adjust C++11/C++14 tests to work with -fchar8_t
* testsuite/21_strings/basic_string/literals/types.cc [_GLIBCXX_USE_CHAR8_T]: Adjust expected string type for u8 literal. * testsuite/21_strings/basic_string/literals/values.cc [_GLIBCXX_USE_CHAR8_T]: Likewise. * testsuite/22_locale/codecvt/char16_t.cc: Adjust for u8 literals potentially having different type. * testsuite/22_locale/codecvt/char32_t.cc: Likewise. * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Cast u8 literal to char. * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: Likewise. * testsuite/22_locale/codecvt/utf8.cc: Likewise. * testsuite/22_locale/conversions/string/2.cc: Remove u8 prefix from string literals only using basic character set. * testsuite/22_locale/conversions/string/3.cc: Likewise. Cast other u8 literals to char. * testsuite/29_atomics/headers/atomic/macros.cc [_GLIBCXX_USE_CHAR8_T]: Test ATOMIC_CHAR8_T_LOCK_FREE. Add missing #error to ATOMIC_CHAR16_T_LOCK_FREE test. * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc [_GLIBCXX_USE_CHAR8_T]: Check for std::atomic_char8_t. * testsuite/experimental/string_view/literals/types.cc [_GLIBCXX_USE_CHAR8_T]: Adjust expected string_view type for u8 literal. * testsuite/experimental/string_view/literals/values.cc [_GLIBCXX_USE_CHAR8_T]: Likewise. From-SVN: r269006
Diffstat (limited to 'libstdc++-v3/testsuite/22_locale')
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc10
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc10
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/79980.cc8
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc2
-rw-r--r--libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc2
-rw-r--r--libstdc++-v3/testsuite/22_locale/conversions/string/2.cc4
-rw-r--r--libstdc++-v3/testsuite/22_locale/conversions/string/3.cc16
7 files changed, 30 insertions, 22 deletions
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc b/libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc
index 767a9be..d1f0e80 100644
--- a/libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/char16_t.cc
@@ -36,11 +36,15 @@ test01()
VERIFY(cvt->max_length() == 4);
VERIFY(cvt->encoding() == 0);
- const char u8dat[] = u8"H\U000000E4ll\U000000F6 \U0001F63F \U000056FD "
+#ifndef _GLIBCXX_USE_CHAR8_T
+ using char8_t = char;
+#endif
+ const char8_t u8dat_[] = u8"H\U000000E4ll\U000000F6 \U0001F63F \U000056FD "
u8"\U0000222B f(\U000003BA) exp(-2\U000003C0\U000003C9) d\U000003BA "
u8"\U0001F6BF \U0001F6BF \U0001F648 \U00000413\U00000435\U0000043E"
u8"\U00000433\U00000440\U00000430\U00000444\U00000438\U0000044F \U0000FB05";
- const char* const u8dat_end = std::end(u8dat);
+ const char* const u8dat = (const char*)u8dat_;
+ const char* const u8dat_end = (const char*)std::end(u8dat_);
const char16_t u16dat[] = u"H\U000000E4ll\U000000F6 \U0001F63F \U000056FD "
u"\U0000222B f(\U000003BA) exp(-2\U000003C0\U000003C9) d\U000003BA "
@@ -83,7 +87,7 @@ test01()
VERIFY(res == codecvt_base::ok);
VERIFY(from_next == u16dat_end);
- VERIFY(std::memcmp((void*)buffer, (void*)u8dat, sizeof(u8dat)) == 0);
+ VERIFY(std::memcmp((void*)buffer, (void*)u8dat_, sizeof(u8dat_)) == 0);
delete[] buffer;
}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc b/libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc
index fc6c936..8df3b2d 100644
--- a/libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/char32_t.cc
@@ -38,11 +38,15 @@ test01()
VERIFY(cvt->max_length() == 4);
VERIFY(cvt->encoding() == 0);
- const char u8dat[] = u8"H\U000000E4ll\U000000F6 \U0001F63F \U000056FD "
+#ifndef _GLIBCXX_USE_CHAR8_T
+ using char8_t = char;
+#endif
+ const char8_t u8dat_[] = u8"H\U000000E4ll\U000000F6 \U0001F63F \U000056FD "
u8"\U0000222B f(\U000003BA) exp(-2\U000003C0\U000003C9) d\U000003BA "
u8"\U0001F6BF \U0001F6BF \U0001F648 \U00000413\U00000435\U0000043E"
u8"\U00000433\U00000440\U00000430\U00000444\U00000438\U0000044F \U0000FB05";
- const char* const u8dat_end = std::end(u8dat);
+ const char* const u8dat = (const char*)u8dat_;
+ const char* const u8dat_end = (const char*)std::end(u8dat_);
const char32_t u32dat[] = U"H\U000000E4ll\U000000F6 \U0001F63F \U000056FD "
U"\U0000222B f(\U000003BA) exp(-2\U000003C0\U000003C9) d\U000003BA "
@@ -85,7 +89,7 @@ test01()
VERIFY(res == codecvt_base::ok);
VERIFY(from_next == u32dat_end);
- VERIFY(std::memcmp((void*)buffer, (void*)u8dat, sizeof(u8dat)) == 0);
+ VERIFY(std::memcmp((void*)buffer, (void*)u8dat_, sizeof(u8dat_)) == 0);
delete[] buffer;
}
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/79980.cc b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/79980.cc
index 331d57f..6d7eafb 100644
--- a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/79980.cc
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/79980.cc
@@ -28,7 +28,7 @@ using std::codecvt_utf8;
void
test01()
{
- std::string src = u8"1234\U00001111\U0001ffff";
+ std::string src = (const char*)u8"1234\U00001111\U0001ffff";
wstring_convert<codecvt_utf8<char16_t>, char16_t> c("bad", u"BAD");
// utf-8 to ucs2 conversion should fail on character outside BMP
@@ -51,7 +51,7 @@ test01()
void
test02()
{
- std::string src = u8"1234\U00001111\U0001ffff";
+ std::string src = (const char*)u8"1234\U00001111\U0001ffff";
wstring_convert<codecvt_utf8<char16_t, 0x1000>, char16_t> c("bad", u"BAD");
// utf-8 to ucs2 conversion should fail on character above Maxcode=0x1000
@@ -63,7 +63,7 @@ test02()
void
test03()
{
- std::string src = u8"1234\U00001111\U0001ffff";
+ std::string src = (const char*)u8"1234\U00001111\U0001ffff";
wstring_convert<codecvt_utf8<char32_t, 0x10000>, char32_t> c("bad", U"BAD");
// utf-8 to ucs4 conversion should fail on character above Maxcode=0x10000
@@ -75,7 +75,7 @@ test03()
void
test04()
{
- std::string src = u8"1234\U00001111\U0001ffff";
+ std::string src = (const char*)u8"1234\U00001111\U0001ffff";
wstring_convert<codecvt_utf8<char32_t, 0x1000>, char32_t> c("bad", U"BAD");
// utf-8 to ucs4 conversion should fail on character above Maxcode=0x1000
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc
index aa27048..694845f 100644
--- a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc
@@ -24,7 +24,7 @@
void
test01()
{
- const char out[] = u8"\u00A33.50";
+ const auto out = (const char*)u8"\u00A33.50";
wchar_t in[8] = {};
std::codecvt_utf8<wchar_t> cvt;
std::mbstate_t st;
diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc b/libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc
index 602fe63..82ee8ad 100644
--- a/libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc
+++ b/libstdc++-v3/testsuite/22_locale/codecvt/utf8.cc
@@ -22,7 +22,7 @@
#include <string>
#include <testsuite_hooks.h>
-const char expected[] = u8"£¥€";
+const auto expected = (const char*)u8"£¥€";
const std::size_t expected_len = std::char_traits<char>::length(expected);
template<typename C>
diff --git a/libstdc++-v3/testsuite/22_locale/conversions/string/2.cc b/libstdc++-v3/testsuite/22_locale/conversions/string/2.cc
index e83cf98..2e97b4f 100644
--- a/libstdc++-v3/testsuite/22_locale/conversions/string/2.cc
+++ b/libstdc++-v3/testsuite/22_locale/conversions/string/2.cc
@@ -40,14 +40,14 @@ void test01()
typedef str_conv<char> sc;
const sc::byte_string berr = "invalid wide string";
- const sc::wide_string werr = u8"invalid byte string";
+ const sc::wide_string werr = "invalid byte string";
sc c(berr, werr);
string input = "Stop";
input += char(0xFF);
string woutput = c.from_bytes(input);
VERIFY( input == woutput ); // noconv case doesn't detect invalid input
- string winput = u8"Stop";
+ string winput = "Stop";
winput += char(0xFF);
string output = c.to_bytes(winput);
VERIFY( winput == output ); // noconv case doesn't detect invalid input
diff --git a/libstdc++-v3/testsuite/22_locale/conversions/string/3.cc b/libstdc++-v3/testsuite/22_locale/conversions/string/3.cc
index 404e869..b66e948 100644
--- a/libstdc++-v3/testsuite/22_locale/conversions/string/3.cc
+++ b/libstdc++-v3/testsuite/22_locale/conversions/string/3.cc
@@ -40,17 +40,17 @@ void test01()
typedef str_conv<char> wsc;
wsc c;
- string input = u8"\u00a3 shillings pence";
+ string input = (const char*)u8"\u00a3 shillings pence";
string woutput = c.from_bytes(input.substr(0, 1));
auto partial_state = c.state();
auto partial_count = c.converted();
- auto woutput2 = c.from_bytes(u8"state reset on next conversion");
- VERIFY( woutput2 == u8"state reset on next conversion" );
+ auto woutput2 = c.from_bytes("state reset on next conversion");
+ VERIFY( woutput2 == "state reset on next conversion" );
wsc c2(new cvt<char>, partial_state);
woutput += c2.from_bytes(input.substr(partial_count));
- VERIFY( u8"\u00a3 shillings pence" == woutput );
+ VERIFY( (const char*)u8"\u00a3 shillings pence" == woutput );
string roundtrip = c2.to_bytes(woutput);
VERIFY( input == roundtrip );
@@ -61,12 +61,12 @@ void test02()
typedef str_conv<char16_t> wsc;
wsc c;
- string input = u8"\u00a3 shillings pence";
+ string input = (const char*)u8"\u00a3 shillings pence";
u16string woutput = c.from_bytes(input.substr(0, 1));
auto partial_state = c.state();
auto partial_count = c.converted();
- auto woutput2 = c.from_bytes(u8"state reset on next conversion");
+ auto woutput2 = c.from_bytes("state reset on next conversion");
VERIFY( woutput2 == u"state reset on next conversion" );
wsc c2(new cvt<char16_t>, partial_state);
@@ -82,12 +82,12 @@ void test03()
typedef str_conv<char32_t> wsc;
wsc c;
- string input = u8"\u00a3 shillings pence";
+ string input = (const char*)u8"\u00a3 shillings pence";
u32string woutput = c.from_bytes(input.substr(0, 1));
auto partial_state = c.state();
auto partial_count = c.converted();
- auto woutput2 = c.from_bytes(u8"state reset on next conversion");
+ auto woutput2 = c.from_bytes("state reset on next conversion");
VERIFY( woutput2 == U"state reset on next conversion" );
wsc c2(new cvt<char32_t>, partial_state);