From 0edb4481e26846eb4203207ec337b90a3caf2ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Ch=C3=A1varri?= Date: Wed, 28 Dec 2022 03:59:06 +0100 Subject: [PATCH] melange: add installation test for two modes (#5) Signed-off-by: Javier Chavarri --- .../melange/emit-installed-two-modes.t | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 test/blackbox-tests/test-cases/melange/emit-installed-two-modes.t diff --git a/test/blackbox-tests/test-cases/melange/emit-installed-two-modes.t b/test/blackbox-tests/test-cases/melange/emit-installed-two-modes.t new file mode 100644 index 000000000000..013cd36f01e1 --- /dev/null +++ b/test/blackbox-tests/test-cases/melange/emit-installed-two-modes.t @@ -0,0 +1,94 @@ +Test dependency on installed package + + $ mkdir a b c prefix + + $ cat > a/dune-project < (lang dune 3.6) + > (package (name a)) + > (using melange 0.1) + > EOF + $ cat > a/dune < (library + > (modes byte melange) + > (public_name a)) + > EOF + + $ cat > a/foo.ml < let x = "foo" + > EOF + + $ dune build --root a + Entering directory 'a' + Leaving directory 'a' + + $ dune install --root a --prefix $PWD/prefix + Installing $TESTCASE_ROOT/prefix/lib/a/META + Installing $TESTCASE_ROOT/prefix/lib/a/a.cma + Installing $TESTCASE_ROOT/prefix/lib/a/a.cmi + Installing $TESTCASE_ROOT/prefix/lib/a/a.cmt + Installing $TESTCASE_ROOT/prefix/lib/a/a.ml + Installing $TESTCASE_ROOT/prefix/lib/a/a__Foo.cmi + Installing $TESTCASE_ROOT/prefix/lib/a/a__Foo.cmt + Installing $TESTCASE_ROOT/prefix/lib/a/dune-package + Installing $TESTCASE_ROOT/prefix/lib/a/foo.ml + Installing $TESTCASE_ROOT/prefix/lib/a/melange/a.cmi + Installing $TESTCASE_ROOT/prefix/lib/a/melange/a.cmj + Installing $TESTCASE_ROOT/prefix/lib/a/melange/a.cmt + Installing $TESTCASE_ROOT/prefix/lib/a/melange/a__Foo.cmi + Installing $TESTCASE_ROOT/prefix/lib/a/melange/a__Foo.cmj + Installing $TESTCASE_ROOT/prefix/lib/a/melange/a__Foo.cmt + + $ cat >b/dune-project < (lang dune 3.6) + > (using melange 0.1) + > EOF + + $ cat > b/dune < (melange.emit + > (target dist) + > (alias dist) + > (libraries a) + > (module_system commonjs)) + > EOF + + $ cat > b/bar.ml < let x = Js.log A.Foo.x + > EOF + + $ OCAMLPATH=$PWD/prefix/lib/:$OCAMLPATH dune build --root b @dist --display=short + Entering directory 'b' + melc dist/node_modules/a/a.js + melc dist/node_modules/a/foo.js + melc .dist.mobjs/melange/melange__Bar.{cmi,cmj,cmt} + melc dist/bar.js + Leaving directory 'b' + + $ node b/_build/default/dist/bar.js + foo + + $ cat >c/dune-project < (lang dune 3.6) + > (using melange 0.1) + > EOF + + $ cat > c/dune < (melange.emit + > (target dist) + > (alias dist) + > (libraries a) + > (module_system commonjs)) + > EOF + + $ cat > c/dune < (executable + > (name bar) + > (modes byte) + > (libraries a)) + > EOF + + $ cat > c/bar.ml < let () = print_endline A.Foo.x + > EOF + + $ OCAMLPATH=$PWD/prefix/lib/:$OCAMLPATH dune exec ./c/bar.exe + foo