diff --git a/CHANGES.md b/CHANGES.md index 3277a75a564..b988b71ef85 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -63,6 +63,8 @@ Unreleased - `dune ocaml-merlin` is now able to provide configuration for source files in the `_build` directory. (#4274, @voodoos) +- Enable cram tests by default (#4262, @rgrinberg) + 2.8.2 (21/01/2021) ------------------ diff --git a/doc/test/run.t b/doc/test/run.t index 5a3f706b8e5..32554d0e474 100644 --- a/doc/test/run.t +++ b/doc/test/run.t @@ -12,3 +12,4 @@ is fine, but you then need to update the list of such exceptions below. ../formatting.rst:.. note:: This section applies only to projects with ``(lang dune 1.x)``. ../formatting.rst:In ``(lang dune 1.x)``, no formatting is done by default. This feature is ../formatting.rst:(lang dune 2.0) + ../tests.rst: (lang dune 2.7) diff --git a/doc/tests.rst b/doc/tests.rst index e7c7a8ff1eb..4ff39c52e75 100644 --- a/doc/tests.rst +++ b/doc/tests.rst @@ -474,12 +474,12 @@ Cram Tests Cram tests are expectation tests written in a shell-like syntax. They are ideal for testing binaries. Cram tests are auto discovered from files or directories -with a ``.t`` extension, so they must be enabled manually in the -``dune-project`` file: +with a ``.t`` extension. This is automatically enabled starting from 3.0, for +older versions, this must be manually enabled in the ``dune-project`` file: .. code:: scheme - (lang dune 3.0) + (lang dune 2.7) (cram enable) diff --git a/src/dune_engine/dune_project.ml b/src/dune_engine/dune_project.ml index 9d86a15255b..76b816c3f7e 100644 --- a/src/dune_engine/dune_project.ml +++ b/src/dune_engine/dune_project.ml @@ -442,6 +442,8 @@ let strict_package_deps_default ~(lang : Lang.Instance.t) = let explicit_js_mode_default ~(lang : Lang.Instance.t) = lang.version >= (2, 0) +let cram_default ~(lang : Lang.Instance.t) = lang.version >= (3, 0) + let format_extension_key = Extension.register Format_config.syntax Format_config.dparse_args Format_config.to_dyn @@ -480,6 +482,7 @@ let infer ~dir packages = in let explicit_js_mode = explicit_js_mode_default ~lang in let strict_package_deps = strict_package_deps_default ~lang in + let cram = cram_default ~lang in let root = dir in let file_key = File_key.make ~root ~name in { name @@ -506,7 +509,7 @@ let infer ~dir packages = ; explicit_js_mode ; format_config = None ; strict_package_deps - ; cram = false + ; cram } module Toggle = struct @@ -720,7 +723,7 @@ let parse ~dir ~lang ~opam_packages ~file ~dir_status = in let cram = match cram with - | None -> false + | None -> cram_default ~lang | Some t -> Toggle.enabled t in let root = dir in