aria2/test/DHTIDCloserTest.cc
Tatsuhiro Tsujikawa bc98e39fe5 2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
To match the behavior of friend operator functions in
	SharedHandle.h to std::tr1::shared_ptr, we intentionally broke
	these functions and modified code so that our code does not depend
	on old behavior.
	* src/AbstractCommand.cc
	* src/DHTAbstractNodeLookupTask.h
	* src/DHTBucket.cc
	* src/DHTMessageReceiver.cc
	* src/DHTNodeLookupEntry.cc
	* src/DHTRoutingTable.cc
	* src/DefaultBtRequestFactory.cc
	* src/DefaultPeerStorage.cc
	* src/DefaultPieceStorage.cc
	* src/DownloadContext.cc
	* src/EpollEventPoll.cc
	* src/Event.h
	* src/HttpConnection.cc
	* src/KqueueEventPoll.cc
	* src/MultiDiskAdaptor.cc
	* src/PeerAbstractCommand.cc
	* src/PieceStatMan.cc
	* src/PollEventPoll.cc
	* src/PortEventPoll.cc
	* src/SegmentMan.cc
	* src/SelectEventPoll.cc
	* src/SelectEventPoll.h
	* src/ServerStatMan.cc
	* src/SharedHandle.h
	* src/UnknownLengthPieceStorage.cc
	* src/a2functional.h
	* src/option_processing.cc
	* src/version_usage.cc
	* test/BNodeTest.cc
	* test/DHTAnnouncePeerMessageTest.cc
	* test/DHTBucketTest.cc
	* test/DHTFindNodeMessageTest.cc
	* test/DHTGetPeersMessageTest.cc
	* test/DHTIDCloserTest.cc
	* test/DHTMessageFactoryImplTest.cc
	* test/DHTPingMessageTest.cc
	* test/DefaultBtRequestFactoryTest.cc
	* test/DefaultPeerStorageTest.cc
	* test/SequentialPickerTest.cc
	* test/SingletonHolderTest.cc
2010-11-11 07:33:43 +00:00

69 lines
1.7 KiB
C++

#include "DHTNode.h"
#include "DHTNodeLookupEntry.h"
#include "DHTIDCloser.h"
#include "Exception.h"
#include "util.h"
#include <cstring>
#include <algorithm>
#include <cppunit/extensions/HelperMacros.h>
namespace aria2 {
class DHTIDCloserTest:public CppUnit::TestFixture {
CPPUNIT_TEST_SUITE(DHTIDCloserTest);
CPPUNIT_TEST(testOperator);
CPPUNIT_TEST_SUITE_END();
public:
void setUp() {}
void tearDown() {}
void testOperator();
};
CPPUNIT_TEST_SUITE_REGISTRATION(DHTIDCloserTest);
void DHTIDCloserTest::testOperator()
{
unsigned char id[DHT_ID_LENGTH];
memset(id, 0xf0, DHT_ID_LENGTH);
SharedHandle<DHTNodeLookupEntry> e1
(new DHTNodeLookupEntry(SharedHandle<DHTNode>(new DHTNode(id))));
id[0] = 0xb0;
SharedHandle<DHTNodeLookupEntry> e2
(new DHTNodeLookupEntry(SharedHandle<DHTNode>(new DHTNode(id))));
id[0] = 0xa0;
SharedHandle<DHTNodeLookupEntry> e3
(new DHTNodeLookupEntry(SharedHandle<DHTNode>(new DHTNode(id))));
id[0] = 0x80;
SharedHandle<DHTNodeLookupEntry> e4
(new DHTNodeLookupEntry(SharedHandle<DHTNode>(new DHTNode(id))));
id[0] = 0x00;
SharedHandle<DHTNodeLookupEntry> e5
(new DHTNodeLookupEntry(SharedHandle<DHTNode>(new DHTNode(id))));
std::deque<SharedHandle<DHTNodeLookupEntry> > entries;
entries.push_back(e1);
entries.push_back(e2);
entries.push_back(e3);
entries.push_back(e4);
entries.push_back(e5);
std::sort(entries.begin(), entries.end(), DHTIDCloser(e3->node->getID()));
CPPUNIT_ASSERT(*e3 == *entries[0]);
CPPUNIT_ASSERT(*e2 == *entries[1]);
CPPUNIT_ASSERT(*e4 == *entries[2]);
CPPUNIT_ASSERT(*e1 == *entries[3]);
CPPUNIT_ASSERT(*e5 == *entries[4]);
}
} // namespace aria2