Bugfix of test

Signed-off-by: tomoaki <tomoaki@tomy-tech.com>
This commit is contained in:
tomoaki
2021-05-13 19:46:02 +09:00
parent fa7daac109
commit d567b0ba7f
2 changed files with 44 additions and 27 deletions

View File

@@ -32,13 +32,13 @@ TestTopicIdMap::~TestTopicIdMap()
} }
bool TestTopicIdMap::testGetElement(uint16_t msgid, uint16_t id, MQTTSN_topicTypes type) bool TestTopicIdMap::testGetElement(uint16_t msgid, uint16_t id, MQTTSN_topicid* topic)
{ {
TopicIdMapElement* elm = _map->getElement((uint16_t)msgid ); TopicIdMapElement* elm = _map->getElement((uint16_t)msgid );
if ( elm ) if ( elm )
{ {
//printf("msgid=%d id=%d type=%d\n", msgid, elm->getTopicId(), elm->getTopicType()); //printf("msgid=%d id=%d type=%d\n", msgid, elm->getTopicId(), elm->getTopicType());
return elm->getTopicId() == id && elm->getTopicType() == type; return elm->getTopicId() == id && elm->getTopicType() == topic->type;
} }
//printf("msgid=%d\n", msgid); //printf("msgid=%d\n", msgid);
return false; return false;
@@ -49,144 +49,161 @@ bool TestTopicIdMap::testGetElement(uint16_t msgid, uint16_t id, MQTTSN_topicTyp
void TestTopicIdMap::test(void) void TestTopicIdMap::test(void)
{ {
uint16_t id[MAXID]; uint16_t id[MAXID];
MQTTSN_topicid topicId;
topicId.data.long_.name = const_cast<char*>("topic/test");
topicId.type = MQTTSN_TOPIC_TYPE_NORMAL;
for ( int i = 0; i < MAXID; i++ ) for ( int i = 0; i < MAXID; i++ )
{ {
id[i] = i + 1; id[i] = i + 1;
_map->add(id[i], id[i], MQTTSN_TOPIC_TYPE_NORMAL);
_map->add(id[i], id[i], &topicId);
} }
for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ ) for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ )
{ {
assert(testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_NORMAL)); assert(testGetElement(id[i], id[i], &topicId));
} }
for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ ) for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_NORMAL)); assert(!testGetElement(id[i], id[i], &topicId));
} }
topicId.type = MQTTSN_TOPIC_TYPE_PREDEFINED;
for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ ) for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_PREDEFINED)); assert(!testGetElement(id[i], id[i], &topicId));
} }
for ( int i = 0; i < 5; i++ ) for ( int i = 0; i < 5; i++ )
{ {
_map->erase(id[i]); _map->erase(id[i]);
} }
topicId.type = MQTTSN_TOPIC_TYPE_NORMAL;
for ( int i = 0; i < 5; i++ ) for ( int i = 0; i < 5; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_NORMAL));
assert(!testGetElement(id[i], id[i], &topicId));
} }
for ( int i = 5; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ ) for ( int i = 5; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ )
{ {
assert(testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_NORMAL)); assert(testGetElement(id[i], id[i], &topicId));
} }
for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ ) for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_NORMAL)); assert(!testGetElement(id[i], id[i], &topicId));
} }
_map->clear(); _map->clear();
for ( int i = 0; i < MAXID; i++ ) for ( int i = 0; i < MAXID; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_NORMAL)); assert(!testGetElement(id[i], id[i], &topicId));
} }
topicId.type = MQTTSN_TOPIC_TYPE_SHORT;
for ( int i = 0; i < MAXID; i++ ) for ( int i = 0; i < MAXID; i++ )
{ {
_map->add(id[i], id[i], MQTTSN_TOPIC_TYPE_SHORT); _map->add(id[i], id[i], &topicId);
} }
for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ ) for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ )
{ {
assert(testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_SHORT)); assert(testGetElement(id[i], id[i], &topicId));
} }
for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ ) for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_SHORT)); assert(!testGetElement(id[i], id[i], &topicId));
} }
topicId.type = MQTTSN_TOPIC_TYPE_NORMAL;
for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ ) for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_NORMAL)); assert(!testGetElement(id[i], id[i], &topicId));
} }
for ( int i = 0; i < 5; i++ ) for ( int i = 0; i < 5; i++ )
{ {
_map->erase(id[i]); _map->erase(id[i]);
} }
topicId.type = MQTTSN_TOPIC_TYPE_SHORT;
for ( int i = 0; i < 5; i++ ) for ( int i = 0; i < 5; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_SHORT)); assert(!testGetElement(id[i], id[i], &topicId));
} }
for ( int i = 5; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ ) for ( int i = 5; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ )
{ {
assert(testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_SHORT)); assert(testGetElement(id[i], id[i], &topicId));
} }
for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ ) for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_SHORT)); assert(!testGetElement(id[i], id[i], &topicId));
} }
_map->clear(); _map->clear();
for ( int i = 0; i < MAXID; i++ ) for ( int i = 0; i < MAXID; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_SHORT)); assert(!testGetElement(id[i], id[i], &topicId));
} }
topicId.type = MQTTSN_TOPIC_TYPE_PREDEFINED;
for ( int i = 0; i < MAXID; i++ ) for ( int i = 0; i < MAXID; i++ )
{ {
_map->add(id[i], id[i], MQTTSN_TOPIC_TYPE_PREDEFINED); _map->add(id[i], id[i], &topicId);
} }
for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ ) for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ )
{ {
assert(testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_PREDEFINED)); assert(testGetElement(id[i], id[i], &topicId));
} }
for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ ) for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_PREDEFINED)); assert(!testGetElement(id[i], id[i], &topicId));
} }
topicId.type = MQTTSN_TOPIC_TYPE_SHORT;
for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ ) for ( int i = 0; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_SHORT)); assert(!testGetElement(id[i], id[i], &topicId));
} }
for ( int i = 0; i < 5; i++ ) for ( int i = 0; i < 5; i++ )
{ {
_map->erase(id[i]); _map->erase(id[i]);
} }
topicId.type = MQTTSN_TOPIC_TYPE_PREDEFINED;
for ( int i = 0; i < 5; i++ ) for ( int i = 0; i < 5; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_PREDEFINED)); assert(!testGetElement(id[i], id[i], &topicId));
} }
for ( int i = 5; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ ) for ( int i = 5; i < MAX_INFLIGHTMESSAGES * 2 + 1; i++ )
{ {
assert(testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_PREDEFINED)); assert(testGetElement(id[i], id[i], &topicId));
} }
for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ ) for ( int i = MAX_INFLIGHTMESSAGES * 2 + 1; i < MAXID; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_PREDEFINED)); assert(!testGetElement(id[i], id[i], &topicId));
} }
_map->clear(); _map->clear();
for ( int i = 0; i < MAXID; i++ ) for ( int i = 0; i < MAXID; i++ )
{ {
assert(!testGetElement(id[i], id[i], MQTTSN_TOPIC_TYPE_PREDEFINED)); assert(!testGetElement(id[i], id[i], &topicId));
} }
printf("[ OK ]\n"); printf("[ OK ]\n");
} }

View File

@@ -24,7 +24,7 @@ public:
TestTopicIdMap(); TestTopicIdMap();
~TestTopicIdMap(); ~TestTopicIdMap();
void test(void); void test(void);
bool testGetElement(uint16_t msgid, uint16_t id, MQTTSN_topicTypes type); bool testGetElement(uint16_t msgid, uint16_t id, MQTTSN_topicid* topic);
private: private:
TopicIdMap* _map; TopicIdMap* _map;