xiepengcheng716 2017-05-22 12:16
浏览 671

gtest测试框架fixture test编译出错

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]);
  }

编译错误如下:
图片说明
求解决

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 msix packaging tool打包问题
    • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
    • ¥15 python的qt5界面
    • ¥15 无线电能传输系统MATLAB仿真问题
    • ¥50 如何用脚本实现输入法的热键设置
    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线