Files
paho.mqtt-sn.embedded-c/MQTTSNGateway/src/tests/TestProcess.cpp
2016-11-02 15:47:13 +09:00

126 lines
2.9 KiB
C++

/**************************************************************************************
* Copyright (c) 2016, Tomoaki Yamaguchi
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Eclipse Distribution License v1.0 which accompany this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Tomoaki Yamaguchi - initial API and implementation
**************************************************************************************/
#include <string.h>
#include <cassert>
#include "TestProcess.h"
#include "TestTopics.h"
#include "TestQue.h"
#include "TestTree23.h"
#include "TestTopicIdMap.h"
#include "MQTTSNGWProcess.h"
#include "MQTTSNGWClient.h"
#include "MQTTSNGWPacket.h"
#include "Timer.h"
using namespace std;
using namespace MQTTSNGW;
#define ARGV "./testPFW"
#define CONFDIR "./"
#define CONF "gateway.conf"
const char* currentDateTime(void);
TestProcess::TestProcess()
{
theMultiTaskProcess = this;
theProcess = this;
}
TestProcess::~TestProcess()
{
}
void TestProcess::initialize(int argc, char** argv)
{
MultiTaskProcess::initialize(argc, argv);
assert(0 == strcmp(CONFDIR, getConfigDirName()->c_str()));
assert(0 == strcmp(CONF, getConfigFileName()->c_str()));
resetRingBuffer();
}
void TestProcess::run(void)
{
char value[256];
int i = 0;
Timer tm;
/* Test command line parameter */
assert(1 == getArgc() || 3 == getArgc() );
assert(0 == strcmp(ARGV, *getArgv()));
getParam("BrokerName", value);
assert(0 == strcmp("iot.eclipse.org", value));
/* Test RingBuffer */
for ( i = 0; i < 1000; i++)
{
putLog("Test RingBuffer %d ", 1234567890);
}
putLog("\n\nRingBuffer Test complieted.\n\n");
/* Test Timer */
printf("Timer Test start\n");
printf("%s Timer start\n", currentDateTime());
tm.start(1000);
while (!tm.isTimeup());
printf("%s Timer 1sec\n", currentDateTime());
tm.start();
while (!tm.isTimeup(1000));
printf("%s Timer 1sec\n", currentDateTime());
printf("Timer Test completed\n\n");
/* Test Que */
TestQue* tque = new TestQue();
tque->test();
delete tque;
/* Test Tree23 */
TestTree23* tree23 = new TestTree23();
tree23->test();
delete tree23;
/* Test TopicTable */
TestTopics* testTopic = new TestTopics();
testTopic->test();
delete testTopic;
/* Test TopicIdMap */
TestTopicIdMap* testMap = new TestTopicIdMap();
testMap->test();
delete testMap;
/* Test EventQue */
printf("Test EventQue ");
Client* client = new Client();
_evQue.setMaxSize(EVENT_CNT);
for ( int i = 0; i < EVENT_CNT + 4; i++ )
{
Event* ev = new Event();
MQTTSNPacket* packet = new MQTTSNPacket();
packet->setDISCONNECT(i);
ev->setClientSendEvent(client, packet);
_evQue.post(ev);
}
MultiTaskProcess::run();
}