Forráskód Böngészése

2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Fixed unitest fails if openssl doesn't support sha-256.
	* src/MetalinkParserStateV4Impl.cc
	* test/MetalinkProcessorTest.cc
Tatsuhiro Tsujikawa 15 éve
szülő
commit
c4a35932cb
3 módosított fájl, 36 hozzáadás és 12 törlés
  1. 6 0
      ChangeLog
  2. 1 1
      src/MetalinkParserStateV4Impl.cc
  3. 29 11
      test/MetalinkProcessorTest.cc

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+2010-03-08  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Fixed unitest fails if openssl doesn't support sha-256.
+	* src/MetalinkParserStateV4Impl.cc
+	* test/MetalinkProcessorTest.cc
+
 2010-03-08  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Wait until message arrives(again)

+ 1 - 1
src/MetalinkParserStateV4Impl.cc

@@ -350,7 +350,7 @@ void PiecesMetalinkParserStateV4::endElement
  const std::string& nsUri,
  const std::string& characters)
 {
-  stm->commitChunkChecksumTransaction();
+  stm->commitChunkChecksumTransactionV4();
 }
 
 void PieceHashMetalinkParserStateV4::endElement

+ 29 - 11
test/MetalinkProcessorTest.cc

@@ -13,6 +13,7 @@
 #include "MetalinkResource.h"
 #include "MetalinkMetaurl.h"
 #ifdef ENABLE_MESSAGE_DIGEST
+# include "messageDigest.h"
 # include "ChunkChecksum.h"
 # include "Checksum.h"
 #endif // ENABLE_MESSAGE_DIGEST
@@ -85,7 +86,6 @@ void MetalinkProcessorTest::testParseFileV4()
   SharedHandle<MetalinkEntry> e;
   SharedHandle<MetalinkResource> r;
   SharedHandle<MetalinkMetaurl> mu;
-
   CPPUNIT_ASSERT_EQUAL((size_t)1, m->entries.size());
   e = m->entries[0];
   CPPUNIT_ASSERT_EQUAL(std::string("example.ext"), e->getPath());
@@ -97,16 +97,34 @@ void MetalinkProcessorTest::testParseFileV4()
   CPPUNIT_ASSERT(!e->checksum.isNull());
   CPPUNIT_ASSERT_EQUAL(std::string("sha-1"), e->checksum->getAlgo());
   CPPUNIT_ASSERT(!e->chunkChecksum.isNull());
-  CPPUNIT_ASSERT_EQUAL(std::string("sha-256"), e->chunkChecksum->getAlgo());
-  CPPUNIT_ASSERT_EQUAL((size_t)262144, e->chunkChecksum->getChecksumLength());
-  CPPUNIT_ASSERT_EQUAL((size_t)3, e->chunkChecksum->countChecksum());
-  CPPUNIT_ASSERT_EQUAL(std::string("0245178074fd042e19b7c3885b360fc21064b30e73f5626c7e3b005d048069c5"),
-		       e->chunkChecksum->getChecksum(0));
-  CPPUNIT_ASSERT_EQUAL(std::string("487ba2299be7f759d7c7bf6a4ac3a32cee81f1bb9332fc485947e32918864fb2"),
-		       e->chunkChecksum->getChecksum(1));
-  CPPUNIT_ASSERT_EQUAL(std::string("37290d74ac4d186e3a8e5785d259d2ec04fac91ae28092e7620ec8bc99e830aa"),
-		       e->chunkChecksum->getChecksum(2));
-#endif // ENABLE_MESSAGE_DIGEST
+  if(MessageDigestContext::supports(MessageDigestContext::SHA256)) {
+    CPPUNIT_ASSERT_EQUAL(std::string("sha-256"), e->chunkChecksum->getAlgo());
+    CPPUNIT_ASSERT_EQUAL((size_t)262144, e->chunkChecksum->getChecksumLength());
+    CPPUNIT_ASSERT_EQUAL((size_t)3, e->chunkChecksum->countChecksum());
+    CPPUNIT_ASSERT_EQUAL(std::string("0245178074fd042e19b7c3885b360fc21064b30e73f5626c7e3b005d048069c5"),
+                         e->chunkChecksum->getChecksum(0));
+    CPPUNIT_ASSERT_EQUAL(std::string("487ba2299be7f759d7c7bf6a4ac3a32cee81f1bb9332fc485947e32918864fb2"),
+                         e->chunkChecksum->getChecksum(1));
+    CPPUNIT_ASSERT_EQUAL(std::string("37290d74ac4d186e3a8e5785d259d2ec04fac91ae28092e7620ec8bc99e830aa"),
+                         e->chunkChecksum->getChecksum(2));
+  } else {
+    CPPUNIT_ASSERT_EQUAL(std::string("sha-1"), e->chunkChecksum->getAlgo());
+    CPPUNIT_ASSERT_EQUAL((size_t)262144, e->chunkChecksum->getChecksumLength());
+    CPPUNIT_ASSERT_EQUAL((size_t)3, e->chunkChecksum->countChecksum());
+    CPPUNIT_ASSERT_EQUAL
+      (std::string("5bd9f7248df0f3a6a86ab6c95f48787d546efa14"),
+       e->chunkChecksum->getChecksum(0));
+    CPPUNIT_ASSERT_EQUAL
+      (std::string("9413ee70957a09d55704123687478e07f18c7b29"),
+       e->chunkChecksum->getChecksum(1));
+    CPPUNIT_ASSERT_EQUAL
+      (std::string("44213f9f4d59b557314fadcd233232eebcac8012"),
+       e->chunkChecksum->getChecksum(2));    
+  }
+#else // !ENABLE_MESSAGE_DIGEST
+  CPPUNIT_ASSERT(e->checksum.isNull());
+  CPPUNIT_ASSERT(e->chunkChecksum.isNull());
+#endif // !ENABLE_MESSAGE_DIGEST
   CPPUNIT_ASSERT(!e->getSignature().isNull());
   CPPUNIT_ASSERT_EQUAL(std::string("application/pgp-signature"),
                        e->getSignature()->getType());