The following commit has been merged in the master branch:
commit 3416f1d5c7a78e49a52f079b1e2a8576025650cb
Author: Guillem Jover <guil...@debian.org>
Date:   Fri Sep 9 07:19:27 2011 +0200

    libdpkg: Add a test case for fd_md5()

diff --git a/lib/dpkg/test/t-buffer.c b/lib/dpkg/test/t-buffer.c
index f90167d..a34c182 100644
--- a/lib/dpkg/test/t-buffer.c
+++ b/lib/dpkg/test/t-buffer.c
@@ -2,7 +2,7 @@
  * libdpkg - Debian packaging suite library routines
  * t-buffer.c - test buffer handling
  *
- * Copyright © 2009-2010 Guillem Jover <guil...@debian.org>
+ * Copyright © 2009-2011 Guillem Jover <guil...@debian.org>
  *
  * This is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,24 +25,56 @@
 #include <dpkg/buffer.h>
 #include <dpkg/dpkg.h>
 
+#include <sys/types.h>
+
+#include <unistd.h>
+#include <stdlib.h>
 #include <stdio.h>
 
+static const char str_empty[] = "";
+static const char ref_hash_empty[] = "d41d8cd98f00b204e9800998ecf8427e";
+static const char str_test[] = "this is a test string\n";
+static const char ref_hash_test[] = "475aae3b885d70a9130eec23ab33f2b9";
+
 static void
 test_buffer_hash(void)
 {
-       const char str_test[] = "this is a test string\n";
-       const char str_empty[] = "";
        char hash[MD5HASHLEN + 1];
 
        buffer_md5(str_empty, hash, strlen(str_empty));
-       test_str(hash, ==, "d41d8cd98f00b204e9800998ecf8427e");
+       test_str(hash, ==, ref_hash_empty);
 
        buffer_md5(str_test, hash, strlen(str_test));
-       test_str(hash, ==, "475aae3b885d70a9130eec23ab33f2b9");
+       test_str(hash, ==, ref_hash_test);
+}
+
+static void
+test_fdio_hash(void)
+{
+       char hash[MD5HASHLEN + 1];
+       char *test_file;
+       int fd;
+
+       test_file = strdup("test.XXXXXX");
+       test_pass(test_file != NULL);
+       fd = mkstemp(test_file);
+       test_pass(fd >= 0);
+
+       fd_md5(fd, hash, -1, "test empty file");
+       test_str(hash, ==, ref_hash_empty);
+
+       test_pass(write(fd, str_test, strlen(str_test)) == strlen(str_test));
+       test_pass(lseek(fd, 0, SEEK_SET) == 0);
+
+       fd_md5(fd, hash, -1, "test filled file");
+       test_str(hash, ==, ref_hash_test);
+
+       test_pass(unlink(test_file) == 0);
 }
 
 static void
 test(void)
 {
        test_buffer_hash();
+       test_fdio_hash();
 }

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to debian-dpkg-cvs-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to