X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flibpspp%2Fzip-test.c;h=011d123841535b3e853ef4a66b730d9b1955f14c;hb=8180c5dd1591446174c0753ee960921786113403;hp=7a2fcb10c47db74258d7dc3996809a10435f8b13;hpb=551202adbc334f9c33f8290a4e407b422651bbd5;p=pspp diff --git a/tests/libpspp/zip-test.c b/tests/libpspp/zip-test.c index 7a2fcb10c4..011d123841 100644 --- a/tests/libpspp/zip-test.c +++ b/tests/libpspp/zip-test.c @@ -29,6 +29,7 @@ #include #include +#include #include "xalloc.h" /* Exit with a failure code. @@ -67,11 +68,29 @@ main (int argc, char **argv) int i; struct string str; struct zip_reader *zr = zip_reader_create (argv[2], &str); + if ( NULL == zr) + { + fprintf (stderr, "Could not create zip reader: %s\n", ds_cstr (&str)); + check_die (); + } for (i = 3; i < argc; ++i) { int x = 0; - struct zip_member *zm = zip_member_open (zr, argv[i]); + struct zip_member *zm ; FILE *fp = fopen (argv[i], "w"); + if ( NULL == fp) + { + int e = errno; + fprintf (stderr, "Could not create file %s: %s\n", argv[i], strerror(e)); + check_die (); + } + zm = zip_member_open (zr, argv[i]); + if ( NULL == zm) + { + fprintf (stderr, "Could not open zip member %s from archive: %s\n", + argv[i], ds_cstr (&str)); + check_die (); + } while ((x = zip_member_read (zm, buf, BUFSIZE)) > 0) { @@ -80,15 +99,13 @@ main (int argc, char **argv) fclose (fp); if ( x < 0) { - fprintf (stderr, "Unzip failed: %s", ds_cstr (&str)); + fprintf (stderr, "Unzip failed: %s\n", ds_cstr (&str)); check_die (); } - - zip_member_unref (zm); } zip_reader_destroy (zr); } - else + else exit (1); return 0;