mrkkrp / zip

Efficient library for manipulating zip archives
Other
81 stars 27 forks source link

Tests Failure #112

Open mpscholten opened 5 months ago

mpscholten commented 5 months ago

When installing the zip package on my aarch64 macOS system, nix fails with this error:

@nix { "action": "setPhase", "phase": "setupCompilerEnvironmentPhase" }
Running phase: setupCompilerEnvironmentPhase
Build with /nix/store/0n0zk1ib3772n25qfnh9l3iwan5r2jwd-ghc-9.8.2.
@nix { "action": "setPhase", "phase": "unpackPhase" }
Running phase: unpackPhase
unpacking source archive /nix/store/6hzlc8wgkl8xj0bfv26lb4fps2w5g8bm-zip-2.0.0.tar.gz
source root is zip-2.0.0
setting SOURCE_DATE_EPOCH to timestamp 1000000000 of file zip-2.0.0/zip.cabal
@nix { "action": "setPhase", "phase": "patchPhase" }
Running phase: patchPhase
Replace Cabal file with edited version from mirror://hackage/zip-2.0.0/revision/3.cabal.
@nix { "action": "setPhase", "phase": "compileBuildDriverPhase" }
Running phase: compileBuildDriverPhase
setupCompileFlags: -package-db=/private/tmp/nix-build-zip-2.0.0.drv-0/tmp.RA2HcKhDL9/setup-package.conf.d -j16 -threaded -rtsopts
[1 of 2] Compiling Main             ( Setup.hs, /private/tmp/nix-build-zip-2.0.0.drv-0/tmp.RA2HcKhDL9/Main.o )
[2 of 2] Linking Setup
@nix { "action": "setPhase", "phase": "updateAutotoolsGnuConfigScriptsPhase" }
Running phase: updateAutotoolsGnuConfigScriptsPhase
@nix { "action": "setPhase", "phase": "configurePhase" }
Running phase: configurePhase
configureFlags: --verbose --prefix=/nix/store/75b5qk10qpjwsl2lf4zb165s67pa4ff5-zip-2.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/riyw60yk5aw30xg5xl0wiy2w02zqrvl7-zip-2.0.0-doc/share/doc/zip-2.0.0 --with-gcc=clang --package-db=/private/tmp/nix-build-zip-2.0.0.drv-0/tmp.RA2HcKhDL9/package.conf.d --ghc-options=-j16 --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --disable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-options=-haddock --extra-lib-dirs=/nix/store/nrrxippa056dwfyzg1y81d9m5hkyxiqx-ncurses-6.4/lib --extra-lib-dirs=/nix/store/xlbjw4j33b2lfp4j8ngv4jjzh3ak0yq9-libffi-3.4.6/lib --extra-lib-dirs=/nix/store/pdi5m6hddahmvilf9aqnf71h4gvhqhdr-gmp-with-cxx-6.3.0/lib --extra-include-dirs=/nix/store/4cbzvhsr967bblrzh00pdyppridi27ng-libiconv-50/include --extra-lib-dirs=/nix/store/4cbzvhsr967bblrzh00pdyppridi27ng-libiconv-50/lib --extra-include-dirs=/nix/store/cdc2ixcdimc64kphhv7m1jxxbv52hma1-libcxx-16.0.6-dev/include --extra-lib-dirs=/nix/store/c1fg25wzxv9r6wgmrzgj9nwhbp7bxl2q-libcxx-16.0.6/lib --extra-include-dirs=/nix/store/9c29rm86j7jvgclgdfghv5iyxrg19lya-compiler-rt-libc-16.0.6-dev/include --extra-lib-dirs=/nix/store/aysr05zvz2d2qy2haw0xr4482ssj9mis-compiler-rt-libc-16.0.6/lib --extra-lib-dirs=/nix/store/99y79s5jdp969qk4fymhf1rj000ihigc-apple-framework-CoreFoundation-11.0.0/lib --extra-framework-dirs=/nix/store/99y79s5jdp969qk4fymhf1rj000ihigc-apple-framework-CoreFoundation-11.0.0/Library/Frameworks --extra-include-dirs=/nix/store/lwwiqxphv85cd6i64idm232s1rf2c3xv-libobjc-11.0.0/include --extra-lib-dirs=/nix/store/lwwiqxphv85cd6i64idm232s1rf2c3xv-libobjc-11.0.0/lib
Using Parsec parser
Configuring zip-2.0.0...
Flags chosen: dev=False, disable-bzip2=False, disable-zstd=False
Dependency base >=4.15 && <5: using base-4.19.1.0
Dependency bytestring >=0.9 && <0.13: using bytestring-0.12.1.0
Dependency bzlib-conduit >=0.3 && <0.4: using bzlib-conduit-0.3.0.2
Dependency case-insensitive >=1.2.0.2 && <1.3: using case-insensitive-1.2.1.0
Dependency cereal >=0.3 && <0.6: using cereal-0.5.8.3
Dependency conduit >=1.3 && <1.4: using conduit-1.3.5
Dependency conduit-extra >=1.3 && <1.4: using conduit-extra-1.3.6
Dependency conduit-zstd >=0.0.2 && <0.1: using conduit-zstd-0.0.2.0
Dependency containers >=0.5 && <0.7: using containers-0.6.8
Dependency digest <0.1: using digest-0.0.2.1
Dependency directory >=1.2.2 && <1.4: using directory-1.3.8.1
Dependency dlist >=0.8 && <2.0: using dlist-1.0
Dependency exceptions >=0.6 && <0.11: using exceptions-0.10.7
Dependency filepath >=1.2 && <1.5: using filepath-1.4.200.1
Dependency monad-control >=1.0 && <1.1: using monad-control-1.0.3.1
Dependency mtl >=2 && <3: using mtl-2.3.1
Dependency resourcet >=1.2 && <1.4: using resourcet-1.3.0
Dependency text >=0.2 && <2.2: using text-2.1.1
Dependency time >=1.4 && <1.13: using time-1.12.2
Dependency transformers >=0.4 && <0.7: using transformers-0.6.1.0
Dependency transformers-base: using transformers-base-0.4.6
Dependency unix <2.9: using unix-2.8.4.0
Dependency base >=4.15 && <5: using base-4.19.1.0
Dependency filepath >=1.2 && <1.5: using filepath-1.4.200.1
Dependency zip: using zip-2.0.0
Dependency QuickCheck >=2.4 && <3: using QuickCheck-2.14.3
Dependency base >=4.15 && <5: using base-4.19.1.0
Dependency bytestring >=0.9 && <0.13: using bytestring-0.12.1.0
Dependency conduit >=1.3 && <1.4: using conduit-1.3.5
Dependency containers >=0.5 && <0.7: using containers-0.6.8
Dependency directory >=1.2.2 && <1.4: using directory-1.3.8.1
Dependency dlist >=0.8 && <2: using dlist-1.0
Dependency exceptions >=0.6 && <0.11: using exceptions-0.10.7
Dependency filepath >=1.2 && <1.5: using filepath-1.4.200.1
Dependency hspec >=2 && <3: using hspec-2.11.7
Dependency temporary >=1.1 && <1.4: using temporary-1.3
Dependency text >=0.2 && <2.2: using text-2.1.1
Dependency time >=1.4 && <1.13: using time-1.12.2
Dependency transformers >=0.4 && <0.7: using transformers-0.6.1.0
Dependency zip: using zip-2.0.0
Source component graph:
    component lib
    component exe:haskell-zip-app dependency lib
    component test:tests dependency lib
