aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t
diff options
context:
space:
mode:
authorJing Yu <jingyu@google.com>2010-07-22 14:03:48 -0700
committerJing Yu <jingyu@google.com>2010-07-22 14:03:48 -0700
commitb094d6c4bf572654a031ecc4afe675154c886dc5 (patch)
tree89394c56b05e13a5413ee60237d65b0214fd98e2 /gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t
parentdc34721ac3bf7e3c406fba8cfe9d139393345ec5 (diff)
downloadtoolchain_gcc-b094d6c4bf572654a031ecc4afe675154c886dc5.tar.gz
toolchain_gcc-b094d6c4bf572654a031ecc4afe675154c886dc5.tar.bz2
toolchain_gcc-b094d6c4bf572654a031ecc4afe675154c886dc5.zip
commit gcc-4.4.3 which is used to build gcc-4.4.3 Android toolchain in master.
The source is based on fsf gcc-4.4.3 and contains local patches which are recorded in gcc-4.4.3/README.google. Change-Id: Id8c6d6927df274ae9749196a1cc24dbd9abc9887
Diffstat (limited to 'gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t')
-rw-r--r--gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc115
-rw-r--r--gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc71
-rw-r--r--gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc70
-rw-r--r--gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc63
-rw-r--r--gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc71
-rw-r--r--gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc47
-rw-r--r--gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc47
7 files changed, 484 insertions, 0 deletions
diff --git a/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc b/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc
new file mode 100644
index 000000000..089dff762
--- /dev/null
+++ b/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/1.cc
@@ -0,0 +1,115 @@
+// { dg-require-namedlocale "" }
+
+// 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/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc b/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
new file mode 100644
index 000000000..2dc9b18bd
--- /dev/null
+++ b/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc
@@ -0,0 +1,71 @@
+// { dg-require-namedlocale "" }
+
+// 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/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc b/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/3.cc
new file mode 100644
index 000000000..b032c0ee9
--- /dev/null
+++ b/gcc-4.4.3/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/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc b/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/4.cc
new file mode 100644
index 000000000..b3feb9eb5
--- /dev/null
+++ b/gcc-4.4.3/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/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc b/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/5.cc
new file mode 100644
index 000000000..b06ccf6ff
--- /dev/null
+++ b/gcc-4.4.3/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 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";
+ iter_type end0 = 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/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc b/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc
new file mode 100644
index 000000000..cff6064c4
--- /dev/null
+++ b/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc
@@ -0,0 +1,47 @@
+// { dg-require-namedlocale "" }
+
+// 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/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc b/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc
new file mode 100644
index 000000000..f4f92d379
--- /dev/null
+++ b/gcc-4.4.3/libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc
@@ -0,0 +1,47 @@
+// { dg-require-namedlocale "" }
+
+// 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;
+}