From 72c550565b64fb8d444246a5ee3c3bd6e5924f70 Mon Sep 17 00:00:00 2001 From: Marek Kubica Date: Wed, 29 May 2024 11:46:27 +0200 Subject: [PATCH] Reproduction case to show that installing deps to the stdlib breaks (#10565) Signed-off-by: Marek Kubica --- .../test-cases/pkg/dependency-install-file.t | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 test/blackbox-tests/test-cases/pkg/dependency-install-file.t diff --git a/test/blackbox-tests/test-cases/pkg/dependency-install-file.t b/test/blackbox-tests/test-cases/pkg/dependency-install-file.t new file mode 100644 index 00000000000..e2fe2ae8dd9 --- /dev/null +++ b/test/blackbox-tests/test-cases/pkg/dependency-install-file.t @@ -0,0 +1,61 @@ +A package that installs itself into the ocaml stdlib should work. + + $ . ./helpers.sh + + $ mkdir nondune + $ cd nondune + $ cat > nondune.ml < let main () = print_endline "Nondune" + > let () = main () + > EOF + $ ocamlc -c nondune.ml + $ ocamlc -o nondune.cma -a nondune.cmo + $ cat > nondune.install < lib_root: [ + > "nondune.cma" {"ocaml/nondune.cma"} + > "nondune.cmi" {"ocaml/nondune.cmi"} + > ] + > lib: [ + > "META" {"META"} + > ] + > EOF + $ cat > META < directory = "^" + > archive(byte) = "nondune.cma" + > EOF + $ cat > nondune.opam < opam-version: "2.0" + > build: [ + > [true] + > ] + > EOF + $ cd .. + +With this project set up, lets depend on it. + + $ mkdir foo + $ cd foo + $ mkrepo + $ solve_project < (lang dune 3.15) + > (pin + > (url "file://$PWD/../nondune") + > (package (name nondune))) + > (package + > (name foo) + > (depends nondune)) + > EOF + Solution for dune.lock: + - nondune.dev + $ cat > dune < (executable + > (name foo) + > (modules foo) + > (libraries nondune) + > (modes byte)) + > EOF + $ cat > foo.ml < let () = Nondune.main () + > EOF + $ dune exec ./foo.exe 2>&1 | grep -o "Unbound module Nondune" + Unbound module Nondune