diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2006-07-03 14:19:23 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2006-07-03 14:19:23 +0000 |
| commit | 78eff232546a5fa6f48c151dc2343915ed94fa8c (patch) | |
| tree | 6d30c01c1586f0513ab152de48473dad2746fe5d /test | |
| parent | 003a47435758a976a57c483c37859989105e204e (diff) | |
2006-07-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To add Metalink support(http/ftp only):
* src/AbstractCommand.h
(tryReserved): New function.
* src/AbstractCommand.cc
(execute): Call tryReserved().
(tryReserved): New function.
* src/Request.h
(Requests): New type definition.
* src/SegmentMan.h
(reserved): New variable.
* src/Util.h
(fileChecksum): New function.
(toUpper): New function.
(toLower): New function.
* src/Util.cc
(messageDigest.h): Included.
(trim): Trim \r\n\t.
(fileChecksum): New function.
(toUpper): New function.
(toLower): New function.
* src/main.cc
(normalDownload): New function.
(main): Added 2 command-line options: metalink-file,
metalink-connection. Their usage has not been written yet.
* src/MetalinkProcessor.h: New class.
* src/Xml2MetalinkProcessor.h: New class.
* src/Xml2MetalinkProcessor.cc: New class.
* src/MetalinkEntry.h: New class.
* src/MetalinkEntry.cc: New class.
* src/MetalinkResource.h: New class.
* src/MetalinkResource.cc: New class.
To add md5 message digest checking:
* src/messageDigest.h: Rewritten.
* src/MultiDiskWriter.cc: Updated according to the changes in
messageDigest.h.
* src/ShaVisitor.cc: Updated according to the changes in
messageDigest.h.
* src/Util.cc: Updated according to the changes in
messageDigest.h.
* src/AbstractDiskWriter.cc: Updated according to the changes in
messageDigest.h.
To fix a bug that causes segfault when the payload length in
peer
message is less than 0:
* src/PeerConnection.cc:
(receiveMessage): Fixed the bug.
* src/PeerMessageUtil.cc
(checkLength): Throw an exception if length is less than or
equals to
0.
To add new interfaces to Base64 encoding/decoding:
* src/Base64.h
(part_encode): Changed the method signature.
(encode): New function(overload).
(decode): New function(overload).
* src/Base64.cc
(part_encode): Rewritten.
(encode): Rewritten.
(encode): New function(overload).
To prevent a peer to download same piece if there is an error in
checksum:
* src/PieceMessage.cc
(receivedAction): Call peerInteraction->abortPiece().
Diffstat (limited to 'test')
| -rw-r--r-- | test/Base64Test.cc | 8 | ||||
| -rw-r--r-- | test/Makefile.am | 9 | ||||
| -rw-r--r-- | test/Makefile.in | 19 | ||||
| -rw-r--r-- | test/UtilTest.cc | 34 |
4 files changed, 63 insertions, 7 deletions
diff --git a/test/Base64Test.cc b/test/Base64Test.cc index 9ace6f5b..e7497312 100644 --- a/test/Base64Test.cc +++ b/test/Base64Test.cc @@ -26,6 +26,14 @@ CPPUNIT_TEST_SUITE_REGISTRATION( Base64Test ); void Base64Test::testEncode() { CPPUNIT_ASSERT_EQUAL(string("SGVsbG8gV29ybGQh"), Base64::encode("Hello World!")); + CPPUNIT_ASSERT_EQUAL(string("SGVsbG8gV29ybGQ="), + Base64::encode("Hello World")); + CPPUNIT_ASSERT_EQUAL(string("SGVsbG8gV29ybA=="), + Base64::encode("Hello Worl")); + CPPUNIT_ASSERT_EQUAL(string("YQ=="), + Base64::encode("a")); + CPPUNIT_ASSERT_EQUAL(string(""), + Base64::encode("")); } void Base64Test::testDecode() { diff --git a/test/Makefile.am b/test/Makefile.am index 215c8903..e8fc2ca8 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -31,16 +31,19 @@ aria2c_SOURCES = AllTest.cc\ PieceMessageTest.cc\ RejectMessageTest.cc\ AllowedFastMessageTest.cc\ - SuggestPieceMessageTest.cc + SuggestPieceMessageTest.cc\ + Xml2MetalinkProcessorTest.cc\ + MetalinkerTest.cc\ + MetalinkEntryTest.cc #aria2c_CXXFLAGS = ${CPPUNIT_CFLAGS} -I../src -I../lib -Wall -D_FILE_OFFSET_BITS=64 #aria2c_LDFLAGS = ${CPPUNIT_LIBS} aria2c_LDADD = ../src/libaria2c.a\ ${CPPUNIT_LIBS} @LIBGNUTLS_LIBS@\ - @LIBGCRYPT_LIBS@ @OPENSSL_LIBS@ + @LIBGCRYPT_LIBS@ @OPENSSL_LIBS@ @XML_LIBS@ AM_CPPFLAGS = -Wall\ ${CPPUNIT_CFLAGS}\ -I ../src\ -I../lib -I../intl -I$(top_srcdir)/intl\ - @LIBGNUTLS_CFLAGS@ @LIBGCRYPT_CFLAGS@ @OPENSSL_CFLAGS@\ + @LIBGNUTLS_CFLAGS@ @LIBGCRYPT_CFLAGS@ @OPENSSL_CFLAGS@ @XML_CPPFLAGS@\ -D_FILE_OFFSET_BITS=64 -DLOCALEDIR=\"$(localedir)\" @DEFS@ diff --git a/test/Makefile.in b/test/Makefile.in index 2490ea5e..0c1606b2 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -71,7 +71,9 @@ am_aria2c_OBJECTS = AllTest.$(OBJEXT) RequestTest.$(OBJEXT) \ BitfieldMessageTest.$(OBJEXT) RequestMessageTest.$(OBJEXT) \ CancelMessageTest.$(OBJEXT) PieceMessageTest.$(OBJEXT) \ RejectMessageTest.$(OBJEXT) AllowedFastMessageTest.$(OBJEXT) \ - SuggestPieceMessageTest.$(OBJEXT) + SuggestPieceMessageTest.$(OBJEXT) \ + Xml2MetalinkProcessorTest.$(OBJEXT) MetalinkerTest.$(OBJEXT) \ + MetalinkEntryTest.$(OBJEXT) aria2c_OBJECTS = $(am_aria2c_OBJECTS) am__DEPENDENCIES_1 = aria2c_DEPENDENCIES = ../src/libaria2c.a $(am__DEPENDENCIES_1) @@ -168,6 +170,9 @@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ +XML2_CONFIG = @XML2_CONFIG@ +XML_CPPFLAGS = @XML_CPPFLAGS@ +XML_LIBS = @XML_LIBS@ YACC = @YACC@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ @@ -243,19 +248,22 @@ aria2c_SOURCES = AllTest.cc\ PieceMessageTest.cc\ RejectMessageTest.cc\ AllowedFastMessageTest.cc\ - SuggestPieceMessageTest.cc + SuggestPieceMessageTest.cc\ + Xml2MetalinkProcessorTest.cc\ + MetalinkerTest.cc\ + MetalinkEntryTest.cc #aria2c_CXXFLAGS = ${CPPUNIT_CFLAGS} -I../src -I../lib -Wall -D_FILE_OFFSET_BITS=64 #aria2c_LDFLAGS = ${CPPUNIT_LIBS} aria2c_LDADD = ../src/libaria2c.a\ ${CPPUNIT_LIBS} @LIBGNUTLS_LIBS@\ - @LIBGCRYPT_LIBS@ @OPENSSL_LIBS@ + @LIBGCRYPT_LIBS@ @OPENSSL_LIBS@ @XML_LIBS@ AM_CPPFLAGS = -Wall\ ${CPPUNIT_CFLAGS}\ -I ../src\ -I../lib -I../intl -I$(top_srcdir)/intl\ - @LIBGNUTLS_CFLAGS@ @LIBGCRYPT_CFLAGS@ @OPENSSL_CFLAGS@\ + @LIBGNUTLS_CFLAGS@ @LIBGCRYPT_CFLAGS@ @OPENSSL_CFLAGS@ @XML_CPPFLAGS@\ -D_FILE_OFFSET_BITS=64 -DLOCALEDIR=\"$(localedir)\" @DEFS@ all: all-am @@ -323,6 +331,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InterestedMessageTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ListTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetaFileUtilTest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetalinkEntryTest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MetalinkerTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MultiDiskWriterTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NotInterestedMessageTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OptionTest.Po@am__quote@ @@ -336,6 +346,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TorrentManTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnchokeMessageTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UtilTest.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Xml2MetalinkProcessorTest.Po@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ diff --git a/test/UtilTest.cc b/test/UtilTest.cc index 2081d0a7..150c8f68 100644 --- a/test/UtilTest.cc +++ b/test/UtilTest.cc @@ -17,6 +17,9 @@ class UtilTest:public CppUnit::TestFixture { CPPUNIT_TEST(testGetContentDispositionFilename); CPPUNIT_TEST(testComputeFastSet); CPPUNIT_TEST(testRandomAlpha); + CPPUNIT_TEST(testFileChecksum); + CPPUNIT_TEST(testToUpper); + CPPUNIT_TEST(testToLower); CPPUNIT_TEST_SUITE_END(); private: @@ -34,6 +37,9 @@ public: // may be moved to other helper class in the future. void testGetContentDispositionFilename(); void testRandomAlpha(); + void testFileChecksum(); + void testToUpper(); + void testToLower(); }; @@ -214,3 +220,31 @@ void UtilTest::testComputeFastSet() { void UtilTest::testRandomAlpha() { CPPUNIT_ASSERT_EQUAL(string("rUopvKRn"), Util::randomAlpha(8)); } + +void UtilTest::testFileChecksum() { + unsigned char buf[20]; + string filename = "4096chunk.txt"; + Util::fileChecksum(filename, buf, MessageDigestContext::ALGO_SHA1); + string sha1 = Util::toHex(buf, 20); + CPPUNIT_ASSERT_EQUAL(string("608cabc0f2fa18c260cafd974516865c772363d5"), + sha1); + + Util::fileChecksum(filename, buf, MessageDigestContext::ALGO_MD5); + string md5 = Util::toHex(buf, 16); + CPPUNIT_ASSERT_EQUAL(string("82a7348c2e03731109d0cf45a7325b88"), + md5); +} + +void UtilTest::testToUpper() { + string src = "608cabc0f2fa18c260cafd974516865c772363d5"; + string upp = "608CABC0F2FA18C260CAFD974516865C772363D5"; + + CPPUNIT_ASSERT_EQUAL(upp, Util::toUpper(src)); +} + +void UtilTest::testToLower() { + string src = "608CABC0F2FA18C260CAFD974516865C772363D5"; + string upp = "608cabc0f2fa18c260cafd974516865c772363d5"; + + CPPUNIT_ASSERT_EQUAL(upp, Util::toLower(src)); +} |
