]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/22_locale/time_put/put/char/7.cc
re PR testsuite/39696 (gcc.dg/tree-ssa/ssa-ccp-25.c scan-tree-dump doesn't work on...
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 22_locale / time_put / put / char / 7.cc
CommitLineData
f63a8495
PC
1// { dg-require-namedlocale "" }
2
5f8d36fe
BK
3// 2001-09-17 Benjamin Kosnik <bkoz@redhat.com>
4
7919bb2f
PC
5// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
6// Free Software Foundation
5f8d36fe
BK
7//
8// This file is part of the GNU ISO C++ Library. This library is free
9// software; you can redistribute it and/or modify it under the
10// terms of the GNU General Public License as published by the
11// Free Software Foundation; either version 2, or (at your option)
12// any later version.
13
14// This library is distributed in the hope that it will be useful,
15// but WITHOUT ANY WARRANTY; without even the implied warranty of
16// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17// GNU General Public License for more details.
18
19// You should have received a copy of the GNU General Public License along
20// with this library; see the file COPYING. If not, write to the Free
83f51799 21// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
5f8d36fe
BK
22// USA.
23
24// 22.2.5.3.1 time_put members
25
26#include <locale>
27#include <sstream>
28#include <testsuite_hooks.h>
29
30void test07()
31{
32 using namespace std;
33 typedef ostreambuf_iterator<char> iterator_type;
34 typedef char_traits<char> traits;
35
11f10e6b 36 bool test __attribute__((unused)) = true;
5f8d36fe
BK
37
38 // create "C" time objects
a98c14f4 39 const tm time1 = __gnu_test::test_tm(0, 0, 12, 4, 3, 71, 0, 93, 0);
5f8d36fe
BK
40 const char* date = "%A, the second of %B";
41 const char* date_ex = "%Ex";
42
ba98a8d8 43 // basic construction and sanity check
5f8d36fe 44 locale loc_c = locale::classic();
f63a8495 45 locale loc_hk = locale("en_HK");
5f8d36fe 46 VERIFY( loc_hk != loc_c );
5f8d36fe 47
5f8d36fe
BK
48 // create an ostream-derived object, cache the time_put facet
49 const string empty;
50 ostringstream oss;
51 oss.imbue(loc_hk);
52 const time_put<char>& tim_put = use_facet<time_put<char> >(oss.getloc());
53
54 iterator_type os_it09 = tim_put.put(oss.rdbuf(), oss, '*', &time1,
55 date, date + traits::length(date));
56 string result9 = oss.str();
57 VERIFY( result9 == "Sunday, the second of April");
58 iterator_type os_it10 = tim_put.put(oss.rdbuf(), oss, '*', &time1,
7919bb2f
PC
59 date_ex,
60 date_ex + traits::length(date_ex));
5f8d36fe
BK
61 string result10 = oss.str();
62 VERIFY( result10 != result9 );
63}
64
65int main()
66{
3d838e28 67 test07();
5f8d36fe
BK
68 return 0;
69}