summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard W.M. Jones <[email protected]>2012-01-27 22:11:53 +0000
committerRichard W.M. Jones <[email protected]>2012-01-29 11:15:50 +0000
commit64529a62acd81bf1a5c2d5b25f54b1e596e07e1c (patch)
tree5c1906be7ae45c95bedf153f2c4674e1299fd6d9
parent9b8b9a4b56d2ce221fb52b7d205dd4eb864c9ea2 (diff)
downloadlibguestfs-64529a62acd81bf1a5c2d5b25f54b1e596e07e1c.tar.gz
libguestfs-64529a62acd81bf1a5c2d5b25f54b1e596e07e1c.tar.xz
libguestfs-64529a62acd81bf1a5c2d5b25f54b1e596e07e1c.zip
ocaml: Test bytecode and native code bindings.
Compile each test twice, as bytecode and native code, and test both. (cherry picked from commit eb68a314133c88260cdf4547d7d338446488e698)
-rw-r--r--.gitignore21
-rw-r--r--ocaml/Makefile.am66
-rwxr-xr-xocaml/run-bindtests5
3 files changed, 68 insertions, 24 deletions
diff --git a/.gitignore b/.gitignore
index fc732bc9..599dae48 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/ocaml/Makefile.am b/ocaml/Makefile.am
index a5ee6fe9..4c9471e1 100644
--- a/ocaml/Makefile.am
+++ b/ocaml/Makefile.am
@@ -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))
+
+noinst_DATA += \
+ bindtests.bc bindtests.opt \
+ $(test_progs:%=%.bc) \
+ $(test_progs:%=%.opt)
-bindtests: bindtests.cmx mlguestfs.cmxa
+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 $@
diff --git a/ocaml/run-bindtests b/ocaml/run-bindtests
index da10231d..3b73e8d3 100755
--- a/ocaml/run-bindtests
+++ b/ocaml/run-bindtests
@@ -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
OSZAR »