Develop and Download Open Source Software

Browse Subversion Repository

Contents of /common/TestRingBuffer.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 279 - (show annotations) (download) (as text)
Wed Mar 12 05:28:19 2008 UTC (16 years, 1 month ago) by satofumi
File MIME type: text/x-c++src
File size: 2072 byte(s)
adjust tab index
1 /*!
2 \file
3 \brief RingBuffer ‚̃eƒXƒg
4
5 \author Satofumi KAMIMURA
6
7 $Id$
8 */
9
10 #include "TestRingBuffer.h"
11 #include "RingBuffer.h"
12
13 using namespace beego;
14
15
16 CPPUNIT_TEST_SUITE_REGISTRATION(RingBufferTest);
17 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(RingBufferTest, "RingBufferTest");
18
19
20 void RingBufferTest::compileTest(void) {
21 RingBuffer<char> buffer;
22 }
23
24
25 void RingBufferTest::putTest(void) {
26
27 RingBuffer<char> buffer;
28 CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), buffer.size());
29
30 buffer.put("0", 1);
31 CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), buffer.size());
32
33 char ch;
34 int n = buffer.get(&ch, 1);
35 CPPUNIT_ASSERT_EQUAL('0', ch);
36 CPPUNIT_ASSERT_EQUAL(1, n);
37
38 buffer.clear();
39 CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), buffer.size());
40 }
41
42
43 void RingBufferTest::extendTest(void) {
44 RingBuffer<char> buffer;
45
46 char recvBuffer[] = { '\0', '\0', '\0', '\0',
47 '\0', '\0', '\0', '\0', '\0' };
48
49 buffer.put("0", 1);
50 int n = buffer.get(recvBuffer, 8);
51 CPPUNIT_ASSERT_EQUAL(1, n);
52 CPPUNIT_ASSERT_EQUAL(std::string("0"), std::string(recvBuffer));
53
54 buffer.put("1", 1);
55 n = buffer.get(recvBuffer, 8);
56 CPPUNIT_ASSERT_EQUAL(1, n);
57 CPPUNIT_ASSERT_EQUAL(std::string("1"), std::string(recvBuffer));
58
59 buffer.put("23", 2);
60 n = buffer.get(recvBuffer, 8);
61 CPPUNIT_ASSERT_EQUAL(2, n);
62 CPPUNIT_ASSERT_EQUAL(std::string("23"), std::string(recvBuffer));
63
64 buffer.put("01234567", 8);
65 n = buffer.get(recvBuffer, 8);
66 CPPUNIT_ASSERT_EQUAL(8, n);
67 CPPUNIT_ASSERT_EQUAL(std::string("01234567"), std::string(recvBuffer));
68 }
69
70
71 void RingBufferTest::rotateTest(void) {
72 RingBuffer<char> buffer;
73
74 char recvBuffer[] = { '\0', '\0', '\0', '\0', '\0' };
75
76 for (int i = 0; i < 3; ++i) {
77 char ch = '0' + i;
78 buffer.put(&ch, 1);
79 }
80 int n = buffer.get(recvBuffer, 3);
81 CPPUNIT_ASSERT_EQUAL(3, n);
82 CPPUNIT_ASSERT_EQUAL(std::string("012"), std::string(recvBuffer));
83
84 buffer.put("abc", 3);
85 n = buffer.get(recvBuffer, 3);
86 CPPUNIT_ASSERT_EQUAL(3, n);
87 CPPUNIT_ASSERT_EQUAL(std::string("abc"), std::string(recvBuffer));
88 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26