]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/27_io/objects/char/12048-5.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 27_io / objects / char / 12048-5.cc
CommitLineData
73780bfe
LR
1// Derived from libstdc++/12048 by LJR <ljrittle@acm.org> with
2// reminder from Petur Runolfsson <peturr02@ru.is>.
3
83ffe9cd 4// Copyright (C) 2003-2023 Free Software Foundation, Inc.
73780bfe
LR
5//
6// This file is part of the GNU ISO C++ Library. This library is free
7// software; you can redistribute it and/or modify it under the
8// terms of the GNU General Public License as published by the
748086b7 9// Free Software Foundation; either version 3, or (at your option)
73780bfe
LR
10// any later version.
11
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15// GNU General Public License for more details.
16
17// You should have received a copy of the GNU General Public License along
748086b7
JJ
18// with this library; see the file COPYING3. If not see
19// <http://www.gnu.org/licenses/>.
73780bfe 20
4c620c39
PR
21// DR 49 states that cin.rdbuf()->sbumpc() and fgetc(stdin) should be
22// equivalent and interchangable. Currently however, cin.rdbuf()->sungetc()
23// only returns characters that were read with cin.rdbuf()->sbumpc()
24
25// { dg-do run { xfail *-*-* } }
13cddbc1 26// { dg-require-fileio "" }
4c620c39 27
73780bfe 28#include <iostream>
4c620c39 29#include <cstdio>
73780bfe
LR
30#include <testsuite_hooks.h>
31
32void
33test01()
34{
820d2ff7 35 VERIFY( std::freopen("cin_unget-1.txt", "r", stdin) );
73780bfe
LR
36
37 char c1;
4c620c39
PR
38 int c2;
39 char c3;
73780bfe 40 std::cin.get(c1);
4c620c39 41 c2 = std::fgetc(stdin);
73780bfe 42 std::cin.unget();
4c620c39
PR
43 if (std::cin.good())
44 {
45 std::cin.get(c3);
46 VERIFY( std::cin.good() );
47 VERIFY( c3 == std::char_traits<char>::to_char_type(c2) );
48 }
73780bfe
LR
49}
50
51int main(void)
52{
53 test01();
54 return 0;
55}