1 //===----------------------------------------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS
15 // int_type underflow();
20 #include "test_macros.h"
23 : public std::strstreambuf
25 typedef std::strstreambuf base
;
26 test(char* gnext_arg
, std::streamsize n
, char* pbeg_arg
= 0)
27 : base(gnext_arg
, n
, pbeg_arg
) {}
28 test(const char* gnext_arg
, std::streamsize n
)
29 : base(gnext_arg
, n
) {}
31 base::int_type
underflow() {return base::underflow();}
38 test
sb(buf
, 0, buf
+ 3);
39 assert(sb
.underflow() == '1');
40 assert(sb
.underflow() == '1');
41 assert(sb
.snextc() == '2');
42 assert(sb
.underflow() == '2');
43 assert(sb
.underflow() == '2');
44 assert(sb
.snextc() == '3');
45 assert(sb
.underflow() == '3');
46 assert(sb
.underflow() == '3');
47 assert(sb
.snextc() == EOF
);
48 assert(sb
.underflow() == EOF
);
49 assert(sb
.underflow() == EOF
);
51 assert(sb
.underflow() == '4');
52 assert(sb
.underflow() == '4');