Closed OgreTransporter closed 4 years ago
https://ci.appveyor.com/project/0-wiz-0/libzip/builds/32273199/job/3c8a61c5uawfq1v8
Line 629:
C:\projects\libzip\lib\zip_source_filep.c(212): error C2065: 'S_IWUSR': undeclared identifier [C:\projects\libzip\build\lib\zip.vcxproj]
Maybe it's a good idea to read the AppVeyor error messages?
Thanks, fixed in https://github.com/nih-at/libzip/commit/d8b0c3199a1e0beeaa81e17460e34f53bfc59f70
Appyveyor consistently fails because there is one failing test, so we don't notice when it breaks for other reasons.
Help in fixing the broken test would be appreciated very much. We don't develop on Windows and are relying on Windows developers for help. Could you please take a look?
It's about junk_at_start.test
, see e.g. https://ci.appveyor.com/project/0-wiz-0/libzip/builds/32262144/job/63iworih83x2w54g
The test can be run with runtest junk_at_start.test
, with "-k" it will keep the sandbox used for preparing running the test so the input files are in the right place. The arguments to ziptool_regress
are after the args
command in the file junk_at_start.test
.
You're welcome!
I looked at the tests. First, CMake is missing a search for Perl:
1>------ Erstellen gestartet: Projekt: RUN_TESTS, Konfiguration: Debug x64 ------
1>Test project D:/workspace/libzip/build
1> Start 1: add_dir.test
1>Could not find executable perl
1>Looked in the following places:
1>perl
1>perl.exe
1>Debug/perl
1>Debug/perl.exe
1>Debug/perl
1>Debug/perl.exe
1>Unable to find executable: perl
If perl should be used for the tests, CMake should also search for Perl first or display an error message. For example:
find_package(Perl REQUIRED)
set(path "$<TARGET_FILE_DIR:zip>;$ENV{PATH}")
if (TARGET zlib)
set(path "$<TARGET_FILE_DIR:zlib>;${path}")
endif()
if(WIN32)
get_filename_component(PERL_DIR ${PERL_EXECUTABLE} DIRECTORY)
set(path "${PERL_DIR};${path}")
endif()
string(REPLACE ";" "\\;" path "${path}")
FOREACH(CASE ${EXTRA_TESTS})
ADD_TEST(NAME ${CASE} COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/runtest --bin-sub-directory $<CONFIG> ${CMAKE_CURRENT_SOURCE_DIR}/${CASE})
SET_TESTS_PROPERTIES(${CASE} PROPERTIES SKIP_RETURN_CODE 77)
SET_TESTS_PROPERTIES(${CASE} PROPERTIES ENVIRONMENT "PATH=${path}")
ENDFOREACH()
What is Perl needed for anyway? The test system seems to be built very complicated. Some C programs are created, but they are not related to each other. The CTest then apparently calls a Perl script that performs the actual test. Why not a direct C solution like googletest? Then you only need to let CTest do it and it is easier to debug. What are all these programs for? Are they all needed for the tests? Then there is no information in which order they have to be built.
71/134 Test #71: junk_at_start.test ...............................***Failed 0.15 sec
Unexpected exit status:
-0
+1
Unexpected output:
--- expected
+++ got
-3 entries in archive
Unexpected error output:
--- expected
+++ got
+can't open zip archive 'junk-at-start.zzip': Not a zip archive
junk_at_start -- FAIL: exit status, output, error output
Now to the actual test:
can't open zip archive 'junk-at-start.zzip': Not a zip Archive
Yes, a file junk-at-start.zzip does not exist either. The file in the regress directory is called junk-at-start.zip. zip and not zzip. Which program is executed for the test with which parameters (arguments, environment variables)? I can also debug this directly. The Perl script does not help me.
By the way, this is the test result on my computer:
1>------ Erstellen gestartet: Projekt: RUN_TESTS, Konfiguration: Debug x64 ------
1>Test project D:/Jenkins/workspace/libzip/build
1> Start 1: add_dir.test
1> 1/134 Test #1: add_dir.test .....................................***Failed 0.17 sec
1> Start 2: add_from_buffer.test
1> 2/134 Test #2: add_from_buffer.test .............................***Failed 0.16 sec
1> Start 3: add_from_file.test
1> 3/134 Test #3: add_from_file.test ...............................***Failed 0.16 sec
1> Start 4: add_from_file_duplicate.test
1> 4/134 Test #4: add_from_file_duplicate.test .....................***Failed 0.16 sec
1> Start 5: add_from_file_twice_duplicate.test
1> 5/134 Test #5: add_from_file_twice_duplicate.test ...............***Failed 0.16 sec
1> Start 6: add_from_filep.test
1> 6/134 Test #6: add_from_filep.test ..............................***Failed 0.15 sec
1> Start 7: add_from_stdin.test
1> 7/134 Test #7: add_from_stdin.test ..............................***Skipped 0.12 sec
1> Start 8: add_from_zip_closed.test
1> 8/134 Test #8: add_from_zip_closed.test ......................... Passed 0.15 sec
1> Start 9: add_from_zip_deflated.test
1> 9/134 Test #9: add_from_zip_deflated.test .......................***Failed 0.16 sec
1> Start 10: add_from_zip_deflated2.test
1> 10/134 Test #10: add_from_zip_deflated2.test ......................***Failed 0.16 sec
1> Start 11: add_from_zip_partial_deflated.test
1> 11/134 Test #11: add_from_zip_partial_deflated.test ...............***Failed 0.16 sec
1> Start 12: add_from_zip_partial_stored.test
1> 12/134 Test #12: add_from_zip_partial_stored.test .................***Failed 0.16 sec
1> Start 13: add_from_zip_stored.test
1> 13/134 Test #13: add_from_zip_stored.test .........................***Failed 0.17 sec
1> Start 14: add_stored.test
1> 14/134 Test #14: add_stored.test ..................................***Failed 0.16 sec
1> Start 15: add_stored_in_memory.test
1> 15/134 Test #15: add_stored_in_memory.test ........................***Failed 0.16 sec
1> Start 16: buffer-fragment-read.test
1> 16/134 Test #16: buffer-fragment-read.test ........................***Failed 0.16 sec
1> Start 17: buffer-fragment-write.test
1> 17/134 Test #17: buffer-fragment-write.test .......................***Failed 0.17 sec
1> Start 18: cancel_45.test
1> 18/134 Test #18: cancel_45.test ................................... Passed 0.16 sec
1> Start 19: cancel_90.test
1> 19/134 Test #19: cancel_90.test ................................... Passed 0.16 sec
1> Start 20: clone-buffer-add.test
1> 20/134 Test #20: clone-buffer-add.test ............................ Passed 0.16 sec
1> Start 21: clone-buffer-delete.test
1> 21/134 Test #21: clone-buffer-delete.test ......................... Passed 0.15 sec
1> Start 22: clone-buffer-replace.test
1> 22/134 Test #22: clone-buffer-replace.test ........................ Passed 0.15 sec
1> Start 23: clone-fs-add.test
1> 23/134 Test #23: clone-fs-add.test ................................***Skipped 0.13 sec
1> Start 24: clone-fs-delete.test
1> 24/134 Test #24: clone-fs-delete.test .............................***Skipped 0.13 sec
1> Start 25: clone-fs-replace.test
1> 25/134 Test #25: clone-fs-replace.test ............................***Skipped 0.13 sec
1> Start 26: cm-default.test
1> 26/134 Test #26: cm-default.test ..................................***Failed 0.17 sec
1> Start 27: count_entries.test
1> 27/134 Test #27: count_entries.test ...............................***Failed 0.12 sec
1> Start 28: decrypt-correct-password-aes128.test
1> 28/134 Test #28: decrypt-correct-password-aes128.test ............. Passed 0.15 sec
1> Start 29: decrypt-correct-password-aes192.test
1> 29/134 Test #29: decrypt-correct-password-aes192.test ............. Passed 0.15 sec
1> Start 30: decrypt-correct-password-aes256.test
1> 30/134 Test #30: decrypt-correct-password-aes256.test ............. Passed 0.15 sec
1> Start 31: decrypt-correct-password-pkware.test
1> 31/134 Test #31: decrypt-correct-password-pkware.test ............. Passed 0.15 sec
1> Start 32: decrypt-no-password-aes256.test
1> 32/134 Test #32: decrypt-no-password-aes256.test .................. Passed 0.15 sec
1> Start 33: decrypt-wrong-password-aes128.test
1> 33/134 Test #33: decrypt-wrong-password-aes128.test ............... Passed 0.15 sec
1> Start 34: decrypt-wrong-password-aes192.test
1> 34/134 Test #34: decrypt-wrong-password-aes192.test ............... Passed 0.16 sec
1> Start 35: decrypt-wrong-password-aes256.test
1> 35/134 Test #35: decrypt-wrong-password-aes256.test ............... Passed 0.15 sec
1> Start 36: decrypt-wrong-password-pkware.test
1> 36/134 Test #36: decrypt-wrong-password-pkware.test ............... Passed 0.15 sec
1> Start 37: delete_add_same.test
1> 37/134 Test #37: delete_add_same.test .............................***Failed 0.17 sec
1> Start 38: delete_invalid.test
1> 38/134 Test #38: delete_invalid.test .............................. Passed 0.15 sec
1> Start 39: delete_last.test
1> 39/134 Test #39: delete_last.test ................................. Passed 0.15 sec
1> Start 40: delete_multiple_last.test
1> 40/134 Test #40: delete_multiple_last.test ........................ Passed 0.15 sec
1> Start 41: delete_multiple_partial.test
1> 41/134 Test #41: delete_multiple_partial.test .....................***Failed 0.17 sec
1> Start 42: delete_renamed_rename.test
1> 42/134 Test #42: delete_renamed_rename.test .......................***Failed 0.17 sec
1> Start 43: encrypt.test
1> 43/134 Test #43: encrypt.test ..................................... Passed 0.15 sec
1> Start 44: encryption-nonrandom-aes128.test
1> 44/134 Test #44: encryption-nonrandom-aes128.test .................***Failed 0.17 sec
1> Start 45: encryption-nonrandom-aes192.test
1> 45/134 Test #45: encryption-nonrandom-aes192.test .................***Failed 0.17 sec
1> Start 46: encryption-nonrandom-aes256.test
1> 46/134 Test #46: encryption-nonrandom-aes256.test .................***Failed 0.17 sec
1> Start 47: encryption-nonrandom-pkware.test
1> 47/134 Test #47: encryption-nonrandom-pkware.test .................***Failed 0.18 sec
1> Start 48: encryption-remove.test
1> 48/134 Test #48: encryption-remove.test ........................... Passed 0.15 sec
1> Start 49: extra_add.test
1> 49/134 Test #49: extra_add.test ...................................***Failed 0.16 sec
1> Start 50: extra_add_multiple.test
1> 50/134 Test #50: extra_add_multiple.test ..........................***Failed 0.16 sec
1> Start 51: extra_count.test
1> 51/134 Test #51: extra_count.test .................................***Failed 0.16 sec
1> Start 52: extra_count_by_id.test
1> 52/134 Test #52: extra_count_by_id.test ...........................***Failed 0.16 sec
1> Start 53: extra_count_ignore_zip64.test
1> 53/134 Test #53: extra_count_ignore_zip64.test ....................***Failed 0.13 sec
1> Start 54: extra_delete.test
1> 54/134 Test #54: extra_delete.test ................................***Failed 0.16 sec
1> Start 55: extra_delete_by_id.test
1> 55/134 Test #55: extra_delete_by_id.test ..........................***Failed 0.16 sec
1> Start 56: extra_field_align.test
1> 56/134 Test #56: extra_field_align.test ...........................***Failed 0.21 sec
1> Start 57: extra_get.test
1> 57/134 Test #57: extra_get.test ...................................***Failed 0.16 sec
1> Start 58: extra_get_by_id.test
1> 58/134 Test #58: extra_get_by_id.test .............................***Failed 0.16 sec
1> Start 59: extra_set.test
1> 59/134 Test #59: extra_set.test ................................... Passed 0.15 sec
1> Start 60: extra_set_modify_c.test
1> 60/134 Test #60: extra_set_modify_c.test ..........................***Failed 0.16 sec
1> Start 61: extra_set_modify_l.test
1> 61/134 Test #61: extra_set_modify_l.test ..........................***Failed 0.16 sec
1> Start 62: fdopen_ok.test
1> 62/134 Test #62: fdopen_ok.test ...................................***Skipped 0.13 sec
1> Start 63: file_comment_encmismatch.test
1> 63/134 Test #63: file_comment_encmismatch.test ....................***Failed 0.17 sec
1> Start 64: fopen_unchanged.test
1> 64/134 Test #64: fopen_unchanged.test .............................***Failed 0.15 sec
1> Start 65: fread.test
1> 65/134 Test #65: fread.test .......................................***Failed 0.16 sec
1> Start 66: fseek_deflated.test
1> 66/134 Test #66: fseek_deflated.test ..............................***Failed 0.16 sec
1> Start 67: fseek_fail.test
1> 67/134 Test #67: fseek_fail.test ..................................***Failed 0.16 sec
1> Start 68: fseek_ok.test
1> 68/134 Test #68: fseek_ok.test ....................................***Failed 0.16 sec
1> Start 69: get_comment.test
1> 69/134 Test #69: get_comment.test .................................***Failed 0.16 sec
1> Start 70: junk_at_end.test
1> 70/134 Test #70: junk_at_end.test ................................. Passed 0.15 sec
1> Start 71: junk_at_start.test
1> 71/134 Test #71: junk_at_start.test ...............................***Failed 0.14 sec
1> Start 72: name_locate.test
1> 72/134 Test #72: name_locate.test .................................***Failed 0.16 sec
1> Start 73: open_cons_extrabytes.test
1> 73/134 Test #73: open_cons_extrabytes.test ........................***Failed 0.16 sec
1> Start 74: open_empty.test
1> 74/134 Test #74: open_empty.test ..................................***Failed 0.16 sec
1> Start 75: open_empty_2.test
1> 75/134 Test #75: open_empty_2.test ................................***Failed 0.15 sec
1> Start 76: open_extrabytes.test
1> 76/134 Test #76: open_extrabytes.test .............................***Failed 0.15 sec
1> Start 77: open_file_count.test
1> 77/134 Test #77: open_file_count.test .............................***Failed 0.17 sec
1> Start 78: open_filename_duplicate.test
1> 78/134 Test #78: open_filename_duplicate.test .....................***Failed 0.16 sec
1> Start 79: open_filename_duplicate_consistency.test
1> 79/134 Test #79: open_filename_duplicate_consistency.test .........***Failed 0.15 sec
1> Start 80: open_filename_duplicate_empty.test
1> 80/134 Test #80: open_filename_duplicate_empty.test ...............***Failed 0.15 sec
1> Start 81: open_filename_duplicate_empty_consistency.test
1> 81/134 Test #81: open_filename_duplicate_empty_consistency.test ...***Failed 0.15 sec
1> Start 82: open_filename_empty.test
1> 82/134 Test #82: open_filename_empty.test .........................***Failed 0.16 sec
1> Start 83: open_incons.test
1> 83/134 Test #83: open_incons.test .................................***Failed 0.29 sec
1> Start 84: open_many_fail.test
1> 84/134 Test #84: open_many_fail.test ..............................***Failed 0.12 sec
1> Start 85: open_many_ok.test
1> 85/134 Test #85: open_many_ok.test ................................***Failed 0.13 sec
1> Start 86: open_multidisk.test
1> 86/134 Test #86: open_multidisk.test ..............................***Failed 0.15 sec
1> Start 87: open_new_but_exists.test
1> 87/134 Test #87: open_new_but_exists.test .........................***Failed 0.16 sec
1> Start 88: open_new_ok.test
1> 88/134 Test #88: open_new_ok.test .................................***Failed 0.15 sec
1> Start 89: open_nonarchive.test
1> 89/134 Test #89: open_nonarchive.test .............................***Failed 0.16 sec
1> Start 90: open_nosuchfile.test
1> 90/134 Test #90: open_nosuchfile.test .............................***Failed 0.15 sec
1> Start 91: open_ok.test
1> 91/134 Test #91: open_ok.test .....................................***Failed 0.16 sec
1> Start 92: open_too_short.test
1> 92/134 Test #92: open_too_short.test ..............................***Failed 0.15 sec
1> Start 93: open_truncate.test
1> 93/134 Test #93: open_truncate.test ...............................***Failed 0.15 sec
1> Start 94: open_zip64_3mf.test
1> 94/134 Test #94: open_zip64_3mf.test ..............................***Failed 0.16 sec
1> Start 95: open_zip64_ok.test
1> 95/134 Test #95: open_zip64_ok.test ...............................***Failed 0.16 sec
1> Start 96: preload.test
1> 96/134 Test #96: preload.test ..................................... Passed 0.15 sec
1> Start 97: progress.test
1> 97/134 Test #97: progress.test ....................................***Failed 0.17 sec
1> Start 98: rename_ascii.test
1> 98/134 Test #98: rename_ascii.test ................................ Passed 0.16 sec
1> Start 99: rename_cp437.test
1> 99/134 Test #99: rename_cp437.test ................................***Failed 0.16 sec
1> Start 100: rename_deleted.test
1>100/134 Test #100: rename_deleted.test ..............................***Failed 0.16 sec
1> Start 101: rename_fail.test
1>101/134 Test #101: rename_fail.test .................................***Failed 0.16 sec
1> Start 102: rename_ok.test
1>102/134 Test #102: rename_ok.test ...................................***Failed 0.16 sec
1> Start 103: rename_utf8.test
1>103/134 Test #103: rename_utf8.test ................................. Passed 0.15 sec
1> Start 104: rename_utf8_encmismatch.test
1>104/134 Test #104: rename_utf8_encmismatch.test ..................... Passed 0.15 sec
1> Start 105: set_comment_all.test
1>105/134 Test #105: set_comment_all.test .............................***Failed 0.16 sec
1> Start 106: set_comment_localonly.test
1>106/134 Test #106: set_comment_localonly.test .......................***Failed 0.16 sec
1> Start 107: set_comment_removeglobal.test
1>107/134 Test #107: set_comment_removeglobal.test ....................***Failed 0.17 sec
1> Start 108: set_comment_revert.test
1>108/134 Test #108: set_comment_revert.test ..........................***Failed 0.16 sec
1> Start 109: set_compression_bzip2_to_deflate.test
1>109/134 Test #109: set_compression_bzip2_to_deflate.test ............***Failed 0.17 sec
1> Start 110: set_compression_deflate_to_bzip2.test
1>110/134 Test #110: set_compression_deflate_to_bzip2.test ............***Failed 0.17 sec
1> Start 111: set_compression_deflate_to_deflate.test
1>111/134 Test #111: set_compression_deflate_to_deflate.test ..........***Failed 0.16 sec
1> Start 112: set_compression_deflate_to_store.test
1>112/134 Test #112: set_compression_deflate_to_store.test ............***Failed 0.17 sec
1> Start 113: set_compression_store_to_bzip2.test
1>113/134 Test #113: set_compression_store_to_bzip2.test ..............***Failed 0.17 sec
1> Start 114: set_compression_store_to_deflate.test
1>114/134 Test #114: set_compression_store_to_deflate.test ............***Failed 0.16 sec
1> Start 115: set_compression_store_to_store.test
1>115/134 Test #115: set_compression_store_to_store.test ..............***Failed 0.16 sec
1> Start 116: set_compression_store_to_xz.test
1>116/134 Test #116: set_compression_store_to_xz.test .................***Failed 0.17 sec
1> Start 117: set_compression_unknown.test
1>117/134 Test #117: set_compression_unknown.test .....................***Failed 0.16 sec
1> Start 118: set_compression_xz_to_store.test
1>118/134 Test #118: set_compression_xz_to_store.test .................***Failed 0.17 sec
1> Start 119: set_file_dostime.test
1>119/134 Test #119: set_file_dostime.test ............................ Passed 0.15 sec
1> Start 120: stat_index_cp437_guess.test
1>120/134 Test #120: stat_index_cp437_guess.test ......................***Failed 0.16 sec
1> Start 121: stat_index_cp437_raw.test
1>121/134 Test #121: stat_index_cp437_raw.test ........................***Failed 0.16 sec
1> Start 122: stat_index_cp437_strict.test
1>122/134 Test #122: stat_index_cp437_strict.test .....................***Failed 0.16 sec
1> Start 123: stat_index_fileorder.test
1>123/134 Test #123: stat_index_fileorder.test ........................ Passed 0.15 sec
1> Start 124: stat_index_streamed.test
1>124/134 Test #124: stat_index_streamed.test ......................... Passed 0.15 sec
1> Start 125: stat_index_streamed_zip64.test
1>125/134 Test #125: stat_index_streamed_zip64.test ................... Passed 0.15 sec
1> Start 126: stat_index_utf8_guess.test
1>126/134 Test #126: stat_index_utf8_guess.test .......................***Failed 0.16 sec
1> Start 127: stat_index_utf8_raw.test
1>127/134 Test #127: stat_index_utf8_raw.test .........................***Failed 0.15 sec
1> Start 128: stat_index_utf8_strict.test
1>128/134 Test #128: stat_index_utf8_strict.test ......................***Failed 0.16 sec
1> Start 129: stat_index_utf8_unmarked_strict.test
1>129/134 Test #129: stat_index_utf8_unmarked_strict.test .............***Failed 0.16 sec
1> Start 130: stat_index_zip64.test
1>130/134 Test #130: stat_index_zip64.test ............................***Failed 0.12 sec
1> Start 131: utf-8-standardization.test
1>131/134 Test #131: utf-8-standardization.test ....................... Passed 0.15 sec
1> Start 132: zip-in-archive-comment.test
1>132/134 Test #132: zip-in-archive-comment.test ......................***Failed 0.16 sec
1> Start 133: zip64_creation.test
1>133/134 Test #133: zip64_creation.test ..............................***Failed 83.42 sec
1> Start 134: zip64_stored_creation.test
1>134/134 Test #134: zip64_stored_creation.test ....................... Passed 13.42 sec
1>
1>28% tests passed, 97 tests failed out of 134
1>
1>Total Test time (real) = 118.15 sec
1>
1>The following tests did not run:
1> 7 - add_from_stdin.test (Skipped)
1> 23 - clone-fs-add.test (Skipped)
1> 24 - clone-fs-delete.test (Skipped)
1> 25 - clone-fs-replace.test (Skipped)
1> 62 - fdopen_ok.test (Skipped)
1>
1>The following tests FAILED:
1> 1 - add_dir.test (Failed)
1> 2 - add_from_buffer.test (Failed)
1> 3 - add_from_file.test (Failed)
1> 4 - add_from_file_duplicate.test (Failed)
1> 5 - add_from_file_twice_duplicate.test (Failed)
1> 6 - add_from_filep.test (Failed)
1> 9 - add_from_zip_deflated.test (Failed)
1> 10 - add_from_zip_deflated2.test (Failed)
1> 11 - add_from_zip_partial_deflated.test (Failed)
1> 12 - add_from_zip_partial_stored.test (Failed)
1> 13 - add_from_zip_stored.test (Failed)
1> 14 - add_stored.test (Failed)
1> 15 - add_stored_in_memory.test (Failed)
1> 16 - buffer-fragment-read.test (Failed)
1> 17 - buffer-fragment-write.test (Failed)
1> 26 - cm-default.test (Failed)
1> 27 - count_entries.test (Failed)
1> 37 - delete_add_same.test (Failed)
1> 41 - delete_multiple_partial.test (Failed)
1> 42 - delete_renamed_rename.test (Failed)
1> 44 - encryption-nonrandom-aes128.test (Failed)
1> 45 - encryption-nonrandom-aes192.test (Failed)
1> 46 - encryption-nonrandom-aes256.test (Failed)
1> 47 - encryption-nonrandom-pkware.test (Failed)
1> 49 - extra_add.test (Failed)
1> 50 - extra_add_multiple.test (Failed)
1> 51 - extra_count.test (Failed)
1> 52 - extra_count_by_id.test (Failed)
1> 53 - extra_count_ignore_zip64.test (Failed)
1> 54 - extra_delete.test (Failed)
1> 55 - extra_delete_by_id.test (Failed)
1> 56 - extra_field_align.test (Failed)
1> 57 - extra_get.test (Failed)
1> 58 - extra_get_by_id.test (Failed)
1> 60 - extra_set_modify_c.test (Failed)
1> 61 - extra_set_modify_l.test (Failed)
1> 63 - file_comment_encmismatch.test (Failed)
1> 64 - fopen_unchanged.test (Failed)
1> 65 - fread.test (Failed)
1> 66 - fseek_deflated.test (Failed)
1> 67 - fseek_fail.test (Failed)
1> 68 - fseek_ok.test (Failed)
1> 69 - get_comment.test (Failed)
1> 71 - junk_at_start.test (Failed)
1> 72 - name_locate.test (Failed)
1> 73 - open_cons_extrabytes.test (Failed)
1> 74 - open_empty.test (Failed)
1> 75 - open_empty_2.test (Failed)
1> 76 - open_extrabytes.test (Failed)
1> 77 - open_file_count.test (Failed)
1> 78 - open_filename_duplicate.test (Failed)
1> 79 - open_filename_duplicate_consistency.test (Failed)
1> 80 - open_filename_duplicate_empty.test (Failed)
1> 81 - open_filename_duplicate_empty_consistency.test (Failed)
1> 82 - open_filename_empty.test (Failed)
1> 83 - open_incons.test (Failed)
1> 84 - open_many_fail.test (Failed)
1> 85 - open_many_ok.test (Failed)
1> 86 - open_multidisk.test (Failed)
1> 87 - open_new_but_exists.test (Failed)
1> 88 - open_new_ok.test (Failed)
1> 89 - open_nonarchive.test (Failed)
1> 90 - open_nosuchfile.test (Failed)
1> 91 - open_ok.test (Failed)
1> 92 - open_too_short.test (Failed)
1> 93 - open_truncate.test (Failed)
1> 94 - open_zip64_3mf.test (Failed)
1> 95 - open_zip64_ok.test (Failed)
1> 97 - progress.test (Failed)
1> 99 - rename_cp437.test (Failed)
1> 100 - rename_deleted.test (Failed)
1> 101 - rename_fail.test (Failed)
1> 102 - rename_ok.test (Failed)
1> 105 - set_comment_all.test (Failed)
1> 106 - set_comment_localonly.test (Failed)
1> 107 - set_comment_removeglobal.test (Failed)
1> 108 - set_comment_revert.test (Failed)
1> 109 - set_compression_bzip2_to_deflate.test (Failed)
1> 110 - set_compression_deflate_to_bzip2.test (Failed)
1> 111 - set_compression_deflate_to_deflate.test (Failed)
1> 112 - set_compression_deflate_to_store.test (Failed)
1> 113 - set_compression_store_to_bzip2.test (Failed)
1> 114 - set_compression_store_to_deflate.test (Failed)
1> 115 - set_compression_store_to_store.test (Failed)
1> 116 - set_compression_store_to_xz.test (Failed)
1> 117 - set_compression_unknown.test (Failed)
1> 118 - set_compression_xz_to_store.test (Failed)
1> 120 - stat_index_cp437_guess.test (Failed)
1> 121 - stat_index_cp437_raw.test (Failed)
1> 122 - stat_index_cp437_strict.test (Failed)
1> 126 - stat_index_utf8_guess.test (Failed)
1> 127 - stat_index_utf8_raw.test (Failed)
1> 128 - stat_index_utf8_strict.test (Failed)
1> 129 - stat_index_utf8_unmarked_strict.test (Failed)
1> 130 - stat_index_zip64.test (Failed)
1> 132 - zip-in-archive-comment.test (Failed)
1> 133 - zip64_creation.test (Failed)
1>Errors while running CTest
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: Der Befehl "setlocal
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: D:\dev\Tools\cmake-3.16.5-win64-x64\bin\ctest.exe --force-new-ctest-process -C Debug
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :cmEnd
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :cmErrorLevel
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: exit /b %1
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :cmDone
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(138,5): error MSB3073: :VCEnd" wurde mit dem Code 8 beendet.
1>Die Erstellung des Projekts "RUN_TESTS.vcxproj" ist abgeschlossen -- FEHLER.
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 1 aktuell, 0 übersprungen ==========
We have a language in which we describe our test cases, and a perl program is used as interpreter.
The one for this case is:
# test archive with junk at start of file
args -o 4 junk-at-start.zzip get_num_entries 0
return 0
file junk-at-start.zzip junk-at-start.zip junk-at-start.zip
stdout 3 entries in archive
I could explain the details, but it's probably not necessary.
The case we need help with can be reduced to this recipe:
Run ziptool_regress
that's built in the regress subdirectory on one zip archive that's included in the repository in the regress
subdirectory:
ziptool_regress -o 4 junk-at-start.zip get_num_entries 0
This should print 3 entries in archive
to the standard output and exit with return code 0 (no error).
can't open zip archive 'D:\workspace\libzip\src\regress\junk-at-start.zip': Not a zip Archive
Return code 1
The call to _zip_open(zip_source_t *src, unsigned int flags, zip_error_t *error)
fails. In line 168 (len = st.size;
) the length is set to 0. According to this the call of _zip_find_central_dir(zip_t *za, zip_uint64_t len)
does not work, because 0 is smaller than EOCDLEN (22): if (len < EOCDLEN) {
.
Ok, so the next step is to find out why st.size
is zero.
Can you please try if this diff improves the situation?
diff --git a/lib/zip_source_win32handle.c b/lib/zip_source_win32handle.c
index 538601b..5a50451 100644
--- a/lib/zip_source_win32handle.c
+++ b/lib/zip_source_win32handle.c
@@ -95,7 +95,7 @@ _zip_source_win32_handle_or_name(const void *fname, HANDLE h, zip_uint64_t start
ctx->ops = ops;
ctx->h = h;
ctx->start = start;
- ctx->end = (len < 0 ? 0 : start + (zip_uint64_t)len);
+ ctx->end = (len <= 0 ? 0 : start + (zip_uint64_t)len);
ctx->closep = ctx->fname ? 1 : closep;
if (st) {
memcpy(&ctx->st, st, sizeof(ctx->st));
Much better! struct zip_stat st
now strores the right size. The result of the test is now:
can't open zip archive 'D:\workspace\test3\src\regress\junk-at-start.zip': Invalid argument
zip_source_win32handle.c (301):
zip_error_set(&ctx->error, ZIP_ER_INVAL, 0);
return -1;
}
new_current = 0 ctx->start = 4
Thanks! I noticed that the Windows backend was still using absolute values for the current
and end
members of ctx
. I tried making it more similar to the Unix backend (which uses relative values, based on start
), but it still fails. Can you please tell me where?
_zip_find_central_dir > zip_source_seek
args.offset = -416;
args.whence = 2;
_zip_source_call > _win32_read_file (len=16, cmd=ZIP_SOURCE_SEEK)
Function _zip_seek_win32 is working, but then
new_current = new_offset.QuadPart;
new_current -= (zip_int64_t)ctx->start;
new_offset.QuadPart is 0, ctx->start is 4 which ends up in new_current = -4.
zip_source_win32handle.c in line 379 fails!
if (new_current < 0 || (ctx->end != 0 && (zip_uint64_t)new_current > ctx->end) || (zip_uint64_t)new_current + ctx->start < ctx->start) {
zip_error_set(&ctx->error, ZIP_ER_INVAL, 0);
return -1;
}
Thanks for the detailed analysis, I've just committed a fix for it.
(The corresponding code path is not used in the Unix file source (since we always set ctx->end), so we didn't notice it, even though the bug was present there too.)
can't open zip archive 'D:\workspace\libzip\src\regress\junk-at-start.zip': Not a zip Archive
_zip_find_central_dir > _zip_read_cdir > _zip_dirent_read
if (memcmp(_zip_buffer_get(buffer, 4), (local ? LOCAL_MAGIC : CENTRAL_MAGIC), 4) != 0)
local=false buffer = 0x000002495f034a10 {ok=true free_data=false data=0x000002495f0376dc "est\nPK\x1\x2\x17\x3\n" ...}
memcmp returns 1, so the function returns -1
Thanks for the quick analysis, I see the problem: the buffer should be shifted 4 bytes to the left. That means the seek did not correctly account for ctx->start.
I'll take a look at it.
Thank you very much for taking care of this problem! I will continue to test until all tests work under Windows.
Thank you for your continued debugging support. Your bug reports are excellent.
We are currently refactoring the whole file source implementation. We'll let you know when it's in a stable state again.
We have completed the restructuring and all tests now pass.
However, we still have a few open questions:
I'm now using GetFileAttributesExA / GetFileAttributesExW to get information about a file by its name, but I don't see how to get the file type (wether its a regular file). For a HANDLE the code uses GetFileType.
The build on UWP does not find the test executables.
It is built via cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0
Could you take a look and see where they are located and why rundest doesn't find them?
thanks, dillo
Excellent! ziptool_regress -o 4 junk-at-start.zip get_num_entries 0
is working now.
Here is the result of the tests (not UWP, 10da88f79a72107fb22c4994106ce666fe6cd506):
1> Start 1: add_dir.test
1> 1/134 Test #1: add_dir.test ..................................... Passed 0.36 sec
1> Start 2: add_from_buffer.test
1> 2/134 Test #2: add_from_buffer.test ............................. Passed 0.16 sec
1> Start 3: add_from_file.test
1> 3/134 Test #3: add_from_file.test ............................... Passed 0.15 sec
1> Start 4: add_from_file_duplicate.test
1> 4/134 Test #4: add_from_file_duplicate.test ..................... Passed 0.16 sec
1> Start 5: add_from_file_twice_duplicate.test
1> 5/134 Test #5: add_from_file_twice_duplicate.test ............... Passed 0.15 sec
1> Start 6: add_from_filep.test
1> 6/134 Test #6: add_from_filep.test .............................. Passed 0.17 sec
1> Start 7: add_from_stdin.test
1> 7/134 Test #7: add_from_stdin.test ..............................***Skipped 0.12 sec
1> Start 8: add_from_zip_closed.test
1> 8/134 Test #8: add_from_zip_closed.test ......................... Passed 0.15 sec
1> Start 9: add_from_zip_deflated.test
1> 9/134 Test #9: add_from_zip_deflated.test ....................... Passed 0.16 sec
1> Start 10: add_from_zip_deflated2.test
1> 10/134 Test #10: add_from_zip_deflated2.test ...................... Passed 0.16 sec
1> Start 11: add_from_zip_partial_deflated.test
1> 11/134 Test #11: add_from_zip_partial_deflated.test ............... Passed 0.16 sec
1> Start 12: add_from_zip_partial_stored.test
1> 12/134 Test #12: add_from_zip_partial_stored.test ................. Passed 0.16 sec
1> Start 13: add_from_zip_stored.test
1> 13/134 Test #13: add_from_zip_stored.test ......................... Passed 0.16 sec
1> Start 14: add_stored.test
1> 14/134 Test #14: add_stored.test .................................. Passed 0.15 sec
1> Start 15: add_stored_in_memory.test
1> 15/134 Test #15: add_stored_in_memory.test ........................ Passed 0.15 sec
1> Start 16: buffer-fragment-read.test
1> 16/134 Test #16: buffer-fragment-read.test ........................ Passed 0.16 sec
1> Start 17: buffer-fragment-write.test
1> 17/134 Test #17: buffer-fragment-write.test ....................... Passed 0.16 sec
1> Start 18: cancel_45.test
1> 18/134 Test #18: cancel_45.test ................................... Passed 0.15 sec
1> Start 19: cancel_90.test
1> 19/134 Test #19: cancel_90.test ................................... Passed 0.15 sec
1> Start 20: clone-buffer-add.test
1> 20/134 Test #20: clone-buffer-add.test ............................ Passed 0.15 sec
1> Start 21: clone-buffer-delete.test
1> 21/134 Test #21: clone-buffer-delete.test ......................... Passed 0.15 sec
1> Start 22: clone-buffer-replace.test
1> 22/134 Test #22: clone-buffer-replace.test ........................ Passed 0.15 sec
1> Start 23: clone-fs-add.test
1> 23/134 Test #23: clone-fs-add.test ................................***Skipped 0.13 sec
1> Start 24: clone-fs-delete.test
1> 24/134 Test #24: clone-fs-delete.test .............................***Skipped 0.13 sec
1> Start 25: clone-fs-replace.test
1> 25/134 Test #25: clone-fs-replace.test ............................***Skipped 0.13 sec
1> Start 26: cm-default.test
1> 26/134 Test #26: cm-default.test .................................. Passed 0.16 sec
1> Start 27: count_entries.test
1> 27/134 Test #27: count_entries.test ...............................***Failed 0.12 sec
1> Start 28: decrypt-correct-password-aes128.test
1> 28/134 Test #28: decrypt-correct-password-aes128.test ............. Passed 0.15 sec
1> Start 29: decrypt-correct-password-aes192.test
1> 29/134 Test #29: decrypt-correct-password-aes192.test ............. Passed 0.15 sec
1> Start 30: decrypt-correct-password-aes256.test
1> 30/134 Test #30: decrypt-correct-password-aes256.test ............. Passed 0.15 sec
1> Start 31: decrypt-correct-password-pkware.test
1> 31/134 Test #31: decrypt-correct-password-pkware.test ............. Passed 0.15 sec
1> Start 32: decrypt-no-password-aes256.test
1> 32/134 Test #32: decrypt-no-password-aes256.test .................. Passed 0.14 sec
1> Start 33: decrypt-wrong-password-aes128.test
1> 33/134 Test #33: decrypt-wrong-password-aes128.test ............... Passed 0.15 sec
1> Start 34: decrypt-wrong-password-aes192.test
1> 34/134 Test #34: decrypt-wrong-password-aes192.test ............... Passed 0.15 sec
1> Start 35: decrypt-wrong-password-aes256.test
1> 35/134 Test #35: decrypt-wrong-password-aes256.test ............... Passed 0.15 sec
1> Start 36: decrypt-wrong-password-pkware.test
1> 36/134 Test #36: decrypt-wrong-password-pkware.test ............... Passed 0.14 sec
1> Start 37: delete_add_same.test
1> 37/134 Test #37: delete_add_same.test ............................. Passed 0.16 sec
1> Start 38: delete_invalid.test
1> 38/134 Test #38: delete_invalid.test .............................. Passed 0.14 sec
1> Start 39: delete_last.test
1> 39/134 Test #39: delete_last.test ................................. Passed 0.16 sec
1> Start 40: delete_multiple_last.test
1> 40/134 Test #40: delete_multiple_last.test ........................ Passed 0.14 sec
1> Start 41: delete_multiple_partial.test
1> 41/134 Test #41: delete_multiple_partial.test ..................... Passed 0.17 sec
1> Start 42: delete_renamed_rename.test
1> 42/134 Test #42: delete_renamed_rename.test ....................... Passed 0.16 sec
1> Start 43: encrypt.test
1> 43/134 Test #43: encrypt.test ..................................... Passed 0.14 sec
1> Start 44: encryption-nonrandom-aes128.test
1> 44/134 Test #44: encryption-nonrandom-aes128.test .................***Failed 0.15 sec
1> Start 45: encryption-nonrandom-aes192.test
1> 45/134 Test #45: encryption-nonrandom-aes192.test .................***Failed 0.15 sec
1> Start 46: encryption-nonrandom-aes256.test
1> 46/134 Test #46: encryption-nonrandom-aes256.test .................***Failed 0.15 sec
1> Start 47: encryption-nonrandom-pkware.test
1> 47/134 Test #47: encryption-nonrandom-pkware.test .................***Failed 0.15 sec
1> Start 48: encryption-remove.test
1> 48/134 Test #48: encryption-remove.test ........................... Passed 0.15 sec
1> Start 49: extra_add.test
1> 49/134 Test #49: extra_add.test ................................... Passed 0.15 sec
1> Start 50: extra_add_multiple.test
1> 50/134 Test #50: extra_add_multiple.test .......................... Passed 0.15 sec
1> Start 51: extra_count.test
1> 51/134 Test #51: extra_count.test ................................. Passed 0.15 sec
1> Start 52: extra_count_by_id.test
1> 52/134 Test #52: extra_count_by_id.test ........................... Passed 0.16 sec
1> Start 53: extra_count_ignore_zip64.test
1> 53/134 Test #53: extra_count_ignore_zip64.test ....................***Failed 0.12 sec
1> Start 54: extra_delete.test
1> 54/134 Test #54: extra_delete.test ................................ Passed 0.15 sec
1> Start 55: extra_delete_by_id.test
1> 55/134 Test #55: extra_delete_by_id.test .......................... Passed 0.15 sec
1> Start 56: extra_field_align.test
1> 56/134 Test #56: extra_field_align.test ........................... Passed 0.21 sec
1> Start 57: extra_get.test
1> 57/134 Test #57: extra_get.test ................................... Passed 0.15 sec
1> Start 58: extra_get_by_id.test
1> 58/134 Test #58: extra_get_by_id.test ............................. Passed 0.15 sec
1> Start 59: extra_set.test
1> 59/134 Test #59: extra_set.test ................................... Passed 0.15 sec
1> Start 60: extra_set_modify_c.test
1> 60/134 Test #60: extra_set_modify_c.test .......................... Passed 0.16 sec
1> Start 61: extra_set_modify_l.test
1> 61/134 Test #61: extra_set_modify_l.test .......................... Passed 0.16 sec
1> Start 62: fdopen_ok.test
1> 62/134 Test #62: fdopen_ok.test ...................................***Skipped 0.12 sec
1> Start 63: file_comment_encmismatch.test
1> 63/134 Test #63: file_comment_encmismatch.test .................... Passed 0.16 sec
1> Start 64: fopen_unchanged.test
1> 64/134 Test #64: fopen_unchanged.test ............................. Passed 0.15 sec
1> Start 65: fread.test
1> 65/134 Test #65: fread.test ....................................... Passed 0.17 sec
1> Start 66: fseek_deflated.test
1> 66/134 Test #66: fseek_deflated.test .............................. Passed 0.16 sec
1> Start 67: fseek_fail.test
1> 67/134 Test #67: fseek_fail.test .................................. Passed 0.15 sec
1> Start 68: fseek_ok.test
1> 68/134 Test #68: fseek_ok.test .................................... Passed 0.15 sec
1> Start 69: get_comment.test
1> 69/134 Test #69: get_comment.test ................................. Passed 0.15 sec
1> Start 70: junk_at_end.test
1> 70/134 Test #70: junk_at_end.test ................................. Passed 0.15 sec
1> Start 71: junk_at_start.test
1> 71/134 Test #71: junk_at_start.test ............................... Passed 0.15 sec
1> Start 72: name_locate.test
1> 72/134 Test #72: name_locate.test ................................. Passed 0.15 sec
1> Start 73: open_cons_extrabytes.test
1> 73/134 Test #73: open_cons_extrabytes.test ........................ Passed 0.15 sec
1> Start 74: open_empty.test
1> 74/134 Test #74: open_empty.test .................................. Passed 0.15 sec
1> Start 75: open_empty_2.test
1> 75/134 Test #75: open_empty_2.test ................................ Passed 0.14 sec
1> Start 76: open_extrabytes.test
1> 76/134 Test #76: open_extrabytes.test ............................. Passed 0.14 sec
1> Start 77: open_file_count.test
1> 77/134 Test #77: open_file_count.test ............................. Passed 0.16 sec
1> Start 78: open_filename_duplicate.test
1> 78/134 Test #78: open_filename_duplicate.test ..................... Passed 0.15 sec
1> Start 79: open_filename_duplicate_consistency.test
1> 79/134 Test #79: open_filename_duplicate_consistency.test ......... Passed 0.14 sec
1> Start 80: open_filename_duplicate_empty.test
1> 80/134 Test #80: open_filename_duplicate_empty.test ............... Passed 0.15 sec
1> Start 81: open_filename_duplicate_empty_consistency.test
1> 81/134 Test #81: open_filename_duplicate_empty_consistency.test ... Passed 0.14 sec
1> Start 82: open_filename_empty.test
1> 82/134 Test #82: open_filename_empty.test ......................... Passed 0.15 sec
1> Start 83: open_incons.test
1> 83/134 Test #83: open_incons.test ................................. Passed 0.27 sec
1> Start 84: open_many_fail.test
1> 84/134 Test #84: open_many_fail.test ..............................***Failed 0.12 sec
1> Start 85: open_many_ok.test
1> 85/134 Test #85: open_many_ok.test ................................***Failed 0.12 sec
1> Start 86: open_multidisk.test
1> 86/134 Test #86: open_multidisk.test .............................. Passed 0.15 sec
1> Start 87: open_new_but_exists.test
1> 87/134 Test #87: open_new_but_exists.test ......................... Passed 0.15 sec
1> Start 88: open_new_ok.test
1> 88/134 Test #88: open_new_ok.test ................................. Passed 0.14 sec
1> Start 89: open_nonarchive.test
1> 89/134 Test #89: open_nonarchive.test ............................. Passed 0.15 sec
1> Start 90: open_nosuchfile.test
1> 90/134 Test #90: open_nosuchfile.test ............................. Passed 0.14 sec
1> Start 91: open_ok.test
1> 91/134 Test #91: open_ok.test ..................................... Passed 0.15 sec
1> Start 92: open_too_short.test
1> 92/134 Test #92: open_too_short.test .............................. Passed 0.15 sec
1> Start 93: open_truncate.test
1> 93/134 Test #93: open_truncate.test ............................... Passed 0.14 sec
1> Start 94: open_zip64_3mf.test
1> 94/134 Test #94: open_zip64_3mf.test .............................. Passed 0.15 sec
1> Start 95: open_zip64_ok.test
1> 95/134 Test #95: open_zip64_ok.test ............................... Passed 0.15 sec
1> Start 96: preload.test
1> 96/134 Test #96: preload.test .....................................***Failed 0.16 sec
1> Start 97: progress.test
1> 97/134 Test #97: progress.test .................................... Passed 0.16 sec
1> Start 98: rename_ascii.test
1> 98/134 Test #98: rename_ascii.test ................................ Passed 0.15 sec
1> Start 99: rename_cp437.test
1> 99/134 Test #99: rename_cp437.test ................................ Passed 0.16 sec
1> Start 100: rename_deleted.test
1>100/134 Test #100: rename_deleted.test .............................. Passed 0.16 sec
1> Start 101: rename_fail.test
1>101/134 Test #101: rename_fail.test ................................. Passed 0.15 sec
1> Start 102: rename_ok.test
1>102/134 Test #102: rename_ok.test ................................... Passed 0.15 sec
1> Start 103: rename_utf8.test
1>103/134 Test #103: rename_utf8.test ................................. Passed 0.15 sec
1> Start 104: rename_utf8_encmismatch.test
1>104/134 Test #104: rename_utf8_encmismatch.test ..................... Passed 0.15 sec
1> Start 105: set_comment_all.test
1>105/134 Test #105: set_comment_all.test ............................. Passed 0.16 sec
1> Start 106: set_comment_localonly.test
1>106/134 Test #106: set_comment_localonly.test ....................... Passed 0.16 sec
1> Start 107: set_comment_removeglobal.test
1>107/134 Test #107: set_comment_removeglobal.test .................... Passed 0.16 sec
1> Start 108: set_comment_revert.test
1>108/134 Test #108: set_comment_revert.test .......................... Passed 0.15 sec
1> Start 109: set_compression_bzip2_to_deflate.test
1>109/134 Test #109: set_compression_bzip2_to_deflate.test ............ Passed 0.16 sec
1> Start 110: set_compression_deflate_to_bzip2.test
1>110/134 Test #110: set_compression_deflate_to_bzip2.test ............ Passed 0.16 sec
1> Start 111: set_compression_deflate_to_deflate.test
1>111/134 Test #111: set_compression_deflate_to_deflate.test .......... Passed 0.15 sec
1> Start 112: set_compression_deflate_to_store.test
1>112/134 Test #112: set_compression_deflate_to_store.test ............ Passed 0.16 sec
1> Start 113: set_compression_store_to_bzip2.test
1>113/134 Test #113: set_compression_store_to_bzip2.test .............. Passed 0.16 sec
1> Start 114: set_compression_store_to_deflate.test
1>114/134 Test #114: set_compression_store_to_deflate.test ............ Passed 0.15 sec
1> Start 115: set_compression_store_to_store.test
1>115/134 Test #115: set_compression_store_to_store.test .............. Passed 0.15 sec
1> Start 116: set_compression_store_to_xz.test
1>116/134 Test #116: set_compression_store_to_xz.test ................. Passed 0.16 sec
1> Start 117: set_compression_unknown.test
1>117/134 Test #117: set_compression_unknown.test ..................... Passed 0.15 sec
1> Start 118: set_compression_xz_to_store.test
1>118/134 Test #118: set_compression_xz_to_store.test ................. Passed 0.16 sec
1> Start 119: set_file_dostime.test
1>119/134 Test #119: set_file_dostime.test ............................ Passed 0.15 sec
1> Start 120: stat_index_cp437_guess.test
1>120/134 Test #120: stat_index_cp437_guess.test ...................... Passed 0.16 sec
1> Start 121: stat_index_cp437_raw.test
1>121/134 Test #121: stat_index_cp437_raw.test ........................ Passed 0.15 sec
1> Start 122: stat_index_cp437_strict.test
1>122/134 Test #122: stat_index_cp437_strict.test ..................... Passed 0.15 sec
1> Start 123: stat_index_fileorder.test
1>123/134 Test #123: stat_index_fileorder.test ........................ Passed 0.15 sec
1> Start 124: stat_index_streamed.test
1>124/134 Test #124: stat_index_streamed.test ......................... Passed 0.15 sec
1> Start 125: stat_index_streamed_zip64.test
1>125/134 Test #125: stat_index_streamed_zip64.test ................... Passed 0.15 sec
1> Start 126: stat_index_utf8_guess.test
1>126/134 Test #126: stat_index_utf8_guess.test ....................... Passed 0.15 sec
1> Start 127: stat_index_utf8_raw.test
1>127/134 Test #127: stat_index_utf8_raw.test ......................... Passed 0.15 sec
1> Start 128: stat_index_utf8_strict.test
1>128/134 Test #128: stat_index_utf8_strict.test ...................... Passed 0.15 sec
1> Start 129: stat_index_utf8_unmarked_strict.test
1>129/134 Test #129: stat_index_utf8_unmarked_strict.test ............. Passed 0.15 sec
1> Start 130: stat_index_zip64.test
1>130/134 Test #130: stat_index_zip64.test ............................***Failed 0.12 sec
1> Start 131: utf-8-standardization.test
1>131/134 Test #131: utf-8-standardization.test ....................... Passed 0.15 sec
1> Start 132: zip-in-archive-comment.test
1>132/134 Test #132: zip-in-archive-comment.test ...................... Passed 0.15 sec
1> Start 133: zip64_creation.test
1>133/134 Test #133: zip64_creation.test ..............................***Failed 69.31 sec
1> Start 134: zip64_stored_creation.test
1>134/134 Test #134: zip64_stored_creation.test ....................... Passed 11.33 sec
1>
1>92% tests passed, 11 tests failed out of 134
1>
1>Total Test time (real) = 101.37 sec
1>
1>The following tests did not run:
1> 7 - add_from_stdin.test (Skipped)
1> 23 - clone-fs-add.test (Skipped)
1> 24 - clone-fs-delete.test (Skipped)
1> 25 - clone-fs-replace.test (Skipped)
1> 62 - fdopen_ok.test (Skipped)
1>
1>The following tests FAILED:
1> 27 - count_entries.test (Failed)
1> 44 - encryption-nonrandom-aes128.test (Failed)
1> 45 - encryption-nonrandom-aes192.test (Failed)
1> 46 - encryption-nonrandom-aes256.test (Failed)
1> 47 - encryption-nonrandom-pkware.test (Failed)
1> 53 - extra_count_ignore_zip64.test (Failed)
1> 84 - open_many_fail.test (Failed)
1> 85 - open_many_ok.test (Failed)
1> 96 - preload.test (Failed)
1> 130 - stat_index_zip64.test (Failed)
1> 133 - zip64_creation.test (Failed)
1>Errors while running CTest
Where did you run those tests? Could you run them with the environment variable VERBOSE set to YES, so we see what's going wrong?
Thanks.
Please let me know if https://github.com/nih-at/libzip/commit/223c57e0d4ae0f93b7f9f839d6196be3981d6f0f improves the situation for you.
223c57e works, thank you very much! I have completely deleted everything and cloned it again to make sure I have applied all changes. I noticed a few more problems, which I worked on in PR #175.
I'll run the tests again right away.
Hm, would it be possible to include more queries in CMake? The test system drives me crazy, because there are always some programs/commands being executed which are assumed to be present without testing if the assumption is correct. Example:
3/134 Testing: add_from_file.test
3/134 Test: add_from_file.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/add_from_file.test"
Directory: D:/libziptest/build/regress
"add_from_file.test" start time: May 18 16:45 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
Der Befehl "diff" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
add_from_file -- FAIL: files
<end of output>
Test time = 0.17 sec
----------------------------------------------------------
Test Failed.
"add_from_file.test" end time: May 18 16:45 Mitteleuropäische Sommerzeit
"add_from_file.test" time elapsed: 00:00:00
----------------------------------------------------------
Why does DIFF suddenly appear here? Why does CMake not check if DIFF is present? Yes, under Linux this is found on 90% of all installations, but not under Windows.
1>Test project D:/libziptest/build
1> Start 1: add_dir.test
1> 1/134 Test #1: add_dir.test ..................................... Passed 0.15 sec
1> Start 2: add_from_buffer.test
1> 2/134 Test #2: add_from_buffer.test ............................. Passed 0.15 sec
1> Start 3: add_from_file.test
1> 3/134 Test #3: add_from_file.test ............................... Passed 0.21 sec
1> Start 4: add_from_file_duplicate.test
1> 4/134 Test #4: add_from_file_duplicate.test ..................... Passed 0.18 sec
1> Start 5: add_from_file_twice_duplicate.test
1> 5/134 Test #5: add_from_file_twice_duplicate.test ............... Passed 0.18 sec
1> Start 6: add_from_filep.test
1> 6/134 Test #6: add_from_filep.test ..............................***Failed 0.18 sec
1> Start 7: add_from_stdin.test
1> 7/134 Test #7: add_from_stdin.test ..............................***Skipped 0.12 sec
1> Start 8: add_from_zip_closed.test
1> 8/134 Test #8: add_from_zip_closed.test ......................... Passed 0.18 sec
1> Start 9: add_from_zip_deflated.test
1> 9/134 Test #9: add_from_zip_deflated.test ....................... Passed 0.19 sec
1> Start 10: add_from_zip_deflated2.test
1> 10/134 Test #10: add_from_zip_deflated2.test ...................... Passed 0.19 sec
1> Start 11: add_from_zip_partial_deflated.test
1> 11/134 Test #11: add_from_zip_partial_deflated.test ............... Passed 0.18 sec
1> Start 12: add_from_zip_partial_stored.test
1> 12/134 Test #12: add_from_zip_partial_stored.test ................. Passed 0.18 sec
1> Start 13: add_from_zip_stored.test
1> 13/134 Test #13: add_from_zip_stored.test ......................... Passed 0.17 sec
1> Start 14: add_stored.test
1> 14/134 Test #14: add_stored.test .................................. Passed 0.15 sec
1> Start 15: add_stored_in_memory.test
1> 15/134 Test #15: add_stored_in_memory.test ........................ Passed 0.15 sec
1> Start 16: buffer-fragment-read.test
1> 16/134 Test #16: buffer-fragment-read.test ........................ Passed 0.16 sec
1> Start 17: buffer-fragment-write.test
1> 17/134 Test #17: buffer-fragment-write.test ....................... Passed 0.16 sec
1> Start 18: cancel_45.test
1> 18/134 Test #18: cancel_45.test ................................... Passed 0.18 sec
1> Start 19: cancel_90.test
1> 19/134 Test #19: cancel_90.test ................................... Passed 0.17 sec
1> Start 20: clone-buffer-add.test
1> 20/134 Test #20: clone-buffer-add.test ............................ Passed 0.18 sec
1> Start 21: clone-buffer-delete.test
1> 21/134 Test #21: clone-buffer-delete.test ......................... Passed 0.18 sec
1> Start 22: clone-buffer-replace.test
1> 22/134 Test #22: clone-buffer-replace.test ........................ Passed 0.18 sec
1> Start 23: clone-fs-add.test
1> 23/134 Test #23: clone-fs-add.test ................................***Skipped 0.13 sec
1> Start 24: clone-fs-delete.test
1> 24/134 Test #24: clone-fs-delete.test .............................***Skipped 0.13 sec
1> Start 25: clone-fs-replace.test
1> 25/134 Test #25: clone-fs-replace.test ............................***Skipped 0.13 sec
1> Start 26: cm-default.test
1> 26/134 Test #26: cm-default.test .................................. Passed 0.19 sec
1> Start 27: count_entries.test
1> 27/134 Test #27: count_entries.test ............................... Passed 2.60 sec
1> Start 28: decrypt-correct-password-aes128.test
1> 28/134 Test #28: decrypt-correct-password-aes128.test ............. Passed 0.17 sec
1> Start 29: decrypt-correct-password-aes192.test
1> 29/134 Test #29: decrypt-correct-password-aes192.test ............. Passed 0.16 sec
1> Start 30: decrypt-correct-password-aes256.test
1> 30/134 Test #30: decrypt-correct-password-aes256.test ............. Passed 0.18 sec
1> Start 31: decrypt-correct-password-pkware.test
1> 31/134 Test #31: decrypt-correct-password-pkware.test ............. Passed 0.17 sec
1> Start 32: decrypt-no-password-aes256.test
1> 32/134 Test #32: decrypt-no-password-aes256.test .................. Passed 0.17 sec
1> Start 33: decrypt-wrong-password-aes128.test
1> 33/134 Test #33: decrypt-wrong-password-aes128.test ............... Passed 0.18 sec
1> Start 34: decrypt-wrong-password-aes192.test
1> 34/134 Test #34: decrypt-wrong-password-aes192.test ............... Passed 0.18 sec
1> Start 35: decrypt-wrong-password-aes256.test
1> 35/134 Test #35: decrypt-wrong-password-aes256.test ............... Passed 0.18 sec
1> Start 36: decrypt-wrong-password-pkware.test
1> 36/134 Test #36: decrypt-wrong-password-pkware.test ............... Passed 0.16 sec
1> Start 37: delete_add_same.test
1> 37/134 Test #37: delete_add_same.test ............................. Passed 0.16 sec
1> Start 38: delete_invalid.test
1> 38/134 Test #38: delete_invalid.test .............................. Passed 0.16 sec
1> Start 39: delete_last.test
1> 39/134 Test #39: delete_last.test ................................. Passed 0.14 sec
1> Start 40: delete_multiple_last.test
1> 40/134 Test #40: delete_multiple_last.test ........................ Passed 0.14 sec
1> Start 41: delete_multiple_partial.test
1> 41/134 Test #41: delete_multiple_partial.test ..................... Passed 0.16 sec
1> Start 42: delete_renamed_rename.test
1> 42/134 Test #42: delete_renamed_rename.test ....................... Passed 0.16 sec
1> Start 43: encrypt.test
1> 43/134 Test #43: encrypt.test ..................................... Passed 0.16 sec
1> Start 44: encryption-nonrandom-aes128.test
1> 44/134 Test #44: encryption-nonrandom-aes128.test .................***Failed 0.18 sec
1> Start 45: encryption-nonrandom-aes192.test
1> 45/134 Test #45: encryption-nonrandom-aes192.test .................***Failed 0.17 sec
1> Start 46: encryption-nonrandom-aes256.test
1> 46/134 Test #46: encryption-nonrandom-aes256.test .................***Failed 0.18 sec
1> Start 47: encryption-nonrandom-pkware.test
1> 47/134 Test #47: encryption-nonrandom-pkware.test .................***Failed 0.18 sec
1> Start 48: encryption-remove.test
1> 48/134 Test #48: encryption-remove.test ........................... Passed 0.17 sec
1> Start 49: extra_add.test
1> 49/134 Test #49: extra_add.test ................................... Passed 0.16 sec
1> Start 50: extra_add_multiple.test
1> 50/134 Test #50: extra_add_multiple.test .......................... Passed 0.15 sec
1> Start 51: extra_count.test
1> 51/134 Test #51: extra_count.test ................................. Passed 0.15 sec
1> Start 52: extra_count_by_id.test
1> 52/134 Test #52: extra_count_by_id.test ........................... Passed 0.15 sec
1> Start 53: extra_count_ignore_zip64.test
1> 53/134 Test #53: extra_count_ignore_zip64.test .................... Passed 0.16 sec
1> Start 54: extra_delete.test
1> 54/134 Test #54: extra_delete.test ................................ Passed 0.15 sec
1> Start 55: extra_delete_by_id.test
1> 55/134 Test #55: extra_delete_by_id.test .......................... Passed 0.15 sec
1> Start 56: extra_field_align.test
1> 56/134 Test #56: extra_field_align.test ........................... Passed 0.52 sec
1> Start 57: extra_get.test
1> 57/134 Test #57: extra_get.test ................................... Passed 0.17 sec
1> Start 58: extra_get_by_id.test
1> 58/134 Test #58: extra_get_by_id.test ............................. Passed 0.17 sec
1> Start 59: extra_set.test
1> 59/134 Test #59: extra_set.test ................................... Passed 0.17 sec
1> Start 60: extra_set_modify_c.test
1> 60/134 Test #60: extra_set_modify_c.test .......................... Passed 0.16 sec
1> Start 61: extra_set_modify_l.test
1> 61/134 Test #61: extra_set_modify_l.test .......................... Passed 0.16 sec
1> Start 62: fdopen_ok.test
1> 62/134 Test #62: fdopen_ok.test ...................................***Skipped 0.12 sec
1> Start 63: file_comment_encmismatch.test
1> 63/134 Test #63: file_comment_encmismatch.test .................... Passed 0.15 sec
1> Start 64: fopen_unchanged.test
1> 64/134 Test #64: fopen_unchanged.test ............................. Passed 0.14 sec
1> Start 65: fread.test
1> 65/134 Test #65: fread.test ....................................... Passed 0.16 sec
1> Start 66: fseek_deflated.test
1> 66/134 Test #66: fseek_deflated.test .............................. Passed 0.15 sec
1> Start 67: fseek_fail.test
1> 67/134 Test #67: fseek_fail.test .................................. Passed 0.15 sec
1> Start 68: fseek_ok.test
1> 68/134 Test #68: fseek_ok.test .................................... Passed 0.15 sec
1> Start 69: get_comment.test
1> 69/134 Test #69: get_comment.test ................................. Passed 0.15 sec
1> Start 70: junk_at_end.test
1> 70/134 Test #70: junk_at_end.test ................................. Passed 0.17 sec
1> Start 71: junk_at_start.test
1> 71/134 Test #71: junk_at_start.test ............................... Passed 0.17 sec
1> Start 72: name_locate.test
1> 72/134 Test #72: name_locate.test ................................. Passed 0.15 sec
1> Start 73: open_cons_extrabytes.test
1> 73/134 Test #73: open_cons_extrabytes.test ........................ Passed 0.18 sec
1> Start 74: open_empty.test
1> 74/134 Test #74: open_empty.test .................................. Passed 0.15 sec
1> Start 75: open_empty_2.test
1> 75/134 Test #75: open_empty_2.test ................................ Passed 0.17 sec
1> Start 76: open_extrabytes.test
1> 76/134 Test #76: open_extrabytes.test ............................. Passed 0.17 sec
1> Start 77: open_file_count.test
1> 77/134 Test #77: open_file_count.test ............................. Passed 0.24 sec
1> Start 78: open_filename_duplicate.test
1> 78/134 Test #78: open_filename_duplicate.test ..................... Passed 0.18 sec
1> Start 79: open_filename_duplicate_consistency.test
1> 79/134 Test #79: open_filename_duplicate_consistency.test ......... Passed 0.17 sec
1> Start 80: open_filename_duplicate_empty.test
1> 80/134 Test #80: open_filename_duplicate_empty.test ............... Passed 0.18 sec
1> Start 81: open_filename_duplicate_empty_consistency.test
1> 81/134 Test #81: open_filename_duplicate_empty_consistency.test ... Passed 0.16 sec
1> Start 82: open_filename_empty.test
1> 82/134 Test #82: open_filename_empty.test ......................... Passed 0.15 sec
1> Start 83: open_incons.test
1> 83/134 Test #83: open_incons.test ................................. Passed 1.12 sec
1> Start 84: open_many_fail.test
1> 84/134 Test #84: open_many_fail.test .............................. Passed 1.20 sec
1> Start 85: open_many_ok.test
1> 85/134 Test #85: open_many_ok.test ................................ Passed 11.74 sec
1> Start 86: open_multidisk.test
1> 86/134 Test #86: open_multidisk.test .............................. Passed 0.17 sec
1> Start 87: open_new_but_exists.test
1> 87/134 Test #87: open_new_but_exists.test ......................... Passed 0.15 sec
1> Start 88: open_new_ok.test
1> 88/134 Test #88: open_new_ok.test ................................. Passed 0.14 sec
1> Start 89: open_nonarchive.test
1> 89/134 Test #89: open_nonarchive.test ............................. Passed 0.17 sec
1> Start 90: open_nosuchfile.test
1> 90/134 Test #90: open_nosuchfile.test ............................. Passed 0.14 sec
1> Start 91: open_ok.test
1> 91/134 Test #91: open_ok.test ..................................... Passed 0.15 sec
1> Start 92: open_too_short.test
1> 92/134 Test #92: open_too_short.test .............................. Passed 0.18 sec
1> Start 93: open_truncate.test
1> 93/134 Test #93: open_truncate.test ............................... Passed 0.14 sec
1> Start 94: open_zip64_3mf.test
1> 94/134 Test #94: open_zip64_3mf.test .............................. Passed 0.15 sec
1> Start 95: open_zip64_ok.test
1> 95/134 Test #95: open_zip64_ok.test ............................... Passed 0.16 sec
1> Start 96: preload.test
1> 96/134 Test #96: preload.test .....................................***Failed 0.14 sec
1> Start 97: progress.test
1> 97/134 Test #97: progress.test .................................... Passed 0.19 sec
1> Start 98: rename_ascii.test
1> 98/134 Test #98: rename_ascii.test ................................ Passed 0.18 sec
1> Start 99: rename_cp437.test
1> 99/134 Test #99: rename_cp437.test ................................ Passed 0.15 sec
1> Start 100: rename_deleted.test
1>100/134 Test #100: rename_deleted.test .............................. Passed 0.16 sec
1> Start 101: rename_fail.test
1>101/134 Test #101: rename_fail.test ................................. Passed 0.15 sec
1> Start 102: rename_ok.test
1>102/134 Test #102: rename_ok.test ................................... Passed 0.15 sec
1> Start 103: rename_utf8.test
1>103/134 Test #103: rename_utf8.test ................................. Passed 0.16 sec
1> Start 104: rename_utf8_encmismatch.test
1>104/134 Test #104: rename_utf8_encmismatch.test ..................... Passed 0.17 sec
1> Start 105: set_comment_all.test
1>105/134 Test #105: set_comment_all.test ............................. Passed 0.16 sec
1> Start 106: set_comment_localonly.test
1>106/134 Test #106: set_comment_localonly.test ....................... Passed 0.15 sec
1> Start 107: set_comment_removeglobal.test
1>107/134 Test #107: set_comment_removeglobal.test .................... Passed 0.16 sec
1> Start 108: set_comment_revert.test
1>108/134 Test #108: set_comment_revert.test .......................... Passed 0.15 sec
1> Start 109: set_compression_bzip2_to_deflate.test
1>109/134 Test #109: set_compression_bzip2_to_deflate.test ............ Passed 0.16 sec
1> Start 110: set_compression_deflate_to_bzip2.test
1>110/134 Test #110: set_compression_deflate_to_bzip2.test ............ Passed 0.16 sec
1> Start 111: set_compression_deflate_to_deflate.test
1>111/134 Test #111: set_compression_deflate_to_deflate.test .......... Passed 0.15 sec
1> Start 112: set_compression_deflate_to_store.test
1>112/134 Test #112: set_compression_deflate_to_store.test ............ Passed 0.16 sec
1> Start 113: set_compression_store_to_bzip2.test
1>113/134 Test #113: set_compression_store_to_bzip2.test .............. Passed 0.16 sec
1> Start 114: set_compression_store_to_deflate.test
1>114/134 Test #114: set_compression_store_to_deflate.test ............ Passed 0.15 sec
1> Start 115: set_compression_store_to_store.test
1>115/134 Test #115: set_compression_store_to_store.test .............. Passed 0.15 sec
1> Start 116: set_compression_store_to_xz.test
1>116/134 Test #116: set_compression_store_to_xz.test ................. Passed 0.16 sec
1> Start 117: set_compression_unknown.test
1>117/134 Test #117: set_compression_unknown.test ..................... Passed 0.15 sec
1> Start 118: set_compression_xz_to_store.test
1>118/134 Test #118: set_compression_xz_to_store.test ................. Passed 0.16 sec
1> Start 119: set_file_dostime.test
1>119/134 Test #119: set_file_dostime.test ............................ Passed 0.17 sec
1> Start 120: stat_index_cp437_guess.test
1>120/134 Test #120: stat_index_cp437_guess.test ...................... Passed 0.15 sec
1> Start 121: stat_index_cp437_raw.test
1>121/134 Test #121: stat_index_cp437_raw.test ........................ Passed 0.15 sec
1> Start 122: stat_index_cp437_strict.test
1>122/134 Test #122: stat_index_cp437_strict.test ..................... Passed 0.15 sec
1> Start 123: stat_index_fileorder.test
1>123/134 Test #123: stat_index_fileorder.test ........................ Passed 0.17 sec
1> Start 124: stat_index_streamed.test
1>124/134 Test #124: stat_index_streamed.test ......................... Passed 0.16 sec
1> Start 125: stat_index_streamed_zip64.test
1>125/134 Test #125: stat_index_streamed_zip64.test ................... Passed 0.17 sec
1> Start 126: stat_index_utf8_guess.test
1>126/134 Test #126: stat_index_utf8_guess.test ....................... Passed 0.15 sec
1> Start 127: stat_index_utf8_raw.test
1>127/134 Test #127: stat_index_utf8_raw.test ......................... Passed 0.15 sec
1> Start 128: stat_index_utf8_strict.test
1>128/134 Test #128: stat_index_utf8_strict.test ...................... Passed 0.15 sec
1> Start 129: stat_index_utf8_unmarked_strict.test
1>129/134 Test #129: stat_index_utf8_unmarked_strict.test ............. Passed 0.15 sec
1> Start 130: stat_index_zip64.test
1>130/134 Test #130: stat_index_zip64.test ............................ Passed 0.18 sec
1> Start 131: utf-8-standardization.test
1>131/134 Test #131: utf-8-standardization.test ....................... Passed 0.18 sec
1> Start 132: zip-in-archive-comment.test
1>132/134 Test #132: zip-in-archive-comment.test ...................... Passed 0.15 sec
1> Start 133: zip64_creation.test
1>133/134 Test #133: zip64_creation.test .............................. Passed 73.37 sec
1> Start 134: zip64_stored_creation.test
1>134/134 Test #134: zip64_stored_creation.test ....................... Passed 11.15 sec
1>
1>96% tests passed, 6 tests failed out of 134
1>
1>Total Test time (real) = 122.87 sec
1>
1>The following tests did not run:
1> 7 - add_from_stdin.test (Skipped)
1> 23 - clone-fs-add.test (Skipped)
1> 24 - clone-fs-delete.test (Skipped)
1> 25 - clone-fs-replace.test (Skipped)
1> 62 - fdopen_ok.test (Skipped)
1>
1>The following tests FAILED:
1> 6 - add_from_filep.test (Failed)
1> 44 - encryption-nonrandom-aes128.test (Failed)
1> 45 - encryption-nonrandom-aes192.test (Failed)
1> 46 - encryption-nonrandom-aes256.test (Failed)
1> 47 - encryption-nonrandom-pkware.test (Failed)
1> 96 - preload.test (Failed)
1>Errors while running CTest
Details:
6/134 Testing: add_from_filep.test
6/134 Test: add_from_filep.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/add_from_filep.test"
Directory: D:/libziptest/build/regress
"add_from_filep.test" start time: May 18 17:19 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
Unexpected exit status:
-0
+1
Unexpected error output:
--- expected
+++ got
+Der Befehl """" ist entweder falsch geschrieben oder
+konnte nicht gefunden werden.
Unexpected files:
--- expected
+++ got
testfile.txt
-testfile.zip
add_from_filep -- FAIL: exit status, error output, files
<end of output>
Test time = 0.18 sec
----------------------------------------------------------
Test Failed.
"add_from_filep.test" end time: May 18 17:19 Mitteleuropäische Sommerzeit
"add_from_filep.test" time elapsed: 00:00:00
----------------------------------------------------------
7/134 Testing: add_from_stdin.test
7/134 Test: add_from_stdin.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/add_from_stdin.test"
Directory: D:/libziptest/build/regress
"add_from_stdin.test" start time: May 18 17:19 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
<end of output>
Test time = 0.12 sec
----------------------------------------------------------
Test Passed.
"add_from_stdin.test" end time: May 18 17:19 Mitteleuropäische Sommerzeit
"add_from_stdin.test" time elapsed: 00:00:00
----------------------------------------------------------
23/134 Testing: clone-fs-add.test
23/134 Test: clone-fs-add.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/clone-fs-add.test"
Directory: D:/libziptest/build/regress
"clone-fs-add.test" start time: May 18 17:19 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
Der Befehl "." ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
clone-fs-add (SKIP) -- precheck failed
<end of output>
Test time = 0.13 sec
----------------------------------------------------------
Test Passed.
"clone-fs-add.test" end time: May 18 17:19 Mitteleuropäische Sommerzeit
"clone-fs-add.test" time elapsed: 00:00:00
----------------------------------------------------------
24/134 Testing: clone-fs-delete.test
24/134 Test: clone-fs-delete.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/clone-fs-delete.test"
Directory: D:/libziptest/build/regress
"clone-fs-delete.test" start time: May 18 17:19 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
Der Befehl "." ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
clone-fs-delete (SKIP) -- precheck failed
<end of output>
Test time = 0.13 sec
----------------------------------------------------------
Test Passed.
"clone-fs-delete.test" end time: May 18 17:19 Mitteleuropäische Sommerzeit
"clone-fs-delete.test" time elapsed: 00:00:00
----------------------------------------------------------
25/134 Testing: clone-fs-replace.test
25/134 Test: clone-fs-replace.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/clone-fs-replace.test"
Directory: D:/libziptest/build/regress
"clone-fs-replace.test" start time: May 18 17:19 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
Der Befehl "." ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
clone-fs-replace (SKIP) -- precheck failed
<end of output>
Test time = 0.13 sec
----------------------------------------------------------
Test Passed.
"clone-fs-replace.test" end time: May 18 17:19 Mitteleuropäische Sommerzeit
"clone-fs-replace.test" time elapsed: 00:00:00
----------------------------------------------------------
44/134 Testing: encryption-nonrandom-aes128.test
44/134 Test: encryption-nonrandom-aes128.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/encryption-nonrandom-aes128.test"
Directory: D:/libziptest/build/regress
"encryption-nonrandom-aes128.test" start time: May 18 17:19 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
Binary files D:/libziptest/src/regress/encrypt-aes128-noentropy.zip and encrypt.zzip differ
encryption-nonrandom-aes128 -- FAIL: files
<end of output>
Test time = 0.18 sec
----------------------------------------------------------
Test Failed.
"encryption-nonrandom-aes128.test" end time: May 18 17:19 Mitteleuropäische Sommerzeit
"encryption-nonrandom-aes128.test" time elapsed: 00:00:00
----------------------------------------------------------
45/134 Testing: encryption-nonrandom-aes192.test
45/134 Test: encryption-nonrandom-aes192.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/encryption-nonrandom-aes192.test"
Directory: D:/libziptest/build/regress
"encryption-nonrandom-aes192.test" start time: May 18 17:19 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
Binary files D:/libziptest/src/regress/encrypt-aes192-noentropy.zip and encrypt.zzip differ
encryption-nonrandom-aes192 -- FAIL: files
<end of output>
Test time = 0.17 sec
----------------------------------------------------------
Test Failed.
"encryption-nonrandom-aes192.test" end time: May 18 17:19 Mitteleuropäische Sommerzeit
"encryption-nonrandom-aes192.test" time elapsed: 00:00:00
----------------------------------------------------------
46/134 Testing: encryption-nonrandom-aes256.test
46/134 Test: encryption-nonrandom-aes256.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/encryption-nonrandom-aes256.test"
Directory: D:/libziptest/build/regress
"encryption-nonrandom-aes256.test" start time: May 18 17:19 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
Binary files D:/libziptest/src/regress/encrypt-aes256-noentropy.zip and encrypt.zzip differ
encryption-nonrandom-aes256 -- FAIL: files
<end of output>
Test time = 0.18 sec
----------------------------------------------------------
Test Failed.
"encryption-nonrandom-aes256.test" end time: May 18 17:19 Mitteleuropäische Sommerzeit
"encryption-nonrandom-aes256.test" time elapsed: 00:00:00
----------------------------------------------------------
47/134 Testing: encryption-nonrandom-pkware.test
47/134 Test: encryption-nonrandom-pkware.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/encryption-nonrandom-pkware.test"
Directory: D:/libziptest/build/regress
"encryption-nonrandom-pkware.test" start time: May 18 17:19 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
Binary files D:/libziptest/src/regress/encrypt-pkware-noentropy.zip and encrypt.zzip differ
encryption-nonrandom-pkware -- FAIL: files
<end of output>
Test time = 0.18 sec
----------------------------------------------------------
Test Failed.
"encryption-nonrandom-pkware.test" end time: May 18 17:19 Mitteleuropäische Sommerzeit
"encryption-nonrandom-pkware.test" time elapsed: 00:00:00
----------------------------------------------------------
62/134 Testing: fdopen_ok.test
62/134 Test: fdopen_ok.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/fdopen_ok.test"
Directory: D:/libziptest/build/regress
"fdopen_ok.test" start time: May 18 17:19 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
<end of output>
Test time = 0.12 sec
----------------------------------------------------------
Test Passed.
"fdopen_ok.test" end time: May 18 17:19 Mitteleuropäische Sommerzeit
"fdopen_ok.test" time elapsed: 00:00:00
----------------------------------------------------------
96/134 Testing: preload.test
96/134 Test: preload.test
Command: "D:/dev/Tools/strawberry-perl-5.30.2.1-64bit-PDL/perl/bin/perl.exe" "D:/libziptest/build/regress/runtest" "--bin-sub-directory" "Debug" "D:/libziptest/src/regress/preload.test"
Directory: D:/libziptest/build/regress
"preload.test" start time: May 18 17:19 Mitteleuropäische Sommerzeit
Output:
----------------------------------------------------------
Unexpected exit status:
-0
+1
Unexpected error output:
--- expected
+++ got
+non-zero byte found
preload -- FAIL: exit status, error output
<end of output>
Test time = 0.14 sec
----------------------------------------------------------
Test Failed.
"preload.test" end time: May 18 17:19 Mitteleuropäische Sommerzeit
"preload.test" time elapsed: 00:00:00
----------------------------------------------------------
Ok, adding the path with diff to the environment variable PATH does not work. You have to write the complete path directly into NiHTest.pm (585). This test environment is really annoying.
Comparing your run to https://ci.appveyor.com/project/nih-at/libzip/builds/32952563/job/ilh90kry997qy4dy I wonder why
44 - encryption-nonrandom-aes128.test (Skipped)
45 - encryption-nonrandom-aes192.test (Skipped)
46 - encryption-nonrandom-aes256.test (Skipped)
47 - encryption-nonrandom-pkware.test (Skipped)
96 - preload.test (Skipped)
are run for you but not in appveyor. Any ideas?
(They need to preload a shared object to get rid of the randomness so we can test the encryption module.)
fd_open.ok
should not run because we don't expect to be able to provide pipes on Windows. Is that assumption wrong?
The *clone*
tests can not run because you'd need a file system with file cloning support, and the API to access it, and if that even exists on Windows we definitely don't have the code for it.
These are good questions. There are also pipes under Windows (https://docs.microsoft.com/en-us/windows/win32/ipc/pipes). I would suggest to exclude the tests that do not work under Windows, so that in case of success CTest returns a positive result.
The encryption tests are running but return an error:
if (idx >= za->nentry) {
zip_error_set(&za->error, ZIP_ER_INVAL, 0);
return -1;
}
The construct to load a library in Perl to overwrite a function in another program does not work under Windows. Under Windows, the library must be loaded in the same program. I am a little bit surprised that it works under Linux. Isn't that actually a security hole?
I think this issue is now resolved. Thanks.
Compiler Error
libzip Version commit cebe19a66d115c0e8218d8eed6894cf3bf8f0fa8
Operating System and Compiler Windows 10, Visual Studio 2017
Additional context The problem is in line 212 of the file zip_source_filep.c:
https://github.com/nih-at/libzip/blob/066a1b1f9b8e58773ab7d23d8176507f9c866e5e/lib/zip_source_filep.c#L212
The constant S_IWUSR does not exist under Windows. Either the last commit is undone at this position, or the following code is added after the includes at the beginning of the file: