From 939341af16f17d71c0d42265d1bf1b2ba0d860f8 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Wed, 30 May 2018 14:58:03 +0700 Subject: [PATCH 1/2] Add test for classical ppx Test that generated META can be used by ocamlfind Signed-off-by: Rudi Grinberg --- .travis-ci.sh | 4 ++-- test/blackbox-tests/test-cases/ppx-rewriter/dune | 2 +- test/blackbox-tests/test-cases/ppx-rewriter/fooppx.opam | 0 test/blackbox-tests/test-cases/ppx-rewriter/ppx/dune | 1 + test/blackbox-tests/test-cases/ppx-rewriter/run.t | 4 +++- 5 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 test/blackbox-tests/test-cases/ppx-rewriter/fooppx.opam diff --git a/.travis-ci.sh b/.travis-ci.sh index 60df3f45..ea2bf7ff 100644 --- a/.travis-ci.sh +++ b/.travis-ci.sh @@ -46,7 +46,7 @@ case "$TARGET" in rm -rf ~/.opam opam init --yes eval $(opam config env) - opam install utop ppx_driver odoc menhir ocaml-migrate-parsetree js_of_ocaml-ppx js_of_ocaml-compiler--yes + opam install ocamlfind utop ppx_driver odoc menhir ocaml-migrate-parsetree js_of_ocaml-ppx js_of_ocaml-compiler--yes opam remove jbuilder `opam list --depends-on jbuilder --installed --short` --yes if opam info dune &> /dev/null; then opam remove dune `opam list --depends-on dune --installed --short` --yes @@ -82,7 +82,7 @@ case "$TARGET" in echo "depends: [\"dune\"]" >> jbuilder.opam opam pin add dune . --no-action --yes opam pin add jbuilder . --no-action --yes - opam install utop ppx_driver odoc ocaml-migrate-parsetree js_of_ocaml-ppx js_of_ocaml-compiler --yes + opam install ocamlfind utop ppx_driver odoc ocaml-migrate-parsetree js_of_ocaml-ppx js_of_ocaml-compiler --yes echo -en "travis_fold:end:opam.deps\r" fi echo -en "travis_fold:start:dune.bootstrap\r" diff --git a/test/blackbox-tests/test-cases/ppx-rewriter/dune b/test/blackbox-tests/test-cases/ppx-rewriter/dune index 9fd8d486..5f67c406 100644 --- a/test/blackbox-tests/test-cases/ppx-rewriter/dune +++ b/test/blackbox-tests/test-cases/ppx-rewriter/dune @@ -13,4 +13,4 @@ (executable ((name w_ppx_driver_flags) (modules (w_ppx_driver_flags)) - (preprocess (pps (fooppx -flag (-arg omp) ppx_driver.runner))))) + (preprocess (pps (fooppx -flag (-arg omp) ppx_driver.runner))))) \ No newline at end of file diff --git a/test/blackbox-tests/test-cases/ppx-rewriter/fooppx.opam b/test/blackbox-tests/test-cases/ppx-rewriter/fooppx.opam new file mode 100644 index 00000000..e69de29b diff --git a/test/blackbox-tests/test-cases/ppx-rewriter/ppx/dune b/test/blackbox-tests/test-cases/ppx-rewriter/ppx/dune index 692b397d..ff90c7a3 100644 --- a/test/blackbox-tests/test-cases/ppx-rewriter/ppx/dune +++ b/test/blackbox-tests/test-cases/ppx-rewriter/ppx/dune @@ -1,4 +1,5 @@ (library ((name fooppx) + (public_name fooppx) (kind ppx_rewriter) (libraries (ocaml-migrate-parsetree)))) diff --git a/test/blackbox-tests/test-cases/ppx-rewriter/run.t b/test/blackbox-tests/test-cases/ppx-rewriter/run.t index 76d09ccf..f055be4c 100644 --- a/test/blackbox-tests/test-cases/ppx-rewriter/run.t +++ b/test/blackbox-tests/test-cases/ppx-rewriter/run.t @@ -3,7 +3,7 @@ ocamlc ppx/.fooppx.objs/fooppx.{cmi,cmo,cmt} ocamlopt ppx/.fooppx.objs/fooppx.{cmx,o} ocamlopt ppx/fooppx.{a,cmxa} - ocamlopt .ppx/fooppx@./ppx.exe + ocamlopt .ppx/fooppx/ppx.exe ppx w_omp_driver.pp.ml ocamldep w_omp_driver.pp.ml.d ocamlc .w_omp_driver.eobjs/w_omp_driver.{cmi,cmo,cmt} @@ -18,3 +18,5 @@ ocamlopt w_ppx_driver.exe This test is broken because ppx_driver doesn't support migrate custom arguments # $ dune build ./w_ppx_driver_flags.exe --display short + $ dune build && dune exec -- ocamlfind opt -package fooppx -ppxopt "fooppx,-flag" -linkpkg w_omp_driver.ml -o w_omp_driver.exe + pass -arg to fooppx From 0677c2d79c3405420ea3ac1ef7d7fd29803678de Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Wed, 30 May 2018 15:39:58 +0700 Subject: [PATCH 2/2] Add test for using a dune library with ocamlfind Signed-off-by: Rudi Grinberg --- test/blackbox-tests/dune.inc | 12 +++++++++++- .../test-cases/use-meta/foobarlib.opam | 0 .../test-cases/use-meta/foobarlib/dune | 4 ++++ .../test-cases/use-meta/foobarlib/foobarlib.ml | 4 ++++ test/blackbox-tests/test-cases/use-meta/main.ml | 1 + test/blackbox-tests/test-cases/use-meta/run.t | 2 ++ 6 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 test/blackbox-tests/test-cases/use-meta/foobarlib.opam create mode 100644 test/blackbox-tests/test-cases/use-meta/foobarlib/dune create mode 100644 test/blackbox-tests/test-cases/use-meta/foobarlib/foobarlib.ml create mode 100644 test/blackbox-tests/test-cases/use-meta/main.ml create mode 100644 test/blackbox-tests/test-cases/use-meta/run.t diff --git a/test/blackbox-tests/dune.inc b/test/blackbox-tests/dune.inc index b69dbdb1..8dcdd19a 100644 --- a/test/blackbox-tests/dune.inc +++ b/test/blackbox-tests/dune.inc @@ -492,6 +492,14 @@ test-cases/select (progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected)))))) +(alias + ((name use-meta) + (deps ((package dune) (files_recursively_in test-cases/use-meta))) + (action + (chdir + test-cases/use-meta + (progn (run ${exe:cram.exe} -test run.t) (diff? run.t run.t.corrected)))))) + (alias ((name utop) (deps ((package dune) (files_recursively_in test-cases/utop))) @@ -558,6 +566,7 @@ (alias scope-bug) (alias scope-ppx-bug) (alias select) + (alias use-meta) (alias utop))))) (alias @@ -609,7 +618,8 @@ (alias redirections) (alias scope-bug) (alias scope-ppx-bug) - (alias select))))) + (alias select) + (alias use-meta))))) (alias ((name runtest-disabled) (deps ((alias reason))))) diff --git a/test/blackbox-tests/test-cases/use-meta/foobarlib.opam b/test/blackbox-tests/test-cases/use-meta/foobarlib.opam new file mode 100644 index 00000000..e69de29b diff --git a/test/blackbox-tests/test-cases/use-meta/foobarlib/dune b/test/blackbox-tests/test-cases/use-meta/foobarlib/dune new file mode 100644 index 00000000..259becc3 --- /dev/null +++ b/test/blackbox-tests/test-cases/use-meta/foobarlib/dune @@ -0,0 +1,4 @@ +(library + ((name foobarlib) + (public_name foobarlib) + (libraries (str)))) diff --git a/test/blackbox-tests/test-cases/use-meta/foobarlib/foobarlib.ml b/test/blackbox-tests/test-cases/use-meta/foobarlib/foobarlib.ml new file mode 100644 index 00000000..a691c055 --- /dev/null +++ b/test/blackbox-tests/test-cases/use-meta/foobarlib/foobarlib.ml @@ -0,0 +1,4 @@ +open Str + +let foo () = + print_endline "foobarlib" diff --git a/test/blackbox-tests/test-cases/use-meta/main.ml b/test/blackbox-tests/test-cases/use-meta/main.ml new file mode 100644 index 00000000..335b237e --- /dev/null +++ b/test/blackbox-tests/test-cases/use-meta/main.ml @@ -0,0 +1 @@ +let () = Foobarlib.foo () diff --git a/test/blackbox-tests/test-cases/use-meta/run.t b/test/blackbox-tests/test-cases/use-meta/run.t new file mode 100644 index 00000000..da00f801 --- /dev/null +++ b/test/blackbox-tests/test-cases/use-meta/run.t @@ -0,0 +1,2 @@ + $ dune build && dune exec -- ocamlfind opt -package foobarlib -linkpkg main.ml -o main.exe && ./main.exe + foobarlib