diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-15 19:02:51 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-15 19:02:51 +0000 |
commit | 49f0ee87f4143e9654afebcca23837a48b90aa7e (patch) | |
tree | 74a52234f2adcd35759b23c579b466b0ed21d78b /libstdc++-v3/testsuite/22_locale | |
parent | cb44834a4fb58ee0a92260f75b6e91709f5ae5e5 (diff) | |
download | gcc-49f0ee87f4143e9654afebcca23837a48b90aa7e.tar.gz |
2011-12-15 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/22_locale/num_put/put/char/9780-2.cc: Add test for "C"
locale, add sanity checks in case of grouping.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182385 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite/22_locale')
-rw-r--r-- | libstdc++-v3/testsuite/22_locale/num_put/put/char/9780-2.cc | 55 |
1 files changed, 46 insertions, 9 deletions
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/put/char/9780-2.cc b/libstdc++-v3/testsuite/22_locale/num_put/put/char/9780-2.cc index 7993691e916..5cf0d048a1c 100644 --- a/libstdc++-v3/testsuite/22_locale/num_put/put/char/9780-2.cc +++ b/libstdc++-v3/testsuite/22_locale/num_put/put/char/9780-2.cc @@ -1,7 +1,7 @@ // { dg-require-namedlocale "de_DE" } // { dg-require-namedlocale "es_ES" } -// Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc. +// Copyright (C) 2004, 2005, 2009, 2011 Free Software Foundation, Inc. // // 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 @@ -22,23 +22,60 @@ #include <locale> #include <testsuite_hooks.h> -int main() +// Make sure that formatted output uses the locale in the output stream. +using namespace std; +locale l1 = locale("de_DE"); +const num_put<char>& np = use_facet<num_put<char> >(l1); +const numpunct<char>& npunct = use_facet<numpunct<char> >(l1); + +void test01() { - using namespace std; + bool test __attribute__((unused)) = true; + + locale l2 = locale("C"); + const numpunct<char>& npunct2 = use_facet<numpunct<char> >(l2); + char c = npunct2.thousands_sep(); + string s = npunct2.grouping(); + + ostringstream oss; + oss.imbue(l2); + + long l = 1234567890; + np.put(oss.rdbuf(), oss, ' ', l); + string res = oss.str(); + + VERIFY( res == "1234567890" ); +} +void test02() +{ bool test __attribute__((unused)) = true; - locale l1 = locale("de_DE"); + locale l2 = locale("es_ES"); - - const num_put<char>& np = use_facet<num_put<char> >(l1); + const numpunct<char>& npunct3 = use_facet<numpunct<char> >(l2); + char c = npunct3.thousands_sep(); + string s = npunct3.grouping(); + ostringstream oss; oss.imbue(l2); long l = 1234567890; - np.put(oss.rdbuf(), oss, ' ', l); // 1234567890 + np.put(oss.rdbuf(), oss, ' ', l); string res = oss.str(); - - VERIFY( res == "1234567890" ); + if (!s.empty()) + VERIFY( res == "1.234.567.890" ); + else + VERIFY( res == "1234567890" ); +} + +int main() +{ + // Sanity check. + char c = npunct.thousands_sep(); + string s = npunct.grouping(); + + test01(); + test02(); return 0; } |