PeerTest.cc 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "Peer.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. namespace aria2 {
  4. class PeerTest:public CppUnit::TestFixture {
  5. CPPUNIT_TEST_SUITE(PeerTest);
  6. CPPUNIT_TEST(testPeerAllowedIndexSet);
  7. CPPUNIT_TEST(testAmAllowedIndexSet);
  8. CPPUNIT_TEST(testCountSeeder);
  9. CPPUNIT_TEST_SUITE_END();
  10. private:
  11. std::shared_ptr<Peer> peer;
  12. public:
  13. void setUp() {
  14. peer.reset(new Peer("localhost", 6969));
  15. peer->allocateSessionResource(1024, 1024*1024);
  16. }
  17. void testPeerAllowedIndexSet();
  18. void testAmAllowedIndexSet();
  19. void testCountSeeder();
  20. };
  21. CPPUNIT_TEST_SUITE_REGISTRATION(PeerTest);
  22. void PeerTest::testPeerAllowedIndexSet() {
  23. CPPUNIT_ASSERT(!peer->isInPeerAllowedIndexSet(0));
  24. peer->addPeerAllowedIndex(0);
  25. CPPUNIT_ASSERT(peer->isInPeerAllowedIndexSet(0));
  26. }
  27. void PeerTest::testAmAllowedIndexSet() {
  28. CPPUNIT_ASSERT(!peer->isInAmAllowedIndexSet(0));
  29. peer->addAmAllowedIndex(0);
  30. CPPUNIT_ASSERT(peer->isInAmAllowedIndexSet(0));
  31. }
  32. void PeerTest::testCountSeeder()
  33. {
  34. std::vector<std::shared_ptr<Peer> > peers(5);
  35. peers[0].reset(new Peer("192.168.0.1", 7000));
  36. peers[1].reset(new Peer("192.168.0.2", 7000));
  37. peers[2].reset(new Peer("192.168.0.3", 7000));
  38. peers[3].reset(new Peer("192.168.0.4", 7000));
  39. peers[4].reset(new Peer("192.168.0.5", 7000));
  40. for(std::vector<std::shared_ptr<Peer> >::iterator i = peers.begin();
  41. i != peers.end(); ++i) {
  42. (*i)->allocateSessionResource(1024, 1024*8);
  43. }
  44. unsigned char bitfield[] = { 0xff };
  45. peers[1]->setBitfield(bitfield, 1);
  46. peers[3]->setBitfield(bitfield, 1);
  47. peers[4]->setBitfield(bitfield, 1);
  48. CPPUNIT_ASSERT_EQUAL((size_t)3, countSeeder(peers.begin(), peers.end()));
  49. }
  50. } // namespace aria2