mirage/ocaml-cstruct

Unit-tests are failing under windows

Closed this issue · 1 comments

See https://ci.appveyor.com/project/samoht/ocaml-git-7vmk0/build/1.0.29#L484

#=== ERROR while compiling cstruct.1.9.0 ======================================#
# opam-version         1.3.0~dev (308be376d177c155c1f7f86a8ffaf621c9029836)
# os                   win32
# command              ./test.sh
# path                 C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/build/cstruct.1.9.0
# exit-code            2
# env-file             C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/build/cstruct.1.9.0\cstruct-260-2628a0.env
# stdout-file          C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/build/cstruct.1.9.0\cstruct-260-2628a0.out
# stderr-file          C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/build/cstruct.1.9.0\cstruct-260-2628a0.err
### stdout ###
# [...]
# deadbeef deadbeef
# foo = {
#   a = 0x7
#   b = 0x2c
#   c = 0xbeef
#   d = <buffer uint8_t[8] d>
#61 62 63 64 65 66 67 68 
# 
# }
# "\007\000,\000\000��abcdefgh"
# enum
# pcap
### stderr ###
# [...]
# + cp lib_test/pcap.ml _build/lib_test/pcap.ml
# + camlp4orf -printer o _build/syntax/cstruct-syntax.cma lib_test/pcap.ml
# + camlp4orf -printer o _build/syntax/cstruct-syntax.cma lib_test/pcap.mli
# + ocamlopt -pp 'camlp4orf _build/syntax/cstruct-syntax.cma' -I _build/lib -I _build/unix -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/ocaml -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/ocaml -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/sexplib -i lib_test/pcap.ml
# + cp _build/lib_test/pcap.inferred.mli _build/lib_test/pcap.mli
# + rm -f _build/lib_test/pcap.cmi
# + cd _build/lib_test
# + ocamlopt -pp 'camlp4orf ../syntax/cstruct-syntax.cma' -I ../lib -I ../unix -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/ocaml -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/ocaml -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/sexplib -c pcap.mli
# + ocamlopt -pp 'camlp4orf ../syntax/cstruct-syntax.cma' -I ../lib -I ../unix -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/ocaml -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/ocaml -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/sexplib -c pcap.ml
# + ocamlopt -I ../lib -I ../unix -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/ocplib-endian bigstring.cmxa -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/ocaml unix.cmxa -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/ocaml bigarray.cmxa -I C:/cygwin/home/appveyor/.opam/4.02.3+mingw64c/lib/sexplib sexplib.cmxa cstruct.cmxa unix_cstruct.cmxa pcap.cmx -o pcap.opt
# + ./pcap.opt
# Fatal error: exception Invalid_argument("Cstruct.iter [24,36](60) i=1 len=6619268")

Compile your program and run your test cases with:

export CYGWIN='winsymlinks:native'

otherwise ln -s will create 'cygwin style' symlinks, that native windows programs can't read.
(see:

ln -nsf ../../lib_test/http.cap _build/lib_test/http.cap
)