Fix providing mask for setting group subscribeFlag, msgStatus and grpStatus

Tests updated

Also setting msg and grp Status to unprocessed and unread on receipt from a sync (see rsgxsflag.h). These are set on bits masked by 0xf00.


git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5834 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
chrisparker126 2012-11-17 14:35:21 +00:00
parent c5fee54ee7
commit d591d795bd
9 changed files with 150 additions and 25 deletions

View file

@ -3,6 +3,9 @@
#include "gxs/rsdataservice.h"
#include "gxs/rsgxsflags.h"
#define TEST_FLAG 0x00004;
#define TEST_MASK 0x0000f;
GenExchangeTester::GenExchangeTester()
: mGenTestMutex("genTest")
{
@ -277,7 +280,6 @@ bool GenExchangeTester::testGrpMetaRetrieval()
opts.mReqType = GXS_REQUEST_TYPE_GROUP_META;
std::list<RsGxsGroupId> grpIds;
mTokenService->requestGroupInfo(token, 0, opts);
pollForToken(token, opts);
@ -372,6 +374,8 @@ bool GenExchangeTester::testGrpMetaModRequest()
init(dgrp1);
init(dgrp2);
init(dgrp3);
dgrp1->meta.mSubscribeFlags = 0;
dgrp1->meta.mGroupStatus = 0;
uint32_t token;
RsTokReqOptions opts;
@ -397,8 +401,9 @@ bool GenExchangeTester::testGrpMetaModRequest()
bool ok = true;
std::string newServiceString;
uint32_t newGrpStatus = randNum();
uint32_t newSubscribeGrpFlag = randNum();
uint32_t newGrpStatus = TEST_FLAG;
uint32_t newSubscribeGrpFlag = TEST_FLAG;
uint32_t testMask = TEST_MASK;
randString(SHORT_STR, newServiceString);
// mod service flag for first grp
@ -406,11 +411,11 @@ bool GenExchangeTester::testGrpMetaModRequest()
pollForToken(token, opts);
ok = mTestService->acknowledgeTokenGrp(token, grpId);
mTestService->setGroupStatusFlagTS(token, grpIds[0], newGrpStatus);
mTestService->setGroupStatusFlagTS(token, grpIds[0], newGrpStatus, testMask);
pollForToken(token, opts);
ok = mTestService->acknowledgeTokenGrp(token, grpId);
mTestService->setGroupSubscribeFlagTS(token, grpIds[0], newSubscribeGrpFlag);
mTestService->setGroupSubscribeFlagTS(token, grpIds[0], newSubscribeGrpFlag, testMask);
pollForToken(token, opts);
ok = mTestService->acknowledgeTokenGrp(token, grpId);
@ -432,10 +437,10 @@ bool GenExchangeTester::testGrpMetaModRequest()
if(meta.mServiceString != newServiceString)
ok = false;
if(meta.mSubscribeFlags != newSubscribeGrpFlag)
if(!(meta.mSubscribeFlags & newSubscribeGrpFlag))
ok = false;
if(meta.mGroupStatus != newGrpStatus)
if(!(meta.mGroupStatus & newGrpStatus))
ok = false;
@ -475,6 +480,7 @@ bool GenExchangeTester::testMsgMetaModRequest()
uint32_t token;
RsDummyMsg* msgOut = new RsDummyMsg();
*msgOut = *msg;
msg->meta.mMsgStatus = 0;
mTestService->publishDummyMsg(token, msg);
// poll will block until found
@ -499,9 +505,10 @@ bool GenExchangeTester::testMsgMetaModRequest()
mTestService->acknowledgeTokenMsg(token, msgId);
uint32_t newStatus = 2;
uint32_t newStatus = TEST_FLAG;
uint32_t testMask = TEST_MASK;
// first modify service string
mTestService->setMsgStatusFlagTS(token, msgId, newStatus);
mTestService->setMsgStatusFlagTS(token, msgId, newStatus, testMask);
pollForToken(token, opts);
mTestService->acknowledgeTokenMsg(token, msgId);
@ -539,7 +546,7 @@ bool GenExchangeTester::testMsgMetaModRequest()
if(meta.mServiceString != newServiceString)
ok &= false;
if(meta.mMsgStatus != newStatus)
if(!(meta.mMsgStatus & newStatus))
ok &= false;

View file

@ -67,14 +67,14 @@ void GenExchangeTestService::setGroupServiceStringTS(uint32_t &token, const RsGx
RsGenExchange::setGroupServiceString(token, grpId, servString);
}
void GenExchangeTestService::setGroupStatusFlagTS(uint32_t &token, const RsGxsGroupId &grpId, const uint32_t &status)
void GenExchangeTestService::setGroupStatusFlagTS(uint32_t &token, const RsGxsGroupId &grpId, const uint32_t &status, const uint32_t& mask)
{
RsGenExchange::setGroupStatusFlags(token, grpId, status, 0xff);
RsGenExchange::setGroupStatusFlags(token, grpId, status, mask);
}
void GenExchangeTestService::setGroupSubscribeFlagTS(uint32_t &token, const RsGxsGroupId &grpId, const uint32_t &status)
void GenExchangeTestService::setGroupSubscribeFlagTS(uint32_t &token, const RsGxsGroupId &grpId, const uint32_t &status, const uint32_t& mask)
{
RsGenExchange::setGroupSubscribeFlags(token, grpId, status, 0xff);
RsGenExchange::setGroupSubscribeFlags(token, grpId, status, mask);
}
void GenExchangeTestService::setMsgServiceStringTS(uint32_t &token, const RsGxsGrpMsgIdPair &msgId, const std::string &servString)
@ -82,9 +82,9 @@ void GenExchangeTestService::setMsgServiceStringTS(uint32_t &token, const RsGxsG
RsGenExchange::setMsgServiceString(token, msgId, servString);
}
void GenExchangeTestService::setMsgStatusFlagTS(uint32_t &token, const RsGxsGrpMsgIdPair &msgId, const uint32_t &status)
void GenExchangeTestService::setMsgStatusFlagTS(uint32_t &token, const RsGxsGrpMsgIdPair &msgId, const uint32_t &status, const uint32_t& mask)
{
RsGenExchange::setMsgStatusFlags(token, msgId, status, 0xff);
RsGenExchange::setMsgStatusFlags(token, msgId, status, mask);
}
void GenExchangeTestService::service_tick()

View file

@ -76,13 +76,13 @@ public:
bool getMsgRelatedDataTS(const uint32_t &token, GxsMsgRelatedDataMap& msgItems);
void setGroupSubscribeFlagTS(uint32_t& token, const RsGxsGroupId& grpId, const uint32_t& status);
void setGroupSubscribeFlagTS(uint32_t& token, const RsGxsGroupId& grpId, const uint32_t& status, const uint32_t& mask);
void setGroupStatusFlagTS(uint32_t& token, const RsGxsGroupId& grpId, const uint32_t& status);
void setGroupStatusFlagTS(uint32_t& token, const RsGxsGroupId& grpId, const uint32_t& status, const uint32_t& mask);
void setGroupServiceStringTS(uint32_t& token, const RsGxsGroupId& grpId, const std::string& servString);
void setMsgStatusFlagTS(uint32_t& token, const RsGxsGrpMsgIdPair& msgId, const uint32_t& status);
void setMsgStatusFlagTS(uint32_t& token, const RsGxsGrpMsgIdPair& msgId, const uint32_t& status, const uint32_t& mask);
void setMsgServiceStringTS(uint32_t& token, const RsGxsGrpMsgIdPair& msgId, const std::string& servString );

View file

@ -21,13 +21,13 @@ int main()
// CHECK(tester.testMsgIdRetrieval_OptOrigMsgId()); REPORT("tester.testRelatedMsgIdRetrieval_OrigMsgId()");
// CHECK(tester.testMsgIdRetrieval_OptLatest()); REPORT("tester.testRelatedMsgIdRetrieval_Latest()");
// CHECK(tester.testMsgMetaModRequest()); REPORT("tester.testMsgMetaModRequest()");
CHECK(tester.testMsgRelatedChildDataRetrieval()); REPORT("tester.testMsgRelatedChildDataRetrieval()");
//CHECK(tester.testMsgRelatedChildDataRetrieval()); REPORT("tester.testMsgRelatedChildDataRetrieval()");
// CHECK(tester.testMsgAllVersions()); REPORT("tester.testMsgAllVersions()");
// CHECK(tester.testGrpSubmissionRetrieval()); REPORT("tester.testGrpSubmissionRetrieval()");
// CHECK(tester.testGrpMetaRetrieval()); REPORT("tester.testGrpMetaRetrieval()");
// CHECK(tester.testGrpMetaRetrieval()); REPORT("tester.testGrpMetaRetrieval()");
// CHECK(tester.testGrpIdRetrieval()); REPORT("tester.testGrpIdRetrieval()");
// CHECK(tester.testGrpMetaModRequest()); REPORT("tester.testGrpMetaModRequest()");
CHECK(tester.testGrpMetaModRequest()); REPORT("tester.testGrpMetaModRequest()");
FINALREPORT("RsGenExchangeTest");