gtest测试固件测试编译错误。
头文件
#include<stdint.h>
#include<map>
#include<set>
//using namespace std;
typedef std::map<uint64_t, std::map<uint32_t, uint64_t> > gid2UidsMap_t;
namespace server
{
namespace yc_groupmedia
{
class LinkServer
{
public:
uint32_t m_usersNum;
uint32_t m_serverid;
gid2UidsMap_t m_users;
public:
LinkServer():m_usersNum(0), m_serverid(0){ }
LinkServer(uint32_t serverid):m_usersNum(0), m_serverid(serverid){ }
bool addUser(uint64_t gid, uint32_t uid, uint64_t ts);
bool delUser(uint64_t gid, uint32_t uid);
};
}
}
源文件
#include"LinkServer.h"
using namespace server;
using namespace server::yc_groupmedia;
bool LinkServer::addUser(uint64_t gid, uint32_t uid, uint64_t ts)
{
std::map<uint32_t, uint64_t>& tmp = m_users[gid];
std::map<uint32_t, uint64_t>::iterator uid2tsItr = tmp.find(uid);
if (uid2tsItr == tmp.end())
{
tmp[uid] = ts;
m_usersNum++;
}
else
{
uid2tsItr->second = ts;
}
return true;
}
bool LinkServer::delUser(uint64_t gid, uint32_t uid)
{
bool remove = false;
gid2UidsMap_t::iterator itCh = m_users.find(gid);
if (itCh != m_users.end())
{
if (itCh->second.find(uid) != itCh->second.end())
{
itCh->second.erase(uid);
m_usersNum--;
remove = true;
}
if (itCh->second.empty())
{
m_users.erase(itCh);
}
}
return remove;
}
固件测试代码如下
#include<iostream>
#include<time.h>
#include<limits>
#include"LinkServer.h"
#include"gtest/gtest.h"
using namespace server;
using namespace server::yc_groupmedia;
class LinkServerTest : public testing::Test
{
protected:
virtual void SetUp()
{
linkdServer->addUser(100, 1, (uint32_t)time(NULL) );
linkdServer->addUser(100, 2, (uint32_t)time(NULL) );
linkdServer->addUser(100, 3, (uint32_t)time(NULL) );
linkdServer->addUser(100, 4, (uint32_t)time(NULL) );
linkdServer->addUser(101, 4, (uint32_t)time(NULL) );
}
uint32_t serverId=123456;
LinkServer linkdServer(serverId);
public:
};
TEST_F(LinkServerTest, addUserTest)
{
EXPECT_EQ(5, linkdServer->m_usersNum);
EXPECT_TRUE(linkdServer->addUser(100,3,(uint32_t)time(NULL)));
EXPECT_EQ(5, linkdServer->m_usersNum);
EXPECT_EQ(123456, linkdServer->m_serverid);
EXPECT_EQ(time(NULL), linkdServer->m_users[100][3]);
}
编译错误如下:
求解决