sputn.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
1//===----------------------------------------------------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// <streambuf>
11
12// template <class charT, class traits = char_traits<charT> >
13// class basic_streambuf;
14
15// streamsize sputn(const char_type* s, streamsize n);
16
17#include <streambuf>
18#include <cassert>
19
20int xsputn_called = 0;
21
22struct test
23    : public std::basic_streambuf<char>
24{
25    test() {}
26
27protected:
28    std::streamsize xsputn(const char_type* s, std::streamsize n)
29    {
30        ++xsputn_called;
31        return 5;
32    }
33};
34
35int main()
36{
37    test t;
38    assert(xsputn_called == 0);
39    assert(t.sputn(0, 0) == 5);
40    assert(xsputn_called == 1);
41}
42