TestHelpers.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. /*
  2. * Copyright (c) 2014, Oculus VR, Inc.
  3. * All rights reserved.
  4. *
  5. * This source code is licensed under the BSD-style license found in the
  6. * LICENSE file in the root directory of this source tree. An additional grant
  7. * of patent rights can be found in the PATENTS file in the same directory.
  8. *
  9. */
  10. #include "TestHelpers.h"
  11. TestHelpers::TestHelpers(void)
  12. {
  13. }
  14. TestHelpers::~TestHelpers(void)
  15. {
  16. }
  17. void TestHelpers::StandardServerPrep(RakPeerInterface *&server)
  18. {
  19. server=RakPeerInterface::GetInstance();
  20. server->Startup(1,&SocketDescriptor(60000,0),1);
  21. server->SetMaximumIncomingConnections(1);
  22. }
  23. void TestHelpers::StandardClientPrep(RakPeerInterface *&client)
  24. {
  25. client=RakPeerInterface::GetInstance();
  26. client->Startup(1,&SocketDescriptor(),1);
  27. }
  28. void TestHelpers::StandardServerPrep(RakPeerInterface *&server,DataStructures::List <RakPeerInterface *> &destroyList)
  29. {
  30. StandardServerPrep(server);
  31. destroyList.Push(server,_FILE_AND_LINE_);
  32. }
  33. void TestHelpers::StandardClientPrep(RakPeerInterface *&client,DataStructures::List <RakPeerInterface *> &destroyList)
  34. {
  35. StandardClientPrep(client);
  36. destroyList.Push(client,_FILE_AND_LINE_);
  37. }
  38. //returns false if not connected
  39. bool TestHelpers::WaitAndConnectTwoPeersLocally(RakPeerInterface *connector,RakPeerInterface *connectee,int millisecondsToWait)
  40. {
  41. SystemAddress connecteeAdd=connectee->GetInternalID();
  42. return CommonFunctions::WaitAndConnect(connector,"127.0.0.1",connecteeAdd.port,millisecondsToWait);
  43. }
  44. //returns false if connect fails
  45. bool TestHelpers::ConnectTwoPeersLocally(RakPeerInterface *connector,RakPeerInterface *connectee)
  46. {
  47. SystemAddress connecteeAdd=connectee->GetInternalID();
  48. return connector->Connect("127.0.0.1",connecteeAdd.port,0,0);
  49. }
  50. bool TestHelpers::BroadCastTestPacket(RakPeerInterface *sender,PacketReliability rel,PacketPriority pr,int typeNum)//returns send return value
  51. {
  52. char str2[]="AAAAAAAAAA";
  53. str2[0]=typeNum;
  54. return sender->Send(str2,(int) strlen(str2)+1, pr, rel ,0, UNASSIGNED_SYSTEM_ADDRESS, true)>0;
  55. }
  56. bool TestHelpers::SendTestPacketDirected(RakPeerInterface *sender,char * ip,int port,PacketReliability rel,PacketPriority pr,int typeNum)//returns send return value
  57. {
  58. SystemAddress recAddress;
  59. recAddress.SetBinaryAddress(ip);
  60. recAddress.port=port;
  61. char str2[]="AAAAAAAAAA";
  62. str2[0]=typeNum;
  63. return sender->Send(str2,(int) strlen(str2)+1, pr, rel ,0, recAddress, false)>0;
  64. }
  65. bool TestHelpers::WaitForTestPacket(RakPeerInterface *reciever,int millisecondsToWait)
  66. {
  67. RakTimer timer(millisecondsToWait);
  68. Packet *packet;
  69. while(!timer.IsExpired())
  70. {
  71. for (packet=reciever->Receive(); packet;reciever->DeallocatePacket(packet), packet=reciever->Receive())
  72. {
  73. if (packet->data[0]==ID_USER_PACKET_ENUM+1)
  74. {
  75. reciever->DeallocatePacket(packet);
  76. return true;
  77. }
  78. }
  79. }
  80. return false;
  81. }
  82. void RecieveForXTime(RakPeerInterface *reciever,int millisecondsToWait)
  83. {
  84. RakTimer timer(millisecondsToWait);
  85. Packet *packet;
  86. while(!timer.IsExpired())
  87. {
  88. for (packet=reciever->Receive(); packet;reciever->DeallocatePacket(packet), packet=reciever->Receive())
  89. {
  90. }
  91. }
  92. }
粤ICP备19079148号