From db2e99f8528c17cdd1d6d53ac68a0c23a2b88049 Mon Sep 17 00:00:00 2001 From: David Chisnall Date: Wed, 21 Sep 2011 14:59:10 +0000 Subject: [PATCH] More fixes to the tests. Add UTF-8 encoding to all locales that don't specify one. Undefine some stdio.h macros that break the tests. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@140252 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../file.streams/c.files/cstdio.pass.cpp | 24 +++++++++++++++++++ .../ext.manip/get_money.pass.cpp | 8 +++---- .../ext.manip/get_time.pass.cpp | 4 ++-- .../ext.manip/put_money.pass.cpp | 8 +++---- .../ext.manip/put_time.pass.cpp | 4 ++-- .../register_callback.pass.cpp | 4 ++-- .../ios.base/ios.base.locales/imbue.pass.cpp | 10 ++++---- 7 files changed, 43 insertions(+), 19 deletions(-) diff --git a/test/input.output/file.streams/c.files/cstdio.pass.cpp b/test/input.output/file.streams/c.files/cstdio.pass.cpp index 9b8212150..367fa2c4d 100644 --- a/test/input.output/file.streams/c.files/cstdio.pass.cpp +++ b/test/input.output/file.streams/c.files/cstdio.pass.cpp @@ -76,6 +76,30 @@ #error stdout not defined #endif +// As an optimisation, these may be defined as macros in the C header. We want +// to check the functions, not the macros. +#ifdef puts +#undef puts +#endif +#ifdef putc +#undef putc +#endif +#ifdef getc +#undef getc +#endif +#ifdef putchar +#undef putchar +#endif +#ifdef clearerr +#undef clearerr +#endif +#ifdef feof +#undef feof +#endif +#ifdef ferror +#undef ferror +#endif + #include int main() diff --git a/test/input.output/iostream.format/ext.manip/get_money.pass.cpp b/test/input.output/iostream.format/ext.manip/get_money.pass.cpp index 22ed819ef..8230fe927 100644 --- a/test/input.output/iostream.format/ext.manip/get_money.pass.cpp +++ b/test/input.output/iostream.format/ext.manip/get_money.pass.cpp @@ -39,7 +39,7 @@ int main() { testbuf sb(" -$1,234,567.89"); std::istream is(&sb); - is.imbue(std::locale("en_US")); + is.imbue(std::locale("en_US.UTF-8")); long double x = 0; is >> std::get_money(x, false); assert(x == -123456789); @@ -47,7 +47,7 @@ int main() { testbuf sb(" -USD 1,234,567.89"); std::istream is(&sb); - is.imbue(std::locale("en_US")); + is.imbue(std::locale("en_US.UTF-8")); long double x = 0; is >> std::get_money(x, true); assert(x == -123456789); @@ -55,7 +55,7 @@ int main() { testbuf sb(L" -$1,234,567.89"); std::wistream is(&sb); - is.imbue(std::locale("en_US")); + is.imbue(std::locale("en_US.UTF-8")); long double x = 0; is >> std::get_money(x, false); assert(x == -123456789); @@ -63,7 +63,7 @@ int main() { testbuf sb(L" -USD 1,234,567.89"); std::wistream is(&sb); - is.imbue(std::locale("en_US")); + is.imbue(std::locale("en_US.UTF-8")); long double x = 0; is >> std::get_money(x, true); assert(x == -123456789); diff --git a/test/input.output/iostream.format/ext.manip/get_time.pass.cpp b/test/input.output/iostream.format/ext.manip/get_time.pass.cpp index 6196a8368..9804015a7 100644 --- a/test/input.output/iostream.format/ext.manip/get_time.pass.cpp +++ b/test/input.output/iostream.format/ext.manip/get_time.pass.cpp @@ -39,7 +39,7 @@ int main() { testbuf sb(" Sat Dec 31 23:55:59 2061"); std::istream is(&sb); - is.imbue(std::locale("en_US")); + is.imbue(std::locale("en_US.UTF-8")); std::tm t = {0}; is >> std::get_time(&t, "%c"); assert(t.tm_sec == 59); @@ -55,7 +55,7 @@ int main() { testbuf sb(L" Sat Dec 31 23:55:59 2061"); std::wistream is(&sb); - is.imbue(std::locale("en_US")); + is.imbue(std::locale("en_US.UTF-8")); std::tm t = {0}; is >> std::get_time(&t, L"%c"); assert(t.tm_sec == 59); diff --git a/test/input.output/iostream.format/ext.manip/put_money.pass.cpp b/test/input.output/iostream.format/ext.manip/put_money.pass.cpp index 46bd1b709..0b0681895 100644 --- a/test/input.output/iostream.format/ext.manip/put_money.pass.cpp +++ b/test/input.output/iostream.format/ext.manip/put_money.pass.cpp @@ -51,7 +51,7 @@ int main() { testbuf sb; std::ostream os(&sb); - os.imbue(std::locale("en_US")); + os.imbue(std::locale("en_US.UTF-8")); showbase(os); long double x = -123456789; os << std::put_money(x, false); @@ -60,7 +60,7 @@ int main() { testbuf sb; std::ostream os(&sb); - os.imbue(std::locale("en_US")); + os.imbue(std::locale("en_US.UTF-8")); showbase(os); long double x = -123456789; os << std::put_money(x, true); @@ -69,7 +69,7 @@ int main() { testbuf sb; std::wostream os(&sb); - os.imbue(std::locale("en_US")); + os.imbue(std::locale("en_US.UTF-8")); showbase(os); long double x = -123456789; os << std::put_money(x, false); @@ -78,7 +78,7 @@ int main() { testbuf sb; std::wostream os(&sb); - os.imbue(std::locale("en_US")); + os.imbue(std::locale("en_US.UTF-8")); showbase(os); long double x = -123456789; os << std::put_money(x, true); diff --git a/test/input.output/iostream.format/ext.manip/put_time.pass.cpp b/test/input.output/iostream.format/ext.manip/put_time.pass.cpp index 3276dbdf5..9f5710d91 100644 --- a/test/input.output/iostream.format/ext.manip/put_time.pass.cpp +++ b/test/input.output/iostream.format/ext.manip/put_time.pass.cpp @@ -51,7 +51,7 @@ int main() { testbuf sb; std::ostream os(&sb); - os.imbue(std::locale("en_US")); + os.imbue(std::locale("en_US.UTF-8")); std::tm t = {0}; t.tm_sec = 59; t.tm_min = 55; @@ -66,7 +66,7 @@ int main() { testbuf sb; std::wostream os(&sb); - os.imbue(std::locale("en_US")); + os.imbue(std::locale("en_US.UTF-8")); std::tm t = {0}; t.tm_sec = 59; t.tm_min = 55; diff --git a/test/input.output/iostreams.base/ios.base/ios.base.callback/register_callback.pass.cpp b/test/input.output/iostreams.base/ios.base/ios.base.callback/register_callback.pass.cpp index c62db9fa0..bb6750249 100644 --- a/test/input.output/iostreams.base/ios.base/ios.base.callback/register_callback.pass.cpp +++ b/test/input.output/iostreams.base/ios.base/ios.base.callback/register_callback.pass.cpp @@ -34,7 +34,7 @@ void f1(std::ios_base::event ev, std::ios_base& stream, int index) { if (ev == std::ios_base::imbue_event) { - assert(stream.getloc().name() == "en_US"); + assert(stream.getloc().name() == "en_US.UTF-8"); assert(index == 4); ++f1_called; } @@ -47,6 +47,6 @@ int main() b.register_callback(f1, 4); b.register_callback(f1, 4); b.register_callback(f1, 4); - std::locale l = b.imbue(std::locale("en_US")); + std::locale l = b.imbue(std::locale("en_US.UTF-8")); assert(f1_called == 3); } diff --git a/test/input.output/iostreams.base/ios.base/ios.base.locales/imbue.pass.cpp b/test/input.output/iostreams.base/ios.base/ios.base.locales/imbue.pass.cpp index d87047f41..eb508f044 100644 --- a/test/input.output/iostreams.base/ios.base/ios.base.locales/imbue.pass.cpp +++ b/test/input.output/iostreams.base/ios.base/ios.base.locales/imbue.pass.cpp @@ -39,7 +39,7 @@ void f1(std::ios_base::event ev, std::ios_base& stream, int index) assert(!f1_called); assert( f2_called); assert( f3_called); - assert(stream.getloc().name() == "en_US"); + assert(stream.getloc().name() == "en_US.UTF-8"); assert(index == 4); f1_called = true; } @@ -52,7 +52,7 @@ void f2(std::ios_base::event ev, std::ios_base& stream, int index) assert(!f1_called); assert(!f2_called); assert( f3_called); - assert(stream.getloc().name() == "en_US"); + assert(stream.getloc().name() == "en_US.UTF-8"); assert(index == 5); f2_called = true; } @@ -65,7 +65,7 @@ void f3(std::ios_base::event ev, std::ios_base& stream, int index) assert(!f1_called); assert(!f2_called); assert(!f3_called); - assert(stream.getloc().name() == "en_US"); + assert(stream.getloc().name() == "en_US.UTF-8"); assert(index == 6); f3_called = true; } @@ -78,9 +78,9 @@ int main() b.register_callback(f1, 4); b.register_callback(f2, 5); b.register_callback(f3, 6); - std::locale l = b.imbue(std::locale("en_US")); + std::locale l = b.imbue(std::locale("en_US.UTF-8")); assert(l.name() == std::string("C")); - assert(b.getloc().name() == std::string("en_US")); + assert(b.getloc().name() == std::string("en_US.UTF-8")); assert(f1_called); assert(f2_called); assert(f3_called);