summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/22_locale/time_get/get_time
diff options
context:
space:
mode:
authorupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
committerupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
commit554fd8c5195424bdbcabf5de30fdc183aba391bd (patch)
tree976dc5ab7fddf506dadce60ae936f43f58787092 /libstdc++-v3/testsuite/22_locale/time_get/get_time
downloadcbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2
cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository.
Diffstat (limited to 'libstdc++-v3/testsuite/22_locale/time_get/get_time')
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/char/1.cc115
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc71
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/char/3.cc70
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/char/4.cc63
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/char/5.cc71
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/char/6.cc71
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_env.cc48
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc49
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc115
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc71
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc70
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc63
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc71
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/6.cc71
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc48
-rw-r--r--libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc49
16 files changed, 1116 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/1.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/1.cc
new file mode 100644
index 000000000..69cf0d5dc
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/1.cc
@@ -0,0 +1,115 @@
+// { dg-require-namedlocale "de_DE" }
+
+// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2009
+// Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.5.1.1 time_get members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ typedef istreambuf_iterator<char> iterator_type;
+
+ // basic construction and sanity checks.
+ locale loc_c = locale::classic();
+ locale loc_de = locale("de_DE");
+ VERIFY( loc_de != loc_c );
+
+ const string empty;
+
+ // create an ostream-derived object, cache the time_get facet
+ iterator_type end;
+ istringstream iss;
+ iss.imbue(loc_c);
+ const time_get<char>& tim_get = use_facet<time_get<char> >(iss.getloc());
+
+ const ios_base::iostate good = ios_base::goodbit;
+ ios_base::iostate errorstate = good;
+
+ // create "C" time objects
+ const tm time_bday = __gnu_test::test_tm(0, 0, 12, 4, 3, 71, 0, 93, 0);
+
+ // 2
+ // iter_type
+ // get_time(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*) const
+
+ // sanity checks for "C" locale
+ iss.str("12:00:00");
+ iterator_type is_it01(iss);
+ tm time01;
+ errorstate = good;
+ tim_get.get_time(is_it01, end, iss, errorstate, &time01);
+ VERIFY( time01.tm_sec == time_bday.tm_sec );
+ VERIFY( time01.tm_min == time_bday.tm_min );
+ VERIFY( time01.tm_hour == time_bday.tm_hour );
+ VERIFY( errorstate == ios_base::eofbit );
+
+ iss.str("12:00:00 ");
+ iterator_type is_it02(iss);
+ tm time02;
+ errorstate = good;
+ tim_get.get_time(is_it02, end, iss, errorstate, &time02);
+ VERIFY( time01.tm_sec == time_bday.tm_sec );
+ VERIFY( time01.tm_min == time_bday.tm_min );
+ VERIFY( time01.tm_hour == time_bday.tm_hour );
+ VERIFY( errorstate == good );
+
+ iss.str("12:61:00 ");
+ iterator_type is_it03(iss);
+ tm time03;
+ errorstate = good;
+ tim_get.get_time(is_it03, end, iss, errorstate, &time03);
+ VERIFY( time01.tm_hour == time_bday.tm_hour );
+ VERIFY( errorstate == ios_base::failbit );
+
+ iss.str("12:a:00 ");
+ iterator_type is_it04(iss);
+ tm time04;
+ errorstate = good;
+ iterator_type ret04 = tim_get.get_time(is_it04, end, iss, errorstate,
+ &time04);
+ VERIFY( time01.tm_hour == time_bday.tm_hour );
+ VERIFY( *ret04 == 'a' );
+ VERIFY( errorstate == ios_base::failbit );
+
+ // inspection of named locales, de_DE
+ iss.imbue(loc_de);
+ iss.str("12:00:00");
+ iterator_type is_it10(iss);
+ tm time10;
+ errorstate = good;
+ tim_get.get_time(is_it10, end, iss, errorstate, &time10);
+ VERIFY( time10.tm_sec == time_bday.tm_sec );
+ VERIFY( time10.tm_min == time_bday.tm_min );
+ VERIFY( time10.tm_hour == time_bday.tm_hour );
+ VERIFY( errorstate == ios_base::eofbit );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc
new file mode 100644
index 000000000..0df532247
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc
@@ -0,0 +1,71 @@
+// { dg-require-namedlocale "en_HK" }
+
+// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2009
+// Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.5.1.1 time_get members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test02()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ typedef istreambuf_iterator<char> iterator_type;
+
+ // basic construction and sanity check
+ locale loc_c = locale::classic();
+ locale loc_hk = locale("en_HK");
+ VERIFY( loc_hk != loc_c );
+
+ const string empty;
+ const tm time_bday = __gnu_test::test_tm(0, 0, 12, 4, 3, 71, 0, 93, 0);
+
+ // create an ostream-derived object, cache the time_get facet
+ iterator_type end;
+ istringstream iss;
+ const time_get<char>& tim_get = use_facet<time_get<char> >(iss.getloc());
+ const ios_base::iostate good = ios_base::goodbit;
+ ios_base::iostate errorstate = good;
+
+ // inspection of named locales, en_HK
+ iss.imbue(loc_hk);
+ iss.str("12:00:00 PST");
+ // Hong Kong in California! Well, they have Paris in Vegas... this
+ // is all a little disney-esque anyway. Besides, you can get decent
+ // Dim Sum in San Francisco.
+ iterator_type is_it20(iss);
+ tm time20;
+ errorstate = good;
+ tim_get.get_time(is_it20, end, iss, errorstate, &time20);
+ VERIFY( time20.tm_sec == time_bday.tm_sec );
+ VERIFY( time20.tm_min == time_bday.tm_min );
+ VERIFY( time20.tm_hour == time_bday.tm_hour );
+ VERIFY( errorstate == ios_base::eofbit );
+}
+
+int main()
+{
+ test02();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/3.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/3.cc
new file mode 100644
index 000000000..e5589970e
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/3.cc
@@ -0,0 +1,70 @@
+// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2009
+// Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.5.1.1 time_get members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test03()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ // Check time_get works with other iterators besides streambuf
+ // input iterators.
+ typedef string::const_iterator iter_type;
+ typedef time_get<char, iter_type> time_get_type;
+ const ios_base::iostate goodbit = ios_base::goodbit;
+ ios_base::iostate err = goodbit;
+ const locale loc_c = locale::classic();
+
+ // Create "C" time objects
+ const tm time_sanity = __gnu_test::test_tm(0, 0, 12, 26, 5, 97, 2, 0, 0);
+ tm tm1;
+
+ istringstream iss;
+ iss.imbue(locale(loc_c, new time_get_type));
+
+ // Iterator advanced, state, output.
+ const time_get_type& tg = use_facet<time_get_type>(iss.getloc());
+
+ // Cindy Sherman's Untitled Film Stills
+ // June 26-September 2, 1997
+ const string str = "12:00:00 06/26/97 Tuesday September 1997 Cindy Sherman";
+
+ // 01 get_time
+ string res1;
+ err = goodbit;
+ iter_type end1 = tg.get_time(str.begin(), str.end(), iss, err, &tm1);
+ string rem1(end1, str.end());
+ VERIFY( err == goodbit );
+ VERIFY( tm1.tm_sec == time_sanity.tm_sec );
+ VERIFY( tm1.tm_min == time_sanity.tm_min );
+ VERIFY( tm1.tm_hour == time_sanity.tm_hour );
+ VERIFY( rem1 == " 06/26/97 Tuesday September 1997 Cindy Sherman" );
+}
+
+int main()
+{
+ test03();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/4.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/4.cc
new file mode 100644
index 000000000..197b014b2
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/4.cc
@@ -0,0 +1,63 @@
+// 2004-08-29 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2004, 2005, 2006, 2009 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.5.1.1 time_get members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// Allow for one leap-second (two if !_GLIBCXX_USE_C99).
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ typedef istreambuf_iterator<char> iterator_type;
+
+ // basic construction and sanity checks.
+ locale loc_c = locale::classic();
+
+ // create an istream-derived object, cache the time_get facet
+ iterator_type end;
+ istringstream iss;
+ iss.imbue(loc_c);
+ const time_get<char>& tim_get =
+ use_facet<time_get<char> >(iss.getloc());
+
+ const ios_base::iostate good = ios_base::goodbit;
+ ios_base::iostate errorstate = good;
+
+ // create "C" time objects
+ const tm time_bday = __gnu_test::test_tm(60, 0, 12, 4, 3, 71, 0, 93, 0);
+
+ iss.str("12:00:60 ");
+ iterator_type is_it01(iss);
+ tm time01;
+ errorstate = good;
+ tim_get.get_time(is_it01, end, iss, errorstate, &time01);
+ VERIFY( time01.tm_sec == time_bday.tm_sec );
+ VERIFY( errorstate == ios_base::goodbit );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/5.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/5.cc
new file mode 100644
index 000000000..b099b6e7b
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/5.cc
@@ -0,0 +1,71 @@
+// 2006-06-16 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2006, 2009, 2010 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.5.1.1 time_get members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// Check that the err argument is ignored by get_time.
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ typedef string::const_iterator iter_type;
+ typedef time_get<char, iter_type> time_get_type;
+ const ios_base::iostate goodbit = ios_base::goodbit;
+ const ios_base::iostate eofbit = ios_base::eofbit;
+ const ios_base::iostate failbit = ios_base::failbit;
+ ios_base::iostate err = goodbit;
+ const locale loc_c = locale::classic();
+
+ // Create "C" time objects
+ const tm time_sanity = __gnu_test::test_tm(0, 0, 12, 26, 5, 97, 2, 0, 0);
+ tm tm0 = __gnu_test::test_tm(0, 0, 0, 0, 0, 0, 0, 0, 0);
+ tm tm1 = __gnu_test::test_tm(0, 0, 0, 0, 0, 0, 0, 0, 0);
+
+ istringstream iss;
+ iss.imbue(locale(loc_c, new time_get_type));
+
+ // Iterator advanced, state, output.
+ const time_get_type& tg = use_facet<time_get_type>(iss.getloc());
+
+ const string str0 = "1";
+ tg.get_time(str0.begin(), str0.end(), iss, err, &tm0);
+ VERIFY( err == (failbit | eofbit) );
+ VERIFY( tm0.tm_sec == 0 );
+ VERIFY( tm0.tm_min == 0 );
+ VERIFY( tm0.tm_hour == 0 );
+
+ const string str1 = "12:00:00 ";
+ iter_type end1 = tg.get_time(str1.begin(), str1.end(), iss, err, &tm1);
+ VERIFY( err == (failbit | eofbit) );
+ VERIFY( tm1.tm_sec == time_sanity.tm_sec );
+ VERIFY( tm1.tm_min == time_sanity.tm_min );
+ VERIFY( tm1.tm_hour == time_sanity.tm_hour );
+ VERIFY( *end1 == ' ' );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/6.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/6.cc
new file mode 100644
index 000000000..9ecd93ff4
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/6.cc
@@ -0,0 +1,71 @@
+// 2010-10-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+// Copyright (C) 2010 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ typedef string::const_iterator iter_type;
+ typedef time_get<char, iter_type> time_get_type;
+ const ios_base::iostate goodbit = ios_base::goodbit;
+ const ios_base::iostate eofbit = ios_base::eofbit;
+ const ios_base::iostate failbit = ios_base::failbit;
+ ios_base::iostate err = goodbit;
+ const locale loc_c = locale::classic();
+
+ // Create "C" time objects
+ tm tm0 = __gnu_test::test_tm(0, 0, 0, 0, 0, 0, 0, 0, 0);
+ tm tm1 = __gnu_test::test_tm(0, 0, 0, 0, 0, 0, 0, 0, 0);
+
+ istringstream iss;
+ iss.imbue(locale(loc_c, new time_get_type));
+
+ // Iterator advanced, state, output.
+ const time_get_type& tg = use_facet<time_get_type>(iss.getloc());
+
+ const string str0 = "12";
+ tg.get_time(str0.begin(), str0.end(), iss, err, &tm0);
+ VERIFY( err == (failbit | eofbit) );
+ VERIFY( tm0.tm_sec == 0 );
+ VERIFY( tm0.tm_min == 0 );
+ // This is quite hard to guarantee now, revisit together with DR 461
+ // in the C++0x context.
+ // VERIFY( tm0.tm_hour == 0 );
+
+ const string str1 = "12:30 ";
+ err = goodbit;
+ iter_type end1 = tg.get_time(str1.begin(), str1.end(), iss, err, &tm1);
+ VERIFY( err == failbit );
+ VERIFY( *end1 == ' ' );
+ VERIFY( tm1.tm_sec == 0 );
+ // See above...
+ // VERIFY( tm1.tm_min == 0 );
+ // VERIFY( tm1.tm_hour == 0 );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_env.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_env.cc
new file mode 100644
index 000000000..8f116717b
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_env.cc
@@ -0,0 +1,48 @@
+// { dg-require-namedlocale "de_DE" }
+// { dg-require-namedlocale "en_HK" }
+
+// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.4.1.1 collate members
+
+#include <testsuite_hooks.h>
+
+#define main discard_main_1
+#include "1.cc"
+#undef main
+
+#define main discard_main_2
+#include "2.cc"
+#undef main
+
+#define main discard_main_3
+#include "3.cc"
+#undef main
+
+int main()
+{
+ using namespace __gnu_test;
+ func_callback two;
+ two.push_back(&test01);
+ two.push_back(&test02);
+ two.push_back(&test03);
+ run_tests_wrapped_env("de_DE", "LANG", two);
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc
new file mode 100644
index 000000000..a4edc45a8
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc
@@ -0,0 +1,49 @@
+// { dg-require-namedlocale "ja_JP.eucjp" }
+// { dg-require-namedlocale "de_DE" }
+// { dg-require-namedlocale "en_HK" }
+
+// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.4.1.1 collate members
+
+#include <testsuite_hooks.h>
+
+#define main discard_main_1
+#include "1.cc"
+#undef main
+
+#define main discard_main_2
+#include "2.cc"
+#undef main
+
+#define main discard_main_3
+#include "3.cc"
+#undef main
+
+int main()
+{
+ using namespace __gnu_test;
+ func_callback two;
+ two.push_back(&test01);
+ two.push_back(&test02);
+ two.push_back(&test03);
+ run_tests_wrapped_locale("ja_JP.eucjp", two);
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc
new file mode 100644
index 000000000..ad8a468c5
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc
@@ -0,0 +1,115 @@
+// { dg-require-namedlocale "de_DE" }
+
+// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2009
+// Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.5.1.1 time_get members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ typedef istreambuf_iterator<wchar_t> iterator_type;
+
+ // basic construction and sanity checks.
+ locale loc_c = locale::classic();
+ locale loc_de = locale("de_DE");
+ VERIFY( loc_de != loc_c );
+
+ const wstring empty;
+
+ // create an ostream-derived object, cache the time_get facet
+ iterator_type end;
+ wistringstream iss;
+ iss.imbue(loc_c);
+ const time_get<wchar_t>& tim_get = use_facet<time_get<wchar_t> >(iss.getloc());
+
+ const ios_base::iostate good = ios_base::goodbit;
+ ios_base::iostate errorstate = good;
+
+ // create "C" time objects
+ const tm time_bday = __gnu_test::test_tm(0, 0, 12, 4, 3, 71, 0, 93, 0);
+
+ // 2
+ // iter_type
+ // get_time(iter_type, iter_type, ios_base&, ios_base::iostate&, tm*) const
+
+ // sanity checks for "C" locale
+ iss.str(L"12:00:00");
+ iterator_type is_it01(iss);
+ tm time01;
+ errorstate = good;
+ tim_get.get_time(is_it01, end, iss, errorstate, &time01);
+ VERIFY( time01.tm_sec == time_bday.tm_sec );
+ VERIFY( time01.tm_min == time_bday.tm_min );
+ VERIFY( time01.tm_hour == time_bday.tm_hour );
+ VERIFY( errorstate == ios_base::eofbit );
+
+ iss.str(L"12:00:00 ");
+ iterator_type is_it02(iss);
+ tm time02;
+ errorstate = good;
+ tim_get.get_time(is_it02, end, iss, errorstate, &time02);
+ VERIFY( time01.tm_sec == time_bday.tm_sec );
+ VERIFY( time01.tm_min == time_bday.tm_min );
+ VERIFY( time01.tm_hour == time_bday.tm_hour );
+ VERIFY( errorstate == good );
+
+ iss.str(L"12:61:00 ");
+ iterator_type is_it03(iss);
+ tm time03;
+ errorstate = good;
+ tim_get.get_time(is_it03, end, iss, errorstate, &time03);
+ VERIFY( time01.tm_hour == time_bday.tm_hour );
+ VERIFY( errorstate == ios_base::failbit );
+
+ iss.str(L"12:a:00 ");
+ iterator_type is_it04(iss);
+ tm time04;
+ errorstate = good;
+ iterator_type ret04 = tim_get.get_time(is_it04, end, iss, errorstate,
+ &time04);
+ VERIFY( time01.tm_hour == time_bday.tm_hour );
+ VERIFY( *ret04 == L'a' );
+ VERIFY( errorstate == ios_base::failbit );
+
+ // inspection of named locales, de_DE
+ iss.imbue(loc_de);
+ iss.str(L"12:00:00");
+ iterator_type is_it10(iss);
+ tm time10;
+ errorstate = good;
+ tim_get.get_time(is_it10, end, iss, errorstate, &time10);
+ VERIFY( time10.tm_sec == time_bday.tm_sec );
+ VERIFY( time10.tm_min == time_bday.tm_min );
+ VERIFY( time10.tm_hour == time_bday.tm_hour );
+ VERIFY( errorstate == ios_base::eofbit );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
new file mode 100644
index 000000000..72946612b
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
@@ -0,0 +1,71 @@
+// { dg-require-namedlocale "en_HK" }
+
+// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2009
+// Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.5.1.1 time_get members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test02()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ typedef istreambuf_iterator<wchar_t> iterator_type;
+
+ // basic construction and sanity check
+ locale loc_c = locale::classic();
+ locale loc_hk = locale("en_HK");
+ VERIFY( loc_hk != loc_c );
+
+ const wstring empty;
+ const tm time_bday = __gnu_test::test_tm(0, 0, 12, 4, 3, 71, 0, 93, 0);
+
+ // create an ostream-derived object, cache the time_get facet
+ iterator_type end;
+ wistringstream iss;
+ const time_get<wchar_t>& tim_get = use_facet<time_get<wchar_t> >(iss.getloc());
+ const ios_base::iostate good = ios_base::goodbit;
+ ios_base::iostate errorstate = good;
+
+ // inspection of named locales, en_HK
+ iss.imbue(loc_hk);
+ iss.str(L"12:00:00 PST");
+ // Hong Kong in California! Well, they have Paris in Vegas... this
+ // is all a little disney-esque anyway. Besides, you can get decent
+ // Dim Sum in San Francisco.
+ iterator_type is_it20(iss);
+ tm time20;
+ errorstate = good;
+ tim_get.get_time(is_it20, end, iss, errorstate, &time20);
+ VERIFY( time20.tm_sec == time_bday.tm_sec );
+ VERIFY( time20.tm_min == time_bday.tm_min );
+ VERIFY( time20.tm_hour == time_bday.tm_hour );
+ VERIFY( errorstate == ios_base::eofbit );
+}
+
+int main()
+{
+ test02();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc
new file mode 100644
index 000000000..b032c0ee9
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc
@@ -0,0 +1,70 @@
+// 2001-09-21 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2009
+// Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.5.1.1 time_get members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test03()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ // Check time_get works with other iterators besides streambuf
+ // input iterators.
+ typedef wstring::const_iterator iter_type;
+ typedef time_get<wchar_t, iter_type> time_get_type;
+ const ios_base::iostate goodbit = ios_base::goodbit;
+ ios_base::iostate err = goodbit;
+ const locale loc_c = locale::classic();
+
+ // Create "C" time objects
+ const tm time_sanity = __gnu_test::test_tm(0, 0, 12, 26, 5, 97, 2, 0, 0);
+ tm tm1;
+
+ wistringstream iss;
+ iss.imbue(locale(loc_c, new time_get_type));
+
+ // Iterator advanced, state, output.
+ const time_get_type& tg = use_facet<time_get_type>(iss.getloc());
+
+ // Cindy Sherman's Untitled Film Stills
+ // June 26-September 2, 1997
+ const wstring str = L"12:00:00 06/26/97 Tuesday September 1997 Cindy Sherman";
+
+ // 01 get_time
+ wstring res1;
+ err = goodbit;
+ iter_type end1 = tg.get_time(str.begin(), str.end(), iss, err, &tm1);
+ wstring rem1(end1, str.end());
+ VERIFY( err == goodbit );
+ VERIFY( tm1.tm_sec == time_sanity.tm_sec );
+ VERIFY( tm1.tm_min == time_sanity.tm_min );
+ VERIFY( tm1.tm_hour == time_sanity.tm_hour );
+ VERIFY( rem1 == L" 06/26/97 Tuesday September 1997 Cindy Sherman" );
+}
+
+int main()
+{
+ test03();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc
new file mode 100644
index 000000000..b3feb9eb5
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc
@@ -0,0 +1,63 @@
+// 2004-08-29 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2004, 2005, 2006, 2009 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.5.1.1 time_get members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// Allow for one leap-second (two if !_GLIBCXX_USE_C99).
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ typedef istreambuf_iterator<wchar_t> iterator_type;
+
+ // basic construction and sanity checks.
+ locale loc_c = locale::classic();
+
+ // create an istream-derived object, cache the time_get facet
+ iterator_type end;
+ wistringstream iss;
+ iss.imbue(loc_c);
+ const time_get<wchar_t>& tim_get =
+ use_facet<time_get<wchar_t> >(iss.getloc());
+
+ const ios_base::iostate good = ios_base::goodbit;
+ ios_base::iostate errorstate = good;
+
+ // create "C" time objects
+ const tm time_bday = __gnu_test::test_tm(60, 0, 12, 4, 3, 71, 0, 93, 0);
+
+ iss.str(L"12:00:60 ");
+ iterator_type is_it01(iss);
+ tm time01;
+ errorstate = good;
+ tim_get.get_time(is_it01, end, iss, errorstate, &time01);
+ VERIFY( time01.tm_sec == time_bday.tm_sec );
+ VERIFY( errorstate == ios_base::goodbit );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc
new file mode 100644
index 000000000..ffce43218
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc
@@ -0,0 +1,71 @@
+// 2006-06-16 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2006, 2009, 2010 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.5.1.1 time_get members
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// Check that the err argument is ignored by get_time.
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ typedef wstring::const_iterator iter_type;
+ typedef time_get<wchar_t, iter_type> time_get_type;
+ const ios_base::iostate goodbit = ios_base::goodbit;
+ const ios_base::iostate eofbit = ios_base::eofbit;
+ const ios_base::iostate failbit = ios_base::failbit;
+ ios_base::iostate err = goodbit;
+ const locale loc_c = locale::classic();
+
+ // Create "C" time objects
+ const tm time_sanity = __gnu_test::test_tm(0, 0, 12, 26, 5, 97, 2, 0, 0);
+ tm tm0 = __gnu_test::test_tm(0, 0, 0, 0, 0, 0, 0, 0, 0);
+ tm tm1 = __gnu_test::test_tm(0, 0, 0, 0, 0, 0, 0, 0, 0);
+
+ wistringstream iss;
+ iss.imbue(locale(loc_c, new time_get_type));
+
+ // Iterator advanced, state, output.
+ const time_get_type& tg = use_facet<time_get_type>(iss.getloc());
+
+ const wstring str0 = L"1";
+ tg.get_time(str0.begin(), str0.end(), iss, err, &tm0);
+ VERIFY( err == (failbit | eofbit) );
+ VERIFY( tm0.tm_sec == 0 );
+ VERIFY( tm0.tm_min == 0 );
+ VERIFY( tm0.tm_hour == 0 );
+
+ const wstring str1 = L"12:00:00 ";
+ iter_type end1 = tg.get_time(str1.begin(), str1.end(), iss, err, &tm1);
+ VERIFY( err == (failbit | eofbit) );
+ VERIFY( tm1.tm_sec == time_sanity.tm_sec );
+ VERIFY( tm1.tm_min == time_sanity.tm_min );
+ VERIFY( tm1.tm_hour == time_sanity.tm_hour );
+ VERIFY( *end1 == L' ' );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/6.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/6.cc
new file mode 100644
index 000000000..f544422f1
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/6.cc
@@ -0,0 +1,71 @@
+// 2010-10-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+// Copyright (C) 2010 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+ bool test __attribute__((unused)) = true;
+
+ typedef wstring::const_iterator iter_type;
+ typedef time_get<wchar_t, iter_type> time_get_type;
+ const ios_base::iostate goodbit = ios_base::goodbit;
+ const ios_base::iostate eofbit = ios_base::eofbit;
+ const ios_base::iostate failbit = ios_base::failbit;
+ ios_base::iostate err = goodbit;
+ const locale loc_c = locale::classic();
+
+ // Create "C" time objects
+ tm tm0 = __gnu_test::test_tm(0, 0, 0, 0, 0, 0, 0, 0, 0);
+ tm tm1 = __gnu_test::test_tm(0, 0, 0, 0, 0, 0, 0, 0, 0);
+
+ wistringstream iss;
+ iss.imbue(locale(loc_c, new time_get_type));
+
+ // Iterator advanced, state, output.
+ const time_get_type& tg = use_facet<time_get_type>(iss.getloc());
+
+ const wstring str0 = L"12";
+ tg.get_time(str0.begin(), str0.end(), iss, err, &tm0);
+ VERIFY( err == (failbit | eofbit) );
+ VERIFY( tm0.tm_sec == 0 );
+ VERIFY( tm0.tm_min == 0 );
+ // This is quite hard to guarantee now, revisit together with DR 461
+ // in the C++0x context.
+ // VERIFY( tm0.tm_hour == 0 );
+
+ const wstring str1 = L"12:30 ";
+ err = goodbit;
+ iter_type end1 = tg.get_time(str1.begin(), str1.end(), iss, err, &tm1);
+ VERIFY( err == failbit );
+ VERIFY( *end1 == ' ' );
+ VERIFY( tm1.tm_sec == 0 );
+ // See above...
+ // VERIFY( tm1.tm_min == 0 );
+ // VERIFY( tm1.tm_hour == 0 );
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc
new file mode 100644
index 000000000..8f116717b
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc
@@ -0,0 +1,48 @@
+// { dg-require-namedlocale "de_DE" }
+// { dg-require-namedlocale "en_HK" }
+
+// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.4.1.1 collate members
+
+#include <testsuite_hooks.h>
+
+#define main discard_main_1
+#include "1.cc"
+#undef main
+
+#define main discard_main_2
+#include "2.cc"
+#undef main
+
+#define main discard_main_3
+#include "3.cc"
+#undef main
+
+int main()
+{
+ using namespace __gnu_test;
+ func_callback two;
+ two.push_back(&test01);
+ two.push_back(&test02);
+ two.push_back(&test03);
+ run_tests_wrapped_env("de_DE", "LANG", two);
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc
new file mode 100644
index 000000000..a4edc45a8
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc
@@ -0,0 +1,49 @@
+// { dg-require-namedlocale "ja_JP.eucjp" }
+// { dg-require-namedlocale "de_DE" }
+// { dg-require-namedlocale "en_HK" }
+
+// 2001-08-15 Benjamin Kosnik <bkoz@redhat.com>
+
+// Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 22.2.4.1.1 collate members
+
+#include <testsuite_hooks.h>
+
+#define main discard_main_1
+#include "1.cc"
+#undef main
+
+#define main discard_main_2
+#include "2.cc"
+#undef main
+
+#define main discard_main_3
+#include "3.cc"
+#undef main
+
+int main()
+{
+ using namespace __gnu_test;
+ func_callback two;
+ two.push_back(&test01);
+ two.push_back(&test02);
+ two.push_back(&test03);
+ run_tests_wrapped_locale("ja_JP.eucjp", two);
+ return 0;
+}