diff options
author | Guillem Jover <guillem@debian.org> | 2011-09-09 07:19:27 +0200 |
---|---|---|
committer | Guillem Jover <guillem@debian.org> | 2011-09-09 09:32:29 +0200 |
commit | 3416f1d5c7a78e49a52f079b1e2a8576025650cb (patch) | |
tree | 04af6c5a4bfe3965c6d3f9621397be7cdc9cf50c | |
parent | d1abb6e80d72acffabecd352290dc10121f2c085 (diff) | |
download | dpkg-3416f1d5c7a78e49a52f079b1e2a8576025650cb.tar.gz |
libdpkg: Add a test case for fd_md5()
-rw-r--r-- | lib/dpkg/test/t-buffer.c | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/lib/dpkg/test/t-buffer.c b/lib/dpkg/test/t-buffer.c index f90167d8f..a34c182f6 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 <guillem@debian.org> + * Copyright © 2009-2011 Guillem Jover <guillem@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(); } |