]> git.saurik.com Git - apt.git/blobdiff - test/libapt/hashsums_test.cc
mark optional (private) symbols as hidden
[apt.git] / test / libapt / hashsums_test.cc
index 2cb71cc38fb0a839780b0d2a76c5405d0d9cf21c..d743faec6c453db6563a1e81c4e8650ad7ddfb18 100644 (file)
@@ -1,11 +1,15 @@
+#include <config.h>
+
 #include <apt-pkg/md5.h>
 #include <apt-pkg/sha1.h>
 #include <apt-pkg/sha2.h>
 #include <apt-pkg/strutl.h>
 #include <apt-pkg/hashes.h>
-#include <iostream>
+#include <apt-pkg/fileutl.h>
 
-#include <stdio.h>
+#include <iostream>
+#include <stdlib.h>
+#include <string>
 
 #include "assert.h"
 
@@ -42,6 +46,33 @@ template <class T> void TestMill(const char *Out)
 
 int main(int argc, char** argv)
 {
+   if (argc != 6) {
+      std::cout << "Five parameter expected - given " << argc << std::endl;
+      return 100;
+   }
+
+   // test HashSumValue which doesn't calculate but just stores sums
+   {
+   std::string md5sum = argv[2];
+   MD5SumValue md5(md5sum);
+   equals(md5.Value(), md5sum);
+   }
+   {
+   std::string sha1sum = argv[3];
+   SHA1SumValue sha1(sha1sum);
+   equals(sha1.Value(), sha1sum);
+   }
+   {
+   std::string sha2sum = argv[4];
+   SHA256SumValue sha2(sha2sum);
+   equals(sha2.Value(), sha2sum);
+   }
+   {
+   std::string sha2sum = argv[5];
+   SHA512SumValue sha2(sha2sum);
+   equals(sha2.Value(), sha2sum);
+   }
+
    // From  FIPS PUB 180-1
    Test<SHA1Summation>("","da39a3ee5e6b4b0d3255bfef95601890afd80709");
    Test<SHA1Summation>("abc","a9993e364706816aba3e25717850c26c9cd0d89d");
@@ -86,55 +117,54 @@ int main(int argc, char** argv)
    Test<SHA512Summation>("The quick brown fox jumps over the lazy dog.", "91ea1245f20d46ae9a037a989f54f1f790f0a47607eeb8a14d12890cea77a1bb"
                                                                         "c6c7ed9cf205e67b7f2b8fd4c7dfd3a7a8617e45f3c463d481c7e586c39ac1ed");
 
-   FILE* fd = fopen(argv[1], "r");
-   if (fd == NULL) {
+   FileFd fd(argv[1], FileFd::ReadOnly);
+   if (fd.IsOpen() == false) {
       std::cerr << "Can't open file for 1. testing: " << argv[1] << std::endl;
       return 1;
    }
    {
    Hashes hashes;
-   hashes.AddFD(fileno(fd));
+   hashes.AddFD(fd.Fd());
    equals(argv[2], hashes.MD5.Result().Value());
    equals(argv[3], hashes.SHA1.Result().Value());
    equals(argv[4], hashes.SHA256.Result().Value());
    equals(argv[5], hashes.SHA512.Result().Value());
    }
-   fseek(fd, 0L, SEEK_END);
-   unsigned long sz = ftell(fd);
-   fseek(fd, 0L, SEEK_SET);
+   unsigned long sz = fd.FileSize();
+   fd.Seek(0);
    {
    Hashes hashes;
-   hashes.AddFD(fileno(fd), sz);
+   hashes.AddFD(fd.Fd(), sz);
    equals(argv[2], hashes.MD5.Result().Value());
    equals(argv[3], hashes.SHA1.Result().Value());
    equals(argv[4], hashes.SHA256.Result().Value());
    equals(argv[5], hashes.SHA512.Result().Value());
    }
-   fseek(fd, 0L, SEEK_SET);
+   fd.Seek(0);
    {
    MD5Summation md5;
-   md5.AddFD(fileno(fd));
+   md5.AddFD(fd.Fd());
    equals(argv[2], md5.Result().Value());
    }
-   fseek(fd, 0L, SEEK_SET);
+   fd.Seek(0);
    {
    SHA1Summation sha1;
-   sha1.AddFD(fileno(fd));
+   sha1.AddFD(fd.Fd());
    equals(argv[3], sha1.Result().Value());
    }
-   fseek(fd, 0L, SEEK_SET);
+   fd.Seek(0);
    {
    SHA256Summation sha2;
-   sha2.AddFD(fileno(fd));
+   sha2.AddFD(fd.Fd());
    equals(argv[4], sha2.Result().Value());
    }
-   fseek(fd, 0L, SEEK_SET);
+   fd.Seek(0);
    {
    SHA512Summation sha2;
-   sha2.AddFD(fileno(fd));
+   sha2.AddFD(fd.Fd());
    equals(argv[5], sha2.Result().Value());
    }
-   fclose(fd);
+   fd.Close();
 
    // test HashString code
    {
@@ -146,7 +176,7 @@ int main(int argc, char** argv)
    equals(sha2.VerifyFile(argv[1]), true);
    }
    {
-   HashString sha2("SHA256:"+string(argv[4]));
+   HashString sha2("SHA256:" + std::string(argv[4]));
    equals(sha2.VerifyFile(argv[1]), true);
    }