Configured component graph:
    component zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ
        include base-4.19.1.0-inplace
        include bytestring-0.12.1.0-inplace
        include bzlib-conduit-0.3.0.2-6BWxUaEEyIy6R18P7AuQXx
        include case-insensitive-1.2.1.0-3jwMV6QYMQIK2wJ5RnOYX8
        include cereal-0.5.8.3-LigoeezbxcZDI3lUkWx7YB
        include conduit-1.3.5-DlUIPM4yAOa3J2ciQV1wjd
        include conduit-extra-1.3.6-FVLDNazOLEV8g4eqkSb3Y6
        include conduit-zstd-0.0.2.0-JOYIqCPEpoEKMFu5KXZEsB
        include containers-0.6.8-inplace
        include digest-0.0.2.1-K5aSOy7Krqw3Axn8aumych
        include directory-1.3.8.1-inplace
        include dlist-1.0-AjBwTEFZCQjDZAvRC8yxRw
        include exceptions-0.10.7-inplace
        include filepath-1.4.200.1-inplace
        include monad-control-1.0.3.1-D9PjEtTHIm5Ipneibz3O2n
        include mtl-2.3.1-inplace
        include resourcet-1.3.0-HqaqiGjRnfWFYEDYXN3FQX
        include text-2.1.1-inplace
        include time-1.12.2-inplace
        include transformers-0.6.1.0-inplace
        include transformers-base-0.4.6-KxNzGCjwLAIF8IMkmdYKEh
        include unix-2.8.4.0-inplace
    component zip-2.0.0-KGfno5yrsdOLSeG93FwJrb-haskell-zip-app
        include base-4.19.1.0-inplace
        include filepath-1.4.200.1-inplace
        include zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ
    component zip-2.0.0-3EhxdqYGQaq9hniAXgBz1P-tests
        include QuickCheck-2.14.3-GQ7MvtjjayX6h3BLiphur7
        include base-4.19.1.0-inplace
        include bytestring-0.12.1.0-inplace
        include conduit-1.3.5-DlUIPM4yAOa3J2ciQV1wjd
        include containers-0.6.8-inplace
        include directory-1.3.8.1-inplace
        include dlist-1.0-AjBwTEFZCQjDZAvRC8yxRw
        include exceptions-0.10.7-inplace
        include filepath-1.4.200.1-inplace
        include hspec-2.11.7-BR3wgY5oH5JIMYovCkvzQ8
        include temporary-1.3-G5zkEvVlP3C5RKSlqw6h6v
        include text-2.1.1-inplace
        include time-1.12.2-inplace
        include transformers-0.6.1.0-inplace
        include zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ
