summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/ext/codecvt/1.cc
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2007-01-29 18:22:37 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2007-01-29 18:22:37 +0000
commit4ffe6e87dc5f2aecddf83192b7528202f647faaa (patch)
treeda98ca8f6597468843b19cf9367201ffebc2b1e8 /libstdc++-v3/testsuite/ext/codecvt/1.cc
parent68254f23e8c232a4da9b6f0e3fdabe1800a4b014 (diff)
downloadgcc-4ffe6e87dc5f2aecddf83192b7528202f647faaa.tar.gz
enc_filebuf.h: Resurrect, update.
2007-01-29 Benjamin Kosnik <bkoz@redhat.com> * include/ext/enc_filebuf.h: Resurrect, update. * include/ext/codecvt_specializations.h: Remove _GLIBCXX_USE_ICONV, _GLIBCXX_USE_ENCODING_STATE. * include/bits/localefwd.h: Remove declaration for __enc_traits. * docs/html/22_locale/codecvt.html: Change __enc_traits to encoding_state. * scripts/testsuite_flags.in: Remove ICONV. * configure.ac: Remove GLIBCXX_CHECK_ICONV_SUPPORT. * acinclude.m4 (GLIBCXX_CHECK_ICONV_SUPPORT): Remove. * crossconfig.m4: Remove use of GLIBCXX_CHECK_ICONV_SUPPORT. * config.h.in: Remove HAVE_ICONV_CLOSE, HAVE_ICONV_OPEN, HAVE_NL_LANGINFO, _GLIBCXX_USE_ICONV. * include/Makefile.am: Uglify ICONV_CONST. * configure: Regenerate. * aclocal.m4: Regenerate. * Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * libmath/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. * testsuite/ext/enc_filebuf/wchar_t/13189.cc: Use dg-require-iconv, fix up for encoding_state changes. * testsuite/ext/enc_filebuf/char/13189.cc: Same. * testsuite/ext/enc_filebuf/char/13598.cc: Same. * testsuite/22_locale/codecvt/unicode: Move... * testsuite/22_locale/codecvt/unicode/char.cc: Move... * testsuite/22_locale/codecvt/unicode/1.cc: Move... * testsuite/22_locale/codecvt/unicode/wchar_t.cc: Move... * testsuite/ext/codecvt: New. * testsuite/ext/codecvt/char-1.cc: ...here. Also, use dg-require-iconv. * testsuite/ext/codecvt/char-2.cc: ...here. Same. * testsuite/ext/codecvt/1.cc: ...here. Same. * testsuite/ext/codecvt/wchar_t.cc: ...here. Same. * testsuite/22_locale/locale/cons/unicode: Delete directory. * testsuite/22_locale/locale/cons/unicode/1.cc: Move... * testsuite/22_locale/locale/cons/unicode.cc: ...here. From-SVN: r121297
Diffstat (limited to 'libstdc++-v3/testsuite/ext/codecvt/1.cc')
-rw-r--r--libstdc++-v3/testsuite/ext/codecvt/1.cc58
1 files changed, 58 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/ext/codecvt/1.cc b/libstdc++-v3/testsuite/ext/codecvt/1.cc
new file mode 100644
index 00000000000..2e3fb746bef
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/codecvt/1.cc
@@ -0,0 +1,58 @@
+// { dg-require-iconv "UCS-2BE" }
+// { dg-require-iconv "ISO-8859-15" }
+// 2003-02-06 Petur Runolfsson <peturr02@ru.is>
+
+// Copyright (C) 2003, 2007 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// 22.2.1.5 - Template class codecvt [lib.locale.codecvt]
+
+#include <locale>
+#include <testsuite_hooks.h>
+#include <ext/codecvt_specializations.h>
+
+// Partial specialization using encoding_state
+// codecvt<unicode_t, char, encoding_state>
+// UNICODE - UCS2 (big endian)
+void test01()
+{
+ using namespace std;
+ typedef unsigned short int_type;
+ typedef char ext_type;
+ typedef __gnu_cxx::encoding_state state_type;
+ typedef codecvt<int_type, ext_type, state_type> unicode_codecvt;
+
+ bool test __attribute__((unused)) = true;
+ const ext_type* e_lit = "black pearl jasmine tea";
+ int size = strlen(e_lit);
+
+ // construct a locale object with the specialized facet.
+ locale loc(locale::classic(), new unicode_codecvt);
+ // sanity check the constructed locale has the specialized facet.
+ VERIFY( has_facet<unicode_codecvt>(loc) );
+ const unicode_codecvt& cvt = use_facet<unicode_codecvt>(loc);
+
+ unicode_codecvt::state_type state04("UCS-2BE", "ISO-8859-15", 0xfeff, 0);
+ cvt.length(state04, e_lit, e_lit + size, 5);
+}
+
+int main ()
+{
+ test01();
+ return 0;
+}