diff --git a/test/blackbox-tests/test-cases/sites.t/app.ml b/test/blackbox-tests/test-cases/sites.t/app.ml new file mode 100644 index 00000000000..c7f0afe1a4c --- /dev/null +++ b/test/blackbox-tests/test-cases/sites.t/app.ml @@ -0,0 +1,6 @@ +(* load all the available plugins *) +let () = Sites.Plugins.Plugins.load_all () + +let () = print_endline "Main app starts..." +(* Execute the code registered by the plugins *) +let () = Queue.iter (fun f -> f ()) Registration.todo diff --git a/test/blackbox-tests/test-cases/sites.t/dune b/test/blackbox-tests/test-cases/sites.t/dune new file mode 100644 index 00000000000..61eabdda215 --- /dev/null +++ b/test/blackbox-tests/test-cases/sites.t/dune @@ -0,0 +1,14 @@ +(executable + (public_name app) + (modules sites app) + (libraries app.register dune-site dune-site.plugins )) + +(library + (public_name app.register) + ;(libraries stdio) + (name registration) + (modules registration)) + +(generate_sites_module + (module sites) + (plugins (app plugins))) diff --git a/test/blackbox-tests/test-cases/sites.t/dune-project b/test/blackbox-tests/test-cases/sites.t/dune-project new file mode 100644 index 00000000000..b08e572a086 --- /dev/null +++ b/test/blackbox-tests/test-cases/sites.t/dune-project @@ -0,0 +1,8 @@ +(lang dune 2.8) +(using dune_site 0.1) + +(name app) + +(package + (name app) + (sites (lib plugins))) diff --git a/test/blackbox-tests/test-cases/sites.t/plugin/dune b/test/blackbox-tests/test-cases/sites.t/plugin/dune new file mode 100644 index 00000000000..ad158e0fbcd --- /dev/null +++ b/test/blackbox-tests/test-cases/sites.t/plugin/dune @@ -0,0 +1,12 @@ +(env (_ (flags -w -33))) + +(library + (public_name plugin1.plugin1_impl) + (name plugin1_impl) + (modules plugin1_impl) + (libraries app.MyControls app.register threads)) + +(plugin + (name plugin1) + (libraries threads plugin1.plugin1_impl) + (site (app plugins))) diff --git a/test/blackbox-tests/test-cases/sites.t/plugin/dune-project b/test/blackbox-tests/test-cases/sites.t/plugin/dune-project new file mode 100644 index 00000000000..9bc1d092732 --- /dev/null +++ b/test/blackbox-tests/test-cases/sites.t/plugin/dune-project @@ -0,0 +1,7 @@ +(lang dune 2.8) +(using dune_site 0.1) + +(generate_opam_files true) + +(package + (name plugin1)) diff --git a/test/blackbox-tests/test-cases/sites.t/plugin/plugin1.opam b/test/blackbox-tests/test-cases/sites.t/plugin/plugin1.opam new file mode 100644 index 00000000000..a295589bbd6 --- /dev/null +++ b/test/blackbox-tests/test-cases/sites.t/plugin/plugin1.opam @@ -0,0 +1,20 @@ +# This file is generated by dune, edit dune-project instead +opam-version: "2.0" +depends: [ + "dune" {>= "2.8"} + "odoc" {with-doc} +] +build: [ + ["dune" "subst"] {dev} + [ + "dune" + "build" + "-p" + name + "-j" + jobs + "@install" + "@runtest" {with-test} + "@doc" {with-doc} + ] +] diff --git a/test/blackbox-tests/test-cases/sites.t/plugin/plugin1_impl.ml b/test/blackbox-tests/test-cases/sites.t/plugin/plugin1_impl.ml new file mode 100644 index 00000000000..b9499c6436c --- /dev/null +++ b/test/blackbox-tests/test-cases/sites.t/plugin/plugin1_impl.ml @@ -0,0 +1,4 @@ +let () = + let open Thread in + print_endline "Registration of Plugin1"; + Queue.add (fun () -> print_endline "Plugin1 is doing something...") Registration.todo diff --git a/test/blackbox-tests/test-cases/sites.t/registration.ml b/test/blackbox-tests/test-cases/sites.t/registration.ml new file mode 100644 index 00000000000..ed989a47c92 --- /dev/null +++ b/test/blackbox-tests/test-cases/sites.t/registration.ml @@ -0,0 +1 @@ +let todo : (unit -> unit) Queue.t = Queue.create () diff --git a/test/blackbox-tests/test-cases/sites.t/run.t b/test/blackbox-tests/test-cases/sites.t/run.t new file mode 100644 index 00000000000..174ce491e26 --- /dev/null +++ b/test/blackbox-tests/test-cases/sites.t/run.t @@ -0,0 +1,5 @@ + + $ dune build ./app.exe @install + $ dune exec ./app.exe + + diff --git a/test/blackbox-tests/test-cases/sites.t/stubs/MyControls.ml b/test/blackbox-tests/test-cases/sites.t/stubs/MyControls.ml new file mode 100644 index 00000000000..8d1c8b69c3f --- /dev/null +++ b/test/blackbox-tests/test-cases/sites.t/stubs/MyControls.ml @@ -0,0 +1 @@ + diff --git a/test/blackbox-tests/test-cases/sites.t/stubs/dune b/test/blackbox-tests/test-cases/sites.t/stubs/dune new file mode 100644 index 00000000000..c834c74867e --- /dev/null +++ b/test/blackbox-tests/test-cases/sites.t/stubs/dune @@ -0,0 +1,7 @@ +(library + (public_name app.MyControls) + (name MyControls) + + (modules MyControls) + (libraries ) +)