Linked component graph:
    unit zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ
        include base-4.19.1.0-inplace
        include bytestring-0.12.1.0-inplace
        include bzlib-conduit-0.3.0.2-6BWxUaEEyIy6R18P7AuQXx
        include case-insensitive-1.2.1.0-3jwMV6QYMQIK2wJ5RnOYX8
        include cereal-0.5.8.3-LigoeezbxcZDI3lUkWx7YB
        include conduit-1.3.5-DlUIPM4yAOa3J2ciQV1wjd
        include conduit-extra-1.3.6-FVLDNazOLEV8g4eqkSb3Y6
        include conduit-zstd-0.0.2.0-JOYIqCPEpoEKMFu5KXZEsB
        include containers-0.6.8-inplace
        include digest-0.0.2.1-K5aSOy7Krqw3Axn8aumych
        include directory-1.3.8.1-inplace
        include dlist-1.0-AjBwTEFZCQjDZAvRC8yxRw
        include exceptions-0.10.7-inplace
        include filepath-1.4.200.1-inplace
        include monad-control-1.0.3.1-D9PjEtTHIm5Ipneibz3O2n
        include mtl-2.3.1-inplace
        include resourcet-1.3.0-HqaqiGjRnfWFYEDYXN3FQX
        include text-2.1.1-inplace
        include time-1.12.2-inplace
        include transformers-0.6.1.0-inplace
        include transformers-base-0.4.6-KxNzGCjwLAIF8IMkmdYKEh
        include unix-2.8.4.0-inplace
        Codec.Archive.Zip=zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ:Codec.Archive.Zip,Codec.Archive.Zip.CP437=zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ:Codec.Archive.Zip.CP437,Codec.Archive.Zip.Unix=zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ:Codec.Archive.Zip.Unix
    unit zip-2.0.0-KGfno5yrsdOLSeG93FwJrb-haskell-zip-app
        include base-4.19.1.0-inplace
        include filepath-1.4.200.1-inplace
        include zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ
    unit zip-2.0.0-3EhxdqYGQaq9hniAXgBz1P-tests
        include QuickCheck-2.14.3-GQ7MvtjjayX6h3BLiphur7
        include base-4.19.1.0-inplace
        include bytestring-0.12.1.0-inplace
        include conduit-1.3.5-DlUIPM4yAOa3J2ciQV1wjd
        include containers-0.6.8-inplace
        include directory-1.3.8.1-inplace
        include dlist-1.0-AjBwTEFZCQjDZAvRC8yxRw
        include exceptions-0.10.7-inplace
        include filepath-1.4.200.1-inplace
        include hspec-2.11.7-BR3wgY5oH5JIMYovCkvzQ8
        include temporary-1.3-G5zkEvVlP3C5RKSlqw6h6v
        include text-2.1.1-inplace
        include time-1.12.2-inplace
        include transformers-0.6.1.0-inplace
        include zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ
Ready component graph:
    definite zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ
        depends base-4.19.1.0-inplace
        depends bytestring-0.12.1.0-inplace
        depends bzlib-conduit-0.3.0.2-6BWxUaEEyIy6R18P7AuQXx
        depends case-insensitive-1.2.1.0-3jwMV6QYMQIK2wJ5RnOYX8
        depends cereal-0.5.8.3-LigoeezbxcZDI3lUkWx7YB
        depends conduit-1.3.5-DlUIPM4yAOa3J2ciQV1wjd
        depends conduit-extra-1.3.6-FVLDNazOLEV8g4eqkSb3Y6
        depends conduit-zstd-0.0.2.0-JOYIqCPEpoEKMFu5KXZEsB
        depends containers-0.6.8-inplace
        depends digest-0.0.2.1-K5aSOy7Krqw3Axn8aumych
        depends directory-1.3.8.1-inplace
        depends dlist-1.0-AjBwTEFZCQjDZAvRC8yxRw
        depends exceptions-0.10.7-inplace
        depends filepath-1.4.200.1-inplace
        depends monad-control-1.0.3.1-D9PjEtTHIm5Ipneibz3O2n
        depends mtl-2.3.1-inplace
        depends resourcet-1.3.0-HqaqiGjRnfWFYEDYXN3FQX
        depends text-2.1.1-inplace
        depends time-1.12.2-inplace
        depends transformers-0.6.1.0-inplace
        depends transformers-base-0.4.6-KxNzGCjwLAIF8IMkmdYKEh
        depends unix-2.8.4.0-inplace
    definite zip-2.0.0-KGfno5yrsdOLSeG93FwJrb-haskell-zip-app
        depends base-4.19.1.0-inplace
        depends filepath-1.4.200.1-inplace
        depends zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ
    definite zip-2.0.0-3EhxdqYGQaq9hniAXgBz1P-tests
        depends QuickCheck-2.14.3-GQ7MvtjjayX6h3BLiphur7
        depends base-4.19.1.0-inplace
        depends bytestring-0.12.1.0-inplace
        depends conduit-1.3.5-DlUIPM4yAOa3J2ciQV1wjd
        depends containers-0.6.8-inplace
        depends directory-1.3.8.1-inplace
        depends dlist-1.0-AjBwTEFZCQjDZAvRC8yxRw
        depends exceptions-0.10.7-inplace
        depends filepath-1.4.200.1-inplace
        depends hspec-2.11.7-BR3wgY5oH5JIMYovCkvzQ8
        depends temporary-1.3-G5zkEvVlP3C5RKSlqw6h6v
        depends text-2.1.1-inplace
        depends time-1.12.2-inplace
        depends transformers-0.6.1.0-inplace
        depends zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ
