diff --git a/test/blackbox-tests/dune.inc b/test/blackbox-tests/dune.inc index b845770c..5d9eb974 100644 --- a/test/blackbox-tests/dune.inc +++ b/test/blackbox-tests/dune.inc @@ -539,6 +539,14 @@ (run %{exe:cram.exe} -skip-versions 4.02.3 -test run.t) (diff? run.t run.t.corrected))))) +(alias + (name preprocess-with-action) + (deps (package dune) (source_tree test-cases/preprocess-with-action)) + (action + (chdir + test-cases/preprocess-with-action + (progn (run %{exe:cram.exe} -test run.t) (diff? run.t run.t.corrected))))) + (alias (name private-public-overlap) (deps (package dune) (source_tree test-cases/private-public-overlap)) @@ -749,6 +757,7 @@ (alias package-dep) (alias path-variables) (alias ppx-rewriter) + (alias preprocess-with-action) (alias private-public-overlap) (alias project-root) (alias promote) @@ -826,6 +835,7 @@ (alias output-obj) (alias package-dep) (alias path-variables) + (alias preprocess-with-action) (alias project-root) (alias promote) (alias quoting) diff --git a/test/blackbox-tests/test-cases/preprocess-with-action/dune-project b/test/blackbox-tests/test-cases/preprocess-with-action/dune-project new file mode 100644 index 00000000..de4fc209 --- /dev/null +++ b/test/blackbox-tests/test-cases/preprocess-with-action/dune-project @@ -0,0 +1 @@ +(lang dune 1.0) diff --git a/test/blackbox-tests/test-cases/preprocess-with-action/dune/dune b/test/blackbox-tests/test-cases/preprocess-with-action/dune/dune new file mode 100644 index 00000000..e0af31fc --- /dev/null +++ b/test/blackbox-tests/test-cases/preprocess-with-action/dune/dune @@ -0,0 +1,3 @@ +(test + (name test) + (preprocess (action (run pp/pp.exe %{first-dep})))) diff --git a/test/blackbox-tests/test-cases/preprocess-with-action/dune/test.expected b/test/blackbox-tests/test-cases/preprocess-with-action/dune/test.expected new file mode 100644 index 00000000..af5626b4 --- /dev/null +++ b/test/blackbox-tests/test-cases/preprocess-with-action/dune/test.expected @@ -0,0 +1 @@ +Hello, world! diff --git a/test/blackbox-tests/test-cases/preprocess-with-action/dune/test.ml b/test/blackbox-tests/test-cases/preprocess-with-action/dune/test.ml new file mode 100644 index 00000000..cec6d9fa --- /dev/null +++ b/test/blackbox-tests/test-cases/preprocess-with-action/dune/test.ml @@ -0,0 +1 @@ +print_endline _STRING_ diff --git a/test/blackbox-tests/test-cases/preprocess-with-action/jbuild/jbuild b/test/blackbox-tests/test-cases/preprocess-with-action/jbuild/jbuild new file mode 100644 index 00000000..05cb6c41 --- /dev/null +++ b/test/blackbox-tests/test-cases/preprocess-with-action/jbuild/jbuild @@ -0,0 +1,10 @@ +(executable + ((name test) + (preprocess (action (run pp/pp.exe ${<}))))) + +(rule + (with-stdout-to test.output (run ./test.exe))) + +(alias + ((name runtest) + (action (diff test.expected test.output)))) diff --git a/test/blackbox-tests/test-cases/preprocess-with-action/jbuild/test.expected b/test/blackbox-tests/test-cases/preprocess-with-action/jbuild/test.expected new file mode 100644 index 00000000..af5626b4 --- /dev/null +++ b/test/blackbox-tests/test-cases/preprocess-with-action/jbuild/test.expected @@ -0,0 +1 @@ +Hello, world! diff --git a/test/blackbox-tests/test-cases/preprocess-with-action/jbuild/test.ml b/test/blackbox-tests/test-cases/preprocess-with-action/jbuild/test.ml new file mode 100644 index 00000000..cec6d9fa --- /dev/null +++ b/test/blackbox-tests/test-cases/preprocess-with-action/jbuild/test.ml @@ -0,0 +1 @@ +print_endline _STRING_ diff --git a/test/blackbox-tests/test-cases/preprocess-with-action/pp/dune b/test/blackbox-tests/test-cases/preprocess-with-action/pp/dune new file mode 100644 index 00000000..8fda4b24 --- /dev/null +++ b/test/blackbox-tests/test-cases/preprocess-with-action/pp/dune @@ -0,0 +1,4 @@ +(executable + (name pp)) + +(ocamllex pp) diff --git a/test/blackbox-tests/test-cases/preprocess-with-action/pp/pp.mll b/test/blackbox-tests/test-cases/preprocess-with-action/pp/pp.mll new file mode 100644 index 00000000..5cd344e7 --- /dev/null +++ b/test/blackbox-tests/test-cases/preprocess-with-action/pp/pp.mll @@ -0,0 +1,10 @@ +rule main = parse + | eof { () } + | "_STRING_" { Printf.printf "%S" "Hello, world!"; main lexbuf } + | _ as c { print_char c; main lexbuf } + +{ + let () = + set_binary_mode_out stdout true; + main (Lexing.from_channel (open_in_bin Sys.argv.(1))) +} diff --git a/test/blackbox-tests/test-cases/preprocess-with-action/run.t b/test/blackbox-tests/test-cases/preprocess-with-action/run.t new file mode 100644 index 00000000..b5f24afd --- /dev/null +++ b/test/blackbox-tests/test-cases/preprocess-with-action/run.t @@ -0,0 +1,4 @@ + $ dune runtest + File "dune/dune", line 3, characters 38-48: + Error: unknown variable "first-dep" + [1]