From a729409fa7fe5aa390073cd202d34500d35f23f1 Mon Sep 17 00:00:00 2001 From: Jeremie Dimino Date: Sun, 18 Mar 2018 06:27:11 -0400 Subject: [PATCH] Update the package-dep test to test dependencies between packages --- .../package-dep/{foo.ml => bar.opam} | 0 .../test-cases/package-dep/jbuild | 32 ++++++++++++++++--- .../test-cases/package-dep/run.t | 14 +++++--- 3 files changed, 37 insertions(+), 9 deletions(-) rename test/blackbox-tests/test-cases/package-dep/{foo.ml => bar.opam} (100%) diff --git a/test/blackbox-tests/test-cases/package-dep/foo.ml b/test/blackbox-tests/test-cases/package-dep/bar.opam similarity index 100% rename from test/blackbox-tests/test-cases/package-dep/foo.ml rename to test/blackbox-tests/test-cases/package-dep/bar.opam diff --git a/test/blackbox-tests/test-cases/package-dep/jbuild b/test/blackbox-tests/test-cases/package-dep/jbuild index b1117511..30d1761f 100644 --- a/test/blackbox-tests/test-cases/package-dep/jbuild +++ b/test/blackbox-tests/test-cases/package-dep/jbuild @@ -1,11 +1,33 @@ (jbuild_version 1) (library - ((name foo) + ((name foo) (public_name foo) - (modules (foo)))) + (modules (foo)))) + +(library + ((name bar) + (public_name bar) + (libraries (foo)) + (modules (bar)))) + +(rule + (with-stdout-to foo.ml + (echo "let x = 42"))) + +(rule + (with-stdout-to bar.ml + (echo "let x = string_of_int Foo.x"))) + +(rule + (with-stdout-to test.ml + (echo "let () = Printf.printf \"%d %s\" Foo.x Bar.x"))) + +(rule + ((deps ((package bar))) + (targets (test.exe)) + (action (run ocamlfind ocamlc -linkpkg -package bar -o test.exe test.ml)))) (alias - ((name runtest) - (deps ((package foo))) - (action (echo "package foo")))) + ((name runtest) + (action (run ./test.exe)))) diff --git a/test/blackbox-tests/test-cases/package-dep/run.t b/test/blackbox-tests/test-cases/package-dep/run.t index 08c9309d..a3fa2bd7 100644 --- a/test/blackbox-tests/test-cases/package-dep/run.t +++ b/test/blackbox-tests/test-cases/package-dep/run.t @@ -1,8 +1,14 @@ $ $JBUILDER runtest -j1 --display short --root . + ocamldep bar.ml.d ocamldep foo.ml.d ocamlc .foo.objs/foo.{cmi,cmo,cmt} + ocamlc .bar.objs/bar.{cmi,cmo,cmt} + ocamlc bar.cma ocamlopt .foo.objs/foo.{cmx,o} - ocamlopt foo.{a,cmxa} - ocamlopt foo.cmxs - ocamlc foo.cma - package foo + ocamlopt .bar.objs/bar.{cmx,o} + ocamlopt bar.{a,cmxa} + ocamlopt bar.cmxs + ocamlfind test.exe (exit 2) + (cd _build/default && /Users/rgrinberg/.opam/4.05.0/bin/ocamlfind ocamlc -linkpkg -package bar -o test.exe test.ml) + ocamlfind: Package `foo' not found - required by `bar' + [1]