File: dynbuf.cpp

package info (click to toggle)
yrmcds 1.0.4-6
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 924 kB
  • ctags: 1,346
  • sloc: cpp: 9,634; sh: 133; makefile: 97
file content (43 lines) | stat: -rw-r--r-- 1,257 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <cybozu/dynbuf.hpp>
#include <cybozu/test.hpp>

#include <cstring>

AUTOTEST(dynbuf0) {
    cybozu::dynbuf b(0);
    cybozu_assert( b.empty() );
    b.append("abc", 3);
    cybozu_assert( b.size() == 3 );
    cybozu_assert( ! b.empty() );
    b.append("def", 4);
    cybozu_assert( b.size() == 7 );
    cybozu_assert( std::memcmp(b.data(), "abcdef", 7) == 0 );
    b.reset();
    cybozu_assert( b.size() == 0 );
    char* p = b.prepare(7);
    std::memcpy(p, "aaa", 4);
    b.consume(4);
    cybozu_assert( b.size() == 4 );
    cybozu_assert( std::memcmp(b.data(), "aaa", 4) == 0 );
    b.append("1111112345678", 13);
    b.erase(10);
    cybozu_assert( b.size() == 7 );
    cybozu_assert( std::memcmp(b.data(), "2345678", 7) == 0 );
}

AUTOTEST(dynbuf5) {
    cybozu::dynbuf b(0);
    cybozu_assert( b.empty() );
    b.append("abc", 3);
    b.append("defghi", 6);
    cybozu_assert( b.size() == 9 );
    cybozu_assert( std::memcmp(b.data(), "abcdefghi", 9) == 0 );
    b.erase(6);
    cybozu_assert( b.size() == 3 );
    cybozu_assert( std::memcmp(b.data(), "ghi", 3) == 0 );
    b.append("0123456789", 10);
    b.erase(1);
    cybozu_assert( b.size() == 12 );
    cybozu_assert( std::memcmp(b.data(), "hi0123456789", 12) == 0 );
    b.reset();
}