Skip to content

Commit

Permalink
Reproduction case to show that installing deps to the stdlib breaks (o…
Browse files Browse the repository at this point in the history
…caml#10565)

Signed-off-by: Marek Kubica <marek@tarides.com>
  • Loading branch information
Leonidas-from-XIV authored May 29, 2024
1 parent 86b8a6d commit 72c5505
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions test/blackbox-tests/test-cases/pkg/dependency-install-file.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
A package that installs itself into the ocaml stdlib should work.

$ . ./helpers.sh

$ mkdir nondune
$ cd nondune
$ cat > nondune.ml <<EOF
> let main () = print_endline "Nondune"
> let () = main ()
> EOF
$ ocamlc -c nondune.ml
$ ocamlc -o nondune.cma -a nondune.cmo
$ cat > nondune.install <<EOF
> lib_root: [
> "nondune.cma" {"ocaml/nondune.cma"}
> "nondune.cmi" {"ocaml/nondune.cmi"}
> ]
> lib: [
> "META" {"META"}
> ]
> EOF
$ cat > META <<EOF
> directory = "^"
> archive(byte) = "nondune.cma"
> EOF
$ cat > nondune.opam <<EOF
> opam-version: "2.0"
> build: [
> [true]
> ]
> EOF
$ cd ..

With this project set up, lets depend on it.

$ mkdir foo
$ cd foo
$ mkrepo
$ solve_project <<EOF
> (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 <<EOF
> (executable
> (name foo)
> (modules foo)
> (libraries nondune)
> (modes byte))
> EOF
$ cat > foo.ml <<EOF
> let () = Nondune.main ()
> EOF
$ dune exec ./foo.exe 2>&1 | grep -o "Unbound module Nondune"
Unbound module Nondune

0 comments on commit 72c5505

Please sign in to comment.