diff options
Diffstat (limited to 'libstdc++-v3/testsuite/22_locale/money_put/put/char')
11 files changed, 776 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/22_locale/money_put/put/char/1.cc b/libstdc++-v3/testsuite/22_locale/money_put/put/char/1.cc new file mode 100644 index 000000000..848dd141e --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/put/char/1.cc @@ -0,0 +1,108 @@ +// { dg-require-namedlocale "de_DE@euro" } + +// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 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.6.2.1 money_put members + +#include <locale> +#include <sstream> +#include <testsuite_hooks.h> + +// test string version +void test01() +{ + using namespace std; + typedef ostreambuf_iterator<char> iterator_type; + + bool test __attribute__((unused)) = true; + + // basic construction + locale loc_c = locale::classic(); + locale loc_de = locale("de_DE@euro"); + VERIFY( loc_c != loc_de ); + + // sanity check the data is correct. + const string empty; + + // total EPA budget FY 2002 + const string digits1("720000000000"); + + // input less than frac_digits + const string digits2("-1"); + + // cache the money_put facet + ostringstream oss; + oss.imbue(loc_de); + const money_put<char>& mon_put = use_facet<money_put<char> >(oss.getloc()); + + mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); + string result1 = oss.str(); + VERIFY( result1 == "7.200.000.000,00 "); + + oss.str(empty); + mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); + string result2 = oss.str(); + VERIFY( result2 == "7.200.000.000,00 "); + + // intl and non-intl versions should be the same. + VERIFY( result1 == result2 ); + + // now try with showbase, to get currency symbol in format + oss.setf(ios_base::showbase); + + oss.str(empty); + mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); + string result3 = oss.str(); + VERIFY( result3 == "7.200.000.000,00 EUR "); + + oss.str(empty); + mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); + string result4 = oss.str(); + VERIFY( result4 == "7.200.000.000,00 \244"); + + // intl and non-intl versions should be different. + VERIFY( result3 != result4 ); + VERIFY( result3 != result1 ); + VERIFY( result4 != result2 ); + + oss.unsetf(ios_base::showbase); + + // test io.width() > length + // test various fill strategies + oss.str(empty); + oss.width(20); + mon_put.put(oss.rdbuf(), true, oss, '*', digits2); + string result10 = oss.str(); + VERIFY( result10 == "***************-,01*"); + + oss.str(empty); + oss.width(20); + oss.setf(ios_base::internal); + mon_put.put(oss.rdbuf(), true, oss, '*', digits2); + string result11 = oss.str(); + VERIFY( result11 == "-,01****************"); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_put/put/char/12971.cc b/libstdc++-v3/testsuite/22_locale/money_put/put/char/12971.cc new file mode 100644 index 000000000..5ccb9ba4a --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/put/char/12971.cc @@ -0,0 +1,49 @@ +// 2003-11-09 Paolo Carlini <pcarlini@suse.de> + +// Copyright (C) 2003, 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.6.2.1 money_put members + +#include <locale> +#include <sstream> +#include <testsuite_hooks.h> + +// libstdc++/12971 +void test01() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + typedef ostreambuf_iterator<char> iterator_type; + + long double amount = 10.8L; + + // cache the money_put facet + ostringstream oss; + const money_put<char>& mon_put = use_facet<money_put<char> >(oss.getloc()); + + mon_put.put(oss.rdbuf(), true, oss, ' ', amount); + string result = oss.str(); + VERIFY( result == "11" ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_put/put/char/2.cc b/libstdc++-v3/testsuite/22_locale/money_put/put/char/2.cc new file mode 100644 index 000000000..6d3136c54 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/put/char/2.cc @@ -0,0 +1,105 @@ +// { dg-require-namedlocale "en_HK" } + +// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 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.6.2.1 money_put members + +#include <locale> +#include <sstream> +#include <testsuite_hooks.h> + +// test string version +void test02() +{ + using namespace std; + typedef ostreambuf_iterator<char> iterator_type; + + bool test __attribute__((unused)) = true; + + // basic construction + locale loc_c = locale::classic(); + locale loc_hk = locale("en_HK"); + VERIFY( loc_c != loc_hk ); + + // sanity check the data is correct. + const string empty; + + // total EPA budget FY 2002 + const string digits1("720000000000"); + + // est. cost, national missile "defense", expressed as a loss in USD 2001 + const string digits2("-10000000000000"); + + // not valid input + const string digits3("-A"); + + // input less than frac_digits + const string digits4("-1"); + + // cache the money_put facet + ostringstream oss; + oss.imbue(loc_hk); + const money_put<char>& mon_put = use_facet<money_put<char> >(oss.getloc()); + + // now try with showbase, to get currency symbol in format + oss.setf(ios_base::showbase); + + // test sign of more than one digit, say hong kong. + oss.str(empty); + mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); + string result5 = oss.str(); + VERIFY( result5 == "HK$7,200,000,000.00"); + + oss.str(empty); + mon_put.put(oss.rdbuf(), true, oss, ' ', digits2); + string result6 = oss.str(); + VERIFY( result6 == "(HKD 100,000,000,000.00)"); + + // test one-digit formats without zero padding + oss.imbue(loc_c); + oss.str(empty); + const money_put<char>& mon_put2 = use_facet<money_put<char> >(oss.getloc()); + mon_put2.put(oss.rdbuf(), true, oss, ' ', digits4); + string result7 = oss.str(); + VERIFY( result7 == "1"); + + // test one-digit formats with zero padding, zero frac widths + oss.imbue(loc_hk); + oss.str(empty); + const money_put<char>& mon_put3 = use_facet<money_put<char> >(oss.getloc()); + mon_put3.put(oss.rdbuf(), true, oss, ' ', digits4); + string result8 = oss.str(); + VERIFY( result8 == "(HKD .01)"); + + oss.unsetf(ios_base::showbase); + + // test bunk input + oss.str(empty); + mon_put.put(oss.rdbuf(), true, oss, ' ', digits3); + string result9 = oss.str(); + VERIFY( result9 == ""); +} + +int main() +{ + test02(); + return 0; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_put/put/char/3.cc b/libstdc++-v3/testsuite/22_locale/money_put/put/char/3.cc new file mode 100644 index 000000000..462666f8b --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/put/char/3.cc @@ -0,0 +1,88 @@ +// { dg-require-namedlocale "de_DE@euro" } + +// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 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.6.2.1 money_put members + +#include <locale> +#include <sstream> +#include <testsuite_hooks.h> + +// test double version +void test03() +{ + using namespace std; + typedef ostreambuf_iterator<char> iterator_type; + + bool test __attribute__((unused)) = true; + + // basic construction + locale loc_c = locale::classic(); + locale loc_de = locale("de_DE@euro"); + VERIFY( loc_c != loc_de ); + + // sanity check the data is correct. + const string empty; + + // total EPA budget FY 2002 + const long double digits1 = 720000000000.0; + + // cache the money_put facet + ostringstream oss; + oss.imbue(loc_de); + const money_put<char>& mon_put = use_facet<money_put<char> >(oss.getloc()); + + mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); + string result1 = oss.str(); + VERIFY( result1 == "7.200.000.000,00 "); + + oss.str(empty); + mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); + string result2 = oss.str(); + VERIFY( result2 == "7.200.000.000,00 "); + + // intl and non-intl versions should be the same. + VERIFY( result1 == result2 ); + + // now try with showbase, to get currency symbol in format + oss.setf(ios_base::showbase); + + oss.str(empty); + mon_put.put(oss.rdbuf(), true, oss, ' ', digits1); + string result3 = oss.str(); + VERIFY( result3 == "7.200.000.000,00 EUR "); + + oss.str(empty); + mon_put.put(oss.rdbuf(), false, oss, ' ', digits1); + string result4 = oss.str(); + VERIFY( result4 == "7.200.000.000,00 \244"); + + // intl and non-intl versions should be different. + VERIFY( result3 != result4 ); + VERIFY( result3 != result1 ); + VERIFY( result4 != result2 ); +} + +int main() +{ + test03(); + return 0; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_put/put/char/39168.cc b/libstdc++-v3/testsuite/22_locale/money_put/put/char/39168.cc new file mode 100644 index 000000000..1fb9bf0f9 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/put/char/39168.cc @@ -0,0 +1,50 @@ +// Copyright (C) 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.6.2.1 money_put members + +#include <sstream> +#include <locale> +#include <climits> +#include <testsuite_hooks.h> + +class my_moneypunct: public std::moneypunct<char> +{ +protected: + std::string do_grouping() const { return std::string(1, CHAR_MAX); } +}; + +// libstdc++/39168 +void test01() +{ + bool test __attribute__((unused)) = true; + using namespace std; + + ostringstream oss; + oss.imbue(locale(oss.getloc(), new my_moneypunct)); + const money_put<char>& mp = use_facet<money_put<char> >(oss.getloc()); + + string digits(300, '1'); + mp.put(oss.rdbuf(), false, oss, ' ', digits); + VERIFY( oss.str() == digits ); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_put/put/char/4.cc b/libstdc++-v3/testsuite/22_locale/money_put/put/char/4.cc new file mode 100644 index 000000000..4595a1523 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/put/char/4.cc @@ -0,0 +1,71 @@ +// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2003, 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.6.2.1 money_put members + +#include <locale> +#include <sstream> +#include <testsuite_hooks.h> + +void test04() +{ + using namespace std; + bool test __attribute__((unused)) = true; + + // Check money_put works with other iterators besides streambuf + // output iterators. (As long as output_iterator requirements are met.) + typedef string::iterator iter_type; + typedef money_put<char, iter_type> mon_put_type; + const ios_base::iostate goodbit = ios_base::goodbit; + ios_base::iostate err = goodbit; + const locale loc_c = locale::classic(); + // woman, art, thief (stole the blues) + const string str("1943 Janis Joplin"); + const long double ld = 1943.0; + const string x(str.size(), 'x'); // have to have allocated string! + string res; + + ostringstream oss; + oss.imbue(locale(loc_c, new mon_put_type)); + + // Iterator advanced, state, output. + const mon_put_type& mp = use_facet<mon_put_type>(oss.getloc()); + + // 01 string + res = x; + iter_type ret1 = mp.put(res.begin(), false, oss, ' ', str); + string sanity1(res.begin(), ret1); + VERIFY( err == goodbit ); + VERIFY( res == "1943xxxxxxxxxxxxx" ); + VERIFY( sanity1 == "1943" ); + + // 02 long double + res = x; + iter_type ret2 = mp.put(res.begin(), false, oss, ' ', ld); + string sanity2(res.begin(), ret2); + VERIFY( err == goodbit ); + VERIFY( res == "1943xxxxxxxxxxxxx" ); + VERIFY( sanity2 == "1943" ); +} + +int main() +{ + test04(); + return 0; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_put/put/char/5.cc b/libstdc++-v3/testsuite/22_locale/money_put/put/char/5.cc new file mode 100644 index 000000000..a7a6f8181 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/put/char/5.cc @@ -0,0 +1,69 @@ +// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2003, 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.6.2.1 money_put members + +#include <locale> +#include <sstream> +#include <testsuite_hooks.h> + +struct My_money_io : public std::moneypunct<char,false> +{ + char_type do_decimal_point() const { return '.'; } + char_type do_thousands_sep() const { return ','; } + std::string do_grouping() const { return "\003"; } + + std::string do_negative_sign() const { return "()"; } + + int do_frac_digits() const { return 2; } + + pattern do_neg_format() const + { + pattern pat = { { symbol, space, sign, value } }; + return pat; + } +}; + +// libstdc++/5708 +void test05() +{ + using namespace std; + bool test __attribute__((unused)) = true; + typedef ostreambuf_iterator<char> OutIt; + + locale loc(locale::classic(), new My_money_io); + + bool intl = false; + + string val("-123456"); + const money_put<char,OutIt>& mp = + use_facet<money_put<char, OutIt> >(loc); + + ostringstream fmt; + fmt.imbue(loc); + OutIt out(fmt); + mp.put(out,intl,fmt,'*',val); + VERIFY( fmt.str() == "*(1,234.56)" ); +} + +int main() +{ + test05(); + return 0; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_put/put/char/6.cc b/libstdc++-v3/testsuite/22_locale/money_put/put/char/6.cc new file mode 100644 index 000000000..379824771 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/put/char/6.cc @@ -0,0 +1,58 @@ +// 2001-08-27 Benjamin Kosnik <bkoz@redhat.com> + +// Copyright (C) 2001, 2002, 2003, 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.6.2.1 money_put members + +#include <locale> +#include <sstream> +#include <testsuite_hooks.h> + +struct My_money_io_2 : public std::moneypunct<char,false> +{ + char_type do_thousands_sep() const { return ','; } + std::string do_grouping() const { return "\001"; } +}; + +// Make sure we can output a very big amount of money (with grouping too). +void test06() +{ + using namespace std; + bool test __attribute__((unused)) = true; + typedef ostreambuf_iterator<char> OutIt; + + locale loc(locale::classic(), new My_money_io_2); + + bool intl = false; + + long double val = 1.0e50L; + const money_put<char,OutIt>& mp = + use_facet<money_put<char, OutIt> >(loc); + + ostringstream fmt; + fmt.imbue(loc); + OutIt out(fmt); + mp.put(out,intl,fmt,'*',val); + VERIFY( fmt.good() ); +} + +int main() +{ + test06(); + return 0; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_put/put/char/9780-3.cc b/libstdc++-v3/testsuite/22_locale/money_put/put/char/9780-3.cc new file mode 100644 index 000000000..e54035891 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/put/char/9780-3.cc @@ -0,0 +1,50 @@ +// { dg-require-namedlocale "de_DE" } +// { dg-require-namedlocale "es_ES" } + +// Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 +// 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 +// 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 <sstream> +#include <locale> +#include <testsuite_hooks.h> + +int main() +{ + using namespace std; + + bool test __attribute__((unused)) = true; + locale l1 = locale("de_DE"); + locale l2 = locale("es_ES"); + + const money_put<char>& mp = use_facet<money_put<char> >(l1); + ostringstream oss; + oss.imbue(l2); + oss.setf(ios_base::showbase); + + long double ld = -1234567890; + mp.put(oss.rdbuf(), true, oss, ' ', ld); // -EUR 12.345.678,90 + string res = oss.str(); + +#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 7) + VERIFY( res == "-12.345.678,90 EUR " ); +#else + VERIFY( res == "-EUR 12.345.678,90" ); +#endif + + return 0; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_env.cc b/libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_env.cc new file mode 100644 index 000000000..3b13bdc28 --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_env.cc @@ -0,0 +1,64 @@ +// { dg-require-namedlocale "de_DE" } +// { dg-require-namedlocale "de_DE@euro" } +// { 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 + +#define main discard_main_4 +#include "4.cc" +#undef main + +#define main discard_main_5 +#include "5.cc" +#undef main + +#define main discard_main_6 +#include "6.cc" +#undef main + +int main() +{ + using namespace __gnu_test; + func_callback two; + two.push_back(&test01); + two.push_back(&test02); + two.push_back(&test03); + two.push_back(&test04); + two.push_back(&test05); + two.push_back(&test06); + run_tests_wrapped_env("de_DE", "LANG", two); + return 0; +} diff --git a/libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc b/libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc new file mode 100644 index 000000000..b160fb72a --- /dev/null +++ b/libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc @@ -0,0 +1,64 @@ +// { dg-require-namedlocale "ja_JP.eucjp" } +// { dg-require-namedlocale "de_DE@euro" } +// { 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 + +#define main discard_main_4 +#include "4.cc" +#undef main + +#define main discard_main_5 +#include "5.cc" +#undef main + +#define main discard_main_6 +#include "6.cc" +#undef main + +int main() +{ + using namespace __gnu_test; + func_callback two; + two.push_back(&test01); + two.push_back(&test02); + two.push_back(&test03); + two.push_back(&test04); + two.push_back(&test05); + two.push_back(&test06); + run_tests_wrapped_locale("ja_JP.eucjp", two); + return 0; +} |