Using Cabal-3.10.2.0 compiled by ghc-9.8
Using compiler: ghc-9.8.2
Using install prefix: /nix/store/75b5qk10qpjwsl2lf4zb165s67pa4ff5-zip-2.0.0
Executables installed in:
/nix/store/75b5qk10qpjwsl2lf4zb165s67pa4ff5-zip-2.0.0/bin
Libraries installed in:
/nix/store/75b5qk10qpjwsl2lf4zb165s67pa4ff5-zip-2.0.0/lib/ghc-9.8.2/lib/aarch64-osx-ghc-9.8.2/zip-2.0.0-80EOcHYLyPCB3uaKeNfhlJ
Dynamic Libraries installed in:
/nix/store/75b5qk10qpjwsl2lf4zb165s67pa4ff5-zip-2.0.0/lib/ghc-9.8.2/lib/aarch64-osx-ghc-9.8.2
Private executables installed in:
/nix/store/75b5qk10qpjwsl2lf4zb165s67pa4ff5-zip-2.0.0/libexec/aarch64-osx-ghc-9.8.2/zip-2.0.0
Data files installed in:
/nix/store/75b5qk10qpjwsl2lf4zb165s67pa4ff5-zip-2.0.0/share/aarch64-osx-ghc-9.8.2/zip-2.0.0
Documentation installed in:
/nix/store/riyw60yk5aw30xg5xl0wiy2w02zqrvl7-zip-2.0.0-doc/share/doc/zip-2.0.0
Configuration files installed in:
/nix/store/75b5qk10qpjwsl2lf4zb165s67pa4ff5-zip-2.0.0/etc
No alex found
Using ar found on system at:
/nix/store/5rwj9a10f01jhfb8hbzizzhnmr55976p-cctools-binutils-darwin-16.0.6-973.0.1/bin/ar
No c2hs found
No cpphs found
No doctest found
Using gcc version 16.0.6 given by user at:
/nix/store/24ljvc5iwbs01svv9s8zvfcl5qs876kp-clang-wrapper-16.0.6/bin/clang
Using ghc version 9.8.2 found on system at:
/nix/store/0n0zk1ib3772n25qfnh9l3iwan5r2jwd-ghc-9.8.2/bin/ghc
Using ghc-pkg version 9.8.2 found on system at:
/nix/store/0n0zk1ib3772n25qfnh9l3iwan5r2jwd-ghc-9.8.2/bin/ghc-pkg-9.8.2
No ghcjs found
No ghcjs-pkg found
No greencard found
Using haddock version 2.30.0 found on system at:
/nix/store/0n0zk1ib3772n25qfnh9l3iwan5r2jwd-ghc-9.8.2/bin/haddock-ghc-9.8.2
No happy found
Using haskell-suite found on system at: haskell-suite-dummy-location
Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
No hmake found
Using hpc version 0.69 found on system at:
/nix/store/0n0zk1ib3772n25qfnh9l3iwan5r2jwd-ghc-9.8.2/bin/hpc-ghc-9.8.2
Using hsc2hs version 0.68.10 found on system at:
/nix/store/0n0zk1ib3772n25qfnh9l3iwan5r2jwd-ghc-9.8.2/bin/hsc2hs-ghc-9.8.2
Using hscolour version 1.25 found on system at:
/nix/store/bihbxw2lzi33akh6kmzd7dq56r4l37qi-hscolour-1.25/bin/HsColour
No jhc found
Using ld found on system at:
/nix/store/3j0f71qijrdylpqndvx5d15rj38famjd-cctools-binutils-darwin-wrapper-16.0.6-973.0.1/bin/ld
No pkg-config found
Using runghc version 9.8.2 found on system at:
/nix/store/0n0zk1ib3772n25qfnh9l3iwan5r2jwd-ghc-9.8.2/bin/runghc-9.8.2
Using strip found on system at:
/nix/store/24ljvc5iwbs01svv9s8zvfcl5qs876kp-clang-wrapper-16.0.6/bin/strip
Using tar found on system at:
/nix/store/dzdai6qhgni7x5pzhf0dw05l79jaqlxj-gnutar-1.35/bin/tar
No uhc found
@nix { "action": "setPhase", "phase": "buildPhase" }
Running phase: buildPhase
Preprocessing library for zip-2.0.0..
Building library for zip-2.0.0..
[1 of 5] Compiling Codec.Archive.Zip.CP437 ( Codec/Archive/Zip/CP437.hs, dist/build/Codec/Archive/Zip/CP437.o, dist/build/Codec/Archive/Zip/CP437.dyn_o )
[2 of 5] Compiling Codec.Archive.Zip.Type ( Codec/Archive/Zip/Type.hs, dist/build/Codec/Archive/Zip/Type.o, dist/build/Codec/Archive/Zip/Type.dyn_o )
[3 of 5] Compiling Codec.Archive.Zip.Unix ( Codec/Archive/Zip/Unix.hs, dist/build/Codec/Archive/Zip/Unix.o, dist/build/Codec/Archive/Zip/Unix.dyn_o )
[4 of 5] Compiling Codec.Archive.Zip.Internal ( Codec/Archive/Zip/Internal.hs, dist/build/Codec/Archive/Zip/Internal.o, dist/build/Codec/Archive/Zip/Internal.dyn_o )
[5 of 5] Compiling Codec.Archive.Zip ( Codec/Archive/Zip.hs, dist/build/Codec/Archive/Zip.o, dist/build/Codec/Archive/Zip.dyn_o )
[1 of 5] Compiling Codec.Archive.Zip.CP437 ( Codec/Archive/Zip/CP437.hs, dist/build/Codec/Archive/Zip/CP437.p_o )
ld: warning: /nix/store/4cbzvhsr967bblrzh00pdyppridi27ng-libiconv-50/lib/libiconv.dylib, ignoring unexpected dylib file
[2 of 5] Compiling Codec.Archive.Zip.Type ( Codec/Archive/Zip/Type.hs, dist/build/Codec/Archive/Zip/Type.p_o )
ld: warning: /nix/store/4cbzvhsr967bblrzh00pdyppridi27ng-libiconv-50/lib/libiconv.dylib, ignoring unexpected dylib file
[3 of 5] Compiling Codec.Archive.Zip.Unix ( Codec/Archive/Zip/Unix.hs, dist/build/Codec/Archive/Zip/Unix.p_o )
ld: warning: /nix/store/4cbzvhsr967bblrzh00pdyppridi27ng-libiconv-50/lib/libiconv.dylib, ignoring unexpected dylib file
[4 of 5] Compiling Codec.Archive.Zip.Internal ( Codec/Archive/Zip/Internal.hs, dist/build/Codec/Archive/Zip/Internal.p_o )
ld: warning: /nix/store/4cbzvhsr967bblrzh00pdyppridi27ng-libiconv-50/lib/libiconv.dylib, ignoring unexpected dylib file
[5 of 5] Compiling Codec.Archive.Zip ( Codec/Archive/Zip.hs, dist/build/Codec/Archive/Zip.p_o )
ld: warning: /nix/store/4cbzvhsr967bblrzh00pdyppridi27ng-libiconv-50/lib/libiconv.dylib, ignoring unexpected dylib file
Preprocessing executable 'haskell-zip-app' for zip-2.0.0..
Building executable 'haskell-zip-app' for zip-2.0.0..
[1 of 1] Compiling Main             ( bench-app/Main.hs, dist/build/haskell-zip-app/haskell-zip-app-tmp/Main.o )
[2 of 2] Linking dist/build/haskell-zip-app/haskell-zip-app
Preprocessing test suite 'tests' for zip-2.0.0..
Building test suite 'tests' for zip-2.0.0..
[1 of 1] Compiling Main             ( tests/Main.hs, dist/build/tests/tests-tmp/Main.o )
[2 of 2] Linking dist/build/tests/tests
@nix { "action": "setPhase", "phase": "checkPhase" }
Running phase: checkPhase
Running 1 test suites...
Test suite tests: RUNNING...

