Remove "open" test with 5 tests using "tryopen". No change in testing coverage, but better extensibility. --HG-- branch : HEAD
diff --git a/regress/Makefile.am b/regress/Makefile.am index 457e462..002a923 100644 --- a/regress/Makefile.am +++ b/regress/Makefile.am
@@ -7,7 +7,6 @@ encrypt \ fread \ get_comment \ - open \ name_locate \ set_comment_all \ set_comment_localonly \ @@ -48,7 +47,11 @@ fread.test \ get_comment.test \ name_locate.test \ - open.test \ + open_new_but_exists.test \ + open_new_ok.test \ + open_nonarchive.test \ + open_nosuchfile.test \ + open_ok.test \ set_comment_all.test \ set_comment_localonly.test \ set_comment_removeglobal.test \
diff --git a/regress/open.c b/regress/open.c deleted file mode 100644 index 78663ba..0000000 --- a/regress/open.c +++ /dev/null
@@ -1,132 +0,0 @@ -/* - open.c -- test cases for opening zip archives - Copyright (C) 1999-2008 Dieter Baron and Thomas Klausner - - This file is part of libzip, a library to manipulate ZIP archives. - The authors can be contacted at <libzip@nih.at> - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - 3. The names of the authors may not be used to endorse or promote - products derived from this software without specific prior - written permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER - IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - - -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> - -#include "zip.h" - -int open_fail(const char *, int, const char *, int, int); -int open_success(const char *, int, const char *, int); - -const char *prg; - - -int -main(int argc, char *argv[]) -{ - int fail; - const char *archive; - const char *nonarchive; - - fail = 0; - prg = argv[0]; - - if (argc != 3) { - fprintf(stderr, "usage: %s archive non-archive\n", prg); - return 1; - } - - archive = argv[1]; - nonarchive = argv[2]; - - remove("nosuchfile"); - fail += open_fail("nosuchfile", 0, "non-existing", ZIP_ER_OPEN, ENOENT); - fail += open_fail(nonarchive, 0, "non-zip", ZIP_ER_NOZIP, 0); - fail += open_fail(archive, ZIP_EXCL, "existing-excl", ZIP_ER_EXISTS, 0); - /* ZIP_ER_OPEN */ - /* ZIP_ER_READ */ - /* ZIP_ER_SEEK */ - /* ZIP_ER_INCONS */ - - fail += open_success(archive, 0, "existing", 3); - fail += open_success("nosuchfile", ZIP_CREATE, "new", 0); - - exit(fail ? 1 : 0); -} - - - -int -open_fail(const char *fname, int flags, const char *desc, int zerr, int serr) -{ - struct zip *z; - int ze; - - errno = 0; - - if ((z=zip_open(fname, flags, &ze)) != NULL) { - printf("%s: opening `%s' succeeded, though it shouldn't\n", prg, desc); - zip_close(z); - return 1; - } - else if (ze != zerr - || (zip_error_get_sys_type(ze) == ZIP_ET_SYS && errno != serr)) { - printf("%s: opening `%s' returned wrong error %d/%d, expected %d/%d\n", - prg, desc, ze, errno, zerr, serr); - return 1; - } - - return 0; -} - - - -int -open_success(const char *fname, int flags, const char *desc, int nent) -{ - struct zip *z; - int ze, num; - - if ((z=zip_open(fname, flags, &ze)) == NULL) { - printf("%s: opening `%s' failed (%d)\n", prg, desc, ze); - return 1; - } - - num = zip_get_num_files(z); - if (zip_close(z) == -1) { - printf("%s: closing `%s' failed\n", prg, desc); - return 1; - } - - if (num != nent) { - printf("%s: opening `%s' got wrong number of files %d, expected %d\n", - prg, desc, num, nent); - return 1; - } - - return 0; -}
diff --git a/regress/open.test b/regress/open.test deleted file mode 100644 index c4b6a3a..0000000 --- a/regress/open.test +++ /dev/null
@@ -1,6 +0,0 @@ -# various tests for zip_open -program open -args test.zip Makefile.am -return 0 -file test.zip test.zip test.zip -file Makefile.am Makefile.am Makefile.am
diff --git a/regress/open_new_but_exists.test b/regress/open_new_but_exists.test new file mode 100644 index 0000000..612c8c9 --- /dev/null +++ b/regress/open_new_but_exists.test
@@ -0,0 +1,6 @@ +# zip_open: file shall be created but already exists +program tryopen +args -e test.zip +return 1 +file test.zip test.zip test.zip +stdout opening `test.zip' returned error 10/0
diff --git a/regress/open_new_ok.test b/regress/open_new_ok.test new file mode 100644 index 0000000..04a453a --- /dev/null +++ b/regress/open_new_ok.test
@@ -0,0 +1,5 @@ +# zip_open: create new archive +program tryopen +args -n new.zip +return 0 +stdout opening `new.zip' succeeded, 0 entries
diff --git a/regress/open_nonarchive.test b/regress/open_nonarchive.test new file mode 100644 index 0000000..b523abf --- /dev/null +++ b/regress/open_nonarchive.test
@@ -0,0 +1,6 @@ +# zip_open: file is not a zip archive +program tryopen +file Makefile.am Makefile.am Makefile.am +args Makefile.am +return 1 +stdout opening `Makefile.am' returned error 19/2
diff --git a/regress/open_nosuchfile.test b/regress/open_nosuchfile.test new file mode 100644 index 0000000..bd70a74 --- /dev/null +++ b/regress/open_nosuchfile.test
@@ -0,0 +1,5 @@ +# zip_open: file doesn't exist +program tryopen +args nosuchfile +return 1 +stdout opening `nosuchfile' returned error 11/2
diff --git a/regress/open_ok.test b/regress/open_ok.test new file mode 100644 index 0000000..ca3498a --- /dev/null +++ b/regress/open_ok.test
@@ -0,0 +1,6 @@ +# zip_open: file opens fine +program tryopen +args test.zip +return 0 +file test.zip test.zip test.zip +stdout opening `test.zip' succeeded, 3 entries
diff --git a/regress/tryopen.c b/regress/tryopen.c index 143a37f..fcc280f 100644 --- a/regress/tryopen.c +++ b/regress/tryopen.c
@@ -85,12 +85,12 @@ if ((z=zip_open(fname, flags, &ze)) != NULL) { count = zip_get_num_files(z); - printf("%s: opening `%s' succeeded, %d entries\n", prg, fname, count); + printf("opening `%s' succeeded, %d entries\n", fname, count); zip_close(z); return 0; } - printf("%s: opening `%s' returned error %d/%d\n", - prg, fname, ze, errno); + printf("opening `%s' returned error %d/%d\n", + fname, ze, errno); return 1; }