]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/45628-1.cc
1 // Copyright (C) 2010-2020 Free Software Foundation, Inc.
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)
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.
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/>.
18 // { dg-require-fileio "" }
21 #include <testsuite_hooks.h>
23 const char name_01
[] = "tmp_seekoff_45628.tst";
25 unsigned underflows
, overflows
;
34 return std::filebuf::underflow();
40 return std::filebuf::overflow(c
);
48 q
.open(name_01
, std::ios_base::in
| std::ios_base::out
49 | std::ios_base::trunc
);
52 q
.pubseekoff(0, std::ios_base::cur
);
54 q
.pubseekoff(0, std::ios_base::cur
);
56 q
.pubseekoff(0, std::ios_base::cur
);
58 VERIFY( overflows
<= 1 ); // only initial sputc allowed to overflow
59 q
.pubseekoff(0, std::ios_base::beg
);
62 VERIFY( underflows
== 1 );
64 q
.pubseekoff(0, std::ios_base::cur
);
66 q
.pubseekoff(0, std::ios_base::cur
);
68 q
.pubseekoff(0, std::ios_base::cur
);
70 VERIFY( underflows
== 1 );