mkEntrySelector
  when absolute paths are passed
    they are rejected [✔]
      +++ OK, passed 100 tests.
  when paths with trailing path separator are passed
    they are rejected [✔]
  when paths with dot as path segment are passed
    they are rejected [✔]
  when paths with double dot as path segment are passed
    they are rejected [✔]
  when too long paths are passed
    rejects them [✔]
  when correct paths are passed
    adequately represents them [✔]
unEntrySelector
  when entry selector exists
    has corresponding path [✔]
      +++ OK, passed 100 tests.
getEntryName
  when entry selector exists
    has corresponding representation [✔]
      +++ OK, passed 100 tests.
decodeCP437
  when ASCII-compatible subset is used
    has the same result as decoding UTF-8 [✔]
      +++ OK, passed 100 tests.
  when non-ASCII subset is used
    is decoded correctly [✔]
fromFileMode
  UNIX helpers
    toFileMode . fromFileMode == id .&. 0x0fffff [✔]
      +++ OK, passed 100 tests.
    toFileMode == toFileMode . fromFileMode . toFileMode [✔]
      +++ OK, passed 100 tests.
createArchive
  when called with non-existent path and empty recipe
    creates correct representation of empty archive [✔]
  when called with an occupied path
    overwrites it [✔]
withArchive
  when called with non-existent path
    throws 'isDoesNotExistError' exception [✔]
  when called with occupied path (empty file)
    throws 'ParsingFailed' exception [✔]
  when called with occupied path (empty archive)
    does not overwrite the file unnecessarily [✔]
archive comment
  when new archive is created
    returns no archive comment [✔]
  when comment contains end of central directory signature
    reads it without problems [✔]
  when comment is committed (delete/set)
    reads it and updates [✔]
      +++ OK, passed 100 tests.
  when comment is committed (set/delete)
    reads it and updates [✔]
      +++ OK, passed 100 tests.
  when pre-existing comment is overwritten
    returns the new comment [✔]
      +++ OK, passed 100 tests.
  when pre-existing comment is deleted
    actually deletes it [✔]
      +++ OK, passed 100 tests.
getEntryDesc
  always returns correct description [✔]
    +++ OK, passed 100 tests.
