//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

// <strstream>

// class strstreambuf

// int_type pbackfail(int_type c = EOF);

#include <strstream>
#include <cassert>

struct test
    : public std::strstreambuf
{
    typedef std::strstreambuf base;
    test(char* gnext_arg, std::streamsize n, char* pbeg_arg = 0)
        : base(gnext_arg, n, pbeg_arg) {}
    test(const char* gnext_arg, std::streamsize n)
        : base(gnext_arg, n) {}

    virtual int_type pbackfail(int_type c = EOF) {return base::pbackfail(c);}
};

int main(int, char**)
{
    {
        const char buf[] = "123";
        test sb(buf, 0);
        assert(sb.sgetc() == '1');
        assert(sb.snextc() == '2');
        assert(sb.snextc() == '3');
        assert(sb.sgetc() == '3');
        assert(sb.snextc() == EOF);
        assert(sb.pbackfail('3') == '3');
        assert(sb.pbackfail('3') == EOF);
        assert(sb.pbackfail('2') == '2');
        assert(sb.pbackfail(EOF) != EOF);
        assert(sb.pbackfail(EOF) == EOF);
        assert(sb.str() == std::string("123"));
    }
    {
        char buf[] = "123";
        test sb(buf, 0);
        assert(sb.sgetc() == '1');
        assert(sb.snextc() == '2');
        assert(sb.snextc() == '3');
        assert(sb.sgetc() == '3');
        assert(sb.snextc() == EOF);
        assert(sb.pbackfail('3') == '3');
        assert(sb.pbackfail('3') == '3');
        assert(sb.pbackfail(EOF) != EOF);
        assert(sb.pbackfail(EOF) == EOF);
        assert(sb.str() == std::string("133"));
    }

  return 0;
}
