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