version needed
  writes correct version that is needed to extract archive [✔]
    +++ OK, passed 100 tests.
addEntry
  when an entry is added
    is there [✔]
      +++ OK, passed 100 tests.
sinkEntry
  when an entry is sunk
    is there [✔]
      +++ OK, passed 100 tests.
loadEntry
  when an entry is loaded
    is there [✔]
      +++ OK, passed 100 tests.
copyEntry
  when entry is copied form another archive
    is there [✔]
      +++ OK, passed 100 tests.
checkEntry
  when entry is intact
    passes the check [✔]
      +++ OK, passed 100 tests.
  when entry is corrupted
    does not pass the check [✔]
      +++ OK, passed 100 tests; 19 discarded.
recompress
  when recompression is used
    gets recompressed [✔]
      +++ OK, passed 100 tests.
entry comment
  when comment is committed (delete/set)
    reads it and updates [✔]
      +++ OK, passed 100 tests.
  when comment is committed (set/delete)
    reads it and updates [✔]
      +++ OK, passed 100 tests.
  when pre-existing comment is overwritten
    returns the new comment [✔]
      +++ OK, passed 100 tests.
  when pre-existing comment is deleted
    actually deletes it [✔]
      +++ OK, passed 100 tests.
setModTime
  when mod time is set (after creation)
    reads it and updates [✔]
      +++ OK, passed 100 tests.
  when mod time is set (before creation)
    has no effect [✔]
      +++ OK, passed 100 tests.
extra field
  when extra field is committed (delete/set)
    reads it and updates [✔]
      +++ OK, passed 100 tests; 2 discarded.
  when extra field is committed (set/delete)
    reads it and updates [✔]
      +++ OK, passed 100 tests; 2 discarded.
  when pre-existing extra field is overwritten
    reads it and updates [✔]
      +++ OK, passed 100 tests; 12 discarded.
  when pre-existing extra field is deleted
    actually deletes it [✔]
      +++ OK, passed 100 tests; 2 discarded.
setExternalFileAttrsSpec
  when an external file attribute is added (after creation)
    sets a custom external file attribute [✔]
      +++ OK, passed 100 tests.
renameEntry
  when renaming after editing of new entry
    produces correct result [✔]
      +++ OK, passed 100 tests.
  when renaming existing entry
    gets renamed [✔]
      +++ OK, passed 100 tests.
deleteEntry
  when deleting after editing of new entry
    produces correct result [✔]
      +++ OK, passed 100 tests.
  when deleting existing entry
    gets deleted [✔]
      +++ OK, passed 100 tests.
forEntries
  affects all existing entries [✔]
    +++ OK, passed 100 tests.
undoEntryChanges
  cancels all actions for specified entry [✔]
    +++ OK, passed 100 tests.
undoArchiveChanges
  cancels archive comment editing [✔]
    +++ OK, passed 100 tests.
  cancels archive comment deletion [✔]
    +++ OK, passed 100 tests.
undoAll
  cancels all editing at once [✔]
    +++ OK, passed 100 tests.
consistency
  can save and restore arbitrary archive [✔]
    +++ OK, passed 100 tests.
packDirRecur'
  packs arbitrary directory recursively [✘]
unpackInto
  unpacks archive contents into directory [✘]

