ocaml: Test bytecode and native code bindings.

Compile each test twice, as bytecode and native code, and
test both.
This commit is contained in:
Richard W.M. Jones
2012-01-27 22:11:53 +00:00
parent 799852e646
commit eb68a31413
3 changed files with 68 additions and 24 deletions

21
.gitignore vendored
View File

@@ -213,7 +213,8 @@ Makefile
Makefile.in
missing
*.o
ocaml/bindtests
ocaml/bindtests.bc
ocaml/bindtests.opt
ocaml/bindtests.ml
ocaml/.depend
ocaml/dllmlguestfs.so
@@ -228,12 +229,18 @@ ocaml/guestfs.ml
ocaml/guestfs.mli
ocamlinit-stamp
ocaml/META
ocaml/t/guestfs_005_load
ocaml/t/guestfs_010_basic
ocaml/t/guestfs_070_threads
ocaml/t/guestfs_080_optargs
ocaml/t/guestfs_400_events
ocaml/t/guestfs_400_progress
ocaml/t/guestfs_005_load.bc
ocaml/t/guestfs_005_load.opt
ocaml/t/guestfs_010_basic.bc
ocaml/t/guestfs_010_basic.opt
ocaml/t/guestfs_070_threads.bc
ocaml/t/guestfs_070_threads.opt
ocaml/t/guestfs_080_optargs.bc
ocaml/t/guestfs_080_optargs.opt
ocaml/t/guestfs_400_events.bc
ocaml/t/guestfs_400_events.opt
ocaml/t/guestfs_400_progress.bc
ocaml/t/guestfs_400_progress.opt
*.orig
*.patch
perl/bindtests.pl

View File

@@ -74,58 +74,92 @@ html/index.html: $(srcdir)/guestfs*.mli $(srcdir)/guestfs*.ml
endif
TESTS_ENVIRONMENT = \
CAML_LD_LIBRARY_PATH=. \
$(top_builddir)/run \
$(VG)
TESTS = run-bindtests \
test_progs = \
t/guestfs_005_load \
t/guestfs_080_optargs \
t/guestfs_400_events
if ENABLE_APPLIANCE
TESTS += t/guestfs_010_basic \
test_progs += \
t/guestfs_010_basic \
t/guestfs_070_threads \
t/guestfs_400_progress
endif
noinst_DATA += bindtests \
t/guestfs_005_load \
t/guestfs_010_basic \
t/guestfs_070_threads \
t/guestfs_080_optargs \
t/guestfs_400_events \
t/guestfs_400_progress
TESTS = run-bindtests \
$(patsubst %,%.bc,$(test_progs)) \
$(patsubst %,%.opt,$(test_progs))
bindtests: bindtests.cmx mlguestfs.cmxa
noinst_DATA += \
bindtests.bc bindtests.opt \
$(test_progs:%=%.bc) \
$(test_progs:%=%.opt)
bindtests.bc: bindtests.cmo mlguestfs.cma
mkdir -p t
$(OCAMLFIND) ocamlc $(OCAMLCFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cma $< -o $@
bindtests.opt: bindtests.cmx mlguestfs.cmxa
mkdir -p t
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
t/guestfs_005_load: t/guestfs_005_load.cmx mlguestfs.cmxa
t/guestfs_005_load.bc: t/guestfs_005_load.cmo mlguestfs.cma
mkdir -p t
$(OCAMLFIND) ocamlc $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cma $< -o $@
t/guestfs_005_load.opt: t/guestfs_005_load.cmx mlguestfs.cmxa
mkdir -p t
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
t/guestfs_010_basic: t/guestfs_010_basic.cmx mlguestfs.cmxa
t/guestfs_010_basic.bc: t/guestfs_010_basic.cmo mlguestfs.cma
mkdir -p t
$(OCAMLFIND) ocamlc $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cma $< -o $@
t/guestfs_010_basic.opt: t/guestfs_010_basic.cmx mlguestfs.cmxa
mkdir -p t
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
t/guestfs_070_threads: t/guestfs_070_threads.cmx mlguestfs.cmxa
t/guestfs_070_threads.bc: t/guestfs_070_threads.cmo mlguestfs.cma
mkdir -p t
$(OCAMLFIND) ocamlc $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix,threads -thread -linkpkg mlguestfs.cma $< -o $@
t/guestfs_070_threads.opt: t/guestfs_070_threads.cmx mlguestfs.cmxa
mkdir -p t
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix,threads -thread -linkpkg mlguestfs.cmxa $< -o $@
t/guestfs_080_optargs: t/guestfs_080_optargs.cmx mlguestfs.cmxa
t/guestfs_080_optargs.bc: t/guestfs_080_optargs.cmo mlguestfs.cma
mkdir -p t
$(OCAMLFIND) ocamlc $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cma $< -o $@
t/guestfs_080_optargs.opt: t/guestfs_080_optargs.cmx mlguestfs.cmxa
mkdir -p t
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
t/guestfs_400_events: t/guestfs_400_events.cmx mlguestfs.cmxa
t/guestfs_400_events.bc: t/guestfs_400_events.cmo mlguestfs.cma
mkdir -p t
$(OCAMLFIND) ocamlc $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cma $< -o $@
t/guestfs_400_events.opt: t/guestfs_400_events.cmx mlguestfs.cmxa
mkdir -p t
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
t/guestfs_400_progress: t/guestfs_400_progress.cmx mlguestfs.cmxa
t/guestfs_400_progress.bc: t/guestfs_400_progress.cmo mlguestfs.cma
mkdir -p t
$(OCAMLFIND) ocamlc $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cma $< -o $@
t/guestfs_400_progress.opt: t/guestfs_400_progress.cmx mlguestfs.cmxa
mkdir -p t
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -cclib -L$(top_builddir)/src/.libs -I . -package unix -linkpkg mlguestfs.cmxa $< -o $@
# Need to rebuild the tests from source if the main library has
# changed at all, otherwise we get inconsistent assumptions.
t/guestfs_070_threads.cmo: t/guestfs_070_threads.ml mlguestfs.cma
$(OCAMLFIND) ocamlc $(OCAMLOPTFLAGS) -package unix,threads -thread -linkpkg -c $< -o $@
t/guestfs_070_threads.cmx: t/guestfs_070_threads.ml mlguestfs.cmxa
$(OCAMLFIND) ocamlopt $(OCAMLOPTFLAGS) -package unix,threads -thread -linkpkg -c $< -o $@

View File

@@ -18,5 +18,8 @@
set -e
./bindtests > bindtests.tmp
./bindtests.bc > bindtests.tmp
diff -u $srcdir/../bindtests bindtests.tmp
./bindtests.opt > bindtests.tmp
diff -u $srcdir/../bindtests bindtests.tmp