Develop and Download Open Source Software

Browse Subversion Repository

Contents of /runCtrl/TestTransmitCtrl.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: 3488 byte(s)
adjust tab index
1 /*!
2 \file
3 \brief TransmitCtrll のテスト
4
5 \author Satofumi KAMIMURA
6
7 $Id$
8 */
9
10 #include "TestTransmitCtrl.h"
11 #include "TransmitCtrl.h"
12 #include "ThreadCreator.h"
13 #include "transferCtrl.h"
14
15
16 CPPUNIT_TEST_SUITE_REGISTRATION(TestTransmitCtrl);
17 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(TestTransmitCtrl, "TestTransmitCtrl");
18
19 using namespace beego;
20
21
22 void TestTransmitCtrl::setUp(void) {
23
24 run_sim = new tRunCtrlSimulator;
25 run_sim->activate();
26 port.disconnect();
27 run_sim->connect(&port);
28 }
29
30
31 void TestTransmitCtrl::tearDown(void) {
32 delete run_sim;
33 }
34
35
36 void TestTransmitCtrl::accessTest(void) {
37
38 // 書き込んだ内容を読み出して確認する
39 TransmitCtrl transmit(&port, reinterpret_cast<unsigned char*>(&host_run));
40 enum {
41 Timeout = 100,
42 };
43
44 // 読み出し
45 host_run.wdt.active = 3;
46 transmit.initPacket(READ_PACKET);
47 transmit.addVariable(reinterpret_cast<unsigned char*>(&host_run.wdt.active),
48 sizeof(host_run.wdt.active));
49 bool ret = transmit.send(NULL);
50 CPPUNIT_ASSERT_EQUAL(ret, true);
51 run_sim->runMainTask();
52
53 ret = transmit.recv(Timeout);
54 CPPUNIT_ASSERT_EQUAL(ret, true);
55 CPPUNIT_ASSERT_EQUAL(0, static_cast<int>(host_run.wdt.active));
56
57 // 書き込み
58 transmit.initPacket(WRITE_PACKET);
59 ADD_WRITE_VARIABLE(transmit, host_run.wdt.active, 1);
60 transmit.send(NULL);
61 run_sim->runMainTask();
62 transmit.recv(Timeout);
63 CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(host_run.wdt.active));
64
65 // 読み出し
66 host_run.wdt.active = 0;
67 CPPUNIT_ASSERT_EQUAL(0, static_cast<int>(host_run.wdt.active));
68 transmit.initPacket(READ_PACKET);
69 ADD_READ_VARIABLE(transmit, host_run.wdt.active);
70 transmit.send(NULL);
71 run_sim->runMainTask();
72 transmit.recv(Timeout);
73 CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(host_run.wdt.active));
74 }
75
76
77 void TestTransmitCtrl::minusTest(void) {
78
79 // 負の値の読み書きテスト
80 TransmitCtrl transmit(&port, reinterpret_cast<unsigned char*>(&host_run));
81 enum {
82 Timeout = 100,
83 };
84
85 // 書き込み
86 transmit.initPacket(WRITE_PACKET);
87 ADD_WRITE_VARIABLE(transmit, host_run.wdt.active, -1);
88 transmit.send(NULL);
89 run_sim->runMainTask();
90 transmit.recv(Timeout);
91 CPPUNIT_ASSERT_EQUAL(-1, static_cast<int>(host_run.wdt.active));
92
93 // 読み出し
94 host_run.wdt.active = 0;
95 CPPUNIT_ASSERT_EQUAL(0, static_cast<int>(host_run.wdt.active));
96 transmit.initPacket(READ_PACKET);
97 ADD_READ_VARIABLE(transmit, host_run.wdt.active);
98 transmit.send(NULL);
99 run_sim->runMainTask();
100 transmit.recv(Timeout);
101 CPPUNIT_ASSERT_EQUAL(-1, static_cast<int>(host_run.wdt.active));
102 }
103
104
105 void TestTransmitCtrl::frontChunkTest(void) {
106
107 // ゴミデータ + 正常データを送信して、応答が返されるかを確認する
108 TransmitCtrl transmit(&port, reinterpret_cast<unsigned char*>(&host_run));
109 enum {
110 Timeout = 100,
111 };
112
113 transmit.initPacket(WRITE_PACKET);
114 ADD_WRITE_VARIABLE(transmit, host_run.wdt.active, 5);
115 bool ret = transmit.send(NULL);
116 CPPUNIT_ASSERT_EQUAL(true, ret);
117 run_sim->runMainTask();
118 ret = transmit.recv(Timeout);
119 CPPUNIT_ASSERT_EQUAL(true, ret);
120
121 // ゴミデータの混入
122 port.send("gomi", 4);
123
124 // 読み出し
125 host_run.wdt.active = 0;
126 CPPUNIT_ASSERT_EQUAL(0, static_cast<int>(host_run.wdt.active));
127 transmit.initPacket(READ_PACKET);
128 ADD_READ_VARIABLE(transmit, host_run.wdt.active);
129 transmit.send(NULL);
130 run_sim->runMainTask();
131 run_sim->runMainTask();
132 ret = transmit.recv(Timeout);
133 CPPUNIT_ASSERT_EQUAL(true, ret);
134 CPPUNIT_ASSERT_EQUAL(5, static_cast<int>(host_run.wdt.active));
135 }

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