Failures:

  tests/Main.hs:735:3: 
  1) packDirRecur' packs arbitrary directory recursively
       uncaught exception: IOException of type InvalidArgument
       /private/tmp/nix-build-zip-2.0.0.drv-0/zip-sandbox-b5cf259a81790c36/S3KEKJaNy40/5t7mDuL/􈹩𮵹57K: withBinaryFile: invalid argument (Illegal byte sequence)
       (after 44 tests)
         ["Q6bVeq","S3KEKJaNy40/5t7mDuL/\1085033\191865\&57K","P1fuW2g/N4Ct1m8/Z\1077622dugEPiy/43c\989125e3L2E/s7WoTO6pf1\198247\&66/7hl2Ls4D/IfUW\1043189\&8/8xT788u3w\27229h/\70480\&8cFL05XUhXs9/vno\6765\&7bqYX8y","a\1013752HO12n7U4b/-3\989018K2Y/iZn1","g015T/0sUx@zDaJ1MO4/0m0PCSbaLD2b","Z57gL7C\1044769X0A8/7Mm86U6fwiU/VXJWa4snt/9JtDigCeAm/6CJvvpP7E]F9/MQr\1104208/xz93sW/z5HfQ/gNxm7/5\97051h87J","5D1Cj1/m1tonAIt\186808Pa/bb9kR2c\203107\&6J5C/\1037163\&98Iwb8pH"]

  To rerun use: --match "/packDirRecur'/packs arbitrary directory recursively/" --seed 2040633376

  tests/Main.hs:759:3: 
  2) unpackInto unpacks archive contents into directory
       uncaught exception: IOException of type InvalidArgument
       /private/tmp/nix-build-zip-2.0.0.drv-0/zip-sandbox-0369efeb1f501b23/𮰽4EmHzAPW487: createDirectory: invalid argument (Illegal byte sequence)
       (after 53 tests)
         EC (fromList [("0guyT04xCtC\163614/V7lHtK/eWK4XJiOQUSI6/VV4VT1tJu/ss3hr0aUBt9\1098381Y/832l/w\10799K5Dfs9iLfSG",{ edCompression = Zstd
         , edModTime = 1997-09-04 22:36:28 UTC
         , edUncompressedSize = 11
         , edComment = Just "Bv\RS\8845\STX[]H\37292"
         , edExtraField = fromList [(6561,"\156Dt@")]
         , edExtFileAttr = 489 }),("17SKTq\994615v2/T3own1FJ9u/Q8zu/n\120200AI0G1\68062/c011K/0u6Hq2xb/E6Or/6ZWN0n7H0E/K7Y0",{ edCompression = Zstd
         , edModTime = 1998-05-04 11:38:15 UTC
         , edUncompressedSize = 23
         , edComment = Just "hHe\992646rWF]#2\DLE\SYNBb89'K8tQ\59693"
         , edExtraField = fromList [(7851,"=\148\243\144\207\CAN\173\136\173{C\aj\DLE")]
         , edExtFileAttr = 3834 }),("2PZa/89=N\344\&5N8Z4\1009076Yx/tdmBX4/V04l/T71ifU/6jBWLev99w2D/y5p13/Gf6n6y\169380/D9\992098RRTg2GRUM",{ edCompression = Store
         , edModTime = 2044-03-20 22:50:28 UTC
         , edUncompressedSize = 8
         , edComment = Just "\b.\STXq\DLE"
         , edExtraField = fromList [(2396,"\231\180\207\178\246\247\215\254>\234\146\251z\222")]
         , edExtFileAttr = 7004 }),("55b7hP6\18721iN/KSh\53779Txq3z1qf/T6fCSqnd6B/2Fx9\174098\&39H52/c\96960\&04Sko74GYB/{6G9Bh\997903/Co69z5r@/bjB\1036622F/8TV4/6An9wYw5ef",{ edCompression = BZip2
         , edModTime = 1985-06-15 03:00:48 UTC
         , edUncompressedSize = 8
         , edComment = Just "\DELEf\19547n\NULgI{\1048200"
         , edExtraField = fromList [(5577,">\221\247\DC46\243P")]
         , edExtFileAttr = 5482 }),("5kyNj0hH3/p0nzo1yQD/TB1rZ/HEDe3f/c0zqp\11358fV8B/y\988704\&0=x8ge038U9",{ edCompression = Deflate
         , edModTime = 2008-10-29 22:06:13 UTC
         , edUncompressedSize = 11
         , edComment = Just "iq@\SYN\ACK4\179461GK\DC4Ui\CAN\991227?\SO"
         , edExtraField = fromList [(1369,"2\148r3\247\243K\254}]")]
         , edExtFileAttr = 7492 }),("5p77\60887/i8h0m3/A3pmJh/EmI4/zrb1jol",{ edCompression = Store
         , edModTime = 2009-07-01 06:59:53 UTC
         , edUncompressedSize = 7
         , edComment = Just "9\NAK*.YR\999883o6W"
         , edExtraField = fromList [(427,"\US\210>\129v\252BV@\158\CAN\180\SI\185")]
         , edExtFileAttr = 5429 }),("7\75021pX2fT98m1K/\142464WQ4xS4I8A7S/X77LyO2y",{ edCompression = BZip2
         , edModTime = 2063-11-03 15:36:58 UTC
         , edUncompressedSize = 14
         , edComment = Just "\1056321R\DC1&\135466\159609j"
         , edExtraField = fromList [(286," \a\193\US\175\235\235")]
         , edExtFileAttr = 558 }),("87bJ3\138997\&4rm/A626001`/qu8408uRT",{ edCompression = Zstd
         , edModTime = 2024-09-19 06:30:47 UTC
         , edUncompressedSize = 9
         , edComment = Just ",n\118821"
         , edExtraField = fromList [(4404,":\221\149\168a\aFF\247\131v\174")]
         , edExtFileAttr = 2712 }),("boUhoIc/KlN77WiWd4p/crBhTMGridtn4/OM1x0UuIL9/Y6nDKuE/2xv5L/1ra9/uDD8VPG1/SA\161327C8AB59Sa5/5NK811E7",{ edCompression = Deflate
         , edModTime = 2075-06-30 06:23:43 UTC
         , edUncompressedSize = 2
         , edComment = Just "!\1047650S\ENQ|;\DLEWh\40696Y\111348M\40671l"
         , edExtraField = fromList [(2619,"\160")]
         , edExtFileAttr = 5537 }),("EdH6/eh7K58LcjFD/45039/57Bj9q/4RY3R/Z.Dxm0P3\1085092iK/3g03R3Gmgop/9XJ4X~IN",{ edCompression = Zstd
         , edModTime = 2020-07-25 14:51:02 UTC
         , edUncompressedSize = 25
         , edComment = Just "\998793"
         , edExtraField = fromList [(6461,"\SO\216\212\FSC\241\b\211Q\229\195\134\210\CAN@g\"\247\213\201\137\145")]
         , edExtFileAttr = 5905 }),("EwCL4Rx9VVd/8PQX6/E618ryDp7GSX/7WKMxxavqD34R/n8n4v4Ll7b/8oCy1",{ edCompression = Deflate
         , edModTime = 2106-04-25 04:08:56 UTC
         , edUncompressedSize = 5
         , edComment = Just "lP\ENQE\US\1109083\1065091\n\SOHX\ETB\173068\&7$"
         , edExtraField = fromList [(4888,"j\216")]
         , edExtFileAttr = 5106 }),("g4K39cV02mQf/0TK771/X3xttUdVY/\\78Ue13c8uZ/2mlm36F0f0qsQ",{ edCompression = Deflate
         , edModTime = 2085-06-25 10:02:36 UTC
         , edUncompressedSize = 11
         , edComment = Just "b\49006\&0~\STX\"\SI5P"
         , edExtraField = fromList [(8022,"rT-\178-\137\197\222\141\&7Q':Q=\197\194\FS\136\ESC/p\245z")]
         , edExtFileAttr = 7704 }),("iP\1030732\&4WM/9OWPYj7Rdq2/5WnS159ud9/L7LY\137949L2kVz/Qy031831ix1K",{ edCompression = Deflate
         , edModTime = 2075-08-20 22:55:39 UTC
         , edUncompressedSize = 10
         , edComment = Just "\60708\&8"
         , edExtraField = fromList [(3995,"\SI2s\251I<R\155\200K\188\145dm\235)\168\219\STXj\175;")]
         , edExtFileAttr = 983 }),("it93jg{9KNV04/x3nL3/Gyjk/LN7JawYg/a2gK/[gkUU/4fVlx7h8q/6SrsC4hBPCMOj/2KXC",{ edCompression = Store
         , edModTime = 1989-09-01 06:33:56 UTC
         , edUncompressedSize = 24
         , edComment = Just "-\152709\1020937z*\160168\30001\160894tV\97889\987895\1061160(`?>*>v"
         , edExtraField = fromList [(959,"\219\171\EOT\180\140\181\212\245\ETBK7\US_\ACK\182\201Qn")]
         , edExtFileAttr = 4668 }),("Js[\5579\&81BD/n\1059015nW1y\986959\&99/16Kj2_y5jVYT8",{ edCompression = Zstd
         , edModTime = 2015-09-30 22:39:27 UTC
         , edUncompressedSize = 13
         , edComment = Just "\SIN"
         , edExtraField = fromList [(615,"m~\133\167\NUL\140\141[ax\NULAZy\226\&4")]
         , edExtFileAttr = 7443 }),("P7V4g/86\20088CVaNYC27mk",{ edCompression = Store
         , edModTime = 2093-08-10 22:25:12 UTC
         , edUncompressedSize = 7
         , edComment = Just "\151550RP5y{Q\1012293\19570-*\SI\18961._\DC3eo\20511\1029351"
         , edExtraField = fromList [(5547,"Z\DLE:\232\229\162\208\163\230\234\\;")]
         , edExtFileAttr = 4491 }),("yBnLxI55/8\164307aq8F17/500sYh571x/Fr8u`09F/Na=b\1032158HO1q1/q0S~IzOKa4F34/1Tl92/YmL9AYV/KqsmaY/$D3E5A)5lY512",{ edCompression = BZip2
         , edModTime = 2095-03-10 10:36:06 UTC
         , edUncompressedSize = 3
         , edComment = Just "\168690\187339{]\19185hV\CANWJSAV\988964v&\1109168!v"
         , edExtraField = fromList [(1744,"+\190\131\169\156l\155\GS")]
         , edExtFileAttr = 271 }),("\DEL5Bmfz2u/Rz6n2a0Y5/Xh\1024249\&64YF51Ic\35569\&1",{ edCompression = Zstd
         , edModTime = 1984-09-12 11:56:31 UTC
         , edUncompressedSize = 5
         , edComment = Just "*w"
         , edExtraField = fromList [(895,"r\204\225m\218\239fh:\211\185\137\207\DLE\135T")]
         , edExtFileAttr = 6674 }),("\191549\&4EmHzAPW487/Te8W75p\1092125\&8I/4NV1FtT",{ edCompression = Deflate
         , edModTime = 2104-06-29 21:38:43 UTC
         , edUncompressedSize = 3
         , edComment = Just "\EMz:l{\184976usu\USIM\162340'[\NAK\1084347\ESC"
         , edExtraField = fromList [(7830,"M!O#\147\238F\223\208\195\145\195b\235\&5\201\151\223\142H\180\142\EOT\137!\134")]
         , edExtFileAttr = 2133 })]) <zip archive>

  To rerun use: --match "/unpackInto/unpacks archive contents into directory/" --seed 2040633376

Randomized with seed 2040633376

Finished in 1.9212 seconds
55 examples, 2 failures
Test suite tests: FAIL
Test suite logged to: dist/test/zip-2.0.0-tests.log
0 of 1 test suites (0 of 1 test cases) passed.

Could this be a macOS specific issue?

mrkkrp commented 4 months ago

Thanks for the report. Indeed, this appears to be macOS-specific. There is not much I can do about it myself, since I do not have access to a Mac. I think what happens here is that mkEntrySelector is too permissive in some cases and it validates FilePaths that should be rejected (that would trigger a recursive call of arbitrary in their Arbitrary instance and something better would be generated).