diff --git a/dune-project b/dune-project index 598db56..eb10bcb 100644 --- a/dune-project +++ b/dune-project @@ -1 +1 @@ -(lang dune 1.5) \ No newline at end of file +(lang dune 1.10) \ No newline at end of file diff --git a/src/dune b/src/dune index b13c010..f0daab9 100644 --- a/src/dune +++ b/src/dune @@ -1,8 +1,11 @@ (library (name ppx_inline_test) (public_name ppx_inline_test) - (kind ppx_rewriter) (ppx_runtime_libraries ppx_inline_test.runtime-lib) + (kind + (ppx_rewriter + (cookies (inline_tests %{inline_tests})))) + (ppx_runtime_libraries ppx_inline_test.runtime-lib) (libraries base ppxlib ppx_inline_test_libname) (preprocess (pps ppxlib.metaquot)) (inline_tests.backend (runner_libraries ppx_inline_test.runner.lib) (generate_runner (echo "let () = Ppx_inline_test_lib.Runtime.exit ();;")) (flags "inline-test-runner" %{library-name} -source-tree-root - %{workspace_root} -diff-cmd -))) \ No newline at end of file + %{workspace_root} -diff-cmd -))) diff --git a/src/ppx_inline_test.ml b/src/ppx_inline_test.ml index 8a477dd..40c3b2a 100644 --- a/src/ppx_inline_test.ml +++ b/src/ppx_inline_test.ml @@ -40,6 +40,24 @@ let () = Location.raise_errorf ~loc:id.loc "invalid 'inline-test' cookie (%s), expected one of: drop, drop_with_deadcode" s) +;; + +(* Same as above, but for the standard one passed by dune *) +let () = + Driver.Cookies.add_simple_handler "inline_tests" + Ast_pattern.(estring __') + ~f:(function + | None -> () + | Some id -> + match id.txt with + | "enabled" -> maybe_drop_mode := Keep + | "disabled" -> maybe_drop_mode := Drop + | "ignored" -> maybe_drop_mode := Drop_with_deadcode + | s -> + Location.raise_errorf ~loc:id.loc + "invalid 'inline_tests' cookie (%s), expected one of: enabled, disabled or ignored" + s) +;; let maybe_drop loc code = match !maybe_drop_mode with