From 9203cafc6e729c880f0002d38a638460243d9fcb Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Wed, 3 Nov 2021 15:47:41 -0600 Subject: [PATCH] test: reproduce #3636 Signed-off-by: Rudi Grinberg ps-id: 8C67C2BC-9A74-4CBC-A529-FF41DAD8A4F1 --- .../implements-external.t/impl/dune-project | 4 +++- .../implements-external.t/impl/impl-lib/dune | 3 ++- .../implements-external.t/run.t | 24 ++++++++++++++++++- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/impl/dune-project b/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/impl/dune-project index fd5c747c6875..170d19dec990 100644 --- a/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/impl/dune-project +++ b/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/impl/dune-project @@ -1 +1,3 @@ -(lang dune 1.7) \ No newline at end of file +(lang dune 1.7) + +(package (name dune-vlib)) diff --git a/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/impl/impl-lib/dune b/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/impl/impl-lib/dune index 25a8931f746c..a44b19e8f187 100644 --- a/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/impl/impl-lib/dune +++ b/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/impl/impl-lib/dune @@ -1,3 +1,4 @@ (library (name impl) - (implements vlib)) \ No newline at end of file + (public_name dune-vlib.impl) + (implements vlib)) diff --git a/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/run.t b/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/run.t index 2dd6df3e2d01..6eb1f20bb2c1 100644 --- a/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/run.t +++ b/test/blackbox-tests/test-cases/virtual-libraries/implements-external.t/run.t @@ -5,7 +5,7 @@ First we create an external library Entering directory 'vlib' Then we make sure that we can implement it - $ env OCAMLPATH=vlib/_build/install/default/lib dune build --root impl --debug-dependency-path + $ env OCAMLPATH=vlib/_build/install/default/lib dune build @default @install --root impl Entering directory 'impl' bar from vlib Foo.run implemented @@ -25,3 +25,25 @@ Implement external virtual libraries with private modules $ env OCAMLPATH=vlib/_build/install/default/lib dune build --root impl-private-module --debug-dependency-path Entering directory 'impl-private-module' Name: implement virtual module. Magic number: 42 + +Now we install an implementation, and make sure that it remains usable + $ export OCAMLPATH=$PWD/vlib/_build/install/default/lib:$PWD/impl/_build/install/default/lib + $ mkdir use-external-impl && cd use-external-impl + $ cat >dune-project < (lang dune 3.0) + > EOF + $ cat >dune < (executable + > (name blah) + > (libraries dune-vlib.impl)) + > EOF + $ cat >blah.ml < Vlib.Foo.run () + > EOF + $ dune exec ./blah.exe + File "blah.ml", line 1, characters 0-12: + 1 | Vlib.Foo.run () + ^^^^^^^^^^^^ + Error: Unbound module Vlib + [1] + $ cd ..