]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/ext/stdio_filebuf/char/81751.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / ext / stdio_filebuf / char / 81751.cc
CommitLineData
7adcbafe 1// Copyright (C) 2017-2022 Free Software Foundation, Inc.
04d07b61
JW
2//
3// This file is part of the GNU ISO C++ Library. This library is free
4// software; you can redistribute it and/or modify it under the
5// terms of the GNU General Public License as published by the
6// Free Software Foundation; either version 3, or (at your option)
7// any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13
14// You should have received a copy of the GNU General Public License along
15// with this library; see the file COPYING3. If not see
16// <http://www.gnu.org/licenses/>.
17
18// { dg-require-fileio "" }
19
20#include <ext/stdio_filebuf.h>
21#include <cstdio>
22#include <cerrno>
23#include <testsuite_hooks.h>
24
25void
26test01()
27{
28 FILE* out = std::fopen("81751.txt", "w");
29 std::fwrite("Some words.", 1, 10, out);
30
31 FILE* in1 = std::fopen("81751.txt", "r");
32 __gnu_cxx::stdio_filebuf<char> buf1(in1, std::ios::in, BUFSIZ);
33 int c = buf1.sgetc();
34 VERIFY( c == std::char_traits<char>::eof() ); // PR libstdc++/81751
35
36 std::fflush(out);
37 FILE* in2 = std::fopen("81751.txt", "r");
38 __gnu_cxx::stdio_filebuf<char> buf2(in2, std::ios::in, BUFSIZ);
39 c = buf2.sgetc();
40 VERIFY( c == 'S' );
41
42 buf1.close();
43 buf2.close();
44 std::fclose(in1);
45 std::fclose(in2);
46 std::fclose(out);
47}
48
49int
50main()
51{
52 test01();
53}