diff --git a/lib/test/mdx_test.ml b/lib/test/mdx_test.ml index bbed0cd3..4f3af0fa 100644 --- a/lib/test/mdx_test.ml +++ b/lib/test/mdx_test.ml @@ -332,8 +332,9 @@ let run_exn ~non_deterministic ~silent_eval ~record_backtrace ~syntax ~silent match syntax with Some syntax -> Some syntax | None -> Syntax.infer ~file in let c = - Mdx_top.init ~verbose:(not silent_eval) ~silent ~verbose_findlib ~directives - ~packages ~predicates () + lazy + (Mdx_top.init ~verbose:(not silent_eval) ~silent ~verbose_findlib + ~directives ~packages ~predicates ()) in let preludes = preludes ~prelude ~prelude_str in @@ -350,6 +351,7 @@ let run_exn ~non_deterministic ~silent_eval ~record_backtrace ~syntax ~silent let new_content = read_part file_included None in update_block_content ?syntax ppf t new_content | OCaml { non_det; env; errors; header = _ } -> + let c = Lazy.force c in let det () = assert (syntax <> Some Cram); Mdx_top.in_env env (fun () -> @@ -369,6 +371,7 @@ let run_exn ~non_deterministic ~silent_eval ~record_backtrace ~syntax ~silent ~on_evaluation:(fun () -> run_cram_tests ?syntax t ?root ppf temp_file tests) | Toplevel { non_det; env } -> + let c = Lazy.force c in let phrases = Toplevel.of_lines ~loc:t.loc t.contents in with_non_det non_deterministic non_det ~on_skip_execution:print_block ~on_keep_old_output:(fun () -> @@ -398,8 +401,11 @@ let run_exn ~non_deterministic ~silent_eval ~record_backtrace ~syntax ~silent let buf = Buffer.create (String.length file_contents + 1024) in let ppf = Format.formatter_of_buffer buf in let envs = Document.envs items in - let eval lines () = eval_raw ?root c lines in - let eval_in_env lines env = Mdx_top.in_env env (eval lines) in + let eval c lines () = eval_raw ?root c lines in + let eval_in_env lines env = + let c = Lazy.force c in + Mdx_top.in_env env (eval c lines) + in List.iter (function | `All, lines -> Ocaml_env.Set.iter (eval_in_env lines) envs