mte/unikernel/duniverse/dune_/test/blackbox-tests/test-cases/no_dynlink.t

63 lines
1.2 KiB
Perl
Raw Normal View History

2025-11-11 02:07:51 +01:00
This test checks that if a library is declared with `(no_dynlink)`, then the
corresponding `.cmxs` file is *not* built.
$ cat >dune-project <<EOF
> (lang dune 3.17)
> EOF
First we check the behaviour when `(no_dynlink)` is not present.
$ cat >dune <<EOF
> (library
> (name mylib))
> EOF
$ touch a.ml
$ dune build _build/default/mylib.cmxs
Now with `(no_dynlink)`.
$ cat >dune <<EOF
> (library
> (name mylib)
> (no_dynlink))
> EOF
$ dune clean
$ dune build _build/default/mylib.cmxs
Error: Don't know how to build _build/default/mylib.cmxs
Hint: did you mean _build/default/mylib.cma or _build/default/mylib.cmxa?
[1]
Next, we check that the .cmxs is installed without `(no_dynlink)`:
$ cat >dune-project <<EOF
> (lang dune 3.17)
> (package (name mylib))
> EOF
$ cat >dune <<EOF
> (library
> (public_name mylib))
> EOF
$ dune build _build/default/mylib.install
$ grep cmxs _build/default/mylib.install
"_build/install/default/lib/mylib/mylib.cmxs"
And *not* installed with `(no_dynlink)`:
$ cat >dune <<EOF
> (library
> (public_name mylib)
> (no_dynlink))
> EOF
$ dune build _build/default/mylib.install
$ grep cmxs _build/default/mylib